Partial Derivatives and Multiplicity of Computable Bivariate Polynomials #
This file defines partial derivatives (partialDerivX, partialDerivY, iterated
and mixed partials) and the multiplicity condition hasMultiplicity used in the
Guruswami–Sudan interpolation step.
Multiplicity of a root at (a, b) is defined through the Taylor shift
shiftC a b Q = Q(X + a, Y + b). Q has multiplicity at least r at (a, b)
when every coefficient of the shifted polynomial of total degree less than r
is zero. This is the Hasse-derivative criterion for root multiplicity over a field
of any characteristic: the coefficient of Xⁱ Yʲ in shiftC a b Q is the
order-(i, j) Hasse derivative of Q evaluated at (a, b). The zero polynomial
has infinite multiplicity. As an aside, ordinary partial derivatives fail to capture
this in positive characteristic. The integer factor introduced by differentiation can
vanish, so its product with a nonzero coefficient may become zero.
shiftC_toPoly identifies the computable shift with Mathlib's
Polynomial.Bivariate.shift, and hasMultiplicity_iff_rootMultiplicity proves
that hasMultiplicity agrees with the reference Polynomial.Bivariate.rootMultiplicity.
Partial derivative with respect to X: differentiate each Y-coefficient in X.
Instances For
Partial derivative with respect to Y: differentiate in the outer variable.
Instances For
Outer coefficient of a support-sum of monomials whose Y-coefficients are mapped by a
zero-preserving g: the j-th coefficient is g applied to the j-th Y-coefficient.
Outer coefficient of the X-partial derivative: differentiate the j-th Y-coefficient.
Coefficient formula for the X-partial derivative.
Coefficient formula for the Y-partial derivative.
The X-partial derivative of zero is zero.
The Y-partial derivative of zero is zero.
The X-partial derivative distributes over addition.
The Y-partial derivative distributes over addition.
The X-partial derivative differentiates each Y-coefficient under toPoly.
The Y-partial derivative corresponds to Polynomial.derivative under toPoly.
The Y-partial derivative satisfies the Leibniz product rule.
The X-partial derivative satisfies the Leibniz product rule.
Iterated partial derivative with respect to X.
Instances For
Iterated partial derivative with respect to Y.
Instances For
Iterated X-partial derivative differentiates each Y-coefficient under toPoly.
Iterated Y-partial derivative corresponds to Polynomial.derivative^[n] under toPoly.
Mixed partial derivative: i-fold in X, then j-fold in Y.
Instances For
X and Y partial derivatives commute.
Mixed partial derivatives commute.
Shift the outer Y variable: Q(X, Y + b).
Instances For
Shift the inner X variable: Q(X + a, Y), Taylor-shifting each Y-coefficient.
Instances For
The full shift Q(X + a, Y + b).
Instances For
Q has multiplicity at least r at (a, b): every coefficient of the shifted
polynomial Q(X + a, Y + b) of total degree < r vanishes.
Instances For
Decidable check for multiplicity.
Instances For
The outer (Y) shift corresponds to Y ↦ Y + b under toPoly.
Outer coefficient of the X-shift: Taylor-shift the j-th Y-coefficient.
The inner (X) shift corresponds to X ↦ X + a under toPoly.
The computable shift agrees with Polynomial.Bivariate.shift under toPoly.
Evaluating the outer variable at the constant C b agrees with the Horner evaluator evalY.
The (0,0) coefficient of the shift is evaluation at the point.
Multiplicity at least 1 is equivalent to vanishing at the point.
hasMultiplicity agrees with the reference Polynomial.Bivariate.rootMultiplicity,
where none denotes infinite multiplicity (the zero polynomial).
Every polynomial has multiplicity at least 0 at any point.
Multiplicity is monotone: higher multiplicity implies lower.
toPoly is injective on canonical bivariate polynomials.
The generic Taylor shift is additive.
The generic Taylor shift is multiplicative.
The decidable check agrees with the propositional multiplicity.