egg 0.1.2

An implementation of egraphs

egg: egraphs good

Build Status

Check out the web demo for some quick egraph action.

Using egg

Add egg to your Cargo.toml like this:

egg = "0.1.2"


It's written in Rust. Typically, you install Rust using rustup.

Run cargo doc --open to build and open the documentation in a browser.

Before committing/pushing, make sure to run make, which runs all the tests and lints that CI will.


Running cargo test will run the tests.

There are a couple interesting tests in the tests directory:

  • implements propositional logic and proves some simple theorems.
  • implements real arithmetic, with a little bit of symbolic differentiation.
  • implements a small lambda calculus, using egg as a partial evaluator.