egg 0.6.0

An implementation of egraphs
# <img src="doc/egg.svg" alt="egg logo" height="40" align="left"> 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.6.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.

### Tests

You will need [`graphviz`]( to run the 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:

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