Documentation

Mathlib.RingTheory.Polynomial.DegreeLT

Polynomials with degree strictly less than n #

This file contains the properties of the submodule of polynomials of degree less than n in a (semi)ring R, denoted R[X]_n.

Main definitions/lemmas #

The R-submodule of R[X] consisting of polynomials of degree < n.

Equations
Instances For
    noncomputable def Polynomial.degreeLT.basis (R : Type u_1) [Semiring R] (n : ) :
    Basis (Fin n) R (degreeLT R n)

    Basis for R[X]_n given by X^i with i < n.

    Equations
    Instances For
      @[simp]
      theorem Polynomial.degreeLT.basis_repr {R : Type u_1} [Semiring R] {n : } (i : Fin n) (P : (degreeLT R n)) :
      ((basis R n).repr P) i = (↑P).coeff i
      @[simp]
      theorem Polynomial.degreeLT.basis_val {R : Type u_1} [Semiring R] {n : } (i : Fin n) :
      ((basis R n) i) = X ^ i
      noncomputable def Polynomial.degreeLT.basisProd (R : Type u_1) [Semiring R] (m n : ) :
      Basis (Fin (m + n)) R ((degreeLT R m) × (degreeLT R n))

      Basis for R[X]_m × R[X]_n.

      Equations
      Instances For
        @[simp]
        theorem Polynomial.degreeLT.basisProd_castAdd {R : Type u_1} [Semiring R] (m n : ) (i : Fin m) :
        (basisProd R m n) (Fin.castAdd n i) = ((basis R m) i, 0)
        @[simp]
        theorem Polynomial.degreeLT.basisProd_natAdd {R : Type u_1} [Semiring R] (m n : ) (i : Fin n) :
        (basisProd R m n) (Fin.natAdd m i) = (0, (basis R n) i)
        noncomputable def Polynomial.degreeLT.addLinearEquiv (R : Type u_1) [Semiring R] (m n : ) :
        (degreeLT R (m + n)) ≃ₗ[R] (degreeLT R m) × (degreeLT R n)

        An isomorphism between R[X]_(m+n) and R[X]_m × R[X]_n given by the fact that the bases are both indexed by Fin (m+n).

        Equations
        Instances For
          theorem Polynomial.degreeLT.addLinearEquiv_castAdd {R : Type u_1} [Semiring R] {m n : } (i : Fin m) :
          (addLinearEquiv R m n) ((basis R (m + n)) (Fin.castAdd n i)) = ((basis R m) i, 0)
          theorem Polynomial.degreeLT.addLinearEquiv_natAdd {R : Type u_1} [Semiring R] {m n : } (i : Fin n) :
          (addLinearEquiv R m n) ((basis R (m + n)) (Fin.natAdd m i)) = (0, (basis R n) i)
          theorem Polynomial.degreeLT.addLinearEquiv_symm_apply_inl_basis {R : Type u_1} [Semiring R] {m n : } (i : Fin m) :
          (addLinearEquiv R m n).symm ((LinearMap.inl R (degreeLT R m) (degreeLT R n)) ((basis R m) i)) = (basis R (m + n)) (Fin.castAdd n i)
          theorem Polynomial.degreeLT.addLinearEquiv_symm_apply_inr_basis {R : Type u_1} [Semiring R] {m n : } (j : Fin n) :
          (addLinearEquiv R m n).symm ((LinearMap.inr R (degreeLT R m) (degreeLT R n)) ((basis R n) j)) = (basis R (m + n)) (Fin.natAdd m j)
          theorem Polynomial.degreeLT.addLinearEquiv_symm_apply_inl {R : Type u_1} [Semiring R] {m n : } (P : (degreeLT R m)) :
          ((addLinearEquiv R m n).symm ((LinearMap.inl R (degreeLT R m) (degreeLT R n)) P)) = P
          theorem Polynomial.degreeLT.addLinearEquiv_symm_apply_inr {R : Type u_1} [Semiring R] {m n : } (Q : (degreeLT R n)) :
          ((addLinearEquiv R m n).symm ((LinearMap.inr R (degreeLT R m) (degreeLT R n)) Q)) = Q * X ^ m
          theorem Polynomial.degreeLT.addLinearEquiv_symm_apply {R : Type u_1} [Semiring R] {m n : } (PQ : (degreeLT R m) × (degreeLT R n)) :
          ((addLinearEquiv R m n).symm PQ) = PQ.1 + PQ.2 * X ^ m
          theorem Polynomial.degreeLT.addLinearEquiv_symm_apply' {R : Type u_1} [Semiring R] {m n : } (PQ : (degreeLT R m) × (degreeLT R n)) :
          ((addLinearEquiv R m n).symm PQ) = PQ.1 + X ^ m * PQ.2
          theorem Polynomial.degreeLT.addLinearEquiv_apply' {m n : } {R : Type u_2} [Ring R] (f : (degreeLT R (m + n))) :
          ((addLinearEquiv R m n) f).1 = f %ₘ X ^ m ((addLinearEquiv R m n) f).2 = f /ₘ X ^ m
          theorem Polynomial.degreeLT.addLinearEquiv_apply_fst {m n : } {R : Type u_2} [Ring R] (f : (degreeLT R (m + n))) :
          ((addLinearEquiv R m n) f).1 = f %ₘ X ^ m
          theorem Polynomial.degreeLT.addLinearEquiv_apply_snd {m n : } {R : Type u_2} [Ring R] (f : (degreeLT R (m + n))) :
          ((addLinearEquiv R m n) f).2 = f /ₘ X ^ m
          theorem Polynomial.degreeLT.addLinearEquiv_apply {m n : } {R : Type u_2} [Ring R] (f : (degreeLT R (m + n))) :
          (addLinearEquiv R m n) f = (f %ₘ X ^ m, , f /ₘ X ^ m, )
          @[simp]
          theorem Polynomial.taylor_mem_degreeLT {R : Type u_1} [CommRing R] {r : R} {n : } {f : Polynomial R} :
          (taylor r) f degreeLT R n f degreeLT R n
          noncomputable def Polynomial.taylorLinearEquiv {R : Type u_1} [CommRing R] (r : R) (n : ) :
          (degreeLT R n) ≃ₗ[R] (degreeLT R n)

          The map taylor r induces an automorphism of the module R[X]_n of polynomials of degree < n.

          Equations
          Instances For
            @[simp]
            theorem Polynomial.taylorLinearEquiv_apply_coe {R : Type u_1} [CommRing R] (r : R) (n : ) (a✝ : (degreeLT R n)) :
            ((taylorLinearEquiv r n) a✝) = (((↑(taylorEquiv r)).submoduleMap (degreeLT R n)) a✝)
            @[simp]
            @[simp]