Documentation

Mathlib.Data.Polynomial.Smeval

Scalar-multiple polynomial evaluation #

This file defines polynomial evaluation via scalar multiplication. Our polynomials have coefficients in a semiring R, and we evaluate at a weak form of R-algebra, namely an additive commutative monoid with an action of R and a notion of natural number power. This is a generalization of Data.Polynomial.Eval.

Main definitions #

To do #

def Polynomial.smul_pow {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) {R : Type u_2} [Semiring R] [MulActionWithZero R S] :
RS

Scalar multiplication together with taking a natural number power.

Equations
Instances For
    @[irreducible]
    def Polynomial.smeval {S : Type u_2} [AddCommMonoid S] [Pow S ] (x : S) {R : Type u_3} [Semiring R] [MulActionWithZero R S] (p : Polynomial R) :
    S

    Evaluate a polynomial p in the scalar commutative semiring R at an element x in the target S using scalar multiple R-action.

    Equations
    Instances For
      @[simp]
      theorem Polynomial.smeval_zero {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) (R : Type u_2) [Semiring R] [MulActionWithZero R S] :
      @[simp]
      theorem Polynomial.smeval_C {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) {R : Type u_2} [Semiring R] [MulActionWithZero R S] (r : R) :
      Polynomial.smeval x (Polynomial.C r) = r x ^ 0
      @[simp]
      theorem Polynomial.smeval_one {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) (R : Type u_2) [Semiring R] [MulActionWithZero R S] :
      @[simp]
      theorem Polynomial.smeval_X {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) (R : Type u_2) [Semiring R] [MulActionWithZero R S] :
      Polynomial.smeval x Polynomial.X = x ^ 1
      @[simp]
      theorem Polynomial.smeval_monomial {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) {R : Type u_2} [Semiring R] [MulActionWithZero R S] (r : R) (n : ) :
      @[simp]
      theorem Polynomial.smeval_X_pow {S : Type u_1} [AddCommMonoid S] [Pow S ] (x : S) (R : Type u_2) [Semiring R] [MulActionWithZero R S] {n : } :
      Polynomial.smeval x (Polynomial.X ^ n) = x ^ n
      @[simp]
      theorem Polynomial.smeval_add (R : Type u_1) [Semiring R] (p : Polynomial R) (q : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ] [Module R S] (x : S) :
      theorem Polynomial.smeval_nat_cast (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ] [Module R S] (x : S) (n : ) :
      Polynomial.smeval x n = n x ^ 0
      @[simp]
      theorem Polynomial.smeval_smul (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ] [Module R S] (x : S) (r : R) :
      def Polynomial.smeval.linearMap (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ] [Module R S] (x : S) :

      Polynomial.smeval as a linear map.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem Polynomial.smeval.linearMap_apply (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ] [Module R S] (x : S) :
        theorem Polynomial.eval₂_eq_smeval (R : Type u_1) [Semiring R] {S : Type u_2} [Semiring S] (f : R →+* S) (p : Polynomial R) (x : S) :
        theorem Polynomial.leval_coe_eq_smeval {R : Type u_1} [Semiring R] (r : R) :
        theorem Polynomial.aeval_coe_eq_smeval {R : Type u_1} [CommSemiring R] {S : Type u_2} [Semiring S] [Algebra R S] (x : S) :