Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/verse-lab/ego

EGraphs in OCaml
https://github.com/verse-lab/ego

egraphs equality-saturation ocaml

Last synced: 2 months ago
JSON representation

EGraphs in OCaml

Awesome Lists containing this project

README

        

# Ego - EGraphs in OCaml

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.

```ocaml
(* 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
```