Module

ClassGroup.lean

Nyll.ClassFieldTheory.AlgebraicNumberTheory.Idele.Extension.ClassGroup
10 declarations indexed from sourceView source ↗

Idele classes in finite extensions

The tensor-product model makes the key intersection calculation

I_K ∩ Lˣ = Kˣ

an elementary linear-algebra statement. A linear retraction of K → 𝔸_K shows that an equality a ⊗ 1 = 1 ⊗ x forces both factors to come from the same scalar in K. We then descend the idele inclusion to quotients and prove it injective.

Declarations

RelativeIdeleGroup.exists_scalar_of_adeleInclusion_eq_fieldInclusion

If a base adele and an extension-field element define the same element of 𝔸_K ⊗_K L, then they arise from one scalar of K.

Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
omit [NumberField L] [FiniteDimensional K L] in
theorem exists_scalar_of_adeleInclusion_eq_fieldInclusion
    (a : NumberField.AdeleRing (𝓞 K) K) (x : L)
    (h : adeleInclusion K L a = fieldInclusion K L x) :
    ∃ k : K,
      a = algebraMap K (NumberField.AdeleRing (𝓞 K) K) k ∧
      x = algebraMap K L k
RelativeIdeleGroup.principalSubgroup

The subgroup of principal relative ideles.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
def principalSubgroup :
    Subgroup (RelativeIdeleGroup K L)
RelativeIdeleGroup.ClassGroup

The relative idele class group in the canonical presentation 𝔸_L = 𝔸_K ⊗_K L.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
abbrev ClassGroup
RelativeIdeleGroup.comap_principalSubgroup

The preimage of the principal relative ideles under I_K → I_L is exactly the subgroup of principal ideles of K.

Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
omit [NumberField L] [FiniteDimensional K L] in
theorem comap_principalSubgroup :
    Subgroup.comap (inclusion K L)
        (principalSubgroup K L) =
      IdeleGroup.principalSubgroup K
RelativeIdeleGroup.classInclusion

Inclusion of ideles descends to inclusion of idele classes.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
def classInclusion :
    IdeleClassGroup K →* ClassGroup K L
RelativeIdeleGroup.classInclusion_mk
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
omit [NumberField L] [FiniteDimensional K L] in
theorem classInclusion_mk (a : IdeleGroup K) :
    classInclusion K L
        (QuotientGroup.mk' (IdeleGroup.principalSubgroup K) a) =
      QuotientGroup.mk' (principalSubgroup K L)
        (inclusion K L a)
RelativeIdeleGroup.classNorm

The determinant norm on relative ideles, descended to their relative idele-class presentation.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
def classNorm :
    ClassGroup K L →* IdeleClassGroup K
RelativeIdeleGroup.classNorm_mk
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
omit [NumberField L] in
theorem classNorm_mk
    (a : RelativeIdeleGroup K L) :
    classNorm K L
        (QuotientGroup.mk' (principalSubgroup K L) a) =
      QuotientGroup.mk'
        (IdeleGroup.principalSubgroup K)
        (RelativeIdeleGroup.norm K L a)
RelativeIdeleGroup.ClassNormQuotient

The norm quotient in the relative idele-class presentation.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
abbrev ClassNormQuotient
RelativeIdeleGroup.classInclusion_injective

The scalar-extension map C_K → C_L is injective.

Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
variable
    (K L : Type*) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L]
namespace RelativeIdeleGroup
omit [NumberField L] [FiniteDimensional K L] in
theorem classInclusion_injective :
    Function.Injective (classInclusion K L)