Equations
Instances For
Given an equation c₁
containing the monomial a*x
, and a disequality constraint c₂
containing the monomial b*x
, eliminate x
by applying substitution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Selects the variable in the given linear polynomial whose coefficient has the smallest absolute value.
Equations
- (Int.Linear.Poly.num k).pickVarToElim? = none
- (Int.Linear.Poly.add k' x' p_2).pickVarToElim? = some (Int.Linear.Poly.pickVarToElim?.go✝ k' x' p_2)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Similar to updateOccs
, but does not assume first variable is p
s "owner".
Recall that when eliminating equalities we do not necessarily eliminate the
maximal variable, but the one with unit coefficient.
Remark: we keep occurrences for equations in elimEqs
because we want to maintain them
in solved form. Consider the following scenario:
1- Asserted a + 2*b + 1 = 0
, and eliminated a
2- Asserted b + 1 = 0
, and eliminated b
.
At step 2, we want to substitute b
at a + 2*b + 1
to ensure cutsat
knows
a
is forced to be equal to a constant value. This is relevant for linearizing
nonlinear terms.
Remark: x
is the variable that was eliminated using p
.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Internalizes an integer (and Nat
) expression. Here are the different cases that are handled.
a + b
whenparent?
is not+
,≤
, or∣
k * a
whenk
is a numeral andparent?
is not+
,*
,≤
,∣
- numerals when
parent?
is not+
,*
,≤
,∣
. Recall that we must internalize numerals to make sure we can propagate equalities back to the congruence closure module. Example: we havef 5
,f x
,x - y = 3
,y = 2
.
Equations
- One or more equations did not get rendered due to their size.