Documentation

HexBerlekampZassenhausMathlib.ModularPolynomial

Executable FpPoly p multiplication transports to Mathlib multiplication through HexBerlekampMathlib.fpPolyEquiv.

The executable 1 : FpPoly p transports to Mathlib's 1.

The executable constant polynomial DensePoly.C c transports to Mathlib's Polynomial.C of the ZMod p cast of c.

Coefficientwise scaling on FpPoly p transports across HexBerlekampMathlib.toMathlibPolynomial to multiplication by the corresponding Polynomial.C of the ZMod p cast.

List foldl (· * ·) of executable FpPoly p factors transports across HexBerlekampMathlib.toMathlibPolynomial to the explicit Mathlib List.prod of the per-factor transports.

Coefficientwise reduction Hex.ZPoly.modP transports to Mathlib's coefficient map from ℤ[X] to (ZMod p)[X]. This keeps certificate soundness independent of the integer-reduction branch proofs.

A successful PrimeFactorData.checkForPolynomial block exposes the Mathlib factor-product / modular-image alignment: the Mathlib transport of the recorded factorProduct equals the Mathlib Polynomial.map (Int.castRingHom (ZMod p)) image of the underlying integer polynomial.

A successful PrimeFactorData.checkForPolynomial block exposes the Mathlib modular image of the underlying integer polynomial as the explicit product of recorded factor transports.

This is the shape used by the integer irreducibility certificate soundness composition: the Mathlib (toPolynomial f).map (Int.castRingHom (ZMod p)) factors through the explicit Mathlib List.prod of executable monic factor transports, enabling UFD-level identification of factor degrees against factorDegrees.