hex

13.1. Introduction🔗

HexHensel does executable Hensel lifting. Hensel lifting turns a factorization known only modulo a prime p into a factorization modulo a prime power p^k: given f ≡ g · h (mod p) together with a Bezout certificate s · g + t · h ≡ 1 (mod p), it refines g and h step by step until they multiply to f modulo p^k. The precision k is chosen large enough (via a Mignotte bound) that the lifted factors coincide with the true integer factors. This connects the prime-field factorization in HexPolyFp to the integer factorization pipelines built on top of it.

The library connects integer polynomials (HexPolyZ, Hex.ZPoly) with prime-field polynomials (HexPolyFp, Hex.FpPoly p). It provides coefficientwise reduction modulo powers of p, the linear and quadratic single-step corrections, the iterative Hex.ZPoly.henselLift wrapper, and the ordered multifactor lift API the factorization pipeline consumes. It is Mathlib-free and depends only on HexPolyFp and HexPolyZ. See Cross-references.