Expand description
An implementation of congruence closure, CongruenceClosure, which drives modifications to an arbitrary union-find ADT implementing the UnionFind trait.
Based on Nieuwenhuis and Oliveras Proof-producing Congruence Closure, except without the proof production.
A minimal disjoint set forest implementation with dense usize nodes, DisjointSetForest, is also provided.
Structs§
- Congruence
Closure - An implementation of congruence closure, parametric over an arbitrary disjoint set forest implementation.
- Disjoint
SetForest - A minimal disjoint set forest with dense
usizenodes, implementing theUnionFindtrait. - Equate
- A simple equation of the form
term = ix - Pending
- A list of pending equalities for congruence closure
- UseSet
- A set of
(used, user)pairs, whereusedis an index in a context anduseris an equation hash modulo that context
Traits§
- Const
Language - An type within which, when taken as a language, all objects have constant class
- EqMod
- A type which can be compared to another modulo some equivalence context over a type
I - Equation
- An object which can be used as an equation between a term
Land an indexxof the formL = x - HashMod
- A type which can be hashed modulo some equivalence context over a type
I - Language
- An object which can be used as a language for congruence closure with indices of type
Igiven a context of typeC. - Union
Find - A trait implemented by data-structures implementing the union-find ADT.