Module

Herbrand.lean

Nyll.ClassFieldTheory.AlgebraicNumberTheory.Idele.Cohomology.Herbrand
32 declarations indexed from sourceView source ↗

Herbrand cohomology of the relative idele class group

This file realizes the low-degree exact sequence on the actual relative idele group

1 → Lˣ → I_L → C_L → 1.

The Galois actions are the concrete conjugation actions from the tensor-product model of relative adeles. The class norm is descended from the determinant norm on relative ideles, and its relation with the Tate norm is proved from the Galois product formula.

Declarations

RelativeIdeleGroup.Cohomology.relativeIdeleMulDistribMulAction

The natural Galois action on relative ideles, upgraded from the existing multiplicative action to an action by group automorphisms.

Source context 8 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
def relativeIdeleMulDistribMulAction :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) where
  __ := RelativeIdeleGroup.relativeIdeleMulAction K L
  smul_one σ :=
    map_one (RelativeIdeleGroup.conjugationIdele K L σ)
  smul_mul σ a b :=
    map_mul
      (RelativeIdeleGroup.conjugationIdele K L σ) a b
RelativeIdeleGroup.Cohomology.principalRelativeIdele_smul_mem
Source context 9 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem principalRelativeIdele_smul_mem
    (σ : L ≃ₐ[K] L)
    (a : RelativeIdeleGroup K L)
    (ha :
      a ∈ RelativeIdeleGroup.principalSubgroup K L) :
    σ • a ∈
      RelativeIdeleGroup.principalSubgroup K L
RelativeIdeleGroup.Cohomology.ideleClassMulDistribMulAction

The actual quotient Galois action on the relative idele class group, upgraded to an action by group automorphisms.

Source context 8 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
def ideleClassMulDistribMulAction :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L)
RelativeIdeleGroup.Cohomology.principalIdeleMulDistribMulAction

The restricted Galois action on the actual subgroup of principal relative ideles.

Source context 8 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
def principalIdeleMulDistribMulAction :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L)
RelativeIdeleGroup.Cohomology.ideleClassNorm

The norm on relative ideles, descended through principal ideles to the actual idele class groups.

Source context 8 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
def ideleClassNorm :
    RelativeIdeleGroup.ClassGroup K L →*
      IdeleClassGroup K
RelativeIdeleGroup.Cohomology.ideleClassNorm_mk
Source context 9 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
omit [NumberField L] [IsGalois K L] in
theorem ideleClassNorm_mk
    (a : RelativeIdeleGroup K L) :
    ideleClassNorm K L
        (QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L) a) =
      QuotientGroup.mk'
        (IdeleGroup.principalSubgroup K)
        (RelativeIdeleGroup.norm K L a)
RelativeIdeleGroup.Cohomology.IdeleClassNormQuotient

The concrete norm quotient C_K / N_{L/K} C_L.

Source context 8 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
abbrev IdeleClassNormQuotient
Source context 9 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L)
Source context 10 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L)
Source context 11 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L)
RelativeIdeleGroup.Cohomology.relativeIdele_smul_def
Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem relativeIdele_smul_def
    (σ : L ≃ₐ[K] L)
    (a : RelativeIdeleGroup K L) :
    σ • a =
      RelativeIdeleGroup.conjugationIdele K L σ a
RelativeIdeleGroup.Cohomology.ideleClass_smul_mk
Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem ideleClass_smul_mk
    (σ : L ≃ₐ[K] L)
    (a : RelativeIdeleGroup K L) :
    σ • QuotientGroup.mk'
        (RelativeIdeleGroup.principalSubgroup K L) a =
      QuotientGroup.mk'
        (RelativeIdeleGroup.principalSubgroup K L)
        (σ • a)
RelativeIdeleGroup.Cohomology.principalIdele_smul_coe
Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem principalIdele_smul_coe
    (σ : L ≃ₐ[K] L)
    (a :
      RelativeIdeleGroup.principalSubgroup K L) :
    ((σ • a :
        RelativeIdeleGroup.principalSubgroup K L) :
      RelativeIdeleGroup K L) =
        σ • (a : RelativeIdeleGroup K L)
RelativeIdeleGroup.Cohomology.principalIdeleSubtype_equivariant

Equivariance of the principal-idele inclusion.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem principalIdeleSubtype_equivariant :
    ∀ (σ : L ≃ₐ[K] L)
      (a : RelativeIdeleGroup.principalSubgroup K L),
      (RelativeIdeleGroup.principalSubgroup K L).subtype
          (σ • a) =
        σ •
          (RelativeIdeleGroup.principalSubgroup K L).subtype
            a
RelativeIdeleGroup.Cohomology.ideleClassQuotientMap_equivariant

Equivariance of the actual quotient map I_L → C_L.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem ideleClassQuotientMap_equivariant :
    ∀ (σ : L ≃ₐ[K] L)
      (a : RelativeIdeleGroup K L),
      QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L)
          (σ • a) =
        σ • QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L) a
RelativeIdeleGroup.Cohomology.relativeIdele_tateNorm_eq_inclusion_norm

On relative ideles the Tate norm is the inclusion of the determinant norm. This is the Galois product formula, not a separate class-field hypothesis.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] in
theorem relativeIdele_tateNorm_eq_inclusion_norm
    (a : RelativeIdeleGroup K L) :
    tateNorm (L ≃ₐ[K] L)
        (RelativeIdeleGroup K L) a =
      RelativeIdeleGroup.inclusion K L
        (RelativeIdeleGroup.norm K L a)
RelativeIdeleGroup.Cohomology.classInclusion_ideleClassNorm_eq_tateNorm

The class norm agrees, after Galois descent, with the Tate norm on the actual relative idele class group.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] in
theorem classInclusion_ideleClassNorm_eq_tateNorm
    (c : RelativeIdeleGroup.ClassGroup K L) :
    RelativeIdeleGroup.classInclusion K L
        (ideleClassNorm K L c) =
      tateNorm (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L) c
RelativeIdeleGroup.Cohomology.ideleClass_fixedSubgroup_eq_galoisFixed

The fixed subgroup used by Tate cohomology is the concrete Galois-fixed subgroup from idele-class descent.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem ideleClass_fixedSubgroup_eq_galoisFixed :
    fixedSubgroup (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L) =
      RelativeIdeleGroup.galoisFixedClassSubgroup K L
RelativeIdeleGroup.Cohomology.baseIdeleClassToFixed

Galois descent as a homomorphism from the base idele class group to the Tate fixed subgroup.

Source context 12 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
def baseIdeleClassToFixed :
    IdeleClassGroup K →*
      fixedSubgroup (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L)
RelativeIdeleGroup.Cohomology.baseIdeleClassToFixed_coe
Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem baseIdeleClassToFixed_coe
    (c : IdeleClassGroup K) :
    ((baseIdeleClassToFixed K L c :
        fixedSubgroup (L ≃ₐ[K] L)
          (RelativeIdeleGroup.ClassGroup K L)) :
      RelativeIdeleGroup.ClassGroup K L) =
        RelativeIdeleGroup.classInclusion K L c
RelativeIdeleGroup.Cohomology.baseIdeleClassEquivFixed

Galois descent packaged as the multiplicative equivalence C_K ≃ C_L^G required by the H⁰ calculation.

Source context 12 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
def baseIdeleClassEquivFixed :
    IdeleClassGroup K ≃*
      fixedSubgroup (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L)
RelativeIdeleGroup.Cohomology.baseIdeleClassEquivFixed_coe
Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] in
theorem baseIdeleClassEquivFixed_coe
    (c : IdeleClassGroup K) :
    ((baseIdeleClassEquivFixed K L c :
        fixedSubgroup (L ≃ₐ[K] L)
          (RelativeIdeleGroup.ClassGroup K L)) :
      RelativeIdeleGroup.ClassGroup K L) =
        RelativeIdeleGroup.classInclusion K L c
RelativeIdeleGroup.Cohomology.ideleClassNorm_range_map_equivFixed

Under Galois descent, the image of the class norm is exactly the Tate-norm subgroup of the fixed idele classes.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] in
theorem ideleClassNorm_range_map_equivFixed :
    (ideleClassNorm K L).range.map
        (baseIdeleClassEquivFixed K L).toMonoidHom =
      (tateNormSubgroup (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L)).subgroupOf
          (fixedSubgroup (L ≃ₐ[K] L)
            (RelativeIdeleGroup.ClassGroup K L))
RelativeIdeleGroup.Cohomology.ideleClass_normKernelSubgroup_eq_ker

The Tate norm kernel on idele classes is the kernel of the descended idele-class norm. Injectivity of C_K → C_L is the descent input.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] in
theorem ideleClass_normKernelSubgroup_eq_ker :
    normKernelSubgroup (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L) =
      MonoidHom.ker (ideleClassNorm K L)
RelativeIdeleGroup.Cohomology.ideleClassHerbrandHMinusOneEquiv

The negative-first Tate group for the actual idele class module, displayed as norm-one classes modulo augmentation classes.

Source context 12 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
def ideleClassHerbrandHMinusOneEquiv
    (σ : L ≃ₐ[K] L) :
    HerbrandHMinusOne (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L) σ ≃*
      normKernelSubgroup (L ≃ₐ[K] L)
          (RelativeIdeleGroup.ClassGroup K L) ⧸
        (augmentationSubgroup (L ≃ₐ[K] L)
          (RelativeIdeleGroup.ClassGroup K L) σ).subgroupOf
            (normKernelSubgroup (L ≃ₐ[K] L)
              (RelativeIdeleGroup.ClassGroup K L))
RelativeIdeleGroup.Cohomology.ideleClassNormQuotient_baseIsMulCommutative
Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
section NormQuotientIdentification
instance ideleClassNormQuotient_baseIsMulCommutative :
    IsMulCommutative (IdeleClassGroup K)
RelativeIdeleGroup.Cohomology.ideleClassHerbrandH0EquivNormQuotient

The degree-zero Tate group of the actual idele class group is the class-norm quotient C_K / N_{L/K} C_L.

Source context 14 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
section NormQuotientIdentification
local instance ideleClassNormQuotient_baseIsMulCommutative :
    IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
def ideleClassHerbrandH0EquivNormQuotient :
    HerbrandH0 (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L) ≃*
      IdeleClassNormQuotient K L
RelativeIdeleGroup.Cohomology.ideleClassNorm_index_eq_herbrandH0_card

The norm index is the cardinality of the actual degree-zero Tate cohomology group. This statement is valid without silently assigning a positive finite index to an infinite quotient.

Source context 15 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
section NormQuotientIdentification
local instance ideleClassNormQuotient_baseIsMulCommutative :
    IsMulCommutative (IdeleClassGroup K) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
omit [NumberField L] in
theorem ideleClassNorm_index_eq_herbrandH0_card :
    (ideleClassNorm K L).range.index =
      Nat.card
        (HerbrandH0 (L ≃ₐ[K] L)
          (RelativeIdeleGroup.ClassGroup K L))
RelativeIdeleGroup.Cohomology.principalIdele_ideleClass_exact

Exactness at I_L of Lˣ → I_L → C_L.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem principalIdele_ideleClass_exact :
    ∀ a : RelativeIdeleGroup K L,
      QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L) a = 1 ↔
        ∃ p : RelativeIdeleGroup.principalSubgroup K L,
          (RelativeIdeleGroup.principalSubgroup K L).subtype p =
            a
RelativeIdeleGroup.Cohomology.principalIdele_ideleClass_shortExact

The complete short-exactness data for the actual principal-idele inclusion and idele-class quotient.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [FiniteDimensional K L] [IsGalois K L] in
theorem principalIdele_ideleClass_shortExact :
    (∀ (σ : L ≃ₐ[K] L)
      (p : RelativeIdeleGroup.principalSubgroup K L),
      (RelativeIdeleGroup.principalSubgroup K L).subtype
          (σ • p) =
        σ •
          (RelativeIdeleGroup.principalSubgroup K L).subtype p) ∧
    (∀ (σ : L ≃ₐ[K] L)
      (a : RelativeIdeleGroup K L),
      QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L)
          (σ • a) =
        σ • QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L) a) ∧
    (∀ a : RelativeIdeleGroup K L,
      QuotientGroup.mk'
          (RelativeIdeleGroup.principalSubgroup K L) a = 1 ↔
        ∃ p : RelativeIdeleGroup.principalSubgroup K L,
          (RelativeIdeleGroup.principalSubgroup K L).subtype p =
            a) ∧
    Function.Injective
      (RelativeIdeleGroup.principalSubgroup K L).subtype ∧
    Function.Surjective
      (QuotientGroup.mk'
        (RelativeIdeleGroup.principalSubgroup K L))
RelativeIdeleGroup.Cohomology.relativeIdele_herbrandQuotient_eq_principal_mul_class

Herbrand-quotient multiplicativity for the actual exact sequence 1 → Lˣ → I_L → C_L → 1.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [IsGalois K L] in
theorem relativeIdele_herbrandQuotient_eq_principal_mul_class
    (σ : L ≃ₐ[K] L)
    (hgen : ∀ τ : L ≃ₐ[K] L,
      τ ∈ Subgroup.zpowers σ)
    [Finite
      (HerbrandH0 (L ≃ₐ[K] L)
        (RelativeIdeleGroup.principalSubgroup K L))]
    [Finite
      (HerbrandHMinusOne (L ≃ₐ[K] L)
        (RelativeIdeleGroup.principalSubgroup K L) σ)]
    [Finite
      (HerbrandH0 (L ≃ₐ[K] L)
        (RelativeIdeleGroup K L))]
    [Finite
      (HerbrandHMinusOne (L ≃ₐ[K] L)
        (RelativeIdeleGroup K L) σ)]
    [Finite
      (HerbrandH0 (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L))]
    [Finite
      (HerbrandHMinusOne (L ≃ₐ[K] L)
        (RelativeIdeleGroup.ClassGroup K L) σ)] :
    herbrandQuotient
        (G := L ≃ₐ[K] L)
        (A := RelativeIdeleGroup K L) σ =
      herbrandQuotient
          (G := L ≃ₐ[K] L)
          (A :=
            RelativeIdeleGroup.principalSubgroup K L) σ *
        herbrandQuotient
          (G := L ≃ₐ[K] L)
          (A := RelativeIdeleGroup.ClassGroup K L) σ
RelativeIdeleGroup.Cohomology.ideleClassHerbrandQuotientDefined_of_principal_relative

Once the Herbrand quotients of principal ideles and relative ideles have been computed, the actual idele-class quotient is automatically defined and satisfies the multiplicativity identity. This is the connection point for the unrestricted local-factor and S-unit calculations.

Source context 13 commands

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

open scoped BigOperators NumberField
open NumberField
noncomputable section
open CyclicCohomology.ProfiniteCohomology.Herbrand
open CyclicCohomology
namespace RelativeIdeleGroup
namespace Cohomology
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
    [FiniteDimensional K L] [IsGalois K L]
section Actions
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup K L) :=
  relativeIdeleMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.ClassGroup K L) :=
  ideleClassMulDistribMulAction K L
local instance :
    MulDistribMulAction (L ≃ₐ[K] L)
      (RelativeIdeleGroup.principalSubgroup K L) :=
  principalIdeleMulDistribMulAction K L
omit [NumberField L] [IsGalois K L] in
theorem ideleClassHerbrandQuotientDefined_of_principal_relative
    (σ : L ≃ₐ[K] L)
    (hgen : ∀ τ : L ≃ₐ[K] L,
      τ ∈ Subgroup.zpowers σ)
    [Finite
      (HerbrandH0 (L ≃ₐ[K] L)
        (RelativeIdeleGroup.principalSubgroup K L))]
    [Finite
      (HerbrandHMinusOne (L ≃ₐ[K] L)
        (RelativeIdeleGroup.principalSubgroup K L) σ)]
    [Finite
      (HerbrandH0 (L ≃ₐ[K] L)
        (RelativeIdeleGroup K L))]
    [Finite
      (HerbrandHMinusOne (L ≃ₐ[K] L)
        (RelativeIdeleGroup K L) σ)] :
    ∃ hC :
        HerbrandQuotientDefined
          (L ≃ₐ[K] L)
          (RelativeIdeleGroup.ClassGroup K L) σ,
      herbrandQuotient
          (G := L ≃ₐ[K] L)
          (A := RelativeIdeleGroup K L) σ =
        herbrandQuotient
            (G := L ≃ₐ[K] L)
            (A :=
              RelativeIdeleGroup.principalSubgroup K L) σ *
          @herbrandQuotient
            (L ≃ₐ[K] L)
            (RelativeIdeleGroup.ClassGroup K L)
            inferInstance inferInstance inferInstance
            (ideleClassMulDistribMulAction K L)
            σ hC.1 hC.2