Documentation

Init.Grind.Module.NatModuleNorm

Instances For
    def Lean.Grind.Linarith.Poly.denoteN {α : Type u_1} [NatModule α] (ctx : Context α) (p : Poly) :
    α
    Equations
    Instances For
      theorem Lean.Grind.Linarith.Poly.denoteN_add {α : Type u_1} [NatModule α] (ctx : Context α) (k : Int) (x : Var) (p : Poly) :
      k ≥ 0 → denoteN ctx (add k x p) = k.toNat • Var.denote ctx x + denoteN ctx p
      theorem Lean.Grind.Linarith.instAssociativeHAdd_1 {α : Type u_1} [NatModule α] :
      Std.Associative fun (x1 x2 : α) => x1 + x2
      theorem Lean.Grind.Linarith.instCommutativeHAdd_1 {α : Type u_1} [NatModule α] :
      Std.Commutative fun (x1 x2 : α) => x1 + x2
      theorem Lean.Grind.Linarith.Poly.denoteN_insert {α : Type u_1} [NatModule α] (ctx : Context α) (k : Int) (x : Var) (p : Poly) :
      k ≥ 0 → p.NonnegCoeffs → denoteN ctx (insert k x p) = k.toNat • Var.denote ctx x + denoteN ctx p
      theorem Lean.Grind.Linarith.Poly.denoteN_append {α : Type u_1} [NatModule α] (ctx : Context α) (p₁ p₂ : Poly) :
      p₁.NonnegCoeffs → p₂.NonnegCoeffs → denoteN ctx (p₁.append p₂) = denoteN ctx p₁ + denoteN ctx p₂
      theorem Lean.Grind.Linarith.Poly.denoteN_combine {α : Type u_1} [NatModule α] (ctx : Context α) (p₁ p₂ : Poly) :
      p₁.NonnegCoeffs → p₂.NonnegCoeffs → denoteN ctx (p₁.combine p₂) = denoteN ctx p₁ + denoteN ctx p₂
      theorem Lean.Grind.Linarith.Poly.denoteN_mul' {α : Type u_1} [NatModule α] (ctx : Context α) (p : Poly) (k : Nat) :
      p.NonnegCoeffs → denoteN ctx (p.mul' ↑k) = k • denoteN ctx p
      theorem Lean.Grind.Linarith.Poly.denoteN_mul {α : Type u_1} [NatModule α] (ctx : Context α) (p : Poly) (k : Nat) :
      p.NonnegCoeffs → denoteN ctx (p.mul ↑k) = k • denoteN ctx p
      theorem Lean.Grind.Linarith.eq_normN {α : Type u_1} [NatModule α] (ctx : Context α) (lhs rhs : Expr) :
      eq_normN_cert lhs rhs = true → Expr.denoteN ctx lhs = Expr.denoteN ctx rhs