Module

PublicRayClassComparison.lean

Nyll.ClassFieldTheory.GlobalClassFieldTheory.GlobalClassFields.PublicRayClassComparison
19 declarations indexed from sourceView source ↗

Conductors and ray class fields implementation

This module supplies the implementation proofs for the compact conductor and ray-class-field statements in the parent Theorems directory.

Imports20
Imported by22

Declarations

ClassFieldTheory.GlobalClassFieldComparison.rayClassModulusToOriginal

Interpret a public ray modulus in the existing idèle-theoretic ray-class library, preserving both its finite exponents and selected real places.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
def rayClassModulusToOriginal
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K) : RayClass.Modulus K where
  finitePart := m.finitePart
  infinitePart := m.infinitePart
ClassFieldTheory.GlobalClassFieldComparison.principalIdele_mem_infinitePositiveSubgroup_iff

At a real place, positivity of a principal idele component is exactly positivity of its field generator under the corresponding real embedding.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem principalIdele_mem_infinitePositiveSubgroup_iff
    (K : Type u) [Field K] [NumberField K] (x : Kˣ)
    (v : {v : InfinitePlace K // v.IsReal}) :
    IdeleGroup.infiniteComponent v.1 (IdeleGroup.principalIdele K x) ∈
        RayClass.infinitePositiveSubgroup v.1 ↔
      0 < v.1.embedding_of_isReal v.2 (x : K)
ClassFieldTheory.GlobalClassFieldComparison.principalIdele_mem_primeTo_iff_isRayCongruent

A principal idèle satisfies the existing prime-to-modulus condition exactly when its generator satisfies the public ray congruence.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem principalIdele_mem_primeTo_iff_isRayCongruent
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K) (x : Kˣ) :
    IdeleGroup.principalIdele K x ∈
        RayClass.idelePrimeToModulusSubgroup
          (rayClassModulusToOriginal K m) ↔
      IsRayCongruent m x
ClassFieldTheory.GlobalClassFieldComparison.principalIdele_mem_narrowPrimeTo_iff_isRayCongruent

At narrow modulus zero, the older idele-theoretic prime-to condition on a principal idele agrees with the public generator congruence.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem principalIdele_mem_narrowPrimeTo_iff_isRayCongruent
    (K : Type u) [Field K] [NumberField K] (x : Kˣ) :
    IdeleGroup.principalIdele K x ∈
        RayClass.idelePrimeToModulusSubgroup
          (RayClass.Modulus.narrowOfFinite (0 : RayClass.FiniteModulus K)) ↔
      IsRayCongruent (narrowRayClassModulus K) x
ClassFieldTheory.GlobalClassFieldComparison.rayPrincipalIdealSubgroup_eq

The public ray-principal subgroup equals the existing ideal-theoretic ray-principal subgroup for every finite and infinite modulus.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayPrincipalIdealSubgroup_eq
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K) :
    rayPrincipalIdealSubgroupInPrimeTo m =
      RayClass.principalRayIdealSubgroup
        (rayClassModulusToOriginal K m)
ClassFieldTheory.GlobalClassFieldComparison.narrowRayPrincipalIdealSubgroup_eq

The zero-finite-part narrow case of the general principal-ideal comparison.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem narrowRayPrincipalIdealSubgroup_eq
    (K : Type u) [Field K] [NumberField K] :
    rayPrincipalIdealSubgroupInPrimeTo (narrowRayClassModulus K) =
      RayClass.principalRayIdealSubgroup
        (RayClass.Modulus.narrowOfFinite (0 : RayClass.FiniteModulus K))
ClassFieldTheory.GlobalClassFieldComparison.rayClassGroupEquivOriginal

The public ideal-theoretic ray class group is the existing ideal ray class group for the same modulus.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
def rayClassGroupEquivOriginal
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K) :
    RayClassGroup m ≃*
      RayClass.IdealRayClassGroup (rayClassModulusToOriginal K m)
ClassFieldTheory.GlobalClassFieldComparison.rayClassGroupEquivOriginal_prime

The comparison preserves the class of each prime away from the modulus.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayClassGroupEquivOriginal_prime
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K)
    (v : HeightOneSpectrum (𝓞 K))
    (hv : v ∉ m.finitePart.support) :
    rayClassGroupEquivOriginal K m (rayClassOfFinitePrime m v hv) =
      QuotientGroup.mk'
        (RayClass.principalRayIdealSubgroup (rayClassModulusToOriginal K m))
        (RayClass.primeToModulusIdeal
          (rayClassModulusToOriginal K m) v hv)
ClassFieldTheory.GlobalClassFieldComparison.rayClassGroupEquivOriginalIdele

Compare the public ideal ray class group directly with the original idèle-class ray class group. This is the composite of the ideal comparison above and the original idelic-to-ideal equivalence.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
def rayClassGroupEquivOriginalIdele
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K) :
    RayClassGroup m ≃*
      RayClass.RayClassGroup (rayClassModulusToOriginal K m)
ClassFieldTheory.GlobalClassFieldComparison.rayClassGroupEquivOriginalIdele_prime

A public prime ray class corresponds to the original normalized prime idèle class, with the same finite and infinite modulus.

Source context 6 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
open _root_.GlobalClassFieldTheory.GlobalClassFields (
  finitePrimeIdele_mem_idelePrimeToModulusSubgroup
  rayClassGroupEquivIdealRayClassGroup_mk_primeTo
) in
theorem rayClassGroupEquivOriginalIdele_prime
    (K : Type u) [Field K] [NumberField K]
    (m : RayClassModulus K)
    (v : HeightOneSpectrum (𝓞 K))
    (hv : v ∉ m.finitePart.support) :
    rayClassGroupEquivOriginalIdele K m (rayClassOfFinitePrime m v hv) =
      QuotientGroup.mk'
        (RayClass.Modulus.congruenceSubgroup (rayClassModulusToOriginal K m))
        (QuotientGroup.mk' (IdeleGroup.principalSubgroup K)
          (IdeleGroup.finitePrimeIdele v))
ClassFieldTheory.GlobalClassFieldComparison.narrowRayClassGroupEquivNarrowClassGroup

The public ideal-theoretic narrow ray class group agrees with the existing narrow class group used by global class field theory.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
def narrowRayClassGroupEquivNarrowClassGroup
    (K : Type) [Field K] [NumberField K] :
    RayClassGroup (narrowRayClassModulus K) ≃*
      RayClass.NarrowClassGroup K
ClassFieldTheory.GlobalClassFieldComparison.rayClassField_normSubgroup

The norm subgroup of the selected ray class field is the ray congruence subgroup.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayClassField_normSubgroup
    (K : Type) [Field K] [NumberField K]
    (m : RayClass.Modulus K) :
    (_root_.ideleClassNorm K
      (GlobalClassFieldTheory.GlobalClassFields.rayClassField K m)).range =
      RayClass.Modulus.congruenceSubgroup m
ClassFieldTheory.GlobalClassFieldComparison.unramifiedOutsideModulus_of_definingModulus

Any finite abelian extension whose norm group contains the ray congruence subgroup is unramified outside that modulus.

Source context 6 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
open _root_.GlobalClassFieldTheory.GlobalClassFields (
  ideleClassNormFullConductor_infinitePart_eq_realRamificationLocus
  ideleClassNorm_narrowFiniteConductor_support_eq_ramifiedBaseFinitePlaces
) in
theorem unramifiedOutsideModulus_of_definingModulus
    (K E : Type) [Field K] [NumberField K]
    [Field E] [NumberField E] [Algebra K E]
    [FiniteDimensional K E] [IsAbelianGalois K E]
    (m : RayClassModulus K)
    (hm : RayClass.Modulus.congruenceSubgroup
        (rayClassModulusToOriginal K m) ≤
          (_root_.ideleClassNorm K E).range) :
    IsUnramifiedOutsideModulus K E m
ClassFieldTheory.GlobalClassFieldComparison.rayClassField_unramifiedOutsideModulus

The selected ray class field is unramified away from the finite and real places selected by the public modulus.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayClassField_unramifiedOutsideModulus
    (K : Type) [Field K] [NumberField K]
    (m : RayClassModulus K) :
    IsUnramifiedOutsideModulus K
      (GlobalClassFieldTheory.GlobalClassFields.rayClassField K
        (rayClassModulusToOriginal K m)) m
ClassFieldTheory.GlobalClassFieldComparison.rayClassField_reciprocity

Ray class reciprocity identifies the Galois group of the selected ray class field with the corresponding ray class group.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayClassField_reciprocity
    (K : Type) [Field K] [NumberField K]
    (m : RayClass.Modulus K) :
    Nonempty
      ((GlobalClassFieldTheory.GlobalClassFields.rayClassField K m ≃ₐ[K]
          GlobalClassFieldTheory.GlobalClassFields.rayClassField K m) ≃*
        RayClass.RayClassGroup m)
ClassFieldTheory.GlobalClassFieldComparison.rayClassField_degree

The selected ray class field has degree equal to the order of its ray class group.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayClassField_degree
    (K : Type) [Field K] [NumberField K]
    (m : RayClass.Modulus K) :
    Module.finrank K
        (GlobalClassFieldTheory.GlobalClassFields.rayClassField K m) =
      Nat.card (RayClass.RayClassGroup m)
ClassFieldTheory.GlobalClassFieldComparison.embedsInRayClassField_iff_conductor_le

The full conductor is the least modulus whose ray class field contains the given finite abelian extension.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem embedsInRayClassField_iff_conductor_le
    {K : Type} [Field K] [NumberField K]
    (L : Type) [Field L] [NumberField L]
    [Algebra K L] [FiniteDimensional K L]
    [IsAbelianGalois K L]
    (m : RayClass.Modulus K) :
    Nonempty
        (L →ₐ[K]
          GlobalClassFieldTheory.GlobalClassFields.rayClassField K m) ↔
      (GlobalClassFieldTheory.GlobalClassFields.ideleClassNormConductorialSubgroup
          (K := K) (L := L)).fullConductor ≤ m
ClassFieldTheory.GlobalClassFieldComparison.rayClassSubgroup_existence

Build the public Frobenius-normalized realization attached to a ray-class subgroup.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory.GlobalClassFieldComparison
universe u
theorem rayClassSubgroup_existence
    (K : Type) [Field K] [NumberField K]
    (m : RayClassModulus K) (H : Subgroup (RayClassGroup m)) :
    Nonempty (RayClassSubgroupRealization K m H)
ClassFieldTheory.normFullConductor_isAbelianConductor

The concrete full norm conductor is the least public modulus whose ray class field contains the finite abelian extension. This implementation theorem uses the original idelic full conductor in its statement.

Source context 5 commands

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

open scoped NumberField
open NumberField IsDedekindDomain
noncomputable section
namespace ClassFieldTheory
open _root_.GlobalClassFieldTheory.GlobalClassFields (
  finiteAbelianExtension_nonempty_algHom_of_normRange_le
  rayModulus_normSubgroup_eq_of_arithmeticPrimeArtinEquiv
) in
theorem normFullConductor_isAbelianConductor
    (K : Type) [Field K] [NumberField K]
    (L : Type) [Field L] [NumberField L]
    [Algebra K L] [IsAbelianGalois K L] :
    IsAbelianConductor K L
      { finitePart :=
          (GlobalClassFieldTheory.GlobalClassFields.ideleClassNormConductorialSubgroup
            (K := K) (L := L)).fullConductor.finitePart
        infinitePart :=
          (GlobalClassFieldTheory.GlobalClassFields.ideleClassNormConductorialSubgroup
            (K := K) (L := L)).fullConductor.infinitePart }