Skip to content
forked from egraphs-good/egg

easter egg is a flexible, high-performance e-graph library with support of multiple additional assumptions at once

License

Notifications You must be signed in to change notification settings

eytans/easter-egg

 
 

Repository files navigation

egg logo egg: egraphs good

Build Status Crates.io Released Docs.rs Master docs

Check out the web demo for some quick e-graph action!

Using egg

Add egg to your Cargo.toml like this:

[dependencies]
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:

  • 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, using egg as a partial evaluator.

About

easter egg is a flexible, high-performance e-graph library with support of multiple additional assumptions at once

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 96.0%
  • JavaScript 2.8%
  • Other 1.2%