Module

CyclotomicIdeleClassValuation.lean

Nyll.ClassFieldTheory.GlobalClassFieldTheory.Reciprocity.CyclotomicIdeleClassValuation
60 declarations indexed from sourceView source ↗

The cyclotomic valuation on idele classes

The cyclotomic idele value is trivial on principal ideles, so it descends to the ordinary idele class group. Its restriction to the compact norm-one idele class group still has dense image in ZHat; compactness therefore upgrades density to surjectivity.

For a number field K, the defining normalization gives the exact identity

f_K v_K(c) = v_ℚ(N_{K/ℚ} c).

Surjectivity of v_K then identifies the image of the actual idele-class norm with f_K ZHat. For the actual fixed field attached to a finite abstract field, the already constructed cyclotomic base-change theorem identifies f_K with the residue degree. This supplies the norm-range field of the concrete henselian valuation data.

Declarations

GlobalClassFieldTheory.Reciprocity.cyclotomicValuationIdeleClassCommGroup

Fix the canonical source-group dictionary before constructing the value maps and their additive ranges.

Source context 6 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
def cyclotomicValuationIdeleClassCommGroup
    (F : Type) [Field F] [NumberField F] :
    CommGroup (IdeleClassGroup F)
GlobalClassFieldTheory.Reciprocity.ideleClassContinuousQuotientLift

Lift a continuous multiplicative map through a quotient group once its defining normal subgroup is contained in the kernel. Keeping the quotient-map argument here avoids repeating the same large continuity elaboration for the rational and number-field cyclotomic values.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
def ideleClassContinuousQuotientLift
    {A B : Type*} [Group A] [TopologicalSpace A]
    [Group B] [TopologicalSpace B]
    (N : Subgroup A) [N.Normal] (f : A →ₜ* B)
    (hN : N ≤ f.toMonoidHom.ker) : (A ⧸ N) →ₜ* B
GlobalClassFieldTheory.Reciprocity.ideleClassContinuousQuotientLift_mk
Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
theorem ideleClassContinuousQuotientLift_mk
    {A B : Type*} [Group A] [TopologicalSpace A]
    [Group B] [TopologicalSpace B]
    (N : Subgroup A) [N.Normal] (f : A →ₜ* B)
    (hN : N ≤ f.toMonoidHom.ker) (a : A) :
    ideleClassContinuousQuotientLift N f hN
        (QuotientGroup.mk' N a) =
      f a
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleValue_principalSubgroup_le_ker

Principal rational ideles lie in the kernel of the cyclotomic value.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
theorem rationalCyclotomicZHatIdeleValue_principalSubgroup_le_ker :
    IdeleGroup.principalSubgroup ℚ ≤
      rationalCyclotomicZHatIdeleValue.toMonoidHom.ker
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValueContinuousMul

The rational cyclotomic value descended continuously through C_ℚ = I_ℚ / ℚˣ.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
def rationalCyclotomicZHatIdeleClassValueContinuousMul :
    IdeleClassGroup ℚ →ₜ* Multiplicative ZHat
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValueContinuousMul_mk

Evaluation of the descended rational value on an idele class represented by an idele.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
theorem rationalCyclotomicZHatIdeleClassValueContinuousMul_mk
    (a : IdeleGroup ℚ) :
    rationalCyclotomicZHatIdeleClassValueContinuousMul
        (QuotientGroup.mk'
          (IdeleGroup.principalSubgroup ℚ) a) =
      rationalCyclotomicZHatIdeleValue a
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValueContinuous

The rational cyclotomic value on idele classes, in continuous additive notation.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
def rationalCyclotomicZHatIdeleClassValueContinuous :
    Additive (IdeleClassGroup ℚ) →ₜ+ ZHat where
  __ := MonoidHom.toAdditiveLeft
    rationalCyclotomicZHatIdeleClassValueContinuousMul.toMonoidHom
  continuous_toFun := continuous_toAdd.comp
    (rationalCyclotomicZHatIdeleClassValueContinuousMul.continuous_toFun.comp
      continuous_toMul)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValueContinuous_mk

Evaluation of the additive rational class value on a representative.

Source context 7 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
theorem rationalCyclotomicZHatIdeleClassValueContinuous_mk
    (a : IdeleGroup ℚ) :
    rationalCyclotomicZHatIdeleClassValueContinuous
        (Additive.ofMul
          (QuotientGroup.mk'
            (IdeleGroup.principalSubgroup ℚ) a)) =
      Multiplicative.toAdd
        (rationalCyclotomicZHatIdeleValue a)
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleValue_principalSubgroup_le_ker

Principal ideles lie in the kernel of the normalized cyclotomic value.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem
    normalizedCyclotomicZHatIdeleValue_principalSubgroup_le_ker :
    IdeleGroup.principalSubgroup K ≤
      (normalizedCyclotomicZHatIdeleValueContinuousMul K).toMonoidHom.ker
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValueContinuousMul

The normalized cyclotomic value descended continuously through C_K = I_K / Kˣ.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
def normalizedCyclotomicZHatIdeleClassValueContinuousMul :
    IdeleClassGroup K →ₜ* Multiplicative ZHat
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValueContinuousMul_mk

Evaluation of the normalized class value on an idele representative.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem normalizedCyclotomicZHatIdeleClassValueContinuousMul_mk
    (a : IdeleGroup K) :
    normalizedCyclotomicZHatIdeleClassValueContinuousMul K
        (QuotientGroup.mk'
          (IdeleGroup.principalSubgroup K) a) =
      Multiplicative.ofAdd
        (normalizedCyclotomicZHatIdeleValue K
          (Additive.ofMul a))
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValueContinuous

The normalized cyclotomic value on idele classes, in continuous additive notation.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
def normalizedCyclotomicZHatIdeleClassValueContinuous :
    Additive (IdeleClassGroup K) →ₜ+ ZHat where
  __ := MonoidHom.toAdditiveLeft
    (normalizedCyclotomicZHatIdeleClassValueContinuousMul K).toMonoidHom
  continuous_toFun := continuous_toAdd.comp
    ((normalizedCyclotomicZHatIdeleClassValueContinuousMul K).continuous_toFun.comp
      continuous_toMul)
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValueContinuous_mk

Evaluation of the normalized additive class value on a representative.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem normalizedCyclotomicZHatIdeleClassValueContinuous_mk
    (a : IdeleGroup K) :
    normalizedCyclotomicZHatIdeleClassValueContinuous K
        (Additive.ofMul
          (QuotientGroup.mk'
            (IdeleGroup.principalSubgroup K) a)) =
      normalizedCyclotomicZHatIdeleValue K
        (Additive.ofMul a)
GlobalClassFieldTheory.Reciprocity.infiniteGlobalArtinMonoidHom_numberFieldCyclotomicZHatCompositum_principalIdele

The chosen local-factor product on the actual cyclotomic ZHat-compositum kills every principal idele. This is the number-field form of the cyclotomic principal-idele formula: after restricting to the rational cyclotomic factor, norm--restriction turns the assertion into the rational principal-idele product formula, and that restriction is injective.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem
    infiniteGlobalArtinMonoidHom_numberFieldCyclotomicZHatCompositum_principalIdele
    (x : Kˣ) :
    infiniteGlobalArtinMonoidHom K
        (numberFieldCyclotomicZHatCompositum K)
        (IdeleGroup.principalIdele K x) =
      1
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom

The genuine infinite Artin map of the cyclotomic ZHat-compositum, descended to the idele class group.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
def
    numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom :
    IdeleClassGroup K →*
      Gal(numberFieldCyclotomicZHatCompositum K / K)
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom_mk

Evaluation of the descended compositum Artin map on an idele representative.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem
    numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom_mk
    (a : IdeleGroup K) :
    numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom K
        (QuotientGroup.mk'
          (IdeleGroup.principalSubgroup K) a) =
      infiniteGlobalArtinMonoidHom K
        (numberFieldCyclotomicZHatCompositum K) a
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatCompositumIdeleClassArtin_coordinate

In the rational cyclotomic Galois coordinate, the genuine idele-class Artin symbol over K is exactly f_K times the normalized cyclotomic valuation.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem
    numberFieldCyclotomicZHatCompositumIdeleClassArtin_coordinate
    (c : IdeleClassGroup K) :
    Multiplicative.toAdd
        (rationalCyclotomicZHatFieldGalEquivZHat
          (numberFieldCyclotomicZHatCompositumRestriction K
            (numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom
              K c))) =
      cyclotomicZHatIntersectionDegree K •
        normalizedCyclotomicZHatIdeleClassValueContinuous K
          (Additive.ofMul c)
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatCompositumIdeleClassArtin_eq_one_iff

The kernel of the genuine Artin map to the cyclotomic ZHat-compositum is the zero fibre of the normalized cyclotomic idele-class valuation.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
theorem
    numberFieldCyclotomicZHatCompositumIdeleClassArtin_eq_one_iff
    (c : IdeleClassGroup K) :
    numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom K c =
        1 ↔
      normalizedCyclotomicZHatIdeleClassValueContinuous K
          (Additive.ofMul c) =
        0
GlobalClassFieldTheory.Reciprocity.cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra

Use the rational algebra structure expected by the imported finite-layer API throughout this block. Fixing it before the first finite-layer binder keeps the parameter and every restriction target definitionally aligned.

Source context 8 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatFiniteLayerNumberField

The canonical number-field structure used by every finite-layer idele-class declaration below. Keeping this witness opaque prevents the module-finiteness construction from being rebuilt along distinct paths.

Source context 9 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
theorem
    numberFieldCyclotomicZHatFiniteLayerNumberField
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    NumberField
      (numberFieldCyclotomicZHatFiniteLayerInCompositum K E)
GlobalClassFieldTheory.Reciprocity.NumberFieldCyclotomicZHatFiniteLayerArtinData
Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
structure NumberFieldCyclotomicZHatFiniteLayerArtinData
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    Type where
  toMonoidHom :
    IdeleGroup K →*
      Gal(numberFieldCyclotomicZHatFiniteLayerInCompositum K E / K)
  principal (x : Kˣ) :
    toMonoidHom (IdeleGroup.principalIdele K x) = 1
  restriction (a : IdeleGroup K) :
    AlgEquiv.restrictNormalHom
        (numberFieldCyclotomicZHatFiniteLayerInCompositum K E)
        (infiniteGlobalArtinMonoidHom K
          (numberFieldCyclotomicZHatCompositum K) a) =
      toMonoidHom a
GlobalClassFieldTheory.Reciprocity.rawGlobalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_principalIdele
Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rawGlobalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_principalIdele
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField)
    (x : Kˣ) :
    globalArtinMonoidHom
        (K := K)
        (L :=
          numberFieldCyclotomicZHatFiniteLayerInCompositum K E)
        (IdeleGroup.principalIdele K x) =
      1
GlobalClassFieldTheory.Reciprocity.rawGlobalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_restriction
Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rawGlobalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_restriction
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField)
    (a : IdeleGroup K) :
    AlgEquiv.restrictNormalHom
        (numberFieldCyclotomicZHatFiniteLayerInCompositum K E)
        (infiniteGlobalArtinMonoidHom K
          (numberFieldCyclotomicZHatCompositum K) a) =
      globalArtinMonoidHom
        (K := K)
        (L :=
          numberFieldCyclotomicZHatFiniteLayerInCompositum K E) a
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatFiniteLayerArtinData
Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def
    numberFieldCyclotomicZHatFiniteLayerArtinData
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    NumberFieldCyclotomicZHatFiniteLayerArtinData K E where
  toMonoidHom :=
    globalArtinMonoidHom
      (K := K)
      (L := numberFieldCyclotomicZHatFiniteLayerInCompositum K E)
  principal :=
    rawGlobalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_principalIdele
      K E
  restriction :=
    rawGlobalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_restriction
      K E
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatFiniteLayerGlobalArtinMonoidHom

The chosen finite-layer global Artin map, kept opaque so every descended idele-class declaration shares the same dependent instance data.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def
    numberFieldCyclotomicZHatFiniteLayerGlobalArtinMonoidHom
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    IdeleGroup K →*
      Gal(numberFieldCyclotomicZHatFiniteLayerInCompositum K E / K)
GlobalClassFieldTheory.Reciprocity.globalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_principalIdele

Every finite cyclotomic layer over a number field inherits the principal-idele product formula from the full cyclotomic ZHat-compositum.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    globalArtinMonoidHom_numberFieldCyclotomicZHatFiniteLayer_principalIdele
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField)
    (x : Kˣ) :
    numberFieldCyclotomicZHatFiniteLayerGlobalArtinMonoidHom K E
        (IdeleGroup.principalIdele K x) =
      1
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatFiniteLayer_principalSubgroup_le_ker
Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    numberFieldCyclotomicZHatFiniteLayer_principalSubgroup_le_ker
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    IdeleGroup.principalSubgroup K ≤
      (numberFieldCyclotomicZHatFiniteLayerGlobalArtinMonoidHom K E).ker
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatFiniteLayerIdeleClassArtinMonoidHom

The actual chosen-local-factor Artin map of a finite cyclotomic layer, descended through C_K = I_K / Kˣ.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def
    numberFieldCyclotomicZHatFiniteLayerIdeleClassArtinMonoidHom
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    IdeleClassGroup K →*
      Gal(numberFieldCyclotomicZHatFiniteLayerInCompositum K E / K)
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatFiniteLayerIdeleClassArtinMonoidHom_mk

Evaluation of the descended finite-layer Artin map on an idele representative.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    numberFieldCyclotomicZHatFiniteLayerIdeleClassArtinMonoidHom_mk
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField)
    (a : IdeleGroup K) :
    numberFieldCyclotomicZHatFiniteLayerIdeleClassArtinMonoidHom K E
        (QuotientGroup.mk'
          (IdeleGroup.principalSubgroup K) a) =
      numberFieldCyclotomicZHatFiniteLayerGlobalArtinMonoidHom K E a
GlobalClassFieldTheory.Reciprocity.numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom_restrict

Restriction of the descended Artin map of the full cyclotomic compositum to a finite cyclotomic layer is the descended finite-layer chosen-local-factor Artin map.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom_restrict
    (E :
      FiniteGaloisIntermediateField
        ℚ rationalCyclotomicZHatField) :
    (AlgEquiv.restrictNormalHom
        (numberFieldCyclotomicZHatFiniteLayerInCompositum K E)).comp
        (numberFieldCyclotomicZHatCompositumIdeleClassArtinMonoidHom K) =
      numberFieldCyclotomicZHatFiniteLayerIdeleClassArtinMonoidHom K E
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValue_normOne_denseRange

The descended rational class value has dense image already on the compact norm-one idele class group.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rationalCyclotomicZHatIdeleClassValue_normOne_denseRange :
    DenseRange
      (fun c : IdeleClassGroup.normOneSubgroup (K := ℚ) =>
        rationalCyclotomicZHatIdeleClassValueContinuous
          (Additive.ofMul (c : IdeleClassGroup ℚ))) := by
  have hToAdd :
      Function.Surjective
        (Multiplicative.toAdd :
          Multiplicative ZHat → ZHat) :=
    fun z => ⟨Multiplicative.ofAdd z, rfl⟩
  have hidele :
      DenseRange
        (fun b : IdeleGroup.normOneSubgroup (K := ℚ) =>
          Multiplicative.toAdd
            (rationalCyclotomicZHatIdeleValue
              (b : IdeleGroup ℚ))) :=
    hToAdd.denseRange.comp
      rationalCyclotomicZHatIdeleValue_normOne_denseRange
      continuous_toAdd
  apply hidele.mono
  rintro z ⟨b, rfl⟩
  let c : IdeleClassGroup.normOneSubgroup (K := ℚ) :=
    ⟨QuotientGroup.mk'
        (IdeleGroup.principalSubgroup ℚ)
        (b : IdeleGroup ℚ),
      (IdeleClassGroup.mk_mem_normOneSubgroup_iff
        (b : IdeleGroup ℚ)).2 b.2⟩
  refine ⟨c, ?_⟩
  simp only [c,
    rationalCyclotomicZHatIdeleClassValueContinuous_mk]
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValue_normOne_surjective

Compactness upgrades the dense rational norm-one image to surjectivity.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rationalCyclotomicZHatIdeleClassValue_normOne_surjective :
    Function.Surjective
      (fun c : IdeleClassGroup.normOneSubgroup (K := ℚ) =>
        rationalCyclotomicZHatIdeleClassValueContinuous
          (Additive.ofMul (c : IdeleClassGroup ℚ))) := by
  let f :=
    fun c : IdeleClassGroup.normOneSubgroup (K := ℚ) =>
      rationalCyclotomicZHatIdeleClassValueContinuous
        (Additive.ofMul (c : IdeleClassGroup ℚ))
  have hf : Continuous f := by
    exact
      (rationalCyclotomicZHatIdeleClassValueContinuous.continuous_toFun).comp
        (continuous_ofMul.comp continuous_subtype_val)
  have hclosed : IsClosed (Set.range f) :=
    (isCompact_range hf).isClosed
  have hdense : DenseRange f := by
    simpa only [f] using
      rationalCyclotomicZHatIdeleClassValue_normOne_denseRange
  intro z
  have hz : z ∈ closure (Set.range f) := by
    rw [hdense.closure_range]
    trivial
  rwa [hclosed.closure_eq] at hz
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValue_surjective

The rational cyclotomic idele-class value is surjective.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatIdeleClassValue_surjective :
    Function.Surjective
      rationalCyclotomicZHatIdeleClassValueContinuous
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValue_normOne_denseRange

The normalized class value has dense image already on the compact norm-one idele class group.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem normalizedCyclotomicZHatIdeleClassValue_normOne_denseRange :
    DenseRange
      (fun c : IdeleClassGroup.normOneSubgroup (K := K) =>
        normalizedCyclotomicZHatIdeleClassValueContinuous K
          (Additive.ofMul (c : IdeleClassGroup K))) := by
  apply
    (normalizedCyclotomicZHatIdeleValue_normOne_denseRange K).mono
  rintro z ⟨b, rfl⟩
  let c : IdeleClassGroup.normOneSubgroup (K := K) :=
    ⟨QuotientGroup.mk'
        (IdeleGroup.principalSubgroup K)
        (b : IdeleGroup K),
      (IdeleClassGroup.mk_mem_normOneSubgroup_iff
        (b : IdeleGroup K)).2 b.2⟩
  refine ⟨c, ?_⟩
  simp only [c,
    normalizedCyclotomicZHatIdeleClassValueContinuous_mk]
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValue_normOne_surjective

Compactness upgrades the dense normalized norm-one image to surjectivity.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem normalizedCyclotomicZHatIdeleClassValue_normOne_surjective :
    Function.Surjective
      (fun c : IdeleClassGroup.normOneSubgroup (K := K) =>
        normalizedCyclotomicZHatIdeleClassValueContinuous K
          (Additive.ofMul (c : IdeleClassGroup K))) := by
  let f :=
    fun c : IdeleClassGroup.normOneSubgroup (K := K) =>
      normalizedCyclotomicZHatIdeleClassValueContinuous K
        (Additive.ofMul (c : IdeleClassGroup K))
  have hf : Continuous f := by
    exact
      (normalizedCyclotomicZHatIdeleClassValueContinuous K).continuous_toFun.comp
        (continuous_ofMul.comp continuous_subtype_val)
  have hclosed : IsClosed (Set.range f) :=
    (isCompact_range hf).isClosed
  have hdense : Dense (Set.range f) := by
    change DenseRange f
    simpa only [f] using
      (normalizedCyclotomicZHatIdeleClassValue_normOne_denseRange K)
  intro z
  have hz : z ∈ closure (Set.range f) := by
    rw [hdense.closure_eq]
    trivial
  rwa [hclosed.closure_eq] at hz
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValue_surjective

The normalized cyclotomic idele-class value is surjective.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem normalizedCyclotomicZHatIdeleClassValue_surjective :
    Function.Surjective
      (normalizedCyclotomicZHatIdeleClassValueContinuous K)
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatIdeleClassValue_range

The normalized cyclotomic class value has full value group.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem normalizedCyclotomicZHatIdeleClassValue_range :
    (normalizedCyclotomicZHatIdeleClassValueContinuous K).toAddMonoidHom.range =
      (⊤ : AddSubgroup ZHat)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassValue_range

The rational cyclotomic class value has full value group.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatIdeleClassValue_range :
    rationalCyclotomicZHatIdeleClassValueContinuous.toAddMonoidHom.range =
      (⊤ : AddSubgroup ZHat)
GlobalClassFieldTheory.Reciprocity.cyclotomicZHatIntersectionDegree_nsmul_normalizedIdeleClassValue

The defining normalized-value identity after descent to idele classes:

f_K v_K(c) = v_ℚ(N_{K/ℚ} c).

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    cyclotomicZHatIntersectionDegree_nsmul_normalizedIdeleClassValue
    (c : Additive (IdeleClassGroup K)) :
    cyclotomicZHatIntersectionDegree K •
        normalizedCyclotomicZHatIdeleClassValueContinuous K c =
      rationalCyclotomicZHatIdeleClassValueContinuous
        (Additive.ofMul
          (_root_.ideleClassNorm ℚ K
            (Additive.toMul c)))
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassNormComposite

The rational cyclotomic value after the actual class norm N_{K/ℚ} : C_K → C_ℚ.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def rationalCyclotomicZHatIdeleClassNormComposite :
    Additive (IdeleClassGroup K) →+ ZHat
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassNormComposite_apply

Evaluation of the rational class-norm composite.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatIdeleClassNormComposite_apply
    (c : Additive (IdeleClassGroup K)) :
    rationalCyclotomicZHatIdeleClassNormComposite K c =
      rationalCyclotomicZHatIdeleClassValueContinuous
        (Additive.ofMul
          (_root_.ideleClassNorm ℚ K
            (Additive.toMul c)))
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassNormComposite_range

Exact image of the actual idele-class norm under the rational cyclotomic value.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatIdeleClassNormComposite_range :
    (rationalCyclotomicZHatIdeleClassNormComposite K).range =
      nsmulImage (⊤ : AddSubgroup ZHat)
        (cyclotomicZHatIntersectionDegree K)
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatNormOneIdeleClassValue

Restriction of the normalized class value to the compact norm-one idele class group.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def normalizedCyclotomicZHatNormOneIdeleClassValue :
    Additive (IdeleClassGroup.normOneSubgroup (K := K)) →+ ZHat
GlobalClassFieldTheory.Reciprocity.normalizedCyclotomicZHatNormOneIdeleClassValue_surjective

The normalized norm-one class value remains surjective.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem normalizedCyclotomicZHatNormOneIdeleClassValue_surjective :
    Function.Surjective
      (normalizedCyclotomicZHatNormOneIdeleClassValue K)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatNormOneIdeleClassNormComposite

The rational class value composed with the actual class norm, restricted to norm-one idele classes. The codomain restriction in normOneNorm is supplied by preservation of the absolute idele norm.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def rationalCyclotomicZHatNormOneIdeleClassNormComposite :
    Additive (IdeleClassGroup.normOneSubgroup (K := K)) →+ ZHat
GlobalClassFieldTheory.Reciprocity.cyclotomicZHatIntersectionDegree_nsmul_normalizedNormOneIdeleClassValue

The normalized identity restricted to the actual norm-one class norm.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    cyclotomicZHatIntersectionDegree_nsmul_normalizedNormOneIdeleClassValue
    (c : Additive
      (IdeleClassGroup.normOneSubgroup (K := K))) :
    cyclotomicZHatIntersectionDegree K •
        normalizedCyclotomicZHatNormOneIdeleClassValue K c =
      rationalCyclotomicZHatNormOneIdeleClassNormComposite K c
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatNormOneIdeleClassNormComposite_range

The exact cyclotomic image of the actual class norm is already attained on norm-one idele classes.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rationalCyclotomicZHatNormOneIdeleClassNormComposite_range :
    (rationalCyclotomicZHatNormOneIdeleClassNormComposite K).range =
      nsmulImage (⊤ : AddSubgroup ZHat)
        (cyclotomicZHatIntersectionDegree K)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation

The rational cyclotomic class valuation transported to the distinguished base fixed part of the absolute idele-class representation.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def rationalCyclotomicZHatValuation :
    KummerTheory.ambientFixedAddSubgroup
        rationalIdeleClassRepresentation
        (ClassFormation.baseField
          (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)) →+
      ZHat
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation_surjective

The transported rational cyclotomic valuation is surjective.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatValuation_surjective :
    Function.Surjective rationalCyclotomicZHatValuation
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation_range

The value group of the transported rational valuation is all of ZHat.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatValuation_range :
    rationalCyclotomicZHatValuation.range =
      (⊤ : AddSubgroup ZHat)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation_integer_mem_range

Every integral profinite value belongs to the transported rational cyclotomic valuation range.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatValuation_integer_mem_range
    (m : ℤ) :
    (Int.castRingHom ZHat) m ∈
      rationalCyclotomicZHatValuation.range
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation_canonicalValueQuotientMap_bijective

The canonical quotient map for the transported rational cyclotomic valuation is bijective at every positive level.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rationalCyclotomicZHatValuation_canonicalValueQuotientMap_bijective
    (n : ℕ) (hn : 0 < n) :
    Function.Bijective
      (canonicalValueQuotientMap
        rationalCyclotomicZHatValuation.range n hn)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicFiniteAbstractFieldQuotientFinite
Source context 12 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
section AbstractFixedFieldNormRange
variable
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
instance rationalCyclotomicFiniteAbstractFieldQuotientFinite :
    Finite
      ((ClassFormation.baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (ClassFormation.baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          H.field (ClassFormation.le_baseField H.field))
GlobalClassFieldTheory.Reciprocity.rationalAbstractFixedFieldFiniteDimensional
Source context 13 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
section AbstractFixedFieldNormRange
variable
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
local instance rationalCyclotomicFiniteAbstractFieldQuotientFinite :
    Finite
      ((ClassFormation.baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (ClassFormation.baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          H.field (ClassFormation.le_baseField H.field)) :=
  H.finite
theorem rationalAbstractFixedFieldFiniteDimensional :
    FiniteDimensional ℚ
      (LocalClassFieldTheory.abstractFixedField
        ℚ (SeparableClosure ℚ) H.field)
GlobalClassFieldTheory.Reciprocity.rationalAbstractFixedFieldNumberField
Source context 13 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
section AbstractFixedFieldNormRange
variable
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
local instance rationalCyclotomicFiniteAbstractFieldQuotientFinite :
    Finite
      ((ClassFormation.baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (ClassFormation.baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          H.field (ClassFormation.le_baseField H.field)) :=
  H.finite
theorem rationalAbstractFixedFieldNumberField :
    NumberField
      (LocalClassFieldTheory.abstractFixedField
        ℚ (SeparableClosure ℚ) H.field)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatIdeleClassNormComposite_abstractFixedField_range

For the actual number field fixed by a finite abstract field, the actual idele-class norm has cyclotomic image equal to the residue-degree multiples of ZHat.

Source context 13 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
section AbstractFixedFieldNormRange
variable
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
local instance rationalCyclotomicFiniteAbstractFieldQuotientFinite :
    Finite
      ((ClassFormation.baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (ClassFormation.baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          H.field (ClassFormation.le_baseField H.field)) :=
  H.finite
theorem
    rationalCyclotomicZHatIdeleClassNormComposite_abstractFixedField_range :
    let F :=
      LocalClassFieldTheory.abstractFixedField
        ℚ (SeparableClosure ℚ) H.field
    let : FiniteDimensional ℚ F :=
      rationalAbstractFixedFieldFiniteDimensional H
    let : NumberField F :=
      rationalAbstractFixedFieldNumberField H
    (rationalCyclotomicZHatIdeleClassNormComposite F).range =
      nsmulImage (⊤ : AddSubgroup ZHat)
        (H.residueDegree rationalCyclotomicDegreeData : ℕ) := by
  intro F hfinite hnumberField
  clear hfinite
  have hdegree :=
    cyclotomicZHatIntersectionDegree_abstractFixedField_eq_residueDegree H
  rw [rationalCyclotomicZHatIdeleClassNormComposite_range]
  exact
    congrArg
      (fun n : ℕ => nsmulImage (⊤ : AddSubgroup ZHat) n)
      hdegree
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation_normToBase_range

Exact norm-range identity after transport from the actual fixed-field idele class group to the abstract fixed part.

Source context 13 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
section AbstractFixedFieldNormRange
variable
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
local instance rationalCyclotomicFiniteAbstractFieldQuotientFinite :
    Finite
      ((ClassFormation.baseField
        (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ)).toSubgroup ⧸
        CyclicCohomology.extensionSubgroup
          (ClassFormation.baseField
            (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
          H.field (ClassFormation.le_baseField H.field)) :=
  H.finite
theorem rationalCyclotomicZHatValuation_normToBase_range :
    (rationalCyclotomicZHatValuation.comp
      (normToBase rationalIdeleClassRepresentation H.field)).range =
      nsmulImage rationalCyclotomicZHatValuation.range
        (H.residueDegree rationalCyclotomicDegreeData : ℕ)
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicIdeleClassValuationData

The concrete henselian valuation data on the absolute rational idele-class representation, with cyclotomic degree data.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
def rationalCyclotomicIdeleClassValuationData :
    ValuationData
      rationalCyclotomicDegreeData
      rationalIdeleClassRepresentation where
  toAddMonoidHom :=
    rationalCyclotomicZHatValuation
  integers_mem :=
    rationalCyclotomicZHatValuation_integer_mem_range
  canonical_value_quotient_bijective :=
    rationalCyclotomicZHatValuation_canonicalValueQuotientMap_bijective
  norm_range := by
    intro H
    exact rationalCyclotomicZHatValuation_normToBase_range H
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicZHatValuation_normToBase_fixed_apply

Transporting an actual fixed-field idele class into the rational absolute representation and then taking the base norm gives its ordinary idele-class norm cyclotomic value.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem rationalCyclotomicZHatValuation_normToBase_fixed_apply
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (c : Additive
      (IdeleClassGroup
        (LocalClassFieldTheory.abstractFixedField
          ℚ (SeparableClosure ℚ) H.field))) :
    rationalCyclotomicZHatValuation
        (normToBase rationalIdeleClassRepresentation H.field
          (rationalAbstractFixedFieldIdeleClassEquivFixed H.field c)) =
      rationalCyclotomicZHatIdeleClassNormComposite
        (LocalClassFieldTheory.abstractFixedField
          ℚ (SeparableClosure ℚ) H.field) c
GlobalClassFieldTheory.Reciprocity.rationalCyclotomicIdeleClassValuationData_valuationAt_fixed_apply

Under the genuine fixed-field idele-class comparison, the valuation used by abstract reciprocity is exactly the normalized cyclotomic idele-class value of that fixed field.

Source context 10 commands

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

open scoped NumberField
noncomputable section
namespace GlobalClassFieldTheory
namespace Reciprocity
open ClassFormation
open KummerTheory
attribute [local instance] cyclotomicValuationIdeleClassCommGroup
variable (K : Type) [Field K] [NumberField K]
/-- Use the rational algebra structure expected by the imported finite-layer
API throughout this block.  Fixing it before the first finite-layer binder
keeps the parameter and every restriction target definitionally aligned. -/
noncomputable local instance
    cyclotomicIdeleClassValuation_rationalCyclotomicZHatFieldAlgebra :
    Algebra ℚ rationalCyclotomicZHatField :=
  DivisionRing.toRatAlgebra
attribute [local instance]
  numberFieldCyclotomicZHatFiniteLayerNumberField
theorem
    rationalCyclotomicIdeleClassValuationData_valuationAt_fixed_apply
    (H : FiniteAbstractField
      (SeparableClosure ℚ ≃ₐ[ℚ] SeparableClosure ℚ))
    (c : Additive
      (IdeleClassGroup
        (LocalClassFieldTheory.abstractFixedField
          ℚ (SeparableClosure ℚ) H.field))) :
    ((rationalCyclotomicIdeleClassValuationData.valuationAt H
        (rationalAbstractFixedFieldIdeleClassEquivFixed H.field c) :
          rationalCyclotomicIdeleClassValuationData.valueGroup) :
        ZHat) =
      normalizedCyclotomicZHatIdeleClassValueContinuous
        (LocalClassFieldTheory.abstractFixedField
          ℚ (SeparableClosure ℚ) H.field) c