Module

Tower.lean

Nyll.ClassFieldTheory.AlgebraicNumberTheory.Idele.ClassGroup.Tower
49 declarations indexed from sourceView source ↗

Idele-class norms in a field tower

For a tower K ⊂ M ⊂ L, keep the bottom field K fixed and write

𝔸_M = 𝔸_K ⊗[K] M, 𝔸_L = (𝔸_K ⊗[K] M) ⊗[M] L.

This gives an actual norm C_L → C_M whose composite with C_M → C_K is the tower norm. The resulting three concrete norm quotients form a natural right-exact sequence.

Declarations

The canonical right-factor M-algebra structure on 𝔸_K ⊗[K] M.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
instance (priority := 100)
    relativeAdeleRingIntermediateAlgebra :
    Algebra M (RelativeAdeleRing K M)

The relative adele algebra of L, presented over the intermediate field while retaining the fixed bottom-field model of 𝔸_M.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
abbrev TowerRelativeAdeleRing

The intermediate field acts on the one-step bottom-field model 𝔸_K ⊗[K] L through its embedding in L.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
instance (priority := 100)
    relativeAdeleRingTopIntermediateAlgebra :
    Algebra M (RelativeAdeleRing K L)

Extend the intermediate relative adele algebra along M → L.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def intermediateAdeleInclusion :
    RelativeAdeleRing K M →ₐ[M]
      RelativeAdeleRing K L where
  __ :=
    (Algebra.TensorProduct.map
      (AlgHom.id
        (NumberField.AdeleRing (𝓞 K) K)
        (NumberField.AdeleRing (𝓞 K) K))
      (IsScalarTower.toAlgHom K M L)).toRingHom
  commutes' m := by
    change
      1 ⊗ₜ[K] algebraMap M L m =
        1 ⊗ₜ[K] algebraMap M L m
    rfl
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem intermediateAdeleInclusion_tmul
    (a : NumberField.AdeleRing (𝓞 K) K)
    (m : M) :
    intermediateAdeleInclusion K M L (a ⊗ₜ[K] m) =
      a ⊗ₜ[K] algebraMap M L m

The copy of L in the one-step relative adele algebra, regarded as an M-algebra map.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def topFieldToOneStep :
    L →ₐ[M] RelativeAdeleRing K L where
  __ :=
    (Algebra.TensorProduct.includeRight
      (R := K)
      (A := NumberField.AdeleRing (𝓞 K) K)
      (B := L)).toRingHom
  commutes' _ := rfl
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
omit [NumberField M] [NumberField L] [Algebra K M]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem topFieldToOneStep_apply
    (x : L) :
    topFieldToOneStep K M L x =
      (1 : NumberField.AdeleRing (𝓞 K) K) ⊗ₜ[K] x

Canonical ring equivalence (𝔸_K ⊗[K] M) ⊗[M] L ≃+* 𝔸_K ⊗[K] L.

This is the standard tensor-product cancellation isomorphism: commute the two outer factors, commute the inner scalar extension, cancel the base change, and commute the remaining factors back.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def towerRelativeAdeleRingEquiv :
    TowerRelativeAdeleRing K M L ≃+*
      RelativeAdeleRing K L

Flatten the iterated scalar extension (𝔸_K ⊗[K] M) ⊗[M] L to 𝔸_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
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def towerRelativeAdeleFlatten :
    TowerRelativeAdeleRing K M L →ₐ[M]
      RelativeAdeleRing K L
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem towerRelativeAdeleFlatten_tmul
    (b : RelativeAdeleRing K M)
    (x : L) :
    towerRelativeAdeleFlatten K M L (b ⊗ₜ[M] x) =
      intermediateAdeleInclusion K M L b *
        topFieldToOneStep K M L x

Embed the bottom adele algebra into the iterated tensor model.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def bottomAdeleToTower :
    NumberField.AdeleRing (𝓞 K) K →ₐ[K]
      TowerRelativeAdeleRing K M L
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
omit [NumberField M] [NumberField L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem bottomAdeleToTower_apply
    (a : NumberField.AdeleRing (𝓞 K) K) :
    bottomAdeleToTower K M L a =
      (a ⊗ₜ[K] (1 : M)) ⊗ₜ[M] (1 : L)

Embed L into the iterated tensor model.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def topFieldToTower :
    L →ₐ[K] TowerRelativeAdeleRing K M L
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem topFieldToTower_apply
    (x : L) :
    topFieldToTower K M L x =
      (1 : RelativeAdeleRing K M) ⊗ₜ[M] x

Expand the one-step tensor model back to the iterated tower model.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def towerRelativeAdeleUnflatten :
    RelativeAdeleRing K L →ₐ[K]
      TowerRelativeAdeleRing K M L
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem towerRelativeAdeleUnflatten_tmul
    (a : NumberField.AdeleRing (𝓞 K) K)
    (x : L) :
    towerRelativeAdeleUnflatten K M L (a ⊗ₜ[K] x) =
      bottomAdeleToTower K M L a *
        topFieldToTower K M L x

The flattening equivalence as an equivalence over the bottom adele ring. This is the form needed for invariance of determinant norms.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def towerRelativeAdeleAlgEquiv :
    TowerRelativeAdeleRing K M L ≃ₐ[
      NumberField.AdeleRing (𝓞 K) K]
      RelativeAdeleRing K L

Unit group of the tower presentation of the relative adeles of L.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
abbrev TowerRelativeIdeleGroup

The canonical equivalence from the tower presentation of the relative ideles of L to the one-step presentation over K.

Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
def towerRelativeIdeleEquiv :
    TowerRelativeIdeleGroup K M L ≃*
      RelativeIdeleGroup K L
Source context 5 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
instance : IsMulCommutative (TowerRelativeIdeleGroup K M L)
Source context 6 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L)
Source context 7 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
instance : IsMulCommutative (IdeleClassGroup K)
TowerRelativeIdeleGroup.principalIdele

The diagonal copy of Lˣ in the tower relative idele group.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
def principalIdele :
    Lˣ →* TowerRelativeIdeleGroup K M L
TowerRelativeIdeleGroup.towerRelativeIdeleEquiv_principalIdele

Flattening the tower presentation preserves the diagonal copy of Lˣ.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem towerRelativeIdeleEquiv_principalIdele
    (x : Lˣ) :
    towerRelativeIdeleEquiv K M L
        (principalIdele K M L x) =
      RelativeIdeleGroup.principalIdele K L x
TowerRelativeIdeleGroup.principalSubgroup

Principal ideles in the tower presentation.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
def principalSubgroup :
    Subgroup (TowerRelativeIdeleGroup K M L)
TowerRelativeIdeleGroup.ClassGroup

The idele class group of L in the tower presentation.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
abbrev ClassGroup
TowerRelativeIdeleGroup.principalSubgroup_map_towerRelativeIdeleEquiv

The canonical equivalence maps tower principal ideles exactly onto the one-step principal-ideles subgroup.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem principalSubgroup_map_towerRelativeIdeleEquiv :
    (principalSubgroup K M L).map
        (towerRelativeIdeleEquiv K M L) =
      RelativeIdeleGroup.principalSubgroup K L
TowerRelativeIdeleGroup.classGroupEquiv

Canonical equivalence between the tower and one-step presentations of the relative idele class group of L.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
def classGroupEquiv :
    ClassGroup K M L ≃*
      RelativeIdeleGroup.ClassGroup K L
TowerRelativeIdeleGroup.classGroupEquiv_mk
Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L]
    [FiniteDimensional K M] [FiniteDimensional M L] in
theorem classGroupEquiv_mk
    (a : TowerRelativeIdeleGroup K M L) :
    classGroupEquiv K M L
        (QuotientGroup.mk' (principalSubgroup K M L) a) =
      QuotientGroup.mk'
        (RelativeIdeleGroup.principalSubgroup K L)
        (towerRelativeIdeleEquiv K M L a)
TowerRelativeIdeleGroup.norm

Determinant norm from the tower presentation of 𝔸_L to 𝔸_M = 𝔸_K ⊗[K] M.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
def norm :
    TowerRelativeIdeleGroup K M L →*
      RelativeIdeleGroup K M
TowerRelativeIdeleGroup.norm_transitive_flatten

Transitivity of determinant norms, after flattening the tower presentation to the one-step presentation.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L] in
theorem norm_transitive_flatten
    (a : TowerRelativeIdeleGroup K M L) :
    RelativeIdeleGroup.norm K M (norm K M L a) =
      RelativeIdeleGroup.norm K L
        (towerRelativeIdeleEquiv K M L a)
TowerRelativeIdeleGroup.norm_fieldInclusion

Base change of the field norm from M to the relative adele algebra 𝔸_K ⊗[K] M.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L]
    [FiniteDimensional K M] in
theorem norm_fieldInclusion
    (x : L) :
    Algebra.norm (RelativeAdeleRing K M)
        (Algebra.TensorProduct.includeRight
          (R := M) (A := RelativeAdeleRing K M) (B := L) x) =
      algebraMap M (RelativeAdeleRing K M)
        (Algebra.norm M x)
TowerRelativeIdeleGroup.norm_principalIdele

The tower idele norm carries a principal idele to the principal idele of the field norm.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L]
    [FiniteDimensional K M] in
theorem norm_principalIdele
    (x : Lˣ) :
    norm K M L (principalIdele K M L x) =
      RelativeIdeleGroup.principalIdele K M
        (Units.map (Algebra.norm M) x)
TowerRelativeIdeleGroup.classNorm

The tower norm descended to actual idele class groups.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
def classNorm :
    ClassGroup K M L →*
      RelativeIdeleGroup.ClassGroup K M
TowerRelativeIdeleGroup.classNorm_mk
Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
namespace TowerRelativeIdeleGroup
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L]
    [FiniteDimensional K M] in
theorem classNorm_mk
    (a : TowerRelativeIdeleGroup K M L) :
    classNorm K M L
        (QuotientGroup.mk'
          (principalSubgroup K M L) a) =
      QuotientGroup.mk'
        (RelativeIdeleGroup.principalSubgroup K M)
        (norm K M L a)

The norm quotient C_M / N_{L/M} C_L in the fixed-bottom-field tower model.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
abbrev IntermediateClassNormQuotient

The composite class norm C_L → C_M → C_K in the tower model.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
def towerCompositeClassNorm :
    TowerRelativeIdeleGroup.ClassGroup K M L →*
      IdeleClassGroup K

After identifying the tower presentation with the one-step presentation, the composite tower norm is the ordinary class norm from L to K.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] in
theorem towerCompositeClassNorm_eq_ideleClassNorm
    (c : TowerRelativeIdeleGroup.ClassGroup K M L) :
    towerCompositeClassNorm K M L c =
      RelativeIdeleGroup.classNorm K L
        (TowerRelativeIdeleGroup.classGroupEquiv K M L c)

The tower composite norm and the ordinary one-step norm have the same subgroup of norms in C_K.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] in
theorem towerCompositeClassNorm_range_eq :
    (towerCompositeClassNorm K M L).range =
      (RelativeIdeleGroup.classNorm K L).range

The corresponding concrete quotient C_K / N_{L/K} C_L, before identifying the tower presentation of C_L with the one-step presentation.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
abbrev TowerCompositeClassNormQuotient

Canonical identification of the tower composite norm quotient with the existing one-step norm quotient C_K / N_{L/K}C_L.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
def towerCompositeClassNormQuotientEquiv :
    TowerCompositeClassNormQuotient K M L ≃*
      RelativeIdeleGroup.ClassNormQuotient K L

The norm-induced first map

C_M / N_{L/M}C_L → C_K / N_{L/K}C_L.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
def intermediateToCompositeNormQuotient :
    IntermediateClassNormQuotient K M L →*
      TowerCompositeClassNormQuotient K M L

The quotient map

C_K / N_{L/K}C_L → C_K / N_{M/K}C_M.

Source context 9 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
def compositeToBaseNormQuotient :
    TowerCompositeClassNormQuotient K M L →*
      RelativeIdeleGroup.ClassNormQuotient K M
Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L] in
theorem intermediateToCompositeNormQuotient_mk
    (c : RelativeIdeleGroup.ClassGroup K M) :
    intermediateToCompositeNormQuotient K M L
        (QuotientGroup.mk'
          (TowerRelativeIdeleGroup.classNorm K M L).range c) =
      QuotientGroup.mk'
        (towerCompositeClassNorm K M L).range
        (RelativeIdeleGroup.classNorm K M c)
Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L] in
theorem compositeToBaseNormQuotient_mk
    (c : IdeleClassGroup K) :
    compositeToBaseNormQuotient K M L
        (QuotientGroup.mk'
          (towerCompositeClassNorm K M L).range c) =
      QuotientGroup.mk'
        (RelativeIdeleGroup.classNorm K M).range c

Exactness of the concrete tower norm-quotient sequence.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L] in
theorem intermediateToCompositeNormQuotient_range_eq_ker :
    MonoidHom.range
        (intermediateToCompositeNormQuotient K M L) =
      MonoidHom.ker
        (compositeToBaseNormQuotient K M L)

The last map in the tower norm-quotient sequence is onto.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L] in
theorem compositeToBaseNormQuotient_surjective :
    Function.Surjective
      (compositeToBaseNormQuotient K M L)

Cardinal bound supplied by the actual right-exact tower sequence:

#(C_K / N_{L/K}C_L) ≤ #(C_M / N_{L/M}C_L) · #(C_K / N_{M/K}C_M).

Only finiteness of the two outer quotients is required; finiteness of the middle quotient is constructed from exactness.

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] [NumberField L] [Algebra K L] [IsScalarTower K M L] in
theorem towerCompositeClassNormQuotient_card_le_mul
    [Finite (IntermediateClassNormQuotient K M L)]
    [Finite (RelativeIdeleGroup.ClassNormQuotient K M)] :
    Nat.card (TowerCompositeClassNormQuotient K M L) ≤
      Nat.card (IntermediateClassNormQuotient K M L) *
        Nat.card (RelativeIdeleGroup.ClassNormQuotient K M)

The tower cardinal bound in the standard one-step presentation:

#(C_K / N_{L/K}C_L) ≤ #(C_M / N_{L/M}C_L) · #(C_K / N_{M/K}C_M).

Source context 10 commands

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

open scoped NumberField TensorProduct
open NumberField
noncomputable section
universe u
variable
    (K M L : Type u)
    [Field K] [NumberField K]
    [Field M] [NumberField M]
    [Field L] [NumberField L]
    [Algebra K M] [Algebra M L] [Algebra K L]
    [IsScalarTower K M L]
    [FiniteDimensional K M] [FiniteDimensional M L]
local instance : IsMulCommutative (TowerRelativeIdeleGroup K M L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (RelativeIdeleGroup.ClassGroup K L) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance : IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
section NormQuotientSequence
omit [NumberField M] in
theorem ideleClassNormQuotient_card_le_mul
    [Finite (IntermediateClassNormQuotient K M L)]
    [Finite (RelativeIdeleGroup.ClassNormQuotient K M)] :
    Nat.card (RelativeIdeleGroup.ClassNormQuotient K L) ≤
      Nat.card (IntermediateClassNormQuotient K M L) *
        Nat.card (RelativeIdeleGroup.ClassNormQuotient K M)