Documentation

Mathlib.Algebra.MvPolynomial.PDeriv

Partial derivatives of polynomials #

This file defines the notion of the formal partial derivative of a polynomial, the derivative with respect to a single variable. This derivative is not connected to the notion of derivative from analysis. It is based purely on the polynomial exponents and coefficients.

Main declarations #

Notation #

As in other polynomial files, we typically use the notation:

noncomputable def MvPolynomial.pderiv {R : Type u} {σ : Type v} [CommSemiring R] (i : σ) :

pderiv i p is the partial derivative of p with respect to i

Equations
Instances For
    theorem MvPolynomial.pderiv_def {R : Type u} {σ : Type v} [CommSemiring R] [DecidableEq σ] (i : σ) :
    @[simp]
    theorem MvPolynomial.pderiv_monomial {R : Type u} {σ : Type v} {a : R} {s : σ →₀ ℕ} [CommSemiring R] {i : σ} :
    (pderiv i) ((monomial s) a) = (monomial (s - Finsupp.single i 1)) (a * ↑(s i))
    theorem MvPolynomial.X_mul_pderiv_monomial {R : Type u} {σ : Type v} [CommSemiring R] {i : σ} {m : σ →₀ ℕ} {r : R} :
    X i * (pderiv i) ((monomial m) r) = m i • (monomial m) r
    theorem MvPolynomial.pderiv_C {R : Type u} {σ : Type v} {a : R} [CommSemiring R] {i : σ} :
    (pderiv i) (C a) = 0
    theorem MvPolynomial.pderiv_one {R : Type u} {σ : Type v} [CommSemiring R] {i : σ} :
    (pderiv i) 1 = 0
    @[simp]
    theorem MvPolynomial.pderiv_X {R : Type u} {σ : Type v} [CommSemiring R] [DecidableEq σ] (i j : σ) :
    (pderiv i) (X j) = Pi.single i 1 j
    @[simp]
    theorem MvPolynomial.pderiv_X_self {R : Type u} {σ : Type v} [CommSemiring R] (i : σ) :
    (pderiv i) (X i) = 1
    @[simp]
    theorem MvPolynomial.pderiv_X_of_ne {R : Type u} {σ : Type v} [CommSemiring R] {i j : σ} (h : j ≠ i) :
    (pderiv i) (X j) = 0
    theorem MvPolynomial.pderiv_eq_zero_of_notMem_vars {R : Type u} {σ : Type v} [CommSemiring R] {i : σ} {f : MvPolynomial σ R} (h : i ∉ f.vars) :
    (pderiv i) f = 0
    theorem MvPolynomial.pderiv_monomial_single {R : Type u} {σ : Type v} {a : R} [CommSemiring R] {i : σ} {n : ℕ} :
    (pderiv i) ((monomial (Finsupp.single i n)) a) = (monomial (Finsupp.single i (n - 1))) (a * ↑n)
    theorem MvPolynomial.pderiv_mul {R : Type u} {σ : Type v} [CommSemiring R] {i : σ} {f g : MvPolynomial σ R} :
    (pderiv i) (f * g) = (pderiv i) f * g + f * (pderiv i) g
    theorem MvPolynomial.pderiv_pow {R : Type u} {σ : Type v} [CommSemiring R] {i : σ} {f : MvPolynomial σ R} {n : ℕ} :
    (pderiv i) (f ^ n) = ↑n * f ^ (n - 1) * (pderiv i) f
    theorem MvPolynomial.pderiv_C_mul {R : Type u} {σ : Type v} {a : R} [CommSemiring R] {f : MvPolynomial σ R} {i : σ} :
    (pderiv i) (C a * f) = C a * (pderiv i) f
    theorem MvPolynomial.pderiv_map {R : Type u} {σ : Type v} [CommSemiring R] {S : Type u_1} [CommSemiring S] {φ : R →+* S} {f : MvPolynomial σ R} {i : σ} :
    (pderiv i) ((map φ) f) = (map φ) ((pderiv i) f)
    theorem MvPolynomial.pderiv_rename {R : Type u} {σ : Type v} [CommSemiring R] {τ : Type u_1} {f : σ → τ} (hf : Function.Injective f) (x : σ) (p : MvPolynomial σ R) :
    (pderiv (f x)) ((rename f) p) = (rename f) ((pderiv x) p)
    theorem MvPolynomial.aeval_sumElim_pderiv_inl {R : Type u} {σ : Type v} [CommSemiring R] {S : Type u_1} {τ : Type u_2} [CommRing S] [Algebra R S] (p : MvPolynomial (σ ⊕ τ) R) (f : τ → S) (j : σ) :
    (aeval (Sum.elim X (⇑C ∘ f))) ((pderiv (Sum.inl j)) p) = (pderiv j) ((aeval (Sum.elim X (⇑C ∘ f))) p)
    theorem MvPolynomial.pderiv_sumToIter {R : Type u} [CommSemiring R] {σ : Type u_1} {ι : Type u_2} (p : MvPolynomial (σ ⊕ ι) R) (i : σ) :
    (pderiv i) ((sumToIter R σ ι) p) = (sumToIter R σ ι) ((pderiv (Sum.inl i)) p)