Solver for preorders, partial orders, linear orders, and support for offsets.
Equations
Instances For
Equations
Equations
Auxiliary inductive type for representing constraints and equalities
that should be propagated to core.
Recall that we cannot compute proofs until the short-distance
data-structures have been fully updated when a new edge is inserted.
Thus, we store the information to be propagated into a list.
See field propagate in State.
- eqTrue (c : Cnstr NodeId) (e : Expr) (u v : NodeId) (k k' : Weight) : ToPropagate
- eqFalse (c : Cnstr NodeId) (e : Expr) (u v : NodeId) (k k' : Weight) : ToPropagate
- eq (u v : NodeId) : ToPropagate
Instances For
Per-goal solver state of an order structure. The instances and the canonical ≤/<
functions live in Sym.Arith.Order (see Sym.Arith.classifyOrder?); id is the index
of that record, and structs in State is indexed by the same ids.
- id : Nat
Mapping from
NodeIdto theExprrepresented by the node.Mapping from
Exprto a node representing it.Mapping from
Exprrepresenting inequalities to constraints.- propagate : List ToPropagate
Truth values and equalities to propagate to core.
Instances For
Equations
State for all order types detected by grind.
Order structures detected.
Mapping from expressions/terms to their structure ids.
- termMap : PHashMap ExprPtr TermMapEntry
termMapinverse