[−][src]Crate egg
egg
(e-graphs good) is a e-graph library optimized for equality saturation.
This is the API documentation.
The tutorial is a good starting point if you're new to e-graphs, equality saturation, or Rust.
The tests on Github provide some more elaborate examples.
There is also a paper
describing egg
and some of its technical novelties.
Modules
tutorials | A Guide-level Explanation of |
Macros
define_language | A macro to easily create a |
rewrite | A macro to easily make |
test_fn | Make a test function |
Structs
AstDepth | A simple |
AstSize | A simple |
BackoffScheduler | A |
ConditionEqual | A |
ConditionalApplier | |
Dot | A wrapper for an |
EClass | An equivalence class of enodes. |
EGraph | A data structure to keep track of equalities between expressions. |
Extractor | |
Id | |
Iteration | Data generated by running a |
Pattern | A pattern that can function as either a |
RecExpr | A recursive expression from a user-defined |
Rewrite | A rewrite that searches for the lefthand side and applies the righthand side. |
Runner | Faciliates running rewrites over an |
SearchMatches | The result of searching a |
SimpleScheduler | A very simple |
Subst | |
Symbol | An interned string. |
SymbolLang | A simple language used for testing. |
Var |
Enums
ENodeOrVar | The language of |
StopReason | Error returned by |
Traits
Analysis | Arbitrary data associated with an |
Applier | The righthand side of a |
Condition | A condition to check in a |
CostFunction | A cost function that can be used by an |
IterationData | Custom data to inject into the |
Language | Trait that defines a Language whose terms will be in the |
LanguageChildren | A marker that defines acceptable children types for |
RewriteScheduler | |
Searcher | The lefthand side of a |
Functions
merge_if_different | Replace the first with second value if they are different returning whether or not something was done. |
Type Definitions
PatternAst |