Ego - EGraphs in OCaml
August 30, 2021 ยท View on GitHub
Ego (EGraphs OCaml) is an OCaml library that provides generic equality saturation using EGraphs.
The design of Ego loosely follows the design of Rust's egg library, providing a flexible interface to run equality saturation extended with custom user-defined analyses.
(* create an egraph *)
let graph = EGraph.init ()
(* add expressions *)
let expr1 = EGraph.add_sexp graph [%s ((a << 1) / 2)]
(* Convert to graphviz *)
let g : Odot.graph = EGraph.to_dot graph