Documentation

Init.Data.Nat.SOM

inductive Nat.SOM.Expr :
Instances For
    @[reducible, inline]
    Equations
    Instances For
      Equations
      Instances For
        def Nat.SOM.Mon.mul (m₁ m₂ : Mon) :
        Equations
        Instances For
          def Nat.SOM.Mon.mul.go (fuel : Nat) (m₁ m₂ : Mon) :
          Equations
          Instances For
            @[reducible, inline]
            Equations
            Instances For
              Equations
              Instances For
                def Nat.SOM.Poly.add (p₁ p₂ : Poly) :
                Equations
                Instances For
                  def Nat.SOM.Poly.add.go (fuel : Nat) (p₁ p₂ : Poly) :
                  Equations
                  Instances For
                    def Nat.SOM.Poly.insertSorted (k : Nat) (m : Mon) (p : Poly) :
                    Equations
                    Instances For
                      def Nat.SOM.Poly.mulMon (p : Poly) (k : Nat) (m : Mon) :
                      Equations
                      Instances For
                        def Nat.SOM.Poly.mulMon.go (k : Nat) (m : Mon) (p acc : Poly) :
                        Equations
                        Instances For
                          def Nat.SOM.Poly.mul (p₁ p₂ : Poly) :
                          Equations
                          Instances For
                            def Nat.SOM.Poly.mul.go (p₂ p₁ acc : Poly) :
                            Equations
                            Instances For
                              Equations
                              Instances For
                                theorem Nat.SOM.Mon.append_denote (ctx : Linear.Context) (m₁ m₂ : Mon) :
                                denote ctx (m₁ ++ m₂) = denote ctx m₁ * denote ctx m₂
                                theorem Nat.SOM.Mon.mul_denote (ctx : Linear.Context) (m₁ m₂ : Mon) :
                                denote ctx (m₁.mul m₂) = denote ctx m₁ * denote ctx m₂
                                theorem Nat.SOM.Mon.mul_denote.go (ctx : Linear.Context) (fuel : Nat) (m₁ m₂ : Mon) :
                                denote ctx (mul.go fuel m₁ m₂) = denote ctx m₁ * denote ctx m₂
                                theorem Nat.SOM.Poly.append_denote (ctx : Linear.Context) (p₁ p₂ : Poly) :
                                denote ctx (p₁ ++ p₂) = denote ctx p₁ + denote ctx p₂
                                theorem Nat.SOM.Poly.add_denote (ctx : Linear.Context) (p₁ p₂ : Poly) :
                                denote ctx (p₁.add p₂) = denote ctx p₁ + denote ctx p₂
                                theorem Nat.SOM.Poly.add_denote.go (ctx : Linear.Context) (fuel : Nat) (p₁ p₂ : Poly) :
                                denote ctx (add.go fuel p₁ p₂) = denote ctx p₁ + denote ctx p₂
                                theorem Nat.SOM.Poly.denote_insertSorted (ctx : Linear.Context) (k : Nat) (m : Mon) (p : Poly) :
                                denote ctx (insertSorted k m p) = denote ctx p + k * Mon.denote ctx m
                                theorem Nat.SOM.Poly.mulMon_denote (ctx : Linear.Context) (p : Poly) (k : Nat) (m : Mon) :
                                denote ctx (p.mulMon k m) = denote ctx p * k * Mon.denote ctx m
                                theorem Nat.SOM.Poly.mulMon_denote.go (ctx : Linear.Context) (k : Nat) (m : Mon) (p acc : Poly) :
                                denote ctx (mulMon.go k m p acc) = denote ctx acc + denote ctx p * k * Mon.denote ctx m
                                theorem Nat.SOM.Poly.mul_denote (ctx : Linear.Context) (p₁ p₂ : Poly) :
                                denote ctx (p₁.mul p₂) = denote ctx p₁ * denote ctx p₂
                                theorem Nat.SOM.Poly.mul_denote.go (ctx : Linear.Context) (p₂ p₁ acc : Poly) :
                                denote ctx (mul.go p₂ p₁ acc) = denote ctx acc + denote ctx p₁ * denote ctx p₂
                                theorem Nat.SOM.Expr.toPoly_denote (ctx : Linear.Context) (e : Expr) :
                                Poly.denote ctx e.toPoly = denote ctx e
                                theorem Nat.SOM.Expr.eq_of_toPoly_eq (ctx : Linear.Context) (a b : Expr) (h : (a.toPoly == b.toPoly) = true) :
                                denote ctx a = denote ctx b