Subresultant polynomials #
This file defines the fixed-bound subresultant polynomial of two polynomials. At a strict index
j < min m n, its coefficient of degree k ≤ j is the Sylvester minor obtained by replacing the
first row of the principal subresultant matrix at index j by the row of coefficients of degree
k; in particular, its coefficient of degree j is the principal subresultant coefficient.
Outside the strict range the minors remain scalar data (for instance the terminal empty
determinant recorded by psc), and the subresultant polynomial is zero.
The construction retains explicit degree bounds, so it commutes with coefficient maps even when specialization lowers the degrees. Its degree bound and top coefficient identify the scalar minor that controls the subresultant gcd criterion.
Main results #
Polynomial.subresultantCoeffMatrix_eq_updateRow: the coefficient matrix replaces the first row of the principal matrix.Polynomial.subresultantCoeffMatrix_mulVec: the coefficient matrix reads the coefficients ofA * q + B * p, with degreekin the first row.Polynomial.coeff_subresultant: at a strict indexj < min m n, the coefficients are the prescribed minors through degreej, and vanish abovej; outside that range they all vanish.Polynomial.degree_subresultant_le: the subresultant polynomial has degree at mostj.Polynomial.subresultant_map_map: fixed-bound subresultant polynomials commute with coefficient maps.Polynomial.subresultant_comm: swapping the inputs gives the Sylvester block-swap sign.
References #
- S. Basu, R. Pollack, M.-F. Roy, Algorithms in Real Algebraic Geometry, second edition, Chapter 4.
- Q. Vermande, Cylindrical Algebraic Decomposition in Coq/Rocq, §3.
The coefficient matrix whose determinant is the coefficient of degree k in the subresultant
polynomial at a strict index j < min m n and formal degree bounds m and n. The matrix is
defined for all indices; outside the strict range its determinant is only scalar data.
The first row of subresultantMatrix p q m n j, which reads coefficients of degree j, is
replaced by the row reading coefficients of degree k. Applications use k ≤ j.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When the formal bounds dominate the input degrees, coefficient-matrix entries are coefficients of shifted input polynomials, including the replaced first row.
A subresultant coefficient matrix replaces the row of degree j of the principal
matrix by the row of degree k.
A subresultant coefficient matrix reads coefficients of A * q + B * p from the
coefficient vector of (A, B). Its first row reads degree k; the other rows read degrees
i.val + j. The formal bounds dominate the actual input degrees.
At k = j, the coefficient matrix is the principal subresultant matrix.
Mapping coefficients maps every entry of a fixed-bound subresultant coefficient matrix.
Swapping the polynomials and bounds swaps the column blocks of every subresultant coefficient matrix.
The scalar minor used as the coefficient of degree k ≤ j in the subresultant polynomial at
a strict index j < min m n. It is defined for all indices; outside the strict range it is
scalar data only (the subresultant polynomial is then zero), e.g. the empty determinant 1 at
m = n = j = 0.
Equations
- p.subresultantCoeff q m n j k = (p.subresultantCoeffMatrix q m n j k).det
Instances For
A subresultant coefficient is the determinant of its coefficient matrix.
At the smaller right terminal index, a coefficient minor reads a coefficient of the right input times a power of its coefficient at the bound. The empty determinant is excluded.
The coefficient minor at k = j is the principal subresultant coefficient.
Subresultant coefficient minors commute with coefficient maps at fixed bounds.
Swapping the inputs changes every coefficient minor by the Sylvester block-swap sign.
At the smaller left terminal index, a coefficient minor reads a coefficient of the left input times a power of its coefficient at the bound. The empty determinant is excluded.
Scaling the left polynomial by r scales every coefficient minor by r ^ (n - j).
Scaling the right polynomial by r scales every coefficient minor by r ^ (m - j).
The fixed-bound subresultant polynomial at index j.
Its coefficient of degree k ≤ j is subresultantCoeff p q m n j k; all coefficients above
j vanish. This definition is the subresultant polynomial only at strict indices
j < min m n and returns zero outside that range; terminal data, including the empty
determinant, is represented by psc instead.
Equations
- p.subresultant q m n j = if j < min m n then (Polynomial.ofFn (j + 1)) fun (k : Fin (j + 1)) => p.subresultantCoeff q m n j ↑k else 0
Instances For
The coefficient formula for a fixed-bound subresultant polynomial.
subresultant returns zero at and beyond the terminal index min m n.
When both formal bounds are positive, the subresultant polynomial at index zero is the constant resultant.
The subresultant polynomial at index j has degree at most j.
At a strict index j < min m n, the subresultant polynomial has degree exactly j
precisely when its principal coefficient does not vanish.
Fixed-bound subresultant polynomials commute with coefficient maps. No degree-preservation hypothesis is required.
Scaling the left input by r scales its subresultant polynomial at index j by
r ^ (n - j).
Scaling the right input by r scales its subresultant polynomial at index j by
r ^ (m - j).
Swapping the inputs and their bounds changes the subresultant polynomial by the Sylvester block-swap sign.