- eqs : list omega.term
- les : list omega.term
- ees : list omega.ee
The state of equality elimination proof search. eqs
is the list of
equality constraints, and each t ∈ eqs
represents the constraint 0 = t
.
Similarly, les
is the list of inequality constraints, and each t ∈ eqs
represents the constraint 0 < t
. ees
is the sequence of equality
elimination steps that have been used so far to obtain the current set of
constraints. The list ees
grows over time until eqs
becomes empty.
Get the current list of equality constraints.
Get the current list of inequality constraints.
Get the current sequence of equality elimiation steps.
Update the list of equality constraints.
Update the list of inequality constraints.
Update the sequence of equality elimiation steps.
Add a new step to the sequence of equality elimination steps.
Return the first equality constraint in the current list of equality constraints. The returned constraint is 'popped' and no longer available in the state.
If t1
succeeds and returns a value, 'commit' to that choice and
run t3
with the returned value as argument. Do not backtrack
to try t2
even if t3
fails. If t1
fails outright, run t2
.
Divide a term by an integer if the integer divides the constant component of the term. It is assumed that the integer also divides all coefficients of the term.
If list has a nonzero element, return the minimum element (by absolute value) with its index. Otherwise, return none.
Find and return the smallest coefficient (by absolute value) in a term, along with the coefficient's variable index and the term itself. If the coefficient is negative, negate both the coefficient and the term before returning them.
Find an appropriate equality elimination step for the current state and apply it.
Find and return the sequence of steps for eliminating all equality constraints in the current state.
Given a linear constrain clause, return a list of steps for eliminating its equality constraints.