Module

AbstractFixedFieldGlobalNormResidue.lean

Nyll.ClassFieldTheory.GlobalClassFieldTheory.Reciprocity.AbstractFixedFieldGlobalNormResidue
85 declarations indexed from sourceView source ↗

Global norm residue on actual fixed fields

An abstract finite abelian subextension of the rational absolute Galois group determines an actual finite abelian extension between its two fixed number fields. This file transports the abstract norm-residue symbol directly to the ordinary idele-class norm quotient of those fixed fields.

Keeping this construction in one ambient separable closure is essential for the norm--restriction diagrams: no independently chosen embedding of either field is introduced.

Declarations

GlobalClassFieldTheory.Reciprocity.rationalEmbeddingSeparableClosureAlgebra

The algebra structure on the rational separable closure induced by a specified rational field embedding. It is deliberately not an instance: different embeddings of the same field need not induce definitionally equal algebra structures.

Source context 11 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
def rationalEmbeddingSeparableClosureAlgebra
    {F : Type} [Field F] [Algebra ℚ F]
    (i : F →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra F (SeparableClosure ℚ)
GlobalClassFieldTheory.Reciprocity.exists_numberFieldEmbeddingComparisonAutomorphism

Two rational embeddings of the same number field into the fixed rational separable closure differ by an automorphism of that separable closure.

Source context 11 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
theorem exists_numberFieldEmbeddingComparisonAutomorphism
    {F : Type} [Field F] [NumberField F]
    (i j : F →ₐ[ℚ] SeparableClosure ℚ) :
    ∃ σ : SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ,
      ∀ x : F, σ (i x) = j x
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddingComparisonAutomorphism

The canonical comparison automorphism between two rational embeddings of one number field into the fixed separable closure.

Source context 11 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
def numberFieldEmbeddingComparisonAutomorphism
    {F : Type} [Field F] [NumberField F]
    (i j : F →ₐ[ℚ] SeparableClosure ℚ) :
    SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddingComparisonAutomorphism_apply

The comparison automorphism carries the first embedded copy of the number field to the second one pointwise.

Source context 11 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
theorem numberFieldEmbeddingComparisonAutomorphism_apply
    {F : Type} [Field F] [NumberField F]
    (i j : F →ₐ[ℚ] SeparableClosure ℚ)
    (x : F) :
    numberFieldEmbeddingComparisonAutomorphism i j (i x) =
      j x
GlobalClassFieldTheory.Reciprocity.conjugateClosedFixingSubgroup_embeddingRange

Conjugating the fixing subgroup of one embedded copy of a number field by the comparison automorphism gives the fixing subgroup of the other embedded copy.

Source context 11 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
theorem conjugateClosedFixingSubgroup_embeddingRange
    {F : Type} [Field F] [NumberField F]
    (i j : F →ₐ[ℚ] SeparableClosure ℚ) :
    conjugateClosedSubgroup
        (RamificationTheory.closedFixingSubgroup
          ℚ (SeparableClosure ℚ) i.fieldRange)
        (numberFieldEmbeddingComparisonAutomorphism j i) =
      RamificationTheory.closedFixingSubgroup
        ℚ (SeparableClosure ℚ) j.fieldRange
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedIdeleClassGroupIsMulCommutative
Source context 12 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedIdeleClassSubgroupNormal
Source context 13 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedLowerEmbedding

The lower embedding obtained by restricting an explicitly supplied embedding of the top field into the rational separable closure.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
def numberFieldEmbeddedLowerEmbedding
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    K →ₐ[ℚ] SeparableClosure ℚ
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedSeparableClosureAlgebra

The exact algebra structure on the rational separable closure induced by the lower embedding of an explicitly embedded number-field tower. Keeping this as a reducible definition lets every use of the associated separable- closure equivalence share one definitionally identical algebra structure.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
def numberFieldEmbeddedSeparableClosureAlgebra
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra K (SeparableClosure ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedBaseSubgroup

The fixing subgroup of the explicitly embedded lower field.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
abbrev numberFieldEmbeddedBaseSubgroup
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    ClosedSubgroup
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedTopSubgroup

The fixing subgroup of the explicitly embedded top field.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
abbrev numberFieldEmbeddedTopSubgroup
    (_K L : Type) [Field L] [NumberField L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    ClosedSubgroup
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedTopSubgroup_le_baseSubgroup

The top fixing subgroup lies in the lower fixing subgroup.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
theorem numberFieldEmbeddedTopSubgroup_le_baseSubgroup
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (numberFieldEmbeddedTopSubgroup K L j).toSubgroup ≤
      (numberFieldEmbeddedBaseSubgroup K L j).toSubgroup
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedSeparableClosureEquiv

The separable closure of the actual lower field, identified with the rational separable closure carrying the algebra structure induced by an explicit compatible embedding.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
def numberFieldEmbeddedSeparableClosureEquiv
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    letI : Algebra K (SeparableClosure ℚ) :=
      numberFieldEmbeddedSeparableClosureAlgebra K L j
    SeparableClosure K ≃ₐ[K] SeparableClosure ℚ := by
  letI : Algebra K (SeparableClosure ℚ) :=
    numberFieldEmbeddedSeparableClosureAlgebra K L j
  letI hScalarTower : IsScalarTower ℚ K (SeparableClosure ℚ) :=
    IsScalarTower.of_algebraMap_eq'
      (numberFieldEmbeddedLowerEmbedding K L j).comp_algebraMap.symm
  letI hseparable : Algebra.IsSeparable K (SeparableClosure ℚ) :=
    Algebra.isSeparable_tower_top_of_isSeparable
      ℚ K (SeparableClosure ℚ)
  letI hSepClosure : IsSepClosure K (SeparableClosure ℚ) :=
    ⟨IsSepClosure.sep_closed ℚ, hseparable⟩
  exact
    IsSepClosure.equiv K
      (SeparableClosure K) (SeparableClosure ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedExtensionSubgroup_normal

The relative subgroup arising from an explicit compatible number-field embedding is normal.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
theorem numberFieldEmbeddedExtensionSubgroup_normal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedExtensionSubgroupNormal

The normality witness for an explicitly embedded tower, registered at the precise subgroup used by the downstream quotient constructions.

Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedExtensionQuotient_finite

The relative quotient arising from an explicit compatible number-field embedding is finite.

Source context 16 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
theorem numberFieldEmbeddedExtensionQuotient_finite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedExtensionQuotientFinite

The relative-index witness for an explicitly embedded tower, registered at the exact quotient consumed by FiniteNormQuotient.

Source context 16 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteAbstractField

The finite abstract field determined by the lower member of an explicitly embedded number-field tower.

Source context 17 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
abbrev numberFieldEmbeddedFiniteAbstractField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ) where
  field := numberFieldEmbeddedBaseSubgroup K L j
  finite := by
    simpa only [numberFieldEmbeddedBaseSubgroup] using
      (ambientEmbeddedAbsoluteQuotientFinite
        ℚ K (numberFieldEmbeddedLowerEmbedding K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbsoluteQuotientFinite

The absolute-index witness for the lower member of an explicitly embedded tower, registered at its specialized quotient type.

Source context 17 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j)))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteGaloisSubextension

The finite Galois subextension determined by an explicitly embedded number-field tower.

Source context 18 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
abbrev numberFieldEmbeddedFiniteGaloisSubextension
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteGaloisSubextension
      (numberFieldEmbeddedBaseSubgroup K L j) where
  field := numberFieldEmbeddedTopSubgroup K L j
  below := numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j
  normal := numberFieldEmbeddedExtensionSubgroup_normal K L j
  finite := numberFieldEmbeddedExtensionQuotient_finite K L j
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractFixedFieldFiniteDimensional

Shared finite-dimensional data for the fixed field of the lower subgroup in an explicitly embedded number-field tower.

Source context 18 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional

Shared relative finite-dimensional data for the two fixed fields of an explicitly embedded number-field tower.

Source context 19 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractFixedFieldScalarTower
Source context 20 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
Source context 21 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractFixedFieldNumberField
Source context 22 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
Source context 23 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
Source context 24 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
Source context 26 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
Source context 27 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedExtensionQuotientEquivGaloisGroup

The quotient of the two explicitly embedded fixing subgroups is the actual relative Galois group.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def
    numberFieldEmbeddedExtensionQuotientEquivGaloisGroup
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (numberFieldEmbeddedFiniteGaloisSubextension K L j).extensionQuotient ≃*
      Gal(L / K)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractBaseFieldEquiv

The original lower field is canonically equivalent to the fixed field of its explicitly embedded fixing subgroup.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def numberFieldEmbeddedAbstractBaseFieldEquiv
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    K ≃ₐ[ℚ]
      abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractTopFieldEquiv

The original top field is canonically equivalent to the relative fixed field of its explicitly embedded fixing subgroup.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def numberFieldEmbeddedAbstractTopFieldEquiv
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    L ≃ₐ[ℚ]
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup
          K L j)).restrictScalars ℚ
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbstractFieldEquiv_algebraMap

The two explicit fixed-field equivalences commute with the tower algebra maps.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem numberFieldEmbeddedAbstractFieldEquiv_algebraMap
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (x : K) :
    numberFieldEmbeddedAbstractTopFieldEquiv K L j
        (algebraMap K L x) =
      algebraMap
        (abstractFixedField ℚ (SeparableClosure ℚ)
          (numberFieldEmbeddedBaseSubgroup K L j))
        (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
        (numberFieldEmbeddedAbstractBaseFieldEquiv K L j x)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedIdeleClassEquivAmbientFixed

The ordinary idele class group of the explicitly embedded lower field, transported to the fixed part of the rational absolute idele-class representation.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def numberFieldEmbeddedIdeleClassEquivAmbientFixed
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Additive (IdeleClassGroup K) ≃+
      ambientFixedAddSubgroup
        rationalIdeleClassRepresentation
        (numberFieldEmbeddedBaseSubgroup K L j)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient

The abstract finite norm quotient of an explicitly embedded tower is its genuine ordinary idele-class norm quotient.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def
    numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteNormQuotient rationalIdeleClassRepresentation
        (numberFieldEmbeddedBaseSubgroup K L j)
        (numberFieldEmbeddedTopSubgroup K L j)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j) ≃+
      Additive
        (IdeleClassGroup K ⧸
          (_root_.ideleClassNorm K L).range)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedOrdinaryNormQuotientCongr_symm_mk
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem numberFieldEmbeddedOrdinaryNormQuotientCongr_symm_mk
    {K₀ L₀ K₁ L₁ : Type}
    [Field K₀] [NumberField K₀]
    [Field L₀] [NumberField L₀] [Algebra K₀ L₀]
    [Field K₁] [NumberField K₁]
    [Field L₁] [NumberField L₁] [Algebra K₁ L₁]
    (eK : K₀ ≃ₐ[ℚ] K₁)
    (eL : L₀ ≃ₐ[ℚ] L₁)
    (h : ∀ x : K₀,
      eL (algebraMap K₀ L₀ x) =
        algebraMap K₁ L₁ (eK x))
    (c : IdeleClassGroup K₁) :
    (ordinaryIdeleClassNormQuotientCongrOfAlgEquiv eK eL h).symm
        (QuotientGroup.mk'
          (_root_.ideleClassNorm K₁ L₁).range c) =
      QuotientGroup.mk'
        (_root_.ideleClassNorm K₀ L₀).range
        ((ideleClassCongr eK).symm c)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormClassPublicValue
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def numberFieldEmbeddedFiniteNormClassPublicValue
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    Additive
      (IdeleClassGroup K ⧸
        (_root_.ideleClassNorm K L).range)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormClassExpectedValue
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def numberFieldEmbeddedFiniteNormClassExpectedValue
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    Additive
      (IdeleClassGroup K ⧸
        (_root_.ideleClassNorm K L).range)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormClassDirectComparisonValue
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def
    numberFieldEmbeddedFiniteNormClassDirectComparisonValue
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    Additive
      (IdeleClassGroup K ⧸
        (_root_.ideleClassNorm K L).range)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormClassPublicValue_eq_directComparison
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem
    numberFieldEmbeddedFiniteNormClassPublicValue_eq_directComparison
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    numberFieldEmbeddedFiniteNormClassPublicValue K L j a =
      numberFieldEmbeddedFiniteNormClassDirectComparisonValue K L j a
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedActualNormClassRepresentativeValue
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
def numberFieldEmbeddedActualNormClassRepresentativeValue
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    Additive
      (IdeleClassGroup K ⧸
        (_root_.ideleClassNorm K L).range)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormClassDirectComparison_eq_actualValue
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem
    numberFieldEmbeddedFiniteNormClassDirectComparison_eq_actualValue
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    numberFieldEmbeddedFiniteNormClassDirectComparisonValue K L j a =
      numberFieldEmbeddedActualNormClassRepresentativeValue K L j a
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedActualNormClassRepresentativeValue_eq_expected
Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem numberFieldEmbeddedActualNormClassRepresentativeValue_eq_expected
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    numberFieldEmbeddedActualNormClassRepresentativeValue K L j a =
      numberFieldEmbeddedFiniteNormClassExpectedValue K L j a
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient_finiteNormClass

On a finite norm-class representative, the explicit fixed-field comparison is the genuine ordinary idele-class quotient.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem
    numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient_finiteNormClass
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (a : ambientFixedAddSubgroup rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)) :
    numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient K L j
        (finiteNormClass rationalIdeleClassRepresentation
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j) a) =
      Additive.ofMul
        (QuotientGroup.mk'
          (_root_.ideleClassNorm K L).range
          (Additive.toMul
            ((numberFieldEmbeddedIdeleClassEquivAmbientFixed K L j).symm a)))
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient_ideleClass

On an ordinary idele class, the explicit fixed-part realization followed by the abstract finite norm-class map is the genuine quotient class modulo the ordinary idele-class norm.

Source context 28 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
theorem
    numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient_ideleClass
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (c : IdeleClassGroup K) :
    numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient K L j
        (finiteNormClass rationalIdeleClassRepresentation
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
          (numberFieldEmbeddedIdeleClassEquivAmbientFixed
            K L j (Additive.ofMul c))) =
      Additive.ofMul
        (QuotientGroup.mk'
          (_root_.ideleClassNorm K L).range c)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedAbelianizedExtensionQuotientEquivGaloisGroup

The abelianized quotient of the explicitly embedded tower is the actual abelian Galois group.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
def
    numberFieldEmbeddedAbelianizedExtensionQuotientEquivGaloisGroup
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Additive
      (Abelianization
        (numberFieldEmbeddedFiniteGaloisSubextension K L j).extensionQuotient) ≃+
      Additive Gal(L / K)
GlobalClassFieldTheory.Reciprocity.globalNormResidueEquivOfEmbedding

The actual global norm-residue equivalence constructed from an explicit compatible embedding of a finite abelian number-field extension into the rational separable closure.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
def globalNormResidueEquivOfEmbedding
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Additive
        (IdeleClassGroup K ⧸
          (_root_.ideleClassNorm K L).range) ≃+
      Additive Gal(L / K)
GlobalClassFieldTheory.Reciprocity.globalNormResidueEquivOfEmbedding_finiteNormClass

The explicit-embedding norm-residue equivalence on a finite norm class.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
theorem globalNormResidueEquivOfEmbedding_finiteNormClass
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (x : FiniteNormQuotient rationalIdeleClassRepresentation
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :
    globalNormResidueEquivOfEmbedding K L j
        (numberFieldEmbeddedFiniteNormQuotientEquivIdeleClassNormQuotient
          K L j x) =
      numberFieldEmbeddedAbelianizedExtensionQuotientEquivGaloisGroup K L j
        (rationalCyclotomicDegreeData.normResidueSymbol
          rationalIdeleClassRepresentation
          rationalCyclotomicIdeleClassValuationData
          rationalIdeleClassRepresentation_satisfiesClassFieldAxiom
          (numberFieldEmbeddedFiniteAbstractField K L j)
          (numberFieldEmbeddedFiniteGaloisSubextension K L j) x)
GlobalClassFieldTheory.Reciprocity.globalNormResidueMonoidHomOfEmbedding

The global norm-residue homomorphism obtained from an explicit compatible embedding.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
def globalNormResidueMonoidHomOfEmbedding
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IdeleClassGroup K →* Gal(L / K)
GlobalClassFieldTheory.Reciprocity.globalNormResidueMonoidHomOfEmbedding_apply

Evaluation of the explicit-embedding global norm-residue map is the abstract norm-residue symbol evaluated on the corresponding genuine fixed-part finite norm class.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
theorem globalNormResidueMonoidHomOfEmbedding_apply
    (j : L →ₐ[ℚ] SeparableClosure ℚ)
    (c : IdeleClassGroup K) :
    globalNormResidueMonoidHomOfEmbedding K L j c =
      Additive.toMul
        (numberFieldEmbeddedAbelianizedExtensionQuotientEquivGaloisGroup
          K L j
          (rationalCyclotomicDegreeData.normResidueSymbol
            rationalIdeleClassRepresentation
            rationalCyclotomicIdeleClassValuationData
            rationalIdeleClassRepresentation_satisfiesClassFieldAxiom
            (numberFieldEmbeddedFiniteAbstractField K L j)
            (numberFieldEmbeddedFiniteGaloisSubextension K L j)
            (finiteNormClass rationalIdeleClassRepresentation
              (numberFieldEmbeddedBaseSubgroup K L j)
              (numberFieldEmbeddedTopSubgroup K L j)
              (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
              (numberFieldEmbeddedIdeleClassEquivAmbientFixed
                K L j (Additive.ofMul c)))))
GlobalClassFieldTheory.Reciprocity.numberFieldTowerIdeleClassEquivAmbientFixed_eq_embedded_standard

The ambient-fixed idèle-class transport for the standard embedding is the same map as the transport for an explicitly supplied embedding. This comparison is kept at the transport boundary, before forming norm quotients or applying reciprocity.

Source context 30 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
omit [FiniteDimensional K L] [IsAbelianGalois K L] in
theorem numberFieldTowerIdeleClassEquivAmbientFixed_eq_embedded_standard :
    numberFieldTowerIdeleClassEquivAmbientFixed K L =
      numberFieldEmbeddedIdeleClassEquivAmbientFixed K L
        (numberFieldSeparableClosureEmbedding L)
GlobalClassFieldTheory.Reciprocity.numberFieldTowerNormResidueValue_eq_embedded_standard
Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
theorem numberFieldTowerNormResidueValue_eq_embedded_standard
    (c : IdeleClassGroup K) :
    numberFieldTowerAbelianizedExtensionQuotientEquivGaloisGroup K L
        (rationalCyclotomicDegreeData.normResidueSymbol
          rationalIdeleClassRepresentation
          rationalCyclotomicIdeleClassValuationData
          rationalIdeleClassRepresentation_satisfiesClassFieldAxiom
          (numberFieldTowerReciprocityFiniteAbstractField K L)
          (numberFieldTowerFiniteGaloisSubextension K L)
          (finiteNormClass rationalIdeleClassRepresentation
            (numberFieldTowerBaseSubgroup K L)
            (numberFieldTowerTopSubgroup L)
            (numberFieldTowerTopSubgroup_le_baseSubgroup K L)
            (numberFieldTowerIdeleClassEquivAmbientFixed K L (Additive.ofMul c)))) =
      numberFieldEmbeddedAbelianizedExtensionQuotientEquivGaloisGroup
        K L (numberFieldSeparableClosureEmbedding L)
        (rationalCyclotomicDegreeData.normResidueSymbol
          rationalIdeleClassRepresentation
          rationalCyclotomicIdeleClassValuationData
          rationalIdeleClassRepresentation_satisfiesClassFieldAxiom
          (numberFieldEmbeddedFiniteAbstractField K L
            (numberFieldSeparableClosureEmbedding L))
          (numberFieldEmbeddedFiniteGaloisSubextension K L
            (numberFieldSeparableClosureEmbedding L))
          (finiteNormClass rationalIdeleClassRepresentation
            (numberFieldEmbeddedBaseSubgroup K L
              (numberFieldSeparableClosureEmbedding L))
            (numberFieldEmbeddedTopSubgroup K L
              (numberFieldSeparableClosureEmbedding L))
            (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L
              (numberFieldSeparableClosureEmbedding L))
            (numberFieldEmbeddedIdeleClassEquivAmbientFixed K L
              (numberFieldSeparableClosureEmbedding L) (Additive.ofMul c))))
GlobalClassFieldTheory.Reciprocity.globalNormResidueEquiv_eq_ofEmbedding_standard

At the standard embedding, the two global norm-residue equivalences agree on the actual norm quotient. The comparison is extensional: it uses surjectivity of the quotient map and the established evaluation formulas, not definitional equality of the two quotient constructions.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
theorem globalNormResidueEquiv_eq_ofEmbedding_standard :
    globalNormResidueEquiv K L =
      globalNormResidueEquivOfEmbedding K L
        (numberFieldSeparableClosureEmbedding L)
GlobalClassFieldTheory.Reciprocity.globalNormResidueMonoidHom_eq_ofEmbedding_standard

The existing global norm-residue map is the explicit-embedding construction for the standard chosen embedding of the top field.

Source context 29 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRealization
local instance numberFieldEmbeddedIdeleClassGroupIsMulCommutative
    {F : Type} [Field F] [NumberField F]
    : IsMulCommutative (IdeleClassGroup F) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
local instance numberFieldEmbeddedIdeleClassSubgroupNormal
    {F : Type} [Field F] [NumberField F]
    (N : Subgroup (IdeleClassGroup F)) : N.Normal :=
  N.normal_of_isMulCommutative
variable
    (K L : Type) [Field K] [NumberField K]
    [Field L] [NumberField L] [Algebra K L]
/-- The normality witness for an explicitly embedded tower, registered at
the precise subgroup used by the downstream quotient constructions. -/
noncomputable local instance
    numberFieldEmbeddedExtensionSubgroupNormal
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    (CyclicCohomology.extensionSubgroup
      (numberFieldEmbeddedBaseSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup K L j)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).Normal :=
  numberFieldEmbeddedExtensionSubgroup_normal K L j
/-- The relative-index witness for an explicitly embedded tower, registered
at the exact quotient consumed by `FiniteNormQuotient`. -/
noncomputable local instance
    numberFieldEmbeddedExtensionQuotientFinite
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((numberFieldEmbeddedBaseSubgroup K L j).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (numberFieldEmbeddedBaseSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup K L j)
          (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  numberFieldEmbeddedExtensionQuotient_finite K L j
/-- The absolute-index witness for the lower member of an explicitly embedded
tower, registered at its specialized quotient type. -/
noncomputable local instance
    numberFieldEmbeddedAbsoluteQuotientFinite
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          (numberFieldEmbeddedBaseSubgroup K L j)
          (le_baseField
            (numberFieldEmbeddedBaseSubgroup K L j))) :=
  (numberFieldEmbeddedFiniteAbstractField K L j).finite
/-- Shared finite-dimensional data for the fixed field of the lower subgroup
in an explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldFiniteDimensional
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
/-- Shared relative finite-dimensional data for the two fixed fields of an
explicitly embedded number-field tower. -/
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedAbsoluteQuotientFinite K L j)
    (numberFieldEmbeddedExtensionQuotientFinite K L j)
local instance numberFieldEmbeddedAbstractFixedFieldScalarTower
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldAbsoluteFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractFixedFieldNumberField
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedBaseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsFiniteDimensional
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    FiniteDimensional ℚ
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) := by
  change FiniteDimensional ℚ
    (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))
  infer_instance
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsNumberField
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    NumberField
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  NumberField.of_module_finite ℚ _
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldRestrictScalarsAlgebra
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    Algebra
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      ((abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)).restrictScalars ℚ) :=
  (IntermediateField.inclusion
    (abstractFixedField_le ℚ (SeparableClosure ℚ)
      (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j))).toRingHom.toAlgebra
noncomputable local instance
    numberFieldEmbeddedAbstractRelativeFixedFieldIsGalois
    [FiniteDimensional K L] [IsGalois K L]
    (j : L →ₐ[ℚ] SeparableClosure ℚ) :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedBaseSubgroup K L j))
      (abstractRelativeFixedField ℚ (SeparableClosure ℚ)
        (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    (numberFieldEmbeddedBaseSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup K L j)
    (numberFieldEmbeddedTopSubgroup_le_baseSubgroup K L j)
    (numberFieldEmbeddedExtensionSubgroupNormal K L j)
variable [FiniteDimensional K L] [IsAbelianGalois K L]
theorem globalNormResidueMonoidHom_eq_ofEmbedding_standard :
    globalNormResidueMonoidHom K L =
      globalNormResidueMonoidHomOfEmbedding K L
        (numberFieldSeparableClosureEmbedding L)
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedBaseSubgroup_le_of_tower

A compatible common embedding reverses the inclusion of the two base fields into an inclusion of their fixing subgroups.

Source context 13 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRestriction
variable
    (K K' L L' : Type)
    [Field K] [NumberField K]
    [Field K'] [NumberField K']
    [Field L] [NumberField L]
    [Field L'] [NumberField L']
    [Algebra K K'] [Algebra K L] [Algebra K L']
    [Algebra K' L'] [Algebra L L']
    [IsScalarTower K K' L'] [IsScalarTower K L L']
theorem numberFieldEmbeddedBaseSubgroup_le_of_tower
    (j : L' →ₐ[ℚ] SeparableClosure ℚ) :
    let jLower : L →ₐ[ℚ] SeparableClosure ℚ :=
      j.comp (IsScalarTower.toAlgHom ℚ L L')
    (numberFieldEmbeddedBaseSubgroup K' L' j).toSubgroup ≤
      (numberFieldEmbeddedBaseSubgroup K L jLower).toSubgroup := by
  dsimp only
  change
    (numberFieldEmbeddedLowerEmbedding K' L' j).fieldRange.fixingSubgroup ≤
      (numberFieldEmbeddedLowerEmbedding K L
        (j.comp (IsScalarTower.toAlgHom ℚ L L'))).fieldRange.fixingSubgroup
  apply
    (numberFieldEmbeddedLowerEmbedding K L
      (j.comp (IsScalarTower.toAlgHom ℚ L L'))).fieldRange.fixingSubgroup_le
  intro x hx
  rcases hx with ⟨y, rfl⟩
  refine ⟨algebraMap K K' y, ?_⟩
  change
    j (algebraMap K' L' (algebraMap K K' y)) =
      j (algebraMap L L' (algebraMap K L y))
  rw [← IsScalarTower.algebraMap_apply K K' L',
    ← IsScalarTower.algebraMap_apply K L L']
GlobalClassFieldTheory.Reciprocity.numberFieldEmbeddedTopSubgroup_le_of_tower

A compatible common embedding reverses the inclusion of the two top fields into an inclusion of their fixing subgroups.

Source context 14 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
section EmbeddedNumberFieldRestriction
variable
    (K K' L L' : Type)
    [Field K] [NumberField K]
    [Field K'] [NumberField K']
    [Field L] [NumberField L]
    [Field L'] [NumberField L']
    [Algebra K K'] [Algebra K L] [Algebra K L']
    [Algebra K' L'] [Algebra L L']
    [IsScalarTower K K' L'] [IsScalarTower K L L']
omit [Field K] [NumberField K]
    [Field K'] [NumberField K']
    [Algebra K K'] [Algebra K L] [Algebra K L'] [Algebra K' L']
    [IsScalarTower K K' L'] [IsScalarTower K L L'] in
theorem numberFieldEmbeddedTopSubgroup_le_of_tower
    (j : L' →ₐ[ℚ] SeparableClosure ℚ) :
    let jLower : L →ₐ[ℚ] SeparableClosure ℚ :=
      j.comp (IsScalarTower.toAlgHom ℚ L L')
    (numberFieldEmbeddedTopSubgroup K' L' j).toSubgroup ≤
      (numberFieldEmbeddedTopSubgroup K L jLower).toSubgroup := by
  dsimp only
  change
    j.fieldRange.fixingSubgroup ≤
      (j.comp
        (IsScalarTower.toAlgHom ℚ L L')).fieldRange.fixingSubgroup
  apply
    (j.comp
      (IsScalarTower.toAlgHom ℚ L L')).fieldRange.fixingSubgroup_le
  intro x hx
  rcases hx with ⟨y, rfl⟩
  exact ⟨algebraMap L L' y, rfl⟩
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldBaseQuotientFinite
Source context 12 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field))
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldRelativeQuotientFinite
Source context 13 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldRelativeQuotientIsMulCommutative
Source context 14 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldFiniteDimensional
Source context 15 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
GlobalClassFieldTheory.Reciprocity.abstractRelativeFixedFieldFiniteDimensional
Source context 16 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldRelativeScalarTower
Source context 17 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)
GlobalClassFieldTheory.Reciprocity.abstractRelativeFixedFieldAbsoluteFiniteDimensional
Source context 18 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldNumberField
Source context 19 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldIdeleClassGroupIsMulCommutative

The lower fixed idèle-class group is commutative. Naming the mixin before the public quotient declarations avoids delayed normality synthesis inside their definition bodies.

Source context 20 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field))
GlobalClassFieldTheory.Reciprocity.abstractRelativeFixedFieldNumberField
Source context 21 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)
GlobalClassFieldTheory.Reciprocity.abstractRelativeFixedFieldIsGalois

Use the same explicit Galois witness as the fixed-field quotient comparison. Deriving it through IsAbelianGalois produces an equivalent but much larger dependent instance path.

Source context 22 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)
GlobalClassFieldTheory.Reciprocity.abstractRelativeFixedFieldIsAbelianGalois
Source context 23 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldIdeleClassNormRangeNormal

Use one opaque normality witness for the actual fixed-field norm range. This keeps every occurrence of its quotient group on the same instance path.

Source context 24 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldAbelianizedExtensionQuotientEquivGaloisGroup

The abelianized abstract extension quotient is the actual Galois group of the corresponding pair of fixed fields.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
def
    abstractFixedFieldAbelianizedExtensionQuotientEquivGaloisGroup :
    let F :=
      abstractFixedField ℚ (SeparableClosure ℚ) K.field
    let E :=
      abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below
    Additive
        (Abelianization
          (FiniteGaloisSubextension.extensionQuotient
            L.toFiniteGaloisExtension)) ≃+
      Additive (Gal(E / F)) := by
  dsimp only
  let F :=
    abstractFixedField ℚ (SeparableClosure ℚ) K.field
  let E :=
    abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below
  let e :
      L.extensionQuotient ≃*
        Gal(E / F) :=
    L.extensionQuotientMulEquiv.trans
      (abstractExtensionQuotientEquivGaloisGroup
        ℚ (SeparableClosure ℚ)
        K.field L.field L.below L.normal)
  exact
    MulEquiv.toAdditive
      ((Abelianization.equivOfComm :
          L.extensionQuotient ≃*
            Abelianization L.extensionQuotient).symm.trans e)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueEquiv

The actual fixed-field global norm-residue equivalence

C_F / N_{E/F} C_E ≃ Gal(E/F)

attached to an abstract finite abelian subextension in the rational absolute class formation.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
def abstractFixedFieldGlobalNormResidueEquiv :
    let F :=
      abstractFixedField ℚ (SeparableClosure ℚ) K.field
    let E :=
      abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below
    Additive
        (IdeleClassGroup F ⧸
          (_root_.ideleClassNorm F E).range) ≃+
      Additive (Gal(E / F)) := by
  dsimp only
  let F :=
    abstractFixedField ℚ (SeparableClosure ℚ) K.field
  let E :=
    abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below
  let eNorm :
      FiniteNormQuotient rationalIdeleClassRepresentation
          K.field L.field L.below ≃+
        Additive
          (Abelianization L.toFiniteGaloisExtension.extensionQuotient) :=
    rationalCyclotomicDegreeData.normResidueSymbol
      rationalIdeleClassRepresentation
      rationalCyclotomicIdeleClassValuationData
      rationalIdeleClassRepresentation_satisfiesClassFieldAxiom
      K L.toFiniteGaloisExtension
  exact
    (rationalFiniteNormQuotientEquivIdeleClassNormQuotient
        K.field L.field L.below L.normal).symm.trans
      (eNorm.trans
        (abstractFixedFieldAbelianizedExtensionQuotientEquivGaloisGroup
          K L))
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldFiniteNormResidueGaloisEquiv

The abstract finite norm-residue equivalence with its dependent source instance fixed to the public finite norm quotient.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
def abstractFixedFieldFiniteNormResidueGaloisEquiv :
    FiniteNormQuotient rationalIdeleClassRepresentation
        K.field L.field L.below ≃+
      Additive
        (Gal(
          (abstractRelativeFixedField
            ℚ (SeparableClosure ℚ) L.below) /
          (abstractFixedField ℚ (SeparableClosure ℚ) K.field)))
GlobalClassFieldTheory.Reciprocity.ambientFixedGlobalNormResidueAddMonoidHom

The abstract norm-residue symbol on the fixed part of the rational absolute idele-class representation, with its value transported to the actual Galois group of the two fixed fields. This is the form consumed directly by the abstract norm--restriction naturality theorem.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
def ambientFixedGlobalNormResidueAddMonoidHom :
    let F :=
      abstractFixedField ℚ (SeparableClosure ℚ) K.field
    let E :=
      abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below
    ambientFixedAddSubgroup
        rationalIdeleClassRepresentation K.field →+
      Additive (Gal(E / F)) := by
  dsimp only
  let F :=
    abstractFixedField ℚ (SeparableClosure ℚ) K.field
  let E :=
    abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below
  exact
    (abstractFixedFieldFiniteNormResidueGaloisEquiv K L).toAddMonoidHom.comp
      (finiteNormClassHom rationalIdeleClassRepresentation
        K.field L.field L.below)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldIdeleClassToAmbientFixedMonoidHom

The ordinary idele class group of the lower fixed field, transported to the fixed part of the rational absolute idele-class representation.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
def abstractFixedFieldIdeleClassToAmbientFixedMonoidHom :
    let F :=
      abstractFixedField ℚ (SeparableClosure ℚ) K.field
    IdeleClassGroup F →*
      Multiplicative
        (ambientFixedAddSubgroup
          rationalIdeleClassRepresentation K.field) :=
  (rationalAbstractFixedFieldIdeleClassEquivFixed
    K.field).toAddMonoidHom.toMultiplicativeRight
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueMonoidHom

The actual norm-residue homomorphism on the ordinary idele class group of the lower fixed field, constructed without choosing a second field embedding.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
def abstractFixedFieldGlobalNormResidueMonoidHom :
    let F :=
      abstractFixedField ℚ (SeparableClosure ℚ) K.field
    let E :=
      abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below
    IdeleClassGroup F →* Gal(E / F) :=
  (ambientFixedGlobalNormResidueAddMonoidHom K L).toMultiplicative.comp
    (abstractFixedFieldIdeleClassToAmbientFixedMonoidHom K)
GlobalClassFieldTheory.Reciprocity.ambientFixedGlobalNormResidueAddMonoidHom_apply

Pointwise form of the ambient fixed-part norm-residue homomorphism.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem ambientFixedGlobalNormResidueAddMonoidHom_apply
    (a :
      ambientFixedAddSubgroup
        rationalIdeleClassRepresentation K.field) :
    ambientFixedGlobalNormResidueAddMonoidHom K L a =
      abstractFixedFieldAbelianizedExtensionQuotientEquivGaloisGroup
        K L
        (rationalCyclotomicDegreeData.normResidueSymbol
          rationalIdeleClassRepresentation
          rationalCyclotomicIdeleClassValuationData
          rationalIdeleClassRepresentation_satisfiesClassFieldAxiom
          K L.toFiniteGaloisExtension
          (finiteNormClass rationalIdeleClassRepresentation
            K.field L.field L.below a))
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueMonoidHom_apply

Pointwise form of the transported fixed-field norm-residue homomorphism.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem abstractFixedFieldGlobalNormResidueMonoidHom_apply :
    let F :=
      abstractFixedField ℚ (SeparableClosure ℚ) K.field
    ∀ c : IdeleClassGroup F,
      abstractFixedFieldGlobalNormResidueMonoidHom K L c =
        Additive.toMul
          (ambientFixedGlobalNormResidueAddMonoidHom K L
            ((rationalAbstractFixedFieldIdeleClassEquivFixed K.field)
              (Additive.ofMul c))) := by
  dsimp only
  intro c
  rfl
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueMonoidHom_fixed_apply

Transporting an ordinary fixed-field idele class to the ambient fixed part and applying the abstract norm-residue map gives exactly the actual fixed-field norm-residue value.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem abstractFixedFieldGlobalNormResidueMonoidHom_fixed_apply
    (a :
      ambientFixedAddSubgroup
        rationalIdeleClassRepresentation K.field) :
    abstractFixedFieldGlobalNormResidueMonoidHom K L
        (Additive.toMul
          ((rationalAbstractFixedFieldIdeleClassEquivFixed
            K.field).symm a)) =
      Additive.toMul
        (ambientFixedGlobalNormResidueAddMonoidHom K L a)
GlobalClassFieldTheory.Reciprocity.ambientFixedGlobalNormResidueAddMonoidHom_eq_zero_iff

The ambient fixed-part reciprocity value vanishes precisely when its finite norm class vanishes.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem ambientFixedGlobalNormResidueAddMonoidHom_eq_zero_iff
    (a :
      ambientFixedAddSubgroup
        rationalIdeleClassRepresentation K.field) :
    ambientFixedGlobalNormResidueAddMonoidHom K L a = 0 ↔
      finiteNormClass rationalIdeleClassRepresentation
        K.field L.field L.below a = 0
GlobalClassFieldTheory.Reciprocity.rationalAbstractFixedFieldIdeleClassEquivFixed_mem_finiteNormSubgroup_iff

The fixed-field idele-class comparison carries the abstract finite norm subgroup exactly to the ordinary norm range.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem
    rationalAbstractFixedFieldIdeleClassEquivFixed_mem_finiteNormSubgroup_iff
    (c : IdeleClassGroup
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :
    (rationalAbstractFixedFieldIdeleClassEquivFixed K.field)
          (Additive.ofMul c) ∈
        finiteNormSubgroup rationalIdeleClassRepresentation
          K.field L.field L.below ↔
      c ∈
        (_root_.ideleClassNorm
          (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
          (abstractRelativeFixedField
            ℚ (SeparableClosure ℚ) L.below)).range
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueMonoidHom_eq_one_iff

Triviality of the fixed-field norm-residue symbol is exactly membership in the actual ordinary idele-class norm range.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem abstractFixedFieldGlobalNormResidueMonoidHom_eq_one_iff
    (c : IdeleClassGroup
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :
      abstractFixedFieldGlobalNormResidueMonoidHom K L c = 1 ↔
        c ∈
          (_root_.ideleClassNorm
            (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
            (abstractRelativeFixedField
              ℚ (SeparableClosure ℚ) L.below)).range
GlobalClassFieldTheory.Reciprocity.ambientFixedGlobalNormResidueAddMonoidHom_surjective

The ambient fixed-part reciprocity homomorphism is surjective.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem ambientFixedGlobalNormResidueAddMonoidHom_surjective :
    Function.Surjective
      (ambientFixedGlobalNormResidueAddMonoidHom K L)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueMonoidHom_surjective

The fixed-field global norm-residue homomorphism is surjective onto the actual Galois group.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem abstractFixedFieldGlobalNormResidueMonoidHom_surjective :
    Function.Surjective
      (abstractFixedFieldGlobalNormResidueMonoidHom K L)
GlobalClassFieldTheory.Reciprocity.abstractFixedFieldGlobalNormResidueMonoidHom_ker

The kernel of the fixed-field global norm-residue homomorphism is the genuine ordinary idele-class norm range.

Source context 25 commands

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

open scoped IsMulCommutative NumberField
open NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open GlobalClassFields
open KummerTheory
open AlgebraicNumberTheory
open LocalClassFieldTheory
open RamificationTheory
variable
    (K : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (L : FiniteAbelianSubextension K.field)
local instance abstractFixedFieldBaseQuotientFinite :
    Finite
      ((baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          K.field (le_baseField K.field)) :=
  K.finite
local instance abstractFixedFieldRelativeQuotientFinite :
    Finite
      (K.field.toSubgroup ⧸
        CyclicCohomology.extensionSubgroup K.field L.field L.below) :=
  L.finite
local instance abstractFixedFieldRelativeQuotientIsMulCommutative :
    IsMulCommutative L.extensionQuotient :=
  L.commutative
noncomputable local instance abstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  abstractFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ) K.field K.finite
noncomputable local instance abstractRelativeFixedFieldFiniteDimensional :
    FiniteDimensional
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_finiteDimensional
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below K.finite L.finite
local instance abstractFixedFieldRelativeScalarTower :
    IsScalarTower ℚ
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  IsScalarTower.of_algebraMap_eq' (RingHom.ext_rat _ _)
noncomputable local instance abstractRelativeFixedFieldAbsoluteFiniteDimensional :
    FiniteDimensional ℚ
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  FiniteDimensional.trans ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
noncomputable local instance abstractFixedFieldNumberField :
    NumberField
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field) :=
  NumberField.of_module_finite ℚ
    (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
/-- The lower fixed idèle-class group is commutative.  Naming the mixin
before the public quotient declarations avoids delayed normality synthesis
inside their definition bodies. -/
local instance
    abstractFixedFieldIdeleClassGroupIsMulCommutative :
    IsMulCommutative
      (IdeleClassGroup
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)) :=
  ⟨⟨fun a b => mul_comm a b⟩⟩
noncomputable local instance abstractRelativeFixedFieldNumberField :
    NumberField
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  NumberField.of_module_finite ℚ
    (abstractRelativeFixedField
      ℚ (SeparableClosure ℚ) L.below)
/-- Use the same explicit Galois witness as the fixed-field quotient
comparison.  Deriving it through `IsAbelianGalois` produces an equivalent
but much larger dependent instance path. -/
noncomputable local instance
    abstractRelativeFixedFieldIsGalois :
    IsGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  abstractRelativeFixedField_isGalois
    ℚ (SeparableClosure ℚ)
    K.field L.field L.below L.normal
noncomputable local instance abstractRelativeFixedFieldIsAbelianGalois :
    IsAbelianGalois
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below) :=
  finiteAbelianSubextensionAbstractRelativeFixedFieldIsAbelianGalois L
/-- Use one opaque normality witness for the actual fixed-field norm range.
This keeps every occurrence of its quotient group on the same instance path. -/
local instance
    abstractFixedFieldIdeleClassNormRangeNormal :
    ((_root_.ideleClassNorm
      (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
      (abstractRelativeFixedField
        ℚ (SeparableClosure ℚ) L.below)).range).Normal := by
  infer_instance
theorem abstractFixedFieldGlobalNormResidueMonoidHom_ker :
    (abstractFixedFieldGlobalNormResidueMonoidHom K L).ker =
      (_root_.ideleClassNorm
        (abstractFixedField ℚ (SeparableClosure ℚ) K.field)
        (abstractRelativeFixedField
          ℚ (SeparableClosure ℚ) L.below)).range