hex

20.6. Regenerating the table🔗

The committed table is ordinary Lean code that the kernel checks like any other definition, and it is long: coefficient literals, monicity and degree lemmas, a Rabin certificate, and an irreducibility proof for every entry. Changing which slice of Lübeck's data is committed is therefore not a hand edit. The offline generator scripts/conway/generate.py reads the exact pair list in scripts/conway/scope.json and the pinned source rows in scripts/conway/candidates.json. With the pinned SymPy version installed, run it to regenerate coefficients, Rabin certificates, factorizations, primality certificates, primitivity and compatibility proofs, supported-entry witnesses, Mathlib generator-order and subfield-embedding specializations, and the runtime replay driver. Its --check mode verifies that committed outputs match the inputs.

Only scripts/conway/import_source.py fetches Lübeck's source. The source URL, digest, coefficient convention, and unavailable requested pairs are recorded alongside the imported rows. The separate shared Lübeck cache used by the factorization benchmark corpus is unchanged by this pipeline. The Lean commands rebuild_luebeckConwayPolynomial? and #conway_entry_source remain available for inspecting individual entries. Ordinary builds perform no network requests or certificate searches.

The scope must preserve existing support and contain every positive divisor of each supported degree. Selection is measured against a 300-second clean rebuild ceiling for all Conway code and proofs with dependencies already built. The selected scope must pass three controlled runs. Additional Mathlib bridge compilation is measured separately. See reports/hex-conway-performance.md for the machine, exact scopes, costs, and unavailable or expensive candidates.