Class field theory roadmap: class formations, Tate–Nakayama, and Artin reciprocity (revision of #250) - #261
Closed
CBirkbeck wants to merge 4 commits into
Closed
Conversation
…keeping the downstream theory Rewrite the class field theory roadmap so that its spine is Artin–Tate's abstract class formation: formation → class-formation axioms → fundamental classes → Tate–Nakayama → finite-level Artin maps → local and global reciprocity → existence, with the material of the previous version (local Brauer group and Hilbert symbol, local Tate duality and Euler characteristics, conductors, the cyclic Hasse norm theorem, Hilbert/narrow/ray/ring class fields, Kronecker–Weber, Hilbert reciprocity) retained as Layers 8–10 on top of that spine, plus the local Weil group and quadratic reciprocity as the explicit reciprocity law. README: - finite-group Tate cohomology and continuous cohomology are consumed from Mathlib, kbuzzard/ClassFieldTheory and ProfiniteCohomology, never redefined; - ClassFormation stores invariant maps; the fundamental class is derived as the unique class of invariant 1/[U:V]; tateNakayamaIso is required to be cup product with it in every degree; - the Artin map is definitionally the inverse of the degree −2 → 0 Nakayama map; a character formula fixes the sign independently; arithmetic Frobenius throughout, with the uniformizer, cyclotomic-character and ℚ(ζ_m) tests mandatory; - local and global maps are transports of the abstract map; the frozen names consumed by LocalGaloisGroups, GlobalQuadraticForms and QuadraticFormInvariants (normResidue, artinMap, unramifiedCoordinate, cyclotomicCharacter_artinMap, tateDualityPairing_perfect_mixed, eulerCharacteristic_finrank_fp, localSymbol, cyclicHasseNorm, hilbertProductFormula, ringClassField, …) are kept; - acceptance tests (trivial layer, unramified, quadratic, ℚ(i), ℚ(√5), cyclotomic, ℚ₂(ζ₅), tower/transfer) are part of the specification. Suggested.lean (builds against the supplier Suggested.lean files of TauCetiProject#188, TauCetiProject#189, TauCetiProject#191, TauCetiProject#245 at their current heads; 147 sorry targets, no other warnings): - Formation, NormalLayer (finiteness of U/V proved from openness), layer changes, ClassFormation, fundamentalClass, cupFundamentalClass, tateNakayamaIso; nakayamaNegTwo/artinEquiv/artinMap as ordinary definitions with bodies so artinMap_apply and artinEquiv_eq_tateNakayama are rfl; the four Artin–Tate functoriality diagrams and character formula; - local class formation, localArtinEquiv/localArtinMap, normResidue as its multiplicative form via IsSepClosed.lift, absolute artinMap, geometricArtinMap, unramifiedCoordinate, cyclotomic normalization, conductors, localWeilGroup, localExistence; - global class formation, globalArtinEquiv/globalArtinMap, principal-idele triviality, comparison with NumberFieldArithmetic.artinHomAway, local factors, globalExistence, norm index, cyclicHasseNorm, class fields, Hilbert reciprocity; - all regression tests as named theorem statements. Everything is stated in universe 0 because Mathlib's tateCohomology keeps the group and the coefficient ring in one universe. Also register ClassFieldTheory in the issue-template area dropdowns, as .github/scripts/check_roadmap_areas.py requires. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…er Tate, not Tate–Nakayama
Artin–Tate call the class-formation statement the Main Theorem (XIV §4) and
prove it from Tate's cup-product criterion (Preliminaries §2, Theorem A;
Tate, Ann. of Math. 56, 1952). The name Tate–Nakayama belongs to Nakayama's
1957 tensor-product generalization Ĥ^r(Γ,M) ≃ Ĥ^{r+2}(Γ,M⊗C), which the
generic supplier proves; the roadmap only uses M = ℤ. Rename tateNakayamaIso
→ tateIso (with tateIso_res, artinEquiv_eq_tateIso), keep nakayamaNegTwo for
Artin–Tate's Nakayama map, and record the attributions in README §2.4.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This replaces the class-field-theory roadmap by one centred on abstract class formations in the sense of Artin–Tate. The spine is
and the material of #250 that does not construct the Artin map — the local Brauer group and cohomological Hilbert symbol, local Tate duality and Euler characteristics, local conductors, the cyclic Hasse norm theorem, Hilbert/narrow/ray/ring class fields, Kronecker–Weber, and Hilbert reciprocity — is kept as Layers 8–10 on top of that spine, together with the local Weil group and quadratic reciprocity as the explicit reciprocity law. The frozen names consumed by
LocalGaloisGroups,GlobalQuadraticFormsandQuadraticFormInvariantsare unchanged.Finite-group Tate cohomology and continuous profinite cohomology are consumed from Mathlib, the
kbuzzard/ClassFieldTheorydevelopment, andProfiniteCohomology. They are not redefined here.Main design decisions
ClassFormationcontains the invariant maps and their compatibility, but no chosen fundamental class. The fundamental class is the unique class of invariant1/[U:V].tateIso— Tate's theorem for the class formation (Artin–Tate's Main Theorem; theM = ℤcase, not the Tate–Nakayama tensor-product generalization) — is required to have cup product with the fundamental class as its underlying homomorphism in every integer degree.-2 → 0cup-product direction isnakayamaNegTwo : (U/V)^ab ≃ A^U/N(A^V); the Artin reciprocity direction is its inverseartinEquiv, andartinMapis the composite with the quotient map. InSuggested.leanthese are ordinary definitions with bodies, soartinMap_applyandartinEquiv_eq_tateIsoarerfl; only the leaves carrysorry. The character formulaχ(artinMap a) = inv(a₀ ∪ δχ)is also required and fixes the sign independently.normResidueis the multiplicative form oflocalArtinEquiv, not a second construction. The absolute localartinMap,unramifiedCoordinateandcyclotomicCharacter_artinMap(with the field norm) are kept as in Add roadmap: Class field theory #250.Art((ℓ))(ζ_m) = ζ_m^ℓ.Regression tests
The roadmap requires explicit tests, stated in
Suggested.lean: the trivial layer; kernel/quotient and cyclic-layer formulae; an unramified local extension; a quadratic extension and its norm subgroup;ℚ(i)/ℚ(primes1 mod 4trivial,3 mod 4complex conjugation);ℚ(√5)/ℚ;ℚ(ζ_m)/ℚwithArt((ℓ))(ζ_m) = ζ_m^ℓ; the local exampleℚ₂(ζ₅)/ℚ₂where2maps toζ₅ ↦ ζ₅²; and compatibility betweenℚ(ζ₅)andℚ(√5). The cyclotomic test is essential because a quadratic example cannot distinguish Frobenius from its inverse.Lean status
Suggested.lean(1500 lines, 199 declarations, 147sorrytargets, no other warnings) imports the four supplierSuggested.leanfiles, like #250. It type-checks against those files at their current heads (#18860fe818, #1898ffd411, #191041929b, #245351636e) on this repository's Mathlib pin05ae0103; CI will stay red until the suppliers merge, exactly as for #250. Everything is stated in universe0, because Mathlib'stateCohomologykeeps the finite group and the coefficient ring in one universe.The
def_wanted/theorem_wantedidiom of an earlier draft does not exist in Lean/Batteries (onlyproof_wanteddoes, and it discards the declaration); the file uses ordinary definitions with bodies for the derived Artin maps instead, which is what makes the chain definitional.Also registers
ClassFieldTheoryin the issue-template area dropdowns, as.github/scripts/check_roadmap_areas.pyrequires.Files
TauCetiRoadmap/ClassFieldTheory/README.md: normative roadmapTauCetiRoadmap/ClassFieldTheory/Suggested.lean: representative public contracts and acceptance tests.github/ISSUE_TEMPLATE/*.yml: area dropdown entries🤖 Generated with Claude Code