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 + 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.