Construct a polynomial with prescribed residues modulo coprime factors.
If s * a + t * b = 1, then polyCRT a b u v s t is congruent to u
modulo a and to v modulo b; see polyCRT_congr_fst,
polyCRT_congr_snd, polyCRT_mod_fst, and polyCRT_mod_snd.
Instances For
Reduction modulo the modulus is congruent to the original polynomial over a lawful coefficient ring.
Congruent polynomials have the same canonical remainder once the divisor law package
supplies the executable % invariants.
Reverse direction of mod_eq_mod_of_congr: equal canonical remainders force the
operands to be congruent modulo the divisor.
Equal canonical remainders produce polynomial congruence modulo the divisor.
Polynomial congruence modulo m is equivalent to equality of canonical remainders.
Reducing both summands before addition preserves the canonical remainder.
Reducing both factors before multiplication preserves the canonical remainder.
The CRT witness is congruent to the prescribed first residue modulo a.
The CRT witness is congruent to the prescribed second residue modulo b.
The CRT witness reduces to the prescribed first residue modulo a via monic reduction.
The CRT witness reduces to the prescribed first residue modulo a.
The CRT witness reduces to the prescribed second residue modulo b via monic reduction.
The CRT witness reduces to the prescribed second residue modulo b.
Gauss's lemma on content (multiplicative form): the content of a product
of integer polynomials is the product of their contents. Strengthens
content_mul_of_primitive to non-primitive inputs by decomposing each
factor into its content and primitive part.
Gauss's lemma in primitive-part form: the primitive part of a product is the
product of the primitive parts. The content scalars factor out via content_mul
and content_mul_of_primitive, and the positive product scalar is absorbed by
primitivePart_scale_of_primitive.
Gauss's lemma on content (divisibility form): if a natural number d
divides every coefficient of p * q, then it divides contentNat p * contentNat q. This is the divisibility witness needed by the McCoy row
construction used to obtain scalar annihilators.
Public McCoy scalar-annihilator wrapper for integer dense polynomials.
If d divides every coefficient of p * q and some coefficient of q is not
divisible by d, then a non-d-divisible scalar annihilates all coefficients
of p modulo d.
Coefficient divisibility transfer for primitive products: if p is
primitive (content one) and a natural number d divides every coefficient of
p * q, then d divides every coefficient of q. Proved by contradiction
using the McCoy scalar annihilator
exists_scalar_annihilator_of_mul_coeff_dvd_of_exists_not_dvd_coeff and the
primitive scalar annihilator nat_dvd_of_scalar_mul_primitive_coeff_dvd.