Equations
Instances For
Equations
Equations
Equations
Equations
- Lean.Grind.CommRing.instReprExpr = { reprPrec := Lean.Grind.CommRing.reprExpr✝ }
Equations
Instances For
Equations
- Lean.Grind.CommRing.Var.denote ctx v = Lean.RArray.get ctx v
Instances For
Equations
- Lean.Grind.CommRing.denoteInt k = Bool.rec (OfNat.ofNat k.natAbs) (-OfNat.ofNat k.natAbs) (k.blt' 0)
Instances For
Equations
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Grind.CommRing.Power.denote ctx { x := x_1, k := 0 } = 1
- Lean.Grind.CommRing.Power.denote ctx { x := x_1, k := 1 } = Lean.Grind.CommRing.Var.denote ctx x_1
- Lean.Grind.CommRing.Power.denote ctx { x := x_1, k := k } = Lean.Grind.CommRing.Var.denote ctx x_1 ^ k
Instances For
Equations
Equations
- Lean.Grind.CommRing.instReprMon = { reprPrec := Lean.Grind.CommRing.reprMon✝ }
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Lean.Grind.CommRing.Mon.denote'.go ctx Lean.Grind.CommRing.Mon.unit acc = acc
- Lean.Grind.CommRing.Mon.denote'.go ctx (Lean.Grind.CommRing.Mon.mult p m_1) acc = Lean.Grind.CommRing.Mon.denote'.go ctx m_1 (acc * Lean.Grind.CommRing.Power.denote ctx p)
Instances For
Equations
- Lean.Grind.CommRing.Mon.ofVar x = Lean.Grind.CommRing.Mon.mult { x := x, k := 1 } Lean.Grind.CommRing.Mon.unit
Instances For
Equations
- Lean.Grind.CommRing.Mon.unit.concat m₂ = m₂
- (Lean.Grind.CommRing.Mon.mult p m).concat m₂ = Lean.Grind.CommRing.Mon.mult p (m.concat m₂)
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Mon.mulPow pw Lean.Grind.CommRing.Mon.unit = Lean.Grind.CommRing.Mon.mult pw Lean.Grind.CommRing.Mon.unit
Instances For
Equations
Instances For
Equations
- Lean.Grind.CommRing.hugeFuel = 1000000
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Mon.mul.go 0 m₁ m₂ = m₁.concat m₂
- Lean.Grind.CommRing.Mon.mul.go fuel_2.succ m₁ Lean.Grind.CommRing.Mon.unit = m₁
- Lean.Grind.CommRing.Mon.mul.go fuel_2.succ Lean.Grind.CommRing.Mon.unit m₂ = m₂
Instances For
Equations
Instances For
Equations
- x.revlex y = bif Nat.blt x y then Ordering.gt else bif Nat.blt y x then Ordering.lt else Ordering.eq
Instances For
Equations
- Lean.Grind.CommRing.powerRevlex k₁ k₂ = bif k₁.blt k₂ then Ordering.gt else bif k₂.blt k₁ then Ordering.lt else Ordering.eq
Instances For
Equations
- Lean.Grind.CommRing.powerRevlex_k k₁ k₂ = Bool.rec (Bool.rec Ordering.eq Ordering.lt (k₂.blt k₁)) Ordering.gt (k₁.blt k₂)
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Mon.unit.revlexWF Lean.Grind.CommRing.Mon.unit = Ordering.eq
- Lean.Grind.CommRing.Mon.unit.revlexWF (Lean.Grind.CommRing.Mon.mult p m) = Ordering.gt
- (Lean.Grind.CommRing.Mon.mult p m).revlexWF Lean.Grind.CommRing.Mon.unit = Ordering.lt
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Mon.revlexFuel 0 m₁ m₂ = m₁.revlexWF m₂
- Lean.Grind.CommRing.Mon.revlexFuel fuel_2.succ Lean.Grind.CommRing.Mon.unit Lean.Grind.CommRing.Mon.unit = Ordering.eq
- Lean.Grind.CommRing.Mon.revlexFuel fuel_2.succ Lean.Grind.CommRing.Mon.unit (Lean.Grind.CommRing.Mon.mult p m) = Ordering.gt
- Lean.Grind.CommRing.Mon.revlexFuel fuel_2.succ (Lean.Grind.CommRing.Mon.mult p m) Lean.Grind.CommRing.Mon.unit = Ordering.lt
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Lean.Grind.CommRing.instReprPoly = { reprPrec := Lean.Grind.CommRing.reprPoly✝ }
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Grind.CommRing.Poly.denote ctx (Lean.Grind.CommRing.Poly.num k) = ↑k
- Lean.Grind.CommRing.Poly.denote ctx (Lean.Grind.CommRing.Poly.add k m p_2) = k * Lean.Grind.CommRing.Mon.denote ctx m + Lean.Grind.CommRing.Poly.denote ctx p_2
Instances For
Equations
Instances For
Equations
- Lean.Grind.CommRing.Poly.denote'.denoteTerm ctx k m = bif k == 1 then Lean.Grind.CommRing.Mon.denote' ctx m else k * Lean.Grind.CommRing.Mon.denote' ctx m
Instances For
Equations
- Lean.Grind.CommRing.Poly.denote'.go ctx (Lean.Grind.CommRing.Poly.num 0) acc = acc
- Lean.Grind.CommRing.Poly.denote'.go ctx (Lean.Grind.CommRing.Poly.num k) acc = acc + ↑k
- Lean.Grind.CommRing.Poly.denote'.go ctx (Lean.Grind.CommRing.Poly.add k m p_2) acc = Lean.Grind.CommRing.Poly.denote'.go ctx p_2 (acc + Lean.Grind.CommRing.Poly.denote'.denoteTerm ctx k m)
Instances For
Equations
Instances For
Equations
Instances For
Equations
- (Lean.Grind.CommRing.Poly.num k).isSorted = true
- (Lean.Grind.CommRing.Poly.add k v (Lean.Grind.CommRing.Poly.num k_1)).isSorted = true
- (Lean.Grind.CommRing.Poly.add k m₁ (Lean.Grind.CommRing.Poly.add k_1 m₂ p)).isSorted = (m₁.grevlex m₂ == Ordering.gt && (Lean.Grind.CommRing.Poly.add k_1 m₂ p).isSorted)
Instances For
Equations
- p.addConst k = bif k == 0 then p else Lean.Grind.CommRing.Poly.addConst.go k p
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Grind.CommRing.Poly.insert k m p = bif k == 0 then p else bif m == Lean.Grind.CommRing.Mon.unit then p.addConst k else Lean.Grind.CommRing.Poly.insert.go k m p
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Poly.insert.go k m (Lean.Grind.CommRing.Poly.num k_1) = Lean.Grind.CommRing.Poly.add k m (Lean.Grind.CommRing.Poly.num k_1)
Instances For
Equations
- (Lean.Grind.CommRing.Poly.num k).concat p₂ = p₂.addConst k
- (Lean.Grind.CommRing.Poly.add k m p_1).concat p₂ = Lean.Grind.CommRing.Poly.add k m (p_1.concat p₂)
Instances For
Equations
- Lean.Grind.CommRing.Poly.mulConst k p = bif k == 0 then Lean.Grind.CommRing.Poly.num 0 else bif k == 1 then p else Lean.Grind.CommRing.Poly.mulConst.go k p
Instances For
Equations
- Lean.Grind.CommRing.Poly.mulConst.go k (Lean.Grind.CommRing.Poly.num k_1) = Lean.Grind.CommRing.Poly.num (k * k_1)
- Lean.Grind.CommRing.Poly.mulConst.go k (Lean.Grind.CommRing.Poly.add k_1 m p_1) = Lean.Grind.CommRing.Poly.add (k * k_1) m (Lean.Grind.CommRing.Poly.mulConst.go k p_1)
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.
- Lean.Grind.CommRing.Poly.mulMon.go k m (Lean.Grind.CommRing.Poly.add k_1 m_1 p_1) = Lean.Grind.CommRing.Poly.add (k * k_1) (m.mul m_1) (Lean.Grind.CommRing.Poly.mulMon.go k m p_1)
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Poly.combine.go 0 p₁ p₂ = p₁.concat p₂
- Lean.Grind.CommRing.Poly.combine.go fuel_2.succ (Lean.Grind.CommRing.Poly.num k₁) (Lean.Grind.CommRing.Poly.num k₂) = Lean.Grind.CommRing.Poly.num (k₁ + k₂)
- Lean.Grind.CommRing.Poly.combine.go fuel_2.succ (Lean.Grind.CommRing.Poly.num k₁) (Lean.Grind.CommRing.Poly.add k₂ m₂ p₂_2) = (Lean.Grind.CommRing.Poly.add k₂ m₂ p₂_2).addConst k₁
- Lean.Grind.CommRing.Poly.combine.go fuel_2.succ (Lean.Grind.CommRing.Poly.add k₁ m₁ p₁_2) (Lean.Grind.CommRing.Poly.num k₂) = (Lean.Grind.CommRing.Poly.add k₁ m₁ p₁_2).addConst k₂
Instances For
A Poly.combine
optimized for the kernel.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- p₁.mul p₂ = Lean.Grind.CommRing.Poly.mul.go p₂ p₁ (Lean.Grind.CommRing.Poly.num 0)
Instances For
Equations
- Lean.Grind.CommRing.Poly.mul.go p₂ (Lean.Grind.CommRing.Poly.num k) acc = acc.combine (Lean.Grind.CommRing.Poly.mulConst k p₂)
- Lean.Grind.CommRing.Poly.mul.go p₂ (Lean.Grind.CommRing.Poly.add k m p_1) acc = Lean.Grind.CommRing.Poly.mul.go p₂ p_1 (acc.combine (Lean.Grind.CommRing.Poly.mulMon k m p₂))
Instances For
Equations
- One or more equations did not get rendered due to their size.
- (Lean.Grind.CommRing.Expr.num k).toPoly = Lean.Grind.CommRing.Poly.num k
- (Lean.Grind.CommRing.Expr.intCast k).toPoly = Lean.Grind.CommRing.Poly.num k
- (Lean.Grind.CommRing.Expr.natCast k).toPoly = Lean.Grind.CommRing.Poly.num ↑k
- (Lean.Grind.CommRing.Expr.var x_1).toPoly = Lean.Grind.CommRing.Poly.ofVar x_1
- (a.add b).toPoly = a.toPoly.combine b.toPoly
- (a.mul b).toPoly = a.toPoly.mul b.toPoly
- a.neg.toPoly = Lean.Grind.CommRing.Poly.mulConst (-1) a.toPoly
- (a.sub b).toPoly = a.toPoly.combine (Lean.Grind.CommRing.Poly.mulConst (-1) b.toPoly)
- ((Lean.Grind.CommRing.Expr.num n).pow k).toPoly = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else Lean.Grind.CommRing.Poly.num (n ^ k)
- ((Lean.Grind.CommRing.Expr.intCast n).pow k).toPoly = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else Lean.Grind.CommRing.Poly.num (n ^ k)
- ((Lean.Grind.CommRing.Expr.natCast n).pow k).toPoly = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else Lean.Grind.CommRing.Poly.num (↑n ^ k)
- (a.pow k).toPoly = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else a.toPoly.pow k
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (Lean.Grind.CommRing.Poly.num k).normEq0 c = bif k % ↑c == 0 then Lean.Grind.CommRing.Poly.num 0 else Lean.Grind.CommRing.Poly.num k
- (Lean.Grind.CommRing.Poly.add k m p_2).normEq0 c = bif k % ↑c == 0 then p_2.normEq0 c else Lean.Grind.CommRing.Poly.add k m (p_2.normEq0 c)
Instances For
Definitions for the IsCharP
case
We considered using a single set of definitions parameterized by Option c
or simply set c = 0
since
n % 0 = n
in Lean, but decided against it to avoid unnecessary kernel‑reduction overhead.
Once we can specialize definitions before they reach the kernel,
we can merge the two versions. Until then, the IsCharP
definitions will carry the C
suffix.
We use them whenever we can infer the characteristic using type class instance synthesis.
Equations
- (Lean.Grind.CommRing.Poly.num k_1).addConstC k c = Lean.Grind.CommRing.Poly.num ((k_1 + k) % ↑c)
- (Lean.Grind.CommRing.Poly.add k_1 m p_2).addConstC k c = Lean.Grind.CommRing.Poly.add k_1 m (p_2.addConstC k c)
Instances For
Equations
- Lean.Grind.CommRing.Poly.insertC k m p c = bif k % ↑c == 0 then p else Lean.Grind.CommRing.Poly.insertC.go m c (k % ↑c) p
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Poly.insertC.go m c k (Lean.Grind.CommRing.Poly.num k_1) = Lean.Grind.CommRing.Poly.add k m (Lean.Grind.CommRing.Poly.num k_1)
Instances For
Equations
- Lean.Grind.CommRing.Poly.mulConstC k p c = bif k % ↑c == 0 then Lean.Grind.CommRing.Poly.num 0 else bif k % ↑c == 1 then p else Lean.Grind.CommRing.Poly.mulConstC.go k c p
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Poly.mulConstC.go k c (Lean.Grind.CommRing.Poly.num k_1) = Lean.Grind.CommRing.Poly.num (k * k_1 % ↑c)
Instances For
Equations
- p₁.combineC p₂ c = Lean.Grind.CommRing.Poly.combineC.go c Lean.Grind.CommRing.hugeFuel p₁ p₂
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Poly.combineC.go c 0 p₁ p₂ = p₁.concat p₂
- Lean.Grind.CommRing.Poly.combineC.go c fuel_2.succ (Lean.Grind.CommRing.Poly.num k₁) (Lean.Grind.CommRing.Poly.num k₂) = Lean.Grind.CommRing.Poly.num ((k₁ + k₂) % ↑c)
- Lean.Grind.CommRing.Poly.combineC.go c fuel_2.succ (Lean.Grind.CommRing.Poly.num k₁) (Lean.Grind.CommRing.Poly.add k₂ m₂ p₂_2) = (Lean.Grind.CommRing.Poly.add k₂ m₂ p₂_2).addConstC k₁ c
- Lean.Grind.CommRing.Poly.combineC.go c fuel_2.succ (Lean.Grind.CommRing.Poly.add k₁ m₁ p₁_2) (Lean.Grind.CommRing.Poly.num k₂) = (Lean.Grind.CommRing.Poly.add k₁ m₁ p₁_2).addConstC k₂ c
Instances For
Equations
- p₁.mulC p₂ c = Lean.Grind.CommRing.Poly.mulC.go p₂ c p₁ (Lean.Grind.CommRing.Poly.num 0)
Instances For
Equations
- Lean.Grind.CommRing.Poly.mulC.go p₂ c (Lean.Grind.CommRing.Poly.num k) acc = acc.combineC (Lean.Grind.CommRing.Poly.mulConstC k p₂ c) c
- Lean.Grind.CommRing.Poly.mulC.go p₂ c (Lean.Grind.CommRing.Poly.add k m p_1) acc = Lean.Grind.CommRing.Poly.mulC.go p₂ c p_1 (acc.combineC (Lean.Grind.CommRing.Poly.mulMonC k m p₂ c) c)
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.Expr.toPolyC.go c (Lean.Grind.CommRing.Expr.num k) = Lean.Grind.CommRing.Poly.num (k % ↑c)
- Lean.Grind.CommRing.Expr.toPolyC.go c (Lean.Grind.CommRing.Expr.natCast k) = Lean.Grind.CommRing.Poly.num (↑k % ↑c)
- Lean.Grind.CommRing.Expr.toPolyC.go c (Lean.Grind.CommRing.Expr.intCast k) = Lean.Grind.CommRing.Poly.num (k % ↑c)
- Lean.Grind.CommRing.Expr.toPolyC.go c (Lean.Grind.CommRing.Expr.var x_1) = Lean.Grind.CommRing.Poly.ofVar x_1
- Lean.Grind.CommRing.Expr.toPolyC.go c (a.add b) = (Lean.Grind.CommRing.Expr.toPolyC.go c a).combineC (Lean.Grind.CommRing.Expr.toPolyC.go c b) c
- Lean.Grind.CommRing.Expr.toPolyC.go c (a.mul b) = (Lean.Grind.CommRing.Expr.toPolyC.go c a).mulC (Lean.Grind.CommRing.Expr.toPolyC.go c b) c
- Lean.Grind.CommRing.Expr.toPolyC.go c a.neg = Lean.Grind.CommRing.Poly.mulConstC (-1) (Lean.Grind.CommRing.Expr.toPolyC.go c a) c
- Lean.Grind.CommRing.Expr.toPolyC.go c (a.sub b) = (Lean.Grind.CommRing.Expr.toPolyC.go c a).combineC (Lean.Grind.CommRing.Poly.mulConstC (-1) (Lean.Grind.CommRing.Expr.toPolyC.go c b) c) c
- Lean.Grind.CommRing.Expr.toPolyC.go c ((Lean.Grind.CommRing.Expr.num n).pow k) = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else Lean.Grind.CommRing.Poly.num (n ^ k % ↑c)
- Lean.Grind.CommRing.Expr.toPolyC.go c (a.pow k) = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else (Lean.Grind.CommRing.Expr.toPolyC.go c a).powC k c
Instances For
q₁*(lhs₁ - rhs₁) + ... + qₙ*(lhsₙ - rhsₙ)
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.NullCert.denote ctx Lean.Grind.CommRing.NullCert.empty = 0
Instances For
lhs₁ = rh₁ → ... → lhsₙ = rhₙ → p
Equations
- One or more equations did not get rendered due to their size.
- Lean.Grind.CommRing.NullCert.eqsImplies ctx Lean.Grind.CommRing.NullCert.empty p = p
Instances For
A polynomial representing
q₁*(lhs₁ - rhs₁) + ... + qₙ*(lhsₙ - rhsₙ)
Equations
- Lean.Grind.CommRing.NullCert.empty.toPoly = Lean.Grind.CommRing.Poly.num 0
- (Lean.Grind.CommRing.NullCert.add q lhs rhs nc_1).toPoly = (q.mul (lhs.sub rhs).toPoly).combine nc_1.toPoly
Instances For
Equations
- Lean.Grind.CommRing.NullCert.empty.toPolyC c = Lean.Grind.CommRing.Poly.num 0
- (Lean.Grind.CommRing.NullCert.add q lhs rhs nc_1).toPolyC c = (q.mulC ((lhs.sub rhs).toPolyC c) c).combineC (nc_1.toPolyC c) c
Instances For
Theorems for justifying the procedure for commutative rings in grind
.
Equations
- nc.eq_unsat_cert k = (decide (k ≠ 0) && nc.toPoly == Lean.Grind.CommRing.Poly.num k)
Instances For
Theorems for justifying the procedure for commutative rings with a characteristic in grind
.
Equations
- nc.eq_unsat_certC k c = (k % ↑c != 0 && nc.toPolyC c == Lean.Grind.CommRing.Poly.num k)
Instances For
Theorems for stepwise proof-term construction
Equations
- Lean.Grind.CommRing.Stepwise.core_cert lhs rhs p = (lhs.sub rhs).toPoly_k.beq' p
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.superpose_cert k₁ m₁ p₁ k₂ m₂ p₂ p = ((Lean.Grind.CommRing.Poly.mulMon_k k₁ m₁ p₁).combine_k (Lean.Grind.CommRing.Poly.mulMon_k k₂ m₂ p₂)).beq' p
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.simp_cert k₁ p₁ k₂ m₂ p₂ p = ((Lean.Grind.CommRing.Poly.mulConst_k k₁ p₁).combine_k (Lean.Grind.CommRing.Poly.mulMon_k k₂ m₂ p₂)).beq' p
Instances For
Equations
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.div_cert p₁ k p = (!k.beq' 0).and' ((Lean.Grind.CommRing.Poly.mulConst_k k p).beq' p₁)
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.unsat_eq_cert p k = (!k.beq' 0).and' (p.beq' (Lean.Grind.CommRing.Poly.num k))
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.d_step1_cert p₁ k₂ m₂ p₂ p = p.beq' (p₁.combine_k (Lean.Grind.CommRing.Poly.mulMon_k k₂ m₂ p₂))
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.d_stepk_cert k₁ p₁ k₂ m₂ p₂ p = p.beq' ((Lean.Grind.CommRing.Poly.mulConst_k k₁ p₁).combine_k (Lean.Grind.CommRing.Poly.mulMon_k k₂ m₂ p₂))
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.imp_1eq_cert lhs rhs p₁ p₂ = ((lhs.sub rhs).toPoly_k.beq' p₁).and' (p₂.beq' (Lean.Grind.CommRing.Poly.num 0))
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.superpose_certC k₁ m₁ p₁ k₂ m₂ p₂ p c = ((Lean.Grind.CommRing.Poly.mulMonC k₁ m₁ p₁ c).combineC (Lean.Grind.CommRing.Poly.mulMonC k₂ m₂ p₂ c) c).beq' p
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.mul_certC p₁ k p c = (Lean.Grind.CommRing.Poly.mulConstC k p₁ c).beq' p
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.div_certC p₁ k p c = (!k.beq' 0).and' ((Lean.Grind.CommRing.Poly.mulConstC k p c).beq' p₁)
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.simp_certC k₁ p₁ k₂ m₂ p₂ p c = ((Lean.Grind.CommRing.Poly.mulConstC k₁ p₁ c).combineC (Lean.Grind.CommRing.Poly.mulMonC k₂ m₂ p₂ c) c).beq' p
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.unsat_eq_certC p k c = (!(k % ↑c).beq' 0).and' (p.beq' (Lean.Grind.CommRing.Poly.num k))
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.d_step1_certC p₁ k₂ m₂ p₂ p c = p.beq' (p₁.combineC (Lean.Grind.CommRing.Poly.mulMonC k₂ m₂ p₂ c) c)
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.d_stepk_certC k₁ p₁ k₂ m₂ p₂ p c = p.beq' ((Lean.Grind.CommRing.Poly.mulConstC k₁ p₁ c).combineC (Lean.Grind.CommRing.Poly.mulMonC k₂ m₂ p₂ c) c)
Instances For
Equations
- Lean.Grind.CommRing.Stepwise.imp_1eq_certC lhs rhs p₁ p₂ c = (((lhs.sub rhs).toPolyC c).beq' p₁).and' (p₂.beq' (Lean.Grind.CommRing.Poly.num 0))
Instances For
Equations
Instances For
IntModule interface
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
normEq0 helper theorems
Equations
- Lean.Grind.CommRing.eq_normEq0_cert c p₁ p₂ p = (p₁.beq' (Lean.Grind.CommRing.Poly.num ↑c) && p.beq' (p₂.normEq0 c))
Instances For
Equations
- Lean.Grind.CommRing.eq_gcd_cert a b (Lean.Grind.CommRing.Poly.add k v p_2) p₂ p = false
- Lean.Grind.CommRing.eq_gcd_cert a b (Lean.Grind.CommRing.Poly.num g) (Lean.Grind.CommRing.Poly.add k v p_3) p = false
- Lean.Grind.CommRing.eq_gcd_cert a b (Lean.Grind.CommRing.Poly.num g) (Lean.Grind.CommRing.Poly.num g_1) (Lean.Grind.CommRing.Poly.add k v p_4) = false
- Lean.Grind.CommRing.eq_gcd_cert a b (Lean.Grind.CommRing.Poly.num g) (Lean.Grind.CommRing.Poly.num g_1) (Lean.Grind.CommRing.Poly.num g_2) = (g_2 == a * g + b * g_1)
Instances For
Equations
- Lean.Grind.CommRing.d_normEq0_cert c p₁ p₂ p = (p₂.beq' (Lean.Grind.CommRing.Poly.num ↑c)).and' (p.beq' (p₁.normEq0 c))