Equations
- Lean.Meta.Grind.Arith.Cutsat.mkDiseqCnstr p h = do let __do_lift ← Lean.Meta.Grind.Arith.Cutsat.mkCnstrId pure { p := p, h := h, id := __do_lift }
Instances For
Equations
Instances For
def
Lean.Meta.Grind.Arith.Cutsat.DiseqCnstr.applyEq
(a : Int)
(x : Var)
(c₁ : EqCnstr)
(b : Int)
(c₂ : DiseqCnstr)
:
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
@[export lean_grind_cutsat_assert_eq]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[export lean_process_cutsat_eq]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[export lean_process_cutsat_eq_lit]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[export lean_process_cutsat_diseq]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Internalizes an integer expression. Here are the different cases that are handled.
a + bwhenparent?is not+,≤, or∣k * awhenkis 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.