Module

Setup.lean

Nyll.ClassFieldTheory.KroneckerWeber.Setup
29 declarations indexed from sourceView source ↗

Setup for the global Kronecker--Weber theorem

This file begins the global Kronecker–Weber construction. Two finite abelian extensions, embedded in one separable closure, have a finite abelian compositum. In particular this applies to the given number field and a cyclotomic field. The remaining arithmetic step is to choose the cyclotomic order from the local data and prove that the compositum has no larger degree than the cyclotomic subfield.

Declarations

KroneckerWeber.kroneckerWeberRamifiedPrimes

The finite set S of ramified rational primes, primes. A prime belongs to this finset precisely when some height-one prime of 𝓞 L above it is ramified.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include hNF in
def kroneckerWeberRamifiedPrimes : Finset Nat.Primes
KroneckerWeber.mem_kroneckerWeberRamifiedPrimes_iff

Membership in the finite ramified-prime set, stated in height-one-prime language.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
omit hLab in
theorem mem_kroneckerWeberRamifiedPrimes_iff
    (p : Nat.Primes) :
    p ∈ kroneckerWeberRamifiedPrimes (L := L) ↔
      ∃ w : IsDedekindDomain.HeightOneSpectrum (𝓞 L),
        (w.asIdeal : Ideal (𝓞 L)).LiesOver
          ((Rat.HeightOneSpectrum.primesEquiv.symm p).asIdeal : Ideal ℤ) ∧
        ¬ Algebra.IsUnramifiedAt ℤ w.asIdeal
KroneckerWeber.kroneckerWeberPadicExtension

A chosen extension to L of the rational p-adic absolute value, constructed by pulling the absolute value on an algebraic closure of the completion back along a chosen embedding.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include hLab in
def kroneckerWeberPadicExtension
    (p : ℕ) [Fact p.Prime] :
  AbsoluteValueExtension (Rat.AbsoluteValue.padic p) L
KroneckerWeber.kroneckerWeberLocalCyclotomicEmbeddingProperty

The concrete local embedding assertion attached to fixed structured parameters f and n. Its named form hides the localization instances while retaining the actual embedding needed for the ramification estimate in the global argument.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberLocalCyclotomicEmbeddingProperty
    (p : Nat.Primes) (f n : ℕ) : Prop
KroneckerWeber.KroneckerWeberLocalCyclotomicData

The synchronized local data chosen from structured local Kronecker--Weber. In particular, the ramification exponent below and the embedding used to bound it come from one and the same witness.

Source context 10 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
structure KroneckerWeberLocalCyclotomicData (p : Nat.Primes) where
  /-- The unramified-degree parameter in the local cyclotomic order. -/
  unramifiedDegree : ℕ
  /-- The exponent of the `p`-power factor in the local cyclotomic order. -/
  ramificationExponent : ℕ
  /-- Positivity of the chosen unramified-degree parameter. -/
  unramifiedDegree_pos : 0 < unramifiedDegree
  /-- Positivity of the chosen ramification exponent. -/
  ramificationExponent_pos : 1 ≤ ramificationExponent
  /-- The structured local embedding associated with the two chosen parameters. -/
  embedding : kroneckerWeberLocalCyclotomicEmbeddingProperty
    (L := L) p unramifiedDegree ramificationExponent
KroneckerWeber.kroneckerWeberLocalCyclotomicData

A chosen structured local cyclotomic witness at p.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberLocalCyclotomicData
    (p : Nat.Primes) :
    KroneckerWeberLocalCyclotomicData (L := L) p
KroneckerWeber.kroneckerWeberLocalUnramifiedDegree

The prime-to-p residue degree in the chosen structured local cyclotomic witness.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberLocalUnramifiedDegree
    (p : Nat.Primes) : ℕ
KroneckerWeber.kroneckerWeberLocalRamificationExponent

The p-power exponent supplied by the structured local Kronecker--Weber theorem for the chosen completion of L at p.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberLocalRamificationExponent
    (p : Nat.Primes) : ℕ
KroneckerWeber.kroneckerWeberLocalUnramifiedDegree_pos

The chosen prime-to-p residue degree is positive.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF in
theorem kroneckerWeberLocalUnramifiedDegree_pos
    (p : Nat.Primes) :
    0 < kroneckerWeberLocalUnramifiedDegree (L := L) p
KroneckerWeber.kroneckerWeberLocalCyclotomicEmbedding

The actual local cyclotomic embedding selected together with the two local exponents.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF in
theorem kroneckerWeberLocalCyclotomicEmbedding
    (p : Nat.Primes) :
    kroneckerWeberLocalCyclotomicEmbeddingProperty
      (L := L) p
      (kroneckerWeberLocalUnramifiedDegree (L := L) p)
      (kroneckerWeberLocalRamificationExponent (L := L) p)
KroneckerWeber.kroneckerWeberConductorCandidate

The cyclotomic order n = ∏_{p ∈ S} p^{e_p} chosen from the ramification support.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberConductorCandidate : ℕ
KroneckerWeber.kroneckerWeberConductorCoprimePart

The part of the conductor candidate supported away from p.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberConductorCoprimePart
    (p : Nat.Primes) : ℕ
KroneckerWeber.kroneckerWeberConductorCandidate_eq_primePower_mul_coprimePart

At a ramified prime p, the conductor candidate splits into its chosen p-primary order and the product supported at the other ramified primes.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF in
theorem kroneckerWeberConductorCandidate_eq_primePower_mul_coprimePart
    (p : Nat.Primes)
    (hp : p ∈ kroneckerWeberRamifiedPrimes (L := L)) :
    kroneckerWeberConductorCandidate (L := L) =
      p.1 ^ kroneckerWeberLocalRamificationExponent (L := L) p *
        kroneckerWeberConductorCoprimePart (L := L) p
KroneckerWeber.kroneckerWeberConductorCoprimePart_coprime

The complementary factor really is prime to p; this is the arithmetic input which makes it part of the unramified factor in the local cyclotomic field used in the global construction.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF in
theorem kroneckerWeberConductorCoprimePart_coprime
    (p : Nat.Primes) :
    Nat.Coprime p.1
      (kroneckerWeberConductorCoprimePart (L := L) p)
KroneckerWeber.kroneckerWeberConductorCandidate_pos

The constructed global cyclotomic order is nonzero.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalConductorCandidate
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF in
theorem kroneckerWeberConductorCandidate_pos :
    0 < kroneckerWeberConductorCandidate (L := L)
KroneckerWeber.kroneckerWeberConductorCandidate_neZero

The conductor candidate is nonzero.

Source context 10 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
instance kroneckerWeberConductorCandidate_neZero :
    NeZero (kroneckerWeberConductorCandidate (L := L))
KroneckerWeber.kroneckerWeberCyclotomicField_isAbelianGalois

The cyclotomic field at the conductor candidate is abelian Galois over the rationals.

Source context 10 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
instance kroneckerWeberCyclotomicField_isAbelianGalois :
    IsAbelianGalois ℚ
      (CyclotomicField (kroneckerWeberConductorCandidate (L := L)) ℚ)
KroneckerWeber.kroneckerWeberCompositumField

The concrete compositum M = L(μ_n) in a fixed separable closure of ℚ, for the conductor candidate constructed above.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumField :
    IntermediateField ℚ (SeparableClosure ℚ)
KroneckerWeber.kroneckerWeberCompositumField_finiteDimensional

The global Kronecker--Weber compositum is finite-dimensional over the rationals.

Source context 10 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
instance kroneckerWeberCompositumField_finiteDimensional :
    FiniteDimensional ℚ (kroneckerWeberCompositumField L)
KroneckerWeber.kroneckerWeberCompositumField_isAbelianGalois

The global Kronecker--Weber compositum is abelian Galois over the rationals.

Source context 10 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
instance kroneckerWeberCompositumField_isAbelianGalois :
    IsAbelianGalois ℚ (kroneckerWeberCompositumField L)
KroneckerWeber.kroneckerWeberCompositumField_numberField

The global Kronecker--Weber compositum is a number field.

Source context 10 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
instance kroneckerWeberCompositumField_numberField :
    NumberField (kroneckerWeberCompositumField L)
KroneckerWeber.kroneckerWeberCompositumEmbeddingLeft

The original abelian extension embeds into M = L(μ_n).

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumEmbeddingLeft :
    L →ₐ[ℚ] kroneckerWeberCompositumField L
KroneckerWeber.kroneckerWeberCompositumEmbeddingRight

The conductor cyclotomic field embeds into M = L(μ_n).

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumEmbeddingRight :
    CyclotomicField (kroneckerWeberConductorCandidate (L := L)) ℚ →ₐ[ℚ]
      kroneckerWeberCompositumField L
KroneckerWeber.kroneckerWeberCompositumLeftField

The copy of L inside the concrete compositum.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumLeftField :
    IntermediateField ℚ (kroneckerWeberCompositumField L)
KroneckerWeber.kroneckerWeberCompositumLeftEquiv

The chosen copy of L in the compositum is canonically isomorphic to L.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumLeftEquiv :
    L ≃ₐ[ℚ] kroneckerWeberCompositumLeftField (L := L)
KroneckerWeber.kroneckerWeberCyclotomic_finrank_le_compositum

The elementary lower degree bound for the cyclotomic factor of M.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
theorem kroneckerWeberCyclotomic_finrank_le_compositum :
      Module.finrank ℚ
        (CyclotomicField (kroneckerWeberConductorCandidate (L := L)) ℚ) ≤
      Module.finrank ℚ (kroneckerWeberCompositumField L)
KroneckerWeber.kroneckerWeberCompositumEquivCyclotomicOfFinrankLe

Once the global inertia count supplies the upper degree bound, the cyclotomic inclusion in M is an isomorphism. This isolates the purely linear-algebraic final step of the global construction.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumEquivCyclotomicOfFinrankLe
    (hupper :
      Module.finrank ℚ (kroneckerWeberCompositumField L) ≤
        Nat.totient (kroneckerWeberConductorCandidate (L := L))) :
    kroneckerWeberCompositumField L ≃ₐ[ℚ]
      CyclotomicField (kroneckerWeberConductorCandidate (L := L)) ℚ
KroneckerWeber.kroneckerWeberEmbeddingOfCompositumFinrankLe

The promised embedding of L into the conductor cyclotomic field, deduced from the global upper degree bound.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberEmbeddingOfCompositumFinrankLe
    (hupper :
      Module.finrank ℚ (kroneckerWeberCompositumField L) ≤
        Nat.totient (kroneckerWeberConductorCandidate (L := L))) :
    L →ₐ[ℚ]
      CyclotomicField (kroneckerWeberConductorCandidate (L := L)) ℚ
KroneckerWeber.kroneckerWeberCompositumPrimeAbove

A chosen prime of M = L(μ_n) over the rational prime p.

Source context 11 commands

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

noncomputable section
namespace KroneckerWeber
open AlgebraicNumberTheory
open HilbertRamification
open HilbertRamification.Dedekind
open scoped IsMulCommutative NumberField
section GlobalCompositum
open AlgebraicNumberTheory.Valuations
variable (L : Type) [Field L]
variable [hNF : NumberField L] [hLab : IsAbelianGalois ℚ L]
include L hNF hLab in
def kroneckerWeberCompositumPrimeAbove
    (p : Nat.Primes) :
    Ideal.primesOver
      ((Rat.HeightOneSpectrum.primesEquiv.symm p).asIdeal : Ideal ℤ)
      (𝓞 (kroneckerWeberCompositumField L))