egglog 2.0.0

egglog is a language that combines the benefits of equality saturation and datalog. It can be used for analysis, optimization, and synthesis of programs. It is the successor to the popular rust library egg.
Documentation
1
2
3
4
5
6
7
8
9
(sort Nat)
(constructor Num (i64) Nat)
(constructor OtherNum (i64) Nat)
(rule ((= fvar5__ 2) (= fvar6__ fvar5__) (= y fvar5__))
      ((union (OtherNum fvar5__) (Num fvar5__))))

(Num 2)
(run 100)
(check (= (OtherNum 2) (Num 2)))