Note
Go to the end to download the full example code.
Fibonacci numbers example#
from __future__ import annotations
from egglog import *
@function
def fib(x: i64Like) -> i64: ...
f0, f1, x = vars_("f0 f1 x", i64)
check(
eq(fib(i64(7))).to(i64(21)),
ruleset(
rule(
eq(f0).to(fib(x)),
eq(f1).to(fib(x + 1)),
).then(set_(fib(x + 2)).to(f0 + f1)),
)
* 7,
set_(fib(0)).to(i64(1)),
set_(fib(1)).to(i64(1)),
)
Total running time of the script: (0 minutes 0.158 seconds)