Documentation

Mathlib.RingTheory.Derivation.MapCoeffs

Coefficient-wise derivation on polynomials #

In this file we define applying a derivation on the coefficients of a polynomial, show this forms a derivation, and prove apply_eval_eq, which shows that for a derivation D, D(p(x)) = (D.mapCoeffs p)(x) + D(x) * p'(x). apply_aeval_eq and apply_aeval_eq' are generalizations of that for algebras.

def Derivation.mapCoeffs {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) :

The R-derivation from A[X] to M[X] which applies the derivative to each of the coefficients.

Equations
  • d.mapCoeffs = { toLinearMap := PolynomialModule.map A d ∘ₗ PolynomialModule.equivPolynomial.symm, map_one_eq_zero' := , leibniz' := }
Instances For
    @[simp]
    theorem Derivation.mapCoeffs_apply {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) (p : Polynomial A) (i : ) :
    (d.mapCoeffs p) i = d (p.coeff i)
    @[simp]
    theorem Derivation.mapCoeffs_monomial {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) (n : ) (x : A) :
    d.mapCoeffs ((Polynomial.monomial n) x) = (PolynomialModule.single A n) (d x)
    @[simp]
    theorem Derivation.mapCoeffs_X {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) :
    d.mapCoeffs Polynomial.X = 0
    @[simp]
    theorem Derivation.mapCoeffs_C {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) (x : A) :
    d.mapCoeffs (Polynomial.C x) = (PolynomialModule.single A 0) (d x)
    theorem Derivation.apply_aeval_eq' {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) {B : Type u_4} {M' : Type u_5} [CommRing B] [Algebra R B] [Algebra A B] [AddCommGroup M'] [Module B M'] [Module R M'] [Module A M'] (d' : Derivation R B M') (f : M →ₗ[A] M') (h : ∀ (a : A), f (d a) = d' ((algebraMap A B) a)) (x : B) (p : Polynomial A) :
    d' ((Polynomial.aeval x) p) = (PolynomialModule.eval x) ((PolynomialModule.map B f) (d.mapCoeffs p)) + (Polynomial.aeval x) (Polynomial.derivative p) d' x
    theorem Derivation.apply_aeval_eq {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_4} {M' : Type u_5} [CommRing B] [Algebra R B] [Algebra A B] [AddCommGroup M'] [Module B M'] [Module R M'] [Module A M'] [IsScalarTower R A B] [IsScalarTower A B M'] (d : Derivation R B M') (x : B) (p : Polynomial A) :
    d ((Polynomial.aeval x) p) = (PolynomialModule.eval x) ((Derivation.compAlgebraMap A d).mapCoeffs p) + (Polynomial.aeval x) (Polynomial.derivative p) d x
    theorem Derivation.apply_eval_eq {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommRing R] [CommRing A] [Algebra R A] [AddCommGroup M] [Module A M] [Module R M] (d : Derivation R A M) (x : A) (p : Polynomial A) :
    d (Polynomial.eval x p) = (PolynomialModule.eval x) (d.mapCoeffs p) + Polynomial.eval x (Polynomial.derivative p) d x