Module

MathlibFrobeniusHilbertComparison.lean

Nyll.ClassFieldTheory.GlobalClassFieldTheory.GlobalClassFields.MathlibFrobeniusHilbertComparison
31 declarations indexed from sourceView source ↗

Frobenius and Hilbert class fields implementation

This module supplies the implementation proofs for the compact public statements in ClassFieldTheory.Theorems.FrobeniusAndHilbertClassFields.

The prime element exposed below is the arithmetic-normalized prime Artin element. Its residue action identifies it with Mathlib's arithmetic Frobenius at every unramified finite prime.

Imports30
Imported by12

Declarations

ClassFieldTheory.GlobalClassFieldComparison.chosenFinitePlaceIsUnramified_of_isUnramifiedIn

Convert Mathlib's ideal-theoretic unramifiedness of a base prime into the chosen-completion formulation used by the current Artin implementation.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section PrimeArtin
open scoped Pointwise
open AlgebraicNumberTheory.Valuations
variable
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
theorem chosenFinitePlaceIsUnramified_of_isUnramifiedIn
    (v : HeightOneSpectrum (𝓞 K))
    (hunram : Algebra.IsUnramifiedIn (𝓞 L) v.asIdeal) :
    _root_.ChosenFinitePlaceIsUnramified
      (K := K) (L := L) v
ClassFieldTheory.GlobalClassFieldComparison.arithmeticPrimeArtin_eq_inverse

The arithmetic-normalized prime Artin element is the inverse of the geometric-normalized prime Artin element. This fixes the relation between the two reciprocity conventions.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section PrimeArtin
open scoped Pointwise
open AlgebraicNumberTheory.Valuations
variable
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
theorem arithmeticPrimeArtin_eq_inverse
    (v : HeightOneSpectrum (𝓞 K)) :
    GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
          (K := K) (L := L) v =
      (GlobalClassFieldTheory.GlobalClassFields.finitePlacePrimeArtin
          (K := K) (L := L) v)⁻¹
ClassFieldTheory.GlobalClassFieldComparison.arithmeticPrimeArtin_stabilizes_chosenPrime

The arithmetic prime Artin element preserves the chosen prime above the base prime. This is the decomposition-group part of its Frobenius property; the residue-field congruence is a separate comparison.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section PrimeArtin
open scoped Pointwise
open AlgebraicNumberTheory.Valuations
variable
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
theorem arithmeticPrimeArtin_stabilizes_chosenPrime
    (v : HeightOneSpectrum (𝓞 K)) :
    let w := chosenFinitePlaceExtension (L := L) v
    let W := finitePlaceExtensionCentre (K := K) (L := L) v w
    GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
        (K := K) (L := L) v ∈
      MulAction.stabilizer (L ≃ₐ[K] L) W.asIdeal := by
  let w := chosenFinitePlaceExtension (L := L) v
  let W := finitePlaceExtensionCentre (K := K) (L := L) v w
  let σ := GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
    (K := K) (L := L) v
  have hgeo :
      GlobalClassFieldTheory.GlobalClassFields.finitePlacePrimeArtin
          (K := K) (L := L) v ∈
        finitePlaceDecompositionGroup (K := K) (L := L) v := by
    rw [GlobalClassFieldTheory.GlobalClassFields.finitePlacePrimeArtin_eq_chosenFinitePlaceArtin]
    rw [← GlobalClassFieldTheory.Reciprocity.chosenFinitePlaceArtinMonoidHom_range]
    exact ⟨FiniteIdeleGroup.chosenLocalOrderSection v 1, rfl⟩
  have hσ : σ ∈ finitePlaceDecompositionGroup (K := K) (L := L) v := by
    change GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
        (K := K) (L := L) v ∈
      finitePlaceDecompositionGroup (K := K) (L := L) v
    rw [GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin_eq_inv]
    exact Subgroup.inv_mem _ hgeo
  have hσinv : σ⁻¹ ∈ finitePlaceDecompositionGroup (K := K) (L := L) v :=
    Subgroup.inv_mem _ hσ
  have hw :
      absoluteValueExtensionConjugate
          (HeightOneSpectrum.adicAbv K v) w σ⁻¹ = w :=
    (mem_finitePlaceDecompositionGroup_iff v σ⁻¹).mp hσinv
  have hW : finitePlaceEquiv K L σ W = W := by
    have hcentre := finitePlaceExtensionCentre_conjugate
      (K := K) (L := L) v w σ⁻¹
    rw [hw] at hcentre
    simpa only [inv_inv] using hcentre.symm
  have hIdeal := congrArg HeightOneSpectrum.asIdeal hW
  have hIdeal' :
      W.asIdeal.map
          (NumberField.RingOfIntegers.mapAlgEquiv σ).toRingEquiv = W.asIdeal := by
    simpa only [finitePlaceEquiv_asIdeal] using hIdeal
  change σ ∈ MulAction.stabilizer (L ≃ₐ[K] L) W.asIdeal
  rw [MulAction.mem_stabilizer_iff, Ideal.pointwise_smul_def]
  exact hIdeal'
ClassFieldTheory.GlobalClassFieldComparison.arithmeticPrimeArtin_stabilizes_prime

In an abelian extension, the arithmetic prime Artin element preserves every prime above the base prime, not only the chosen one.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section PrimeArtin
open scoped Pointwise
open AlgebraicNumberTheory.Valuations
variable
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
theorem arithmeticPrimeArtin_stabilizes_prime
    (v : HeightOneSpectrum (𝓞 K))
    (w : HeightOneSpectrum (𝓞 L))
    (hw : w.asIdeal.LiesOver v.asIdeal) :
    GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
        (K := K) (L := L) v ∈
      MulAction.stabilizer (L ≃ₐ[K] L) w.asIdeal
ClassFieldTheory.GlobalClassFieldComparison.orderOf_arithmeticPrimeArtin_eq_inertiaDegree

At an ideal-theoretically unramified finite prime, the order of the arithmetic-normalized prime Artin element is the common inertia degree of the prime ideals above the base prime.

Source context 12 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section PrimeArtin
open scoped Pointwise
open AlgebraicNumberTheory.Valuations
variable
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (orderOf_arithmeticFinitePlacePrimeArtin_eq_finitePlaceLocalDegree_of_chosenUnramified) in
open _root_.GlobalClassFieldTheory.IdealClassFieldTheory
  (finitePlaceLocalDegree_eq_inertiaDegree_of_chosenUnramified) in
theorem orderOf_arithmeticPrimeArtin_eq_inertiaDegree
    (v : HeightOneSpectrum (𝓞 K))
    (hunram : Algebra.IsUnramifiedIn (𝓞 L) v.asIdeal) :
    orderOf
        (GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
          (K := K) (L := L) v) =
      Ideal.inertiaDegIn v.asIdeal (𝓞 L)
ClassFieldTheory.GlobalClassFieldComparison.arithmeticPrimeArtin_eq_one_iff_splitsCompletely

At an ideal-theoretically unramified finite prime, the arithmetic-normalized prime Artin element is trivial exactly when the finite place actually splits completely.

Source context 11 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section PrimeArtin
open scoped Pointwise
open AlgebraicNumberTheory.Valuations
variable
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (arithmeticFinitePlacePrimeArtin_eq_one_iff_splitsCompletely_of_chosenUnramified) in
theorem arithmeticPrimeArtin_eq_one_iff_splitsCompletely
    (v : HeightOneSpectrum (𝓞 K))
    (hunram : Algebra.IsUnramifiedIn (𝓞 L) v.asIdeal) :
    GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
          (K := K) (L := L) v =
        1 ↔
      _root_.FinitePlaceSplitsCompletely
        (K := K) (L := L) v
ClassFieldTheory.GlobalClassFieldComparison.orderOf_arithmeticFrobeniusAt_eq_inertiaDegree

Mathlib's arithmetic Frobenius has order equal to the residue degree at an unramified prime. The proof compares its residue action with the finite-field Frobenius and uses the decomposition-group cardinality.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section ArithmeticFrobenius
open scoped Pointwise
theorem orderOf_arithmeticFrobeniusAt_eq_inertiaDegree
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
    (v : HeightOneSpectrum (𝓞 K))
    (w : HeightOneSpectrum (𝓞 L))
    (hw : w.asIdeal.LiesOver v.asIdeal)
    (hunram : Algebra.IsUnramifiedAt (𝓞 K) w.asIdeal) :
    orderOf (arithmeticFrobeniusAt (K := K) w) =
      w.asIdeal.inertiaDeg (𝓞 K)
ClassFieldTheory.GlobalClassFieldComparison.arithmeticFrobeniusAt_eq_of_liesOver

In an abelian extension, Mathlib's chosen arithmetic Frobenius is independent of the prime above a fixed base prime. Mathlib chooses conjugate lifts, and conjugacy is equality in the abelian Galois group.

Source context 6 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
theorem arithmeticFrobeniusAt_eq_of_liesOver
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
    (v : HeightOneSpectrum (𝓞 K))
    (w w' : HeightOneSpectrum (𝓞 L))
    (hw : w.asIdeal.LiesOver v.asIdeal)
    (hw' : w'.asIdeal.LiesOver v.asIdeal) :
    arithmeticFrobeniusAt (K := K) w =
      arithmeticFrobeniusAt (K := K) w'
ClassFieldTheory.GlobalClassFieldComparison.arithmeticPrimeArtin_eq_arithmeticFrobeniusAt

At an unramified finite prime, the arithmetic-normalized prime Artin element is Mathlib's arithmetic Frobenius, independently of the chosen prime above the base prime.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (arithmeticFinitePlacePrimeArtin_eq_chosenFinitePlaceArithmeticFrobenius) in
theorem arithmeticPrimeArtin_eq_arithmeticFrobeniusAt
    {K L : Type}
    [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [IsAbelianGalois K L]
    (v : HeightOneSpectrum (𝓞 K))
    (w : HeightOneSpectrum (𝓞 L))
    (hw : w.asIdeal.LiesOver v.asIdeal)
    (hunram : Algebra.IsUnramifiedAt (𝓞 K) w.asIdeal) :
    GlobalClassFieldTheory.GlobalClassFields.arithmeticFinitePlacePrimeArtin
        (K := K) (L := L) v =
      arithmeticFrobeniusAt (K := K) w
ClassFieldTheory.GlobalClassFieldComparison.finitePrimeSplitsCompletely_iff_original

Ideal-theoretic complete splitting at every prime above a finite place agrees with the decomposition-group definition used by the existing library.

Source context 6 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
theorem finitePrimeSplitsCompletely_iff_original
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
    (v : HeightOneSpectrum (𝓞 K)) :
    FinitePrimeSplitsCompletely K L v ↔
      _root_.FinitePlaceSplitsCompletely (K := K) (L := L) v
ClassFieldTheory.GlobalClassFieldComparison.bigHilbertClassFieldEmbedding

Embed the selected big Hilbert class field in the separable closure of its original base field.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def bigHilbertClassFieldEmbedding :
    GlobalClassFieldTheory.GlobalClassFields.bigHilbertClassField K →ₐ[K]
      SeparableClosure K
ClassFieldTheory.GlobalClassFieldComparison.bigHilbertClassFieldFiniteAbelianExtension

The selected big Hilbert class field, represented in the public type of finite abelian subextensions of the separable closure.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def bigHilbertClassFieldFiniteAbelianExtension :
    FiniteAbelianExtension K
ClassFieldTheory.GlobalClassFieldComparison.bigHilbertClassFieldEquiv

The original selected field and its public separable-closure realization are equivalent over the base.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def bigHilbertClassFieldEquiv :
    GlobalClassFieldTheory.GlobalClassFields.bigHilbertClassField K ≃ₐ[K]
      bigHilbertClassFieldFiniteAbelianExtension K
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassFieldEmbedding

The selected small Hilbert class field in the separable closure.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def smallHilbertClassFieldEmbedding :
    GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K →ₐ[K]
      SeparableClosure K
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassFieldFiniteAbelianExtension
Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def smallHilbertClassFieldFiniteAbelianExtension :
    FiniteAbelianExtension K
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassFieldEquiv
Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def smallHilbertClassFieldEquiv :
    GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K ≃ₐ[K]
      smallHilbertClassFieldFiniteAbelianExtension K
ClassFieldTheory.GlobalClassFieldComparison.bigHilbertClassField_degree_eq_narrowClassGroup_card

The selected big Hilbert class field has degree equal to the order of the narrow class group of the original number field.

Source context 9 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (bigHilbertClassField_finrank_over_original_eq_narrowClassGroup_card) in
theorem bigHilbertClassField_degree_eq_narrowClassGroup_card :
    Module.finrank K
        (GlobalClassFieldTheory.GlobalClassFields.bigHilbertClassField K) =
      Nat.card (RayClass.NarrowClassGroup K)
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassField_degree_eq_classNumber

The selected small Hilbert class field has degree equal to the ordinary class number of the original number field.

Source context 9 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (smallHilbertClassField_finrank_over_original_eq_classNumber) in
theorem smallHilbertClassField_degree_eq_classNumber :
    Module.finrank K
        (GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K) =
      NumberField.classNumber K
ClassFieldTheory.GlobalClassFieldComparison.bigHilbertClassField_unramifiedAtFinitePlaces

The selected big Hilbert class field is unramified at every finite place.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem bigHilbertClassField_unramifiedAtFinitePlaces :
    _root_.IsUnramifiedAtFinitePlaces K
      (GlobalClassFieldTheory.GlobalClassFields.bigHilbertClassField K)
ClassFieldTheory.GlobalClassFieldComparison.nonempty_algHom_to_selectedBigHilbertClassField

Every publicly represented finite-prime-unramified abelian extension embeds into the selected big Hilbert class field.

Source context 9 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (finiteUnramifiedAbelianExtension_nonempty_algHom_bigHilbertClassField) in
theorem nonempty_algHom_to_selectedBigHilbertClassField
    (F : FiniteAbelianExtension K)
    (hF : IsUnramifiedAtFinitePlaces K F) :
    Nonempty (F →ₐ[K]
      GlobalClassFieldTheory.GlobalClassFields.bigHilbertClassField K)
ClassFieldTheory.GlobalClassFieldComparison.exists_bigHilbertClassField

The intrinsic big Hilbert class field exists inside the chosen separable closure of the base.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem exists_bigHilbertClassField :
    ∃ E : FiniteAbelianExtension K, IsBigHilbertClassField E
ClassFieldTheory.GlobalClassFieldComparison.bigHilbertClassField_degree_eq_narrowClassGroup_card_of_isBig

Every intrinsic big Hilbert class field has the degree of the selected implementation, hence the narrow class number.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem bigHilbertClassField_degree_eq_narrowClassGroup_card_of_isBig
    (E : FiniteAbelianExtension K)
    (hE : IsBigHilbertClassField E) :
    Module.finrank K E = Nat.card (RayClass.NarrowClassGroup K)
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassField_everywhereUnramified

The selected small Hilbert class field is unramified at all finite and infinite places.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem smallHilbertClassField_everywhereUnramified :
    _root_.IsEverywhereUnramified K
      (GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K)
ClassFieldTheory.GlobalClassFieldComparison.nonempty_algHom_to_selectedSmallHilbertClassField

Any publicly represented everywhere-unramified abelian extension embeds into the selected small Hilbert class field.

Source context 9 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
open _root_.GlobalClassFieldTheory.GlobalClassFields
  (finiteAbelianExtension_nonempty_algHom_to_smallHilbertClassField_of_everywhereUnramified) in
theorem nonempty_algHom_to_selectedSmallHilbertClassField
    (F : FiniteAbelianExtension K)
    (hF : IsEverywhereUnramified K F) :
    Nonempty (F →ₐ[K]
      GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K)
ClassFieldTheory.GlobalClassFieldComparison.exists_smallHilbertClassField

The intrinsic small Hilbert class field exists inside the chosen separable closure of the base.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem exists_smallHilbertClassField :
    ∃ E : FiniteAbelianExtension K, IsSmallHilbertClassField E
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassField_degree_eq_classNumber_of_isSmall

Every intrinsic small Hilbert class field has the degree of the selected implementation, hence the class number.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem smallHilbertClassField_degree_eq_classNumber_of_isSmall
    (E : FiniteAbelianExtension K)
    (hE : IsSmallHilbertClassField E) :
    Module.finrank K E = NumberField.classNumber K
ClassFieldTheory.GlobalClassFieldComparison.smallHilbertClassFieldEquivOfIsSmall

Every intrinsic small Hilbert class field is isomorphic over the base to the selected implementation.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
def smallHilbertClassFieldEquivOfIsSmall
    (E : FiniteAbelianExtension K)
    (hE : IsSmallHilbertClassField E) :
    E ≃ₐ[K]
      GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K
ClassFieldTheory.GlobalClassFieldComparison.finitePrime_splitsCompletelyInSmallHilbertClassField_iff_principal

A finite prime actually splits completely in the selected small Hilbert class field exactly when its prime fractional ideal is principal.

Source context 9 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
open _root_.GlobalClassFieldTheory.IdealClassFieldTheory
  (finitePlaceSplitsCompletelyInSmallHilbertClassField_iff_principal) in
theorem finitePrime_splitsCompletelyInSmallHilbertClassField_iff_principal
    (v : HeightOneSpectrum (𝓞 K)) :
    _root_.FinitePlaceSplitsCompletely
          (K := K)
          (L := GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K)
          v ↔
      FractionalIdealGroup.prime v ∈
        (toPrincipalIdeal (𝓞 K) K).range
ClassFieldTheory.GlobalClassFieldComparison.finitePrime_splitsCompletelyInSmallHilbertClassField_iff_principal_of_isSmall

The complete-splitting criterion transfers from the selected small Hilbert class field to every intrinsic one.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem finitePrime_splitsCompletelyInSmallHilbertClassField_iff_principal_of_isSmall
    (E : FiniteAbelianExtension K)
    (hE : IsSmallHilbertClassField E)
    (v : HeightOneSpectrum (𝓞 K)) :
    FinitePrimeSplitsCompletely K E v ↔
      finitePrimeFractionalIdeal v ∈
        (toPrincipalIdeal (𝓞 K) K).range
ClassFieldTheory.GlobalClassFieldComparison.ideals_becomePrincipalInSmallHilbertClassField

Every integral ideal becomes principal after extension to the selected small Hilbert class field.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem ideals_becomePrincipalInSmallHilbertClassField :
    ∀ I : Ideal (𝓞 K),
      (I.map
        (algebraMap
          (𝓞 K)
          (𝓞 (GlobalClassFieldTheory.GlobalClassFields.smallHilbertClassField K)))).IsPrincipal
ClassFieldTheory.GlobalClassFieldComparison.ideals_becomePrincipalInSmallHilbertClassField_of_isSmall

Principalization transfers from the selected small Hilbert class field to every intrinsic one.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
open NumberField IsDedekindDomain
open LocalFieldTheory
open scoped ValuativeRel
section HilbertClassFields
variable (K : Type) [Field K] [NumberField K]
theorem ideals_becomePrincipalInSmallHilbertClassField_of_isSmall
    (E : FiniteAbelianExtension K)
    (hE : IsSmallHilbertClassField E) :
    ∀ I : Ideal (𝓞 K),
      (I.map (algebraMap (𝓞 K) (𝓞 E))).IsPrincipal