Module

Topology.lean

Nyll.ClassFieldTheory.AlgebraicNumberTheory.RayClass.Topology
47 declarations indexed from sourceView source ↗

The congruence topology on the idele class group

The local higher-unit groups are open, the ray congruence subgroups are open (and hence closed) of finite index, and the congruence subgroups are cofinal among the closed finite-index subgroups of the idele class group.

Imports7
Imported by16

Declarations

RayClass.localIntegralValue

The integral representative of a unit in a finite completion.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def localIntegralValue
    (v : HeightOneSpectrum (𝓞 K))
    (y : (v.adicCompletionIntegers K).units) :
    v.adicCompletionIntegers K
RayClass.localHigherUnitMap_eq_one_iff

A local integral unit maps to one modulo the n-th maximal-ideal power exactly when its difference from one belongs to that power.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem localHigherUnitMap_eq_one_iff
    (v : HeightOneSpectrum (𝓞 K)) (n : ℕ)
    (y : (v.adicCompletionIntegers K).units) :
    localHigherUnitMap v n y = 1 ↔
      localIntegralValue v y - 1 ∈
          (IsLocalRing.maximalIdeal
            (v.adicCompletionIntegers K)) ^ n
RayClass.localHigherUnitGroup_antitone

Local higher-unit groups are contravariant in their depth.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem localHigherUnitGroup_antitone
    (v : HeightOneSpectrum (𝓞 K))
    {m n : ℕ} (hmn : m ≤ n) :
    localHigherUnitGroup v n ≤ localHigherUnitGroup v m
RayClass.isOpen_localHigherUnitGroup

Every local higher-unit group is open in the multiplicative group of the finite completion.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isOpen_localHigherUnitGroup
    (v : HeightOneSpectrum (𝓞 K)) (n : ℕ) :
    IsOpen
      ((localHigherUnitGroup v n :
        Subgroup (v.adicCompletion K)ˣ) :
          Set (v.adicCompletion K)ˣ)
RayClass.localHigherUnitGroup_le_finiteLocalUnits

The local higher-unit group lies in the local integral-unit group.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem localHigherUnitGroup_le_finiteLocalUnits
    (v : HeightOneSpectrum (𝓞 K)) (n : ℕ) :
    localHigherUnitGroup v n ≤
      (v.adicCompletionIntegers K).units
RayClass.isOpen_finiteCongruenceSubgroup

The finite idele congruence subgroup is open.

Source context 7 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
open scoped Classical in
theorem isOpen_finiteCongruenceSubgroup (m : FiniteModulus K) :
    IsOpen
      ((finiteCongruenceSubgroup m :
        Subgroup (FiniteIdeleGroup K)) :
          Set (FiniteIdeleGroup K))
RayClass.isOpen_infinitePositiveSubgroup

At a real place the positivity subgroup is open; at a complex place it is the whole local multiplicative group.

Source context 8 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
open scoped Classical in
omit [NumberField K] in
theorem isOpen_infinitePositiveSubgroup (v : InfinitePlace K) :
    IsOpen
      ((infinitePositiveSubgroup v : Subgroup v.Completionˣ) :
        Set v.Completionˣ)
RayClass.isOpen_infinitePositivePiSubgroup

The positivity subgroup in the product of all infinite local groups is open.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isOpen_infinitePositivePiSubgroup :
    IsOpen
      ((Subgroup.pi Set.univ (fun v : InfinitePlace K ↦
          infinitePositiveSubgroup v) :
        Subgroup ((v : InfinitePlace K) → v.Completionˣ)) :
          Set ((v : InfinitePlace K) → v.Completionˣ)) := by
  change IsOpen
    (Set.univ.pi fun v : InfinitePlace K ↦
      (infinitePositiveSubgroup v : Set v.Completionˣ))
  exact isOpen_set_pi Set.finite_univ fun v _ ↦
    isOpen_infinitePositiveSubgroup v
RayClass.isOpen_narrowInfiniteCongruenceSubgroup

The narrow archimedean congruence subgroup is open.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isOpen_narrowInfiniteCongruenceSubgroup :
    IsOpen
      ((narrowInfiniteCongruenceSubgroup (K := K) :
        Subgroup (InfiniteIdeleGroup K)) :
          Set (InfiniteIdeleGroup K))
RayClass.isOpen_infiniteCongruenceSubgroup

The archimedean congruence subgroup selected by a full modulus is open.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isOpen_infiniteCongruenceSubgroup (m : Modulus K) :
    IsOpen
      ((m.infiniteCongruenceSubgroup :
        Subgroup (InfiniteIdeleGroup K)) :
          Set (InfiniteIdeleGroup K))
RayClass.isOpen_ideleCongruenceSubgroup

The idele congruence subgroup I_K^m is open.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isOpen_ideleCongruenceSubgroup (m : Modulus K) :
    IsOpen
      ((m.ideleCongruenceSubgroup :
        Subgroup (IdeleGroup K)) :
          Set (IdeleGroup K))
RayClass.localHigherUnit_norm_sub_one_le

Membership in the n-th local higher-unit group bounds the norm of the difference from one by the n-th power of a uniformizer norm.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem localHigherUnit_norm_sub_one_le
    (v : HeightOneSpectrum (𝓞 K))
    (ϖ : v.adicCompletionIntegers K) (hϖ : Irreducible ϖ)
    (n : ℕ) {x : (v.adicCompletion K)ˣ}
    (hx : x ∈ localHigherUnitGroup v n) :
    ‖(x : v.adicCompletion K) - 1‖ ≤ ‖ϖ‖ ^ n
RayClass.local_irreducible_norm_lt_one

An irreducible element of the valuation ring of a finite completion has norm strictly less than one.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem local_irreducible_norm_lt_one
    (v : HeightOneSpectrum (𝓞 K))
    {ϖ : v.adicCompletionIntegers K} (hϖ : Irreducible ϖ) :
    ‖ϖ‖ < 1
RayClass.exists_localHigherUnitGroup_subset

The higher-unit groups form a neighborhood basis of 1 in a finite local multiplicative group.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem exists_localHigherUnitGroup_subset
    (v : HeightOneSpectrum (𝓞 K))
    {U : Set (v.adicCompletion K)ˣ}
    (hU : U ∈ 𝓝 (1 : (v.adicCompletion K)ˣ)) :
    ∃ n : ℕ,
      (localHigherUnitGroup v n :
        Set (v.adicCompletion K)ˣ) ⊆ U
RayClass.exists_finiteCongruenceSubgroup_subset

Every identity neighborhood in the finite ideles contains a finite congruence subgroup.

Source context 7 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
open scoped Classical in
theorem exists_finiteCongruenceSubgroup_subset
    {U : Set (FiniteIdeleGroup K)}
    (hUopen : IsOpen U) (hUone : (1 : FiniteIdeleGroup K) ∈ U) :
    ∃ m : FiniteModulus K,
      (finiteCongruenceSubgroup m :
        Set (FiniteIdeleGroup K)) ⊆ U
RayClass.realCompletionContinuousMulEquiv

The multiplicative topological equivalence between a real infinite completion and ℝ.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def realCompletionContinuousMulEquiv
    (v : InfinitePlace K) (hv : v.IsReal) :
    v.Completion ≃ₜ* ℝ where
  __ :=
    (InfinitePlace.Completion.ringEquivRealOfIsReal hv).toMulEquiv
  continuous_toFun :=
    (InfinitePlace.Completion.isometryEquivRealOfIsReal hv).continuous
  continuous_invFun :=
    (InfinitePlace.Completion.isometryEquivRealOfIsReal hv).symm.continuous
RayClass.complexCompletionContinuousMulEquiv

The multiplicative topological equivalence between a complex infinite completion and ℂ.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def complexCompletionContinuousMulEquiv
    (v : InfinitePlace K) (hv : v.IsComplex) :
    v.Completion ≃ₜ* ℂ where
  __ :=
    (InfinitePlace.Completion.ringEquivComplexOfIsComplex hv).toMulEquiv
  continuous_toFun :=
    (InfinitePlace.Completion.isometryEquivComplexOfIsComplex hv).continuous
  continuous_invFun :=
    (InfinitePlace.Completion.isometryEquivComplexOfIsComplex hv).symm.continuous
RayClass.positiveRealUnit

A positive real number regarded as a unit.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def positiveRealUnit (x : Set.Ioi (0 : ℝ)) : ℝˣ
RayClass.continuous_positiveRealUnit

The map from positive real numbers to real units is continuous.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem continuous_positiveRealUnit :
    Continuous positiveRealUnit
RayClass.isConnected_infinitePositiveSubgroup

The positive local multiplicative group at an infinite place is connected.

Source context 8 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
open scoped Classical in
omit [NumberField K] in
theorem isConnected_infinitePositiveSubgroup
    (v : InfinitePlace K) :
    IsConnected
      ((infinitePositiveSubgroup v : Subgroup v.Completionˣ) :
        Set v.Completionˣ)
RayClass.isConnected_narrowInfiniteCongruenceSubgroup

The narrow archimedean positivity subgroup is connected.

Source context 7 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
omit [NumberField K] in
theorem isConnected_narrowInfiniteCongruenceSubgroup :
    IsConnected
      ((narrowInfiniteCongruenceSubgroup (K := K) :
        Subgroup (InfiniteIdeleGroup K)) :
          Set (InfiniteIdeleGroup K))
RayClass.realPlaceSign

The sign of a unit at a real infinite place.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def realPlaceSign
    (v : {w : InfinitePlace K // w.IsReal}) :
    v.1.Completionˣ →* SignTypeˣ
RayClass.infiniteSign

The tuple of signs of an infinite idele at all real places.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def infiniteSign :
    InfiniteIdeleGroup K →*
      ((v : {w : InfinitePlace K // w.IsReal}) → SignTypeˣ)
RayClass.infiniteSign_ker_eq_narrowInfiniteCongruenceSubgroup

Positivity at all real places is exactly the kernel of the infinite sign map.

Source context 7 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
omit [NumberField K] in
theorem infiniteSign_ker_eq_narrowInfiniteCongruenceSubgroup :
    (infiniteSign (K := K)).ker =
      narrowInfiniteCongruenceSubgroup (K := K)
RayClass.narrowInfiniteCongruenceSubgroupFiniteIndex

The infinite positivity subgroup has finite index (its quotient is detected by the finitely many real signs).

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance narrowInfiniteCongruenceSubgroupFiniteIndex :
    (narrowInfiniteCongruenceSubgroup (K := K)).FiniteIndex
RayClass.Modulus.infiniteCongruenceSubgroupFiniteIndex

Every selected-real-place congruence subgroup has finite index, because it contains the narrow positivity subgroup.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance Modulus.infiniteCongruenceSubgroupFiniteIndex
    (m : Modulus K) :
    m.infiniteCongruenceSubgroup.FiniteIndex
RayClass.finiteCongruenceSubgroup_le_integralSubgroup

The finite idele congruence subgroup lies in the everywhere-integral finite ideles.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem finiteCongruenceSubgroup_le_integralSubgroup
    (m : FiniteModulus K) :
    finiteCongruenceSubgroup m ≤
      FiniteIdeleGroup.integralSubgroup (K := K)
RayClass.finiteCongruenceSubgroupFiniteRelIndex

Within the compact group of everywhere-integral finite ideles, every finite congruence subgroup has finite index.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance finiteCongruenceSubgroupFiniteRelIndex
    (m : FiniteModulus K) :
    (finiteCongruenceSubgroup m).IsFiniteRelIndex
      (FiniteIdeleGroup.integralSubgroup (K := K))
RayClass.finiteCongruenceSubgroup_antitone

Finite congruence subgroups are contravariant in the finite modulus.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem finiteCongruenceSubgroup_antitone
    {m n : FiniteModulus K} (hmn : m ≤ n) :
    finiteCongruenceSubgroup n ≤ finiteCongruenceSubgroup m
RayClass.Modulus.infiniteCongruenceSubgroup_antitone

Infinite congruence subgroups are contravariant in the selected real places of a full modulus.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem Modulus.infiniteCongruenceSubgroup_antitone
    {m n : Modulus K} (hmn : m ≤ n) :
    n.infiniteCongruenceSubgroup ≤ m.infiniteCongruenceSubgroup
RayClass.Modulus.ideleCongruenceSubgroup_antitone

Idèle congruence subgroups are contravariant in a full modulus.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem Modulus.ideleCongruenceSubgroup_antitone
    {m n : Modulus K} (hmn : m ≤ n) :
    n.ideleCongruenceSubgroup ≤ m.ideleCongruenceSubgroup
RayClass.Modulus.congruenceSubgroup_antitone

Ray congruence subgroups are contravariant in a full modulus.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem Modulus.congruenceSubgroup_antitone
    {m n : Modulus K} (hmn : m ≤ n) :
    n.congruenceSubgroup ≤ m.congruenceSubgroup
RayClass.integralIdeleEquiv

Ideles integral at all finite places split as the infinite ideles times the compact group of integral finite ideles.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def integralIdeleEquiv :
    IdeleGroup.integralAtFinitePlaces (K := K) ≃*
      InfiniteIdeleGroup K ×
        FiniteIdeleGroup.integralSubgroup (K := K) where
  toFun a := (a.1.1, ⟨a.1.2, a.2⟩)
  invFun a := ⟨(a.1, a.2.1), a.2.2⟩
  left_inv a := by
    apply Subtype.ext
    rfl
  right_inv a := rfl
  map_mul' a b := rfl
RayClass.map_ideleCongruenceSubgroup_subgroupOf_integral

Under integralIdeleEquiv, the idele congruence subgroup maps to the product of its infinite and finite congruence factors.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem map_ideleCongruenceSubgroup_subgroupOf_integral (m : Modulus K) :
    ((m.ideleCongruenceSubgroup).subgroupOf
      (IdeleGroup.integralAtFinitePlaces (K := K))).map
        (integralIdeleEquiv (K := K)).toMonoidHom =
      m.infiniteCongruenceSubgroup.prod
        ((finiteCongruenceSubgroup m.finitePart).subgroupOf
          (FiniteIdeleGroup.integralSubgroup (K := K)))
RayClass.ideleCongruenceSubgroupFiniteRelIndex

The idele congruence subgroup has finite relative index in the ideles which are integral at every finite place.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance ideleCongruenceSubgroupFiniteRelIndex
    (m : Modulus K) :
    m.ideleCongruenceSubgroup.IsFiniteRelIndex
      (IdeleGroup.integralAtFinitePlaces (K := K))
RayClass.ordinaryIdealClassSubgroupFiniteIndex

The subgroup defining the ordinary ideal class group has finite index.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance ordinaryIdealClassSubgroupFiniteIndex :
    (IdeleGroup.integralAtFinitePlaces (K := K) ⊔
      IdeleGroup.principalSubgroup K).FiniteIndex
RayClass.ideleCongruenceSupPrincipalFiniteIndex

The subgroup I_K^m Kˣ has finite index in the idele group.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance ideleCongruenceSupPrincipalFiniteIndex
    (m : Modulus K) :
    (m.ideleCongruenceSubgroup ⊔
      IdeleGroup.principalSubgroup K).FiniteIndex
RayClass.isOpen_congruenceSubgroup

The ray congruence subgroup in the idele class group is open.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isOpen_congruenceSubgroup (m : Modulus K) :
    IsOpen
      ((m.congruenceSubgroup :
        Subgroup (IdeleClassGroup K)) :
          Set (IdeleClassGroup K))
RayClass.isClosed_congruenceSubgroup

Every ray congruence subgroup is closed.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isClosed_congruenceSubgroup (m : Modulus K) :
    IsClosed
      ((m.congruenceSubgroup :
        Subgroup (IdeleClassGroup K)) :
          Set (IdeleClassGroup K))
RayClass.congruenceSubgroupFiniteIndex

Every ray congruence subgroup has finite index.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
instance congruenceSubgroupFiniteIndex (m : Modulus K) :
    m.congruenceSubgroup.FiniteIndex
RayClass.narrowInfiniteCongruenceSubgroup_mapsTo_openSubgroup

The image of the connected narrow archimedean positivity subgroup lies in every open subgroup of the idele class group.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem narrowInfiniteCongruenceSubgroup_mapsTo_openSubgroup
    (H : Subgroup (IdeleClassGroup K))
    (hH : IsOpen (H : Set (IdeleClassGroup K)))
    {a : InfiniteIdeleGroup K}
    (ha : a ∈ narrowInfiniteCongruenceSubgroup (K := K)) :
    (((a, (1 : FiniteIdeleGroup K)) : IdeleGroup K) :
      IdeleClassGroup K) ∈ H
RayClass.exists_congruenceSubgroup_le_of_isOpen

Congruence subgroups are cofinal among the open subgroups of the idele class group.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem exists_congruenceSubgroup_le_of_isOpen
    (H : Subgroup (IdeleClassGroup K))
    (hH : IsOpen (H : Set (IdeleClassGroup K))) :
    ∃ m : Modulus K, m.congruenceSubgroup ≤ H
RayClass.chosenModulusInside

A modulus whose ray congruence subgroup lies in the given open subgroup.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def chosenModulusInside
    (H : Subgroup (IdeleClassGroup K))
    (hH : IsOpen (H : Set (IdeleClassGroup K))) :
    Modulus K
RayClass.chosenModulusInside_spec

The chosen modulus has the required subgroup inclusion.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem chosenModulusInside_spec
    (H : Subgroup (IdeleClassGroup K))
    (hH : IsOpen (H : Set (IdeleClassGroup K))) :
    (chosenModulusInside H hH).congruenceSubgroup ≤ H
RayClass.modulusInsideClosedFiniteIndex

Closed finite-index subgroups are open, hence also contain a chosen ray congruence subgroup.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
def modulusInsideClosedFiniteIndex
    (H : Subgroup (IdeleClassGroup K))
    (hclosed : IsClosed (H : Set (IdeleClassGroup K)))
    [H.FiniteIndex] :
    Modulus K
RayClass.modulusInsideClosedFiniteIndex_spec

Specification of the modulus selected for a closed finite-index subgroup.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem modulusInsideClosedFiniteIndex_spec
    (H : Subgroup (IdeleClassGroup K))
    (hclosed : IsClosed (H : Set (IdeleClassGroup K)))
    [H.FiniteIndex] :
    (modulusInsideClosedFiniteIndex H hclosed).congruenceSubgroup ≤ H
RayClass.isClosed_and_finiteIndex_iff_exists_congruenceSubgroup_le

A subgroup of the idele class group is closed of finite index exactly when it contains a ray congruence subgroup.

Source context 6 commands

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

open scoped NumberField RestrictedProduct WithZero
open NumberField IsDedekindDomain
open Topology
noncomputable section
variable {K : Type*} [Field K] [NumberField K]
namespace RayClass
theorem isClosed_and_finiteIndex_iff_exists_congruenceSubgroup_le
    (H : Subgroup (IdeleClassGroup K)) :
    (IsClosed (H : Set (IdeleClassGroup K)) ∧ H.FiniteIndex) ↔
      ∃ m : Modulus K, m.congruenceSubgroup ≤ H