Documentation

GQ2.Reciprocity

B5: the local reciprocity bundle for ℚ₂ #

This file states the paper's local class field theory input (leaf B5) as a single bundled axiom: the existence of the arithmetic local reciprocity map rec and the unramified coordinate ν_ur, satisfying the norm-residue property together with the two normalizations that the paper fixes in Lemma 3.5 / equation (13).

Everything here is a statement (definitions + one axiom + stress tests); nothing about reciprocity is proved (that is local CFT, absent from Mathlib — see docs/mathlib-cft-survey.md, §B5). The axiom asserts that the reciprocity data exists; the stress tests below derive the paper's equation (13) from it, so a human reviewer can check the bundle reproduces the paper's orientation/valuation rows without trusting the proof of reciprocity itself.

The bundle (paper Lemma 3.5, eq. (13); Prop. 1.1) #

LocalReciprocity packages continuous homomorphisms

subject to the three clauses of the plan (docs/orchestration/formalization-plan.md, §B5):

Convention table (the #1 human-review target) #

Soundness note (a real trap, cf. the Nat.card bug). ν_ur must target a profinite group (ℤ₂), never : G^{ab} is compact, and a continuous hom from a compact group to discrete is forced trivial — so clause (b) with target would be inconsistent (the axiom would prove False). Targeting Multiplicative ℤ₂ (with −v₂ embedded via ℤ ↪ ℤ₂) is what makes the bundle consistent.

Deviations flagged for review.

References: [1] Neukirch–Schmidt–Wingberg, Cohomology of Number Fields, 2nd ed., (7.1.1)/(7.1.5) (class formation ⇒ local reciprocity); [7] Serre, Local Fields, Ch. XI–XIII. Paper: Turturean, Lemma 3.5, eq. (13); Prop. 1.1.

Note: the axiom GQ2.localReciprocity itself lives in GQ2/Foundations/Axioms.lean; this file holds the bundle definition and the axiom-free, bundle-parametrized stress tests.

The abelianized absolute Galois group and the maps out of it #

@[reducible, inline]
noncomputable abbrev GQ2.AbsGalQ2ab :

G_{ℚ₂}^{ab}, the topological abelianization of G_{ℚ₂}, i.e. Mathlib's Field.absoluteGaloisGroupAbelianization ℚ₂ = G_{ℚ₂} ⧸ closure⁅G_{ℚ₂}, G_{ℚ₂}⁆. This is the genuine Gal(ℚ₂^{ab}/ℚ₂); it is a topological (indeed profinite, though we do not need that) CommGroup.

Equations
Instances For
    @[reducible, inline]
    noncomputable abbrev GQ2.commClosure :
    Subgroup AbsGalQ2

    The closed commutator subgroup closure⁅G_{ℚ₂}, G_{ℚ₂}⁆; AbsGalQ2ab = AbsGalQ2 ⧸ commClosure.

    Equations
    Instances For
      noncomputable def GQ2.toAb :

      The abelianization projection G_{ℚ₂} ↠ G_{ℚ₂}^{ab}.

      Equations
      Instances For

        The 2-adic cyclotomic character on G_{ℚ₂} and its abelianization #

        noncomputable def GQ2.chiCyc :
        AbsGalQ2 →* ℤ_[2]ˣ

        The 2-adic cyclotomic character χ_cyc : G_{ℚ₂} →* ℤ₂ˣ, g ↦ (ζ ↦ ζ^{χ(g)}) on μ_{2^∞} ⊂ ℚ̄₂. This is Mathlib's cyclotomicCharacter, precomposed with the Galois action on ℚ̄₂; clause (c) checks rec against exactly this map.

        Equations
        • GQ2.chiCyc = (cyclotomicCharacter (AlgebraicClosure ℚ_[2]) 2).comp (MulSemiringAction.toRingAut Gal(AlgebraicClosure ℚ_[2]/ℚ_[2]) (AlgebraicClosure ℚ_[2]))
        Instances For
          theorem GQ2.continuous_chiCyc :
          Continuous chiCyc

          χ_cyc kills the closed commutator subgroup (its target ℤ₂ˣ is a Hausdorff abelian group), so it factors through G_{ℚ₂}^{ab}.

          noncomputable def GQ2.chiCycAb :
          AbsGalQ2ab →* ℤ_[2]ˣ

          The cyclotomic character as a map out of the abelianization, χ_cyc : G_{ℚ₂}^{ab} →* ℤ₂ˣ.

          Equations
          Instances For
            @[simp]

            Stress test (chiCycAb): chiCycAb factors chiCyc through the abelianization.

            The 2-adic valuation on ℚ₂ˣ #

            noncomputable def GQ2.v2 (x : ℚ_[2]ˣ) :

            The 2-adic valuation v₂ : ℚ₂ˣ → ℤ of a unit of ℚ₂ (Padic.valuation). v₂(2) = 1, v₂(u) = 0 for a ℤ₂-unit u.

            Equations
            Instances For

              Norm subgroups and the abelianized restriction to a finite layer #

              noncomputable def GQ2.normSubgroup (L : IntermediateField ℚ_[2] (AlgebraicClosure ℚ_[2])) [FiniteDimensional ℚ_[2] L] :
              Subgroup ℚ_[2]ˣ

              The norm subgroup N_{L/ℚ₂}(Lˣ) ≤ ℚ₂ˣ of a finite layer L/ℚ₂: the image of the field norm Algebra.norm ℚ₂ : L →* ℚ₂ on units.

              Equations
              Instances For
                noncomputable def GQ2.restrictHom (L : IntermediateField ℚ_[2] (AlgebraicClosure ℚ_[2])) [FiniteDimensional ℚ_[2] L] [IsGalois ℚ_[2] L] :
                AbsGalQ2 →* Gal(L/ℚ_[2])

                Mathlib's AlgEquiv.restrictNormalHom for the layer L/ℚ₂, but with its domain presented as AbsGalQ2 (= Field.absoluteGaloisGroup ℚ₂) rather than the raw AlgClosure ≃ₐ AlgClosure. These are definitionally the same group, but the two carry different registered Group instances (Field.instGroupAbsoluteGaloisGroup vs AlgEquiv.aut); pinning the domain to AbsGalQ2 keeps the commutator/abelianization machinery (which lives on AbsGalQ2) and Mathlib's restriction on the same instance path.

                Equations
                Instances For
                  theorem GQ2.commClosure_le_ker_restrictHom (L : IntermediateField ℚ_[2] (AlgebraicClosure ℚ_[2])) [FiniteDimensional ℚ_[2] L] [IsGalois ℚ_[2] L] (hab : ∀ (σ τ : Gal(L/ℚ_[2])), σ * τ = τ * σ) :

                  For a finite abelian Galois layer L/ℚ₂, the restriction G_{ℚ₂} → Gal(L/ℚ₂) kills the closed commutator subgroup, hence factors through G_{ℚ₂}^{ab}.

                  noncomputable def GQ2.restrictAb (L : IntermediateField ℚ_[2] (AlgebraicClosure ℚ_[2])) [FiniteDimensional ℚ_[2] L] [IsGalois ℚ_[2] L] (hab : ∀ (σ τ : Gal(L/ℚ_[2])), σ * τ = τ * σ) :
                  AbsGalQ2ab →* Gal(L/ℚ_[2])

                  The abelianized restriction G_{ℚ₂}^{ab} → Gal(L/ℚ₂) for a finite abelian Galois layer L/ℚ₂ (obtained by factoring Mathlib's restrictNormalHom through the abelianization).

                  Equations
                  Instances For
                    @[simp]
                    theorem GQ2.restrictAb_toAb (L : IntermediateField ℚ_[2] (AlgebraicClosure ℚ_[2])) [FiniteDimensional ℚ_[2] L] [IsGalois ℚ_[2] L] (hab : ∀ (σ τ : Gal(L/ℚ_[2])), σ * τ = τ * σ) (g : AbsGalQ2) :
                    (restrictAb L hab) (toAb g) = (restrictHom L) g

                    Stress test (restrictAb): restrictAb factors the restriction through the abelianization.

                    Embedding ℤ₂ˣ and the uniformizer into ℚ₂ˣ #

                    noncomputable def GQ2.unitEmbed :
                    ℤ_[2]ˣ →* ℚ_[2]ˣ

                    A ℤ₂-unit as a ℚ₂-unit, ℤ₂ˣ ↪ ℚ₂ˣ.

                    Equations
                    Instances For
                      @[simp]
                      theorem GQ2.unitEmbed_val (u : ℤ_[2]ˣ) :
                      (unitEmbed u) = (algebraMap ℤ_[2] ℚ_[2]) u
                      noncomputable def GQ2.uniformizer :
                      ℚ_[2]ˣ

                      The uniformizer 2 ∈ ℚ₂ˣ.

                      Equations
                      Instances For
                        @[simp]

                        The reciprocity bundle #

                        B5 (local reciprocity for ℚ₂), the bundle. The arithmetic reciprocity map rec and the geometric unramified coordinate ν_ur, with the three normalizing clauses (a)/(b)/(c). See the module docstring for the convention table and paper cross-references (Lemma 3.5, eq. (13)).

                        • recip : ℚ_[2]ˣ →* AbsGalQ2ab

                          The arithmetic local reciprocity map rec : ℚ₂ˣ →* G_{ℚ₂}^{ab} (named recip to avoid the auto-generated recursor LocalReciprocity.rec).

                        • continuous_recip : Continuous self.recip

                          rec is continuous.

                        • denseRange_recip : DenseRange self.recip

                          rec has dense image (local CFT: G^{ab} is the profinite completion of ℚ₂ˣ).

                        • nu_ur : AbsGalQ2ab →* Multiplicative ℤ_[2]

                          The unramified coordinate ν_ur : G_{ℚ₂}^{ab} →* Multiplicative ℤ₂ (target profinite — see the soundness note).

                        • continuous_nu_ur : Continuous self.nu_ur

                          ν_ur is continuous.

                        • surjective_nu_ur : Function.Surjective self.nu_ur

                          ν_ur is surjective (ν_ur : D ↠ ℤ₂ in the paper).

                        • norm_reciprocity (L : IntermediateField ℚ_[2] (AlgebraicClosure ℚ_[2])) [FiniteDimensional ℚ_[2] L] [IsGalois ℚ_[2] L] (hab : ∀ (σ τ : Gal(L/ℚ_[2])), σ * τ = τ * σ) : Function.Surjective ((restrictAb L hab).comp self.recip) ((restrictAb L hab).comp self.recip).ker = normSubgroup L

                          (a) norm residue. For every finite abelian Galois layer L/ℚ₂, the induced ℚ₂ˣ → Gal(L/ℚ₂) is surjective with kernel the norm subgroup N_{L/ℚ₂}(Lˣ). [NSW (7.1.1)/(7.1.5)]

                        • nu_ur_recip (x : ℚ_[2]ˣ) : self.nu_ur (self.recip x) = Multiplicative.ofAdd (-v2 x)

                          (b) unramified normalization. ν_ur ∘ rec = −v₂. [paper (13): ν_ur(ā,s̄,ȳ)=(−2,1,0)]

                        • chiCyc_recip_unit (u : ℤ_[2]ˣ) : chiCycAb (self.recip (unitEmbed u)) = u⁻¹

                          (c) cyclotomic orientation, units. χ_cyc(rec u) = u⁻¹ for u ∈ ℤ₂ˣ. [paper (13): χ_D(ȳ) = (−3)⁻¹]

                        • chiCyc_recip_uniformizer : chiCycAb (self.recip uniformizer) = 1

                          (c) cyclotomic orientation, uniformizer. χ_cyc(rec 2) = 1 (uniformizer trivial on the totally ramified ℚ₂(μ_{2^∞})/ℚ₂). [paper (13): needed for χ_D(ā) = −1]

                        Instances For

                          Stress tests: the bundle reproduces the paper's equation (13) #

                          Each theorem below is stated for an arbitrary R : LocalReciprocity (so it exercises the bundle's clauses, not the axiom, and stays at the standard three axioms). Together they recompute the (ν_ur, χ_D) rows of Lemma 3.5's equation (13) for s̄ = rec(2)⁻¹, ā = rec(−4), ȳ = rec(−3).

                          noncomputable def GQ2.uNeg4 :
                          ℚ_[2]ˣ

                          −4 ∈ ℚ₂ˣ, the class ā of (13).

                          Equations
                          Instances For
                            noncomputable def GQ2.uNeg3 :
                            ℚ_[2]ˣ

                            −3 ∈ ℚ₂ˣ, the class ȳ of (13).

                            Equations
                            Instances For
                              theorem GQ2.nu_ur_recip_uniformizer (R : LocalReciprocity) :
                              R.nu_ur (R.recip uniformizer) = Multiplicative.ofAdd (-1)

                              (b) at the uniformizer — the arithmetic-Frobenius normalization. ν_ur(rec 2) = −1: rec sends the uniformizer to arithmetic Frobenius, whose geometric coordinate is −1.

                              theorem GQ2.nu_ur_recip_neg4 (R : LocalReciprocity) :
                              R.nu_ur (R.recip uNeg4) = Multiplicative.ofAdd (-2)

                              (b), ā row of (13): ν_ur(rec(−4)) = −2.

                              theorem GQ2.nu_ur_recip_neg3 (R : LocalReciprocity) :
                              R.nu_ur (R.recip uNeg3) = Multiplicative.ofAdd 0

                              (b), ȳ row of (13): ν_ur(rec(−3)) = 0 (−3 is a unit).

                              (c), ā row of (13) — the flagship orientation check: χ_cyc(rec(−4)) = −1. Here −4 = (−1)·2², so χ_cyc(rec(−4)) = χ_cyc(rec(−1))·χ_cyc(rec 2)² = (−1)⁻¹·1 = −1, using clause (c) on the unit −1 and clause (c) on the uniformizer.

                              theorem GQ2.chiCyc_recip_neg3 (R : LocalReciprocity) (u : ℤ_[2]ˣ) (hu : u = -3) :
                              chiCycAb (R.recip uNeg3) = u⁻¹

                              (c), ȳ row of (13): χ_cyc(rec(−3)) = (−3)⁻¹, with −3 viewed as a ℤ₂-unit.

                              Paper-tag ledger (auto-generated by paperforge; do not edit) #