Polynomial reducta #
The reductum p.reductum k retains exactly the terms of p of degree strictly below k.
The finite set p.reducta contains the reducta at every cutoff through p.natDegree + 1, so it
includes both zero and p itself. After any coefficient specialization, one member of this set
maps to the specialized polynomial: take the cutoff immediately above its new degree. This is
the finite degree-case decomposition needed when polynomial degrees can drop under specialization.
The reductum is PowerSeries.trunc applied to p viewed as a power series. Reducta also agree
with repeatedly deleting leading terms, connecting the fixed cutoffs used for specialization to
Mathlib's eraseLead API.
Main results #
Polynomial.coeff_reductum: a reductum keeps precisely the coefficients below its cutoff.Polynomial.reductum_reductum: nested reducta reduce to the smaller cutoff.Polynomial.derivative_reductum: differentiation lowers the cutoff by one.Polynomial.reductum_natDegree: the cutoff at the degree deletes the leading term.Polynomial.reducta_map: coefficient maps carry the reducta onto the reducta of the mapped polynomial, with no injectivity or degree-preservation hypothesis.Polynomial.exists_mem_reducta_map_eq: every coefficient specialization is the image of a reductum of the original polynomial.Polynomial.reducta_eq_eraseLeadOrbit: the bounded cutoffs give exactly the finite orbit under repeated deletion of leading terms.
References #
- S. Basu, R. Pollack, M.-F. Roy, Algorithms in Real Algebraic Geometry, second edition, Chapters 4 and 11.
The part of p of degree strictly below k.
Instances For
A reductum is the truncation of p, viewed as a power series, at the same cutoff.
A reductum is the sum of the monomials of p below its cutoff.
The reductum at cutoff zero is zero.
The degree of a reductum is strictly below its cutoff.
A cutoff strictly above the degree does not change a polynomial.
Cutting off immediately above the degree returns the original polynomial, including for zero.
Differentiating a reductum lowers its cutoff by one.
The reductum at the degree is Mathlib's operation deleting the leading term.
A cutoff above the degree of p.eraseLead but not above the degree of p deletes exactly
the leading term.
The finite set of all reducta at cutoffs from zero through one above the degree.
Instances For
The reductum at every cutoff belongs to the reducta, including cutoffs past the degree.
Zero belongs to the reducta of every polynomial.
Every polynomial belongs to its own reducta.
Deleting the leading term produces a member of the reducta.
The reducta consist of p together with the reducta after deleting its leading term.
The finite orbit obtained by repeatedly deleting leading terms, including the zero polynomial at the end.
Instances For
Membership in the eraseLead orbit is being one of the first p.support.card + 1 iterates
of eraseLead on p.
The orbit of zero under eraseLead is the singleton containing zero.
The eraseLead orbit of a polynomial is the polynomial together with the orbit of the
polynomial with its leading term deleted.
The finite set of reducta at bounded cutoffs is exactly the finite orbit under deletion of leading terms.
Every iterate of eraseLead on p lies in its eraseLead orbit, including the iterates past
the point where the orbit reaches zero.
Coefficient maps carry all reducta exactly to the reducta of the mapped polynomial, with no injectivity or degree-preservation hypothesis.
Cutting off immediately above the degree after specialization maps back to the specialized
polynomial. This gives an explicit member of p.reducta witnessing
exists_mem_reducta_map_eq.
Cutting off immediately above the degree after specialization gives a reductum whose own degree is the specialized degree, so formal degree bounds taken at this reductum are the actual degrees after specialization.