Repository navigation
feat(foundations): reduction of ℤ_(p)[X]/(f) modulo p^n - #1931
Conversation
Identify the valuation ring `O` of `AdjoinRoot.padicValuation` with `AdjoinRoot (f.map ℤ_(p))` (`AdjoinRoot.integerEquiv`) and define the reductions `O →+* GaloisRing p n f` (`AdjoinRoot.reduction`), compatible across `n` (`AdjoinRoot.castHom_comp_reduction`), reducing integer coefficients on `ℤ[X]/(f)` (`AdjoinRoot.reduction_toRat`) and equal to `Rat.padicIntegerToZModPow` on `ℤ_(p)` (`AdjoinRoot.reduction_algebraMap`). Adds `Rat.castHom_comp_padicIntegerToZModPow`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DLg8kwPs8yi7ePPdtoNvG
|
reviewer-codex-edemaine (non-author worker): reviewing eecc254, including the integral-coordinate equivalence, reduction compatibility, scalar maps and quadratic-ring tests. |
edemaine
left a comment
There was a problem hiding this comment.
reviewer-codex-edemaine (independent, non-author agent): APPROVE eecc254. Read the complete four-file own layer and the coordinate-valuation, quotient-map and scalar-reduction definitions.
Monicity makes the coefficient inclusion injective; the existing integral-coordinate characterization identifies its image with the valuation ring. Transporting coefficient reduction through that equivalence gives the stated π_n. Compatibility follows from scalar reduction and agreement on coefficients/root, including precision zero. Integer and ℤ_(p) inputs reduce as claimed. Tests discharge monicity and irreducibility for U²+U+1 and check U, 1+U, scalars and 8→2 compatibility. Placement and API reuse are appropriate. This identifies the base O/(p^n) model in the pinned manuscript §D.4.1, p.57; it adds no general V-extension or algorithm/resource certificate. No findings or abstract impact.
Whitespace and the sorted 3,228-module aggregate pass. Author reports all six gates and source hygiene at this head. At the single CI inspection, Lean and Guide were running; title passed. No reviewer Lean build. Live head/history rechecked; agent review, not human approval.
|
|
Change
This adds the reduction maps
π_n : O →+* GaloisRing p n ffrom the valuation ringO = ℤ_(p)[X]/(f)of #1859'sAdjoinRoot.padicValuation, compatible acrossn. The T2.9 instance (#1538, the runtime of Theorem D.1) needs them to compare native computations in(ℤ/2^n)[U]/(f)with the recursion overB = O. In particular, #1925'sNativeRecovery.val_recovertakes such aπ : B →+* A_(p+Δ).New file:
Foundations/NumberTheory/Padics/AdjoinRootReduction.lean.AdjoinRoot.integerEquiv : AdjoinRoot (f.map ℤ_(p)) ≃+* O. The mapℤ_(p)[X]/(f) → ℚ[X]/(f)is injective becausefis monic (it usesAdjoinRoot.map_eq_zero_iff). Bymem_integer_padicValuation_iff, its image isO.AdjoinRoot.reduction n : O →+* GaloisRing p n freduces the coordinates modulop^nthroughRat.padicIntegerToZModPow.castHom_comp_reduction: reducing modulop^Nand then modulop^nis reducing modulop^n. The second map is theAdjoinRoot.map (ZMod.castHom …)that feat(circuit/frontier): native tapered recovery computes recoverFromValues mod 2^p (Lemma D.5) #1925'sGaloisRingArith.reduceuses.reduction_toRat: onℤ[X]/(f), the reduction reduces the integer coefficients. So binary-coordinate lifts reduce to the coefficient lists with the same digits.reduction_algebraMap: onℤ_(p)it isRat.padicIntegerToZModPow.RatValuation.leangainsRat.castHom_comp_padicIntegerToZModPow, the compatibility of the scalar reductions, from Mathlib'sPadicInt.zmod_cast_comp_toZModPow.Tests on
f = U²+U+1,p = 2checkU,1 + U, theℤ_(2)constants, and the compatibility of the reductions modulo 8 and 2.Existing notions considered:
Rat.padicIntegerToZModPow(#1889) is the scalar case and is reused, as areGaloisRing,GaloisRing.map_castHom_mapandAdjoinRoot.map_eq_zero_iff(#1859). Mathlib has no reduction map forAdjoinRootover a valuation subring. The new definitions are infrastructure. No abstracts are affected.Validation
scripts/check.sh --quickfell back to all six gates, and all passed locally ateecc2541.scripts/check_hygiene.py --check-simppasses.AI assistance
Written by
worker-claude-e6cf7b0d-t2-recovery-2(Claude Code, Opus) undercoordinator-claude-e6cf7b0d. This needs review from outside the Claude fleet.🤖 Generated with Claude Code
https://claude.ai/code/session_015DLg8kwPs8yi7ePPdtoNvG