Semantic validity of data as a mod-p factorization package for the
monic lift target f: everything the certification cone consumes about a
PrimeChoiceData, with no reference to how it was produced.
- prime : Hex.Nat.Prime data.p
The selected modulus is prime.
The prime satisfies the executable admissibility test for
f.The cached modular polynomial is the reduction of
f.- monic (g : Hex.FpPoly data.p) : g ∈ data.factorsModP → Hex.DensePoly.Monic g
Every modular factor is monic.
The modular factor list is nonempty.
- nodup : data.factorsModP.toList.Nodup
No modular factor occurs twice.
- coprime : Hex.ZPoly.QuadraticMultifactorCoprimeSplits data.p data.factorsModP.toList
The splits used for the multifactor lift are pairwise coprime.
- irreducible (i : ModPFactorIndex data) : Irreducible (HexPolyFpMathlib.toMathlibPolynomial (modPFactor data i))
Every indexed modular factor is irreducible.
- product : (Array.map Hex.FpPoly.liftToZ data.factorsModP).polyProduct.congr (Hex.monicModularImage (Hex.ZPoly.modP data.p f)).liftToZ data.p
The product of the lifted factors agrees with the monic modular image.
- natDegree_pos (g : Hex.FpPoly data.p) : g ∈ data.factorsModP → 0 < (HexPolyZMathlib.toPolynomial g.liftToZ).natDegree
Every modular factor has positive degree.
Instances For
The modP/liftToZ roundtrip on an FpPoly product: reducing the
integer product of the lifts recovers the FpPoly fold product.
Assemble the semantic bundle from a proved Berlekamp-form factorization. The lift target must be primitive with positive leading coefficient and positive degree.
The selection witness yields the semantic bundle through the
choosePrimeData? extraction lemmas.
An explicit cached prime trial yields the semantic modular factorization bundle consumed by direct lifting.
A modular factor array of positive-degree monic factors has no more entries than the degree of any monic integer target to which its product is congruent.