egg: egraphs good
Are you using egg?
Please cite using the BibTeX below and
add your project to the egg
website!
Check out the web demo for some quick e-graph action!
Using egg
Add egg
to your Cargo.toml
like this:
[]
= "0.8.0"
Developing
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 (including those under feature flags).
This requires the cbc
solver
due to the lp
feature.
Tests
Running cargo test
will run the tests.
Some tests may time out; try cargo test --release
if that happens.
There are a couple interesting tests in the tests
directory:
prop.rs
implements propositional logic and proves some simple theorems.math.rs
implements real arithmetic, with a little bit of symbolic differentiation.lambda.rs
implements a small lambda calculus, usingegg
as a partial evaluator.