Basic properties of derivations #
A derivation vanishes on the image (n : A) of a natural number (Derivation.map_natCast). A
numeric literal (OfNat.ofNat n : A) with 2 ≤ n is not syntactically such a cast, so simp
does not apply that lemma to it. This file adds the literal form Derivation.map_ofNat, so that
simp differentiates polynomial expressions with numeric coefficients, for instance partial
derivatives MvPolynomial.pderiv i (3 * X 0 ^ 2).
A derivation differentiates a finite product termwise: D (∏ i ∈ s, f i) is the sum over
j ∈ s of D (f j) times the product of the other factors. In particular, a derivation δ
with δ tⱼ = δᵢⱼ sends a monomial ∏ⱼ tⱼ ^ βⱼ to βᵢ ∏ⱼ tⱼ ^ (β - eᵢ)ⱼ.
Iterates of a derivation remain linear over the scalars, so they commute with finite scalar
linear combinations. On products they satisfy the general Leibniz rule
Dⁿ (a * b) = ∑ (n choose i) Dⁱ a Dⁿ⁻ⁱ b.
An element whose derivative is a unit is squarefree, since a square factor x * x of a makes
x divide D a. This detects squarefreeness of a polynomial from a partial derivative that is a
unit, without factoring it.
Main results #
Derivation.map_ofNat: a derivation vanishes on numeric literals.Derivation.leibniz_prod: the Leibniz rule for finite products.Derivation.apply_prod_pow_of_apply_eq: a derivation dual to thei-th coordinate differentiates a monomial in the coordinates by lowering itsi-th exponent.Derivation.iterate_sum_smul: iterated differentiation commutes with scalar linear combinations.Derivation.iterate_apply_mul: the general Leibniz rule for iterates of a derivation.Derivation.iterate_smul_apply: iterates of scalar multiples of a derivation.Derivation.exists_iterate_smul_eq_zero: scalar multiples preserve local nilpotence.Derivation.squarefree_of_isUnit: an element whose derivative is a unit is squarefree.
A derivation vanishes on numeric literals.
Leibniz rule for finite products: D (∏ i ∈ s, f i) is the sum over j ∈ s of
D (f j) times the product of the other factors.
A derivation dual to the i-th coordinate differentiates a monomial ∏ⱼ tⱼ ^ βⱼ in the
coordinates to βᵢ ∏ⱼ tⱼ ^ (β - eᵢ)ⱼ.
Iterated differentiation commutes with finite scalar linear combinations.
General Leibniz rule for iterates of a derivation of a commutative algebra.
The statement and proof are adapted from Mathlib's LieDerivation.iterate_apply_lie
(Mathlib/Algebra/Lie/Derivation/Basic.lean).
Iterating a scalar multiple of a derivation scales its iterates by the corresponding power.
Scalar multiples of a locally nilpotent derivation are locally nilpotent.
An element whose derivative is a unit is squarefree: if a = x * x * y, then x divides
D a = x * D (x * y) + x * y * D x.