Multiplication by a unit-coefficient monomial shifts coefficients upward.
Negation passes through the left multiplicand: (0 - p) * q = 0 - p * q.
A grind normalization lemma that lets sign manipulations in the extended-gcd
recursion move the negation out to the product.
Telescoping identity for an extended-Euclid update step:
(p + t) * q + (r - t * q) = p * q + r.
One long-division reconstruction step preserves the accumulated identity
quot * q + rem.
Left absorption for polynomial multiplication: 0 * p = 0. A grind
normalization lemma so that products with a vanished factor collapse during
the division and gcd proofs.
Left identity for polynomial addition over a commutative ring: 0 + p = p.
A grind normalization lemma so downstream proofs cancel leading zero summands.
Reflexivity of DensePoly divisibility (the Mathlib-free dvd_refl).
Every DensePoly divides 0 (the Mathlib-free dvd_zero).
Divisibility is preserved by multiplication on the left: d ∣ p → d ∣ q * p.
A common divisor of two DensePolys divides their sum.
A common divisor of two DensePolys divides their (zero-based) difference.
Bezout identity for xgcd, proved from DivModLaws for use when building
the corresponding GcdLaws instance.
The gcd returned by xgcd divides the left input, assuming DivModLaws
and the one-off hsmall fact for nonzero divisors of degree zero. This is
intended for GcdLaws instance construction.
The gcd returned by xgcd divides the right input, assuming DivModLaws
and the one-off hsmall fact for nonzero divisors of degree zero. This is
intended for GcdLaws instance construction.
Any common divisor divides the gcd returned by xgcd; this packages the
DivModLaws proof needed by GcdLaws instance construction.
Reconstruction identity for array-backed long division: under the cancellation
hypothesis for scaleLead against the divisor's leading coefficient, the
quotient/remainder pair returned by divModArray p q scaleLead satisfies
q' * q + r' = p.
Reconstruction identity for the executable long division wrapper.
Leading coefficient of a product, in the cancellation-free form needed over commutative rings. The explicit nonzero top-coefficient product hypothesis is the no-cancellation fact that callers over domains can derive from nonzero factors.
Public divMod identity for nonzero, non-monic exact-multiple inputs: if qq * q = p,
the scaling function (· / q.leadingCoeff) exactly recovers any a from
a * q.leadingCoeff, and the leading-coefficient product never cancels, then
divMod p q = (qq, 0). The exactness and no-zero-divisor hypotheses replace the
global cancellation invariant ∀ a, a - (a / q.leadingCoeff) * q.leadingCoeff = 0
required by divMod_reconstruction (which only holds in the monic case over
Int).