Module

ArithmeticHilbertClassFieldReciprocity.lean

Nyll.ClassFieldTheory.GlobalClassFieldTheory.GlobalClassFields.ArithmeticHilbertClassFieldReciprocity
11 declarations indexed from sourceView source ↗

Arithmetic reciprocity for the actual Hilbert class fields

The canonical ideal-theoretic Artin map uses arithmetic Frobenius. Accordingly, these equivalences use arithmetic global reciprocity before identifying the intrinsic Hilbert norm quotient with the narrow or ordinary ideal class group. The class groups in the current API carry no native topological structure, so the mathematically correct public bundle here is MulEquiv; the preceding Galois/norm-quotient factor remains a ContinuousMulEquiv.

Declarations

GlobalClassFieldTheory.GlobalClassFields.arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative

Fix the commutative idèle-class instance path shared by the norm quotient and its transported literal quotient throughout this module.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F)
GlobalClassFieldTheory.GlobalClassFields.arithmeticReciprocity_quotientTransport_globalNormResidue

Arithmetic reciprocity followed by transport between equal norm quotients sends a norm-residue symbol to its represented quotient class.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
theorem
    arithmeticReciprocity_quotientTransport_globalNormResidue
    {F E : Type} [Field F] [NumberField F]
    [Field E] [NumberField E] [Algebra F E]
    [FiniteDimensional F E] [IsAbelianGalois F E]
    (H : Subgroup (IdeleClassGroup F))
    (h : (_root_.ideleClassNorm F E).range = H)
    (c : IdeleClassGroup F) :
    QuotientGroup.quotientMulEquivOfEq h
        (arithmeticGlobalReciprocityContinuousMulEquiv F E
          (arithmeticGlobalNormResidueMonoidHom F E c)) =
      QuotientGroup.mk' H c
GlobalClassFieldTheory.GlobalClassFields.arithmeticReciprocity_quotientTransport_trans_globalNormResidue

Postcomposing transported arithmetic reciprocity with any quotient equivalence preserves the represented quotient class formula.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
theorem
    arithmeticReciprocity_quotientTransport_trans_globalNormResidue
    {F E A : Type} [Field F] [NumberField F]
    [Field E] [NumberField E] [Algebra F E]
    [FiniteDimensional F E] [IsAbelianGalois F E]
    [Group A]
    (H : Subgroup (IdeleClassGroup F))
    (h : (_root_.ideleClassNorm F E).range = H)
    (f : (IdeleClassGroup F ⧸ H) ≃* A)
    (c : IdeleClassGroup F) :
    ((arithmeticGlobalReciprocityContinuousMulEquiv F E).toMulEquiv.trans
        ((QuotientGroup.quotientMulEquivOfEq h).trans f))
        (arithmeticGlobalNormResidueMonoidHom F E c) =
      f (QuotientGroup.mk' H c)
GlobalClassFieldTheory.GlobalClassFields.arithmeticBigHilbertClassFieldReciprocityData
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
def arithmeticBigHilbertClassFieldReciprocityData
    (K : Type) [Field K] [NumberField K] :
    { e : Gal((bigHilbertClassField K) / K) ≃*
        RayClass.NarrowClassGroup K //
      ∀ c : IdeleClassGroup K,
        e (arithmeticGlobalNormResidueMonoidHom
            K (bigHilbertClassField K) c) =
          bigHilbertClassFieldQuotientEquivNarrowClassGroup
            (K := K)
            (QuotientGroup.mk'
              (bigHilbertClassFieldNormSubgroup (K := K)) c) }
GlobalClassFieldTheory.GlobalClassFields.arithmeticSmallHilbertClassFieldReciprocityData
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
def arithmeticSmallHilbertClassFieldReciprocityData
    (K : Type) [Field K] [NumberField K] :
    { e : Gal((smallHilbertClassField K) / K) ≃*
        ClassGroup (𝓞 K) //
      ∀ c : IdeleClassGroup K,
        e (arithmeticGlobalNormResidueMonoidHom
            K (smallHilbertClassField K) c) =
          smallHilbertClassFieldQuotientEquivClassGroup
            (K := K)
            (QuotientGroup.mk'
              (smallHilbertClassFieldNormSubgroup (K := K)) c) }
GlobalClassFieldTheory.GlobalClassFields.arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal

Arithmetic global reciprocity for the selected big Hilbert class field over the original number field.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
def
    arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal :
    Gal((bigHilbertClassField K) / K) ≃*
      RayClass.NarrowClassGroup K
GlobalClassFieldTheory.GlobalClassFields.arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal_globalNormResidue

The arithmetic global norm-residue symbol maps to its genuine narrow ideal class.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
theorem
    arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal_globalNormResidue
    (c : IdeleClassGroup K) :
    arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal
        (K := K)
        (arithmeticGlobalNormResidueMonoidHom
          K (bigHilbertClassField K) c) =
      bigHilbertClassFieldQuotientEquivNarrowClassGroup
        (K := K)
        (QuotientGroup.mk'
          (bigHilbertClassFieldNormSubgroup (K := K)) c)
GlobalClassFieldTheory.GlobalClassFields.arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal_idele

On an actual idèle, arithmetic big-Hilbert reciprocity is its narrow ideal class.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
theorem
    arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal_idele
    (a : IdeleGroup K) :
    arithmeticBigHilbertClassFieldGaloisEquivNarrowClassGroupOverOriginal
        (K := K)
        (arithmeticGlobalNormResidueMonoidHom
          K (bigHilbertClassField K)
          (QuotientGroup.mk'
            (IdeleGroup.principalSubgroup K) a)) =
      QuotientGroup.mk'
        (RayClass.narrowDenominator (K := K)) a
GlobalClassFieldTheory.GlobalClassFields.arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal

Arithmetic global reciprocity for the selected small Hilbert class field over the original number field.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
def
    arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal :
    Gal((smallHilbertClassField K) / K) ≃*
      ClassGroup (𝓞 K)
GlobalClassFieldTheory.GlobalClassFields.arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal_globalNormResidue

The arithmetic global norm-residue symbol maps to its genuine ordinary ideal class.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
theorem
    arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal_globalNormResidue
    (c : IdeleClassGroup K) :
    arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal
        (K := K)
        (arithmeticGlobalNormResidueMonoidHom
          K (smallHilbertClassField K) c) =
      smallHilbertClassFieldQuotientEquivClassGroup
        (K := K)
        (QuotientGroup.mk'
          (smallHilbertClassFieldNormSubgroup (K := K)) c)
GlobalClassFieldTheory.GlobalClassFields.arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal_idele

On an actual idèle, arithmetic small-Hilbert reciprocity is its ordinary ideal class.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace GlobalClassFields
open NumberField
open Reciprocity
variable {K : Type} [Field K] [NumberField K]
/-- Fix the commutative idèle-class instance path shared by the norm quotient
and its transported literal quotient throughout this module. -/
local instance
    arithmeticHilbertClassFieldIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F] :
    IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
theorem
    arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal_idele
    (a : IdeleGroup K) :
    arithmeticSmallHilbertClassFieldGaloisEquivClassGroupOverOriginal
        (K := K)
        (arithmeticGlobalNormResidueMonoidHom
          K (smallHilbertClassField K)
          (QuotientGroup.mk'
            (IdeleGroup.principalSubgroup K) a)) =
      IdeleGroup.idealClass a