ModuleRationalRayClassFieldCyclotomic.lean
Nyll.ClassFieldTheory.KroneckerWeber.RationalRayClassFieldCyclotomic
36 declarations indexed from sourceView source ↗ Module documentation
The rational ray class field as an actual cyclotomic field
For a nonzero natural number m, the selected ray class field for the rational modulus (m) is isomorphic over ℚ to the actual cyclotomic field CyclotomicField m ℚ.
The field comparison is obtained from the exact idèle-class norm-range equality. We also retain the topological content of global reciprocity:
Gal(ℚ(μ_m) / ℚ) ≃ₜ* C_ℚ / C_ℚ^m.
Thus the result is an equality of actual class fields and not merely an equality of degrees or an abstract comparison of finite groups.
Declarations
KroneckerWeber.rationalCyclotomicLevelIsAbelianGalois
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
KroneckerWeber.galoisContinuousMulEquivRayClassGroupOfNormRangeEq
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
KroneckerWeber.quotientMulEquivOfNormRangeEq_globalNormResidue
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
KroneckerWeber.galoisContinuousMulEquivRayClassGroupOfNormRangeEq_globalNormResidue
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
KroneckerWeber.galEquivZMod_autCongr
DocumentationConjugating an automorphism between two actual singleton cyclotomic extensions preserves its exponent on primitive roots.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
Source context 10 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
Source context 11 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
Source context 12 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
KroneckerWeber.rationalCyclotomicLevelIsCyclotomicExtensionAtOrder
Source context 13 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
KroneckerWeber.rationalCyclotomicFieldIsCyclotomicExtension
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
KroneckerWeber.rationalCyclotomicFieldIsAbelianGalois
Source context 15 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
KroneckerWeber.rationalCyclotomicLevelIdeleClassNormRangeNormal
Source context 16 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
KroneckerWeber.rationalCyclotomicFieldIdeleClassNormRangeNormal
Source context 17 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevelAlgEquivCyclotomicField
DocumentationThe internal finite level of the rational cyclotomic closure is isomorphic over ℚ to mathlib's concrete cyclotomic field of the same order.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalPrimeArithmeticFrobeniusLocalInput
DocumentationA normalized local element of order one at the rational prime q. It is the inverse of the rational uniformizer in the absolute-value completion, transported to the adic-completion model used by idèles.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalPrimeArithmeticFrobeniusLocalInput_valuationMap
DocumentationThe normalized local input for prime-ideal Artin reciprocity has inverse-standard valuation exponent one.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevel_chosenFinitePlaceArtin_at_unramifiedPrime
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevel_globalNormResidue_at_unramifiedPrime
DocumentationAt an unramified rational prime q ∤ m, the actual global norm-residue symbol on the normalized one-place prime idèle acts on the internal m-th cyclotomic level by the direct exponent q.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevelGaloisContinuousMulEquivRayClassGroup
DocumentationTopological global reciprocity for the actual finite level inside the rational cyclotomic closure. The target is the idelic rational ray class group modulo (m), transported along the exact norm-range equality.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevelGaloisContinuousMulEquivRayClassGroup_apply
DocumentationEvaluation of finite-level rational cyclotomic reciprocity is inverse global norm-residue reciprocity followed by the exact ray norm-range transport.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevelGaloisContinuousMulEquivRayClassGroup_globalNormResidue
DocumentationOn an idèle-class representative, finite-level cyclotomic reciprocity is the actual global norm-residue symbol followed by its rational ray class modulo (m).
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevelGaloisContinuousMulEquivRayClassGroup_symm_mk
DocumentationInverse finite-level cyclotomic reciprocity sends the ray class of an idèle class back to its genuine global norm-residue symbol.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicLevel_rayReciprocity_at_unramifiedPrime
DocumentationThe inverse ray reciprocity image of the normalized one-place class at an unramified rational prime has direct cyclotomic exponent q. This places the actual global map, its ray quotient, and the Frobenius normalization on one literal finite cyclotomic field.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicPrimeArithmeticFrobenius
DocumentationThe actual arithmetic Frobenius at q on the concrete cyclotomic field, obtained by transporting the genuine global one-place Artin symbol from the internal cyclotomic level.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalCyclotomicPrimeArithmeticFrobenius_galEquivZMod
DocumentationFor q ∤ m, the actual arithmetic Frobenius on CyclotomicField m ℚ is the direct-q automorphism ζ ↦ ζ ^ q; no inverse appears.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalRayClassFieldCyclotomicRingEquiv
DocumentationThe selected rational ray class field is the actual cyclotomic field of the same modulus, as an equivalence of fields over ℚ.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalRayClassFieldCyclotomicAlgEquiv
DocumentationA chosen ℚ-algebra equivalence from the selected rational ray class field to the cyclotomic field of the same modulus.
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalRayClassFieldIsCyclotomicExtension
Source context 18 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
KroneckerWeber.rationalRayClassFieldIsAbelianGalois
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
KroneckerWeber.rationalRayClassFieldCyclotomicAlgEquiv_autCongr_globalNormResidue_character
DocumentationTransporting the actual norm-residue symbol of the selected rational ray class field to the concrete cyclotomic realization preserves its cyclotomic character. The left side uses the literal conjugation map on Galois automorphisms, not an abstract identification of finite groups.
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))
KroneckerWeber.rationalRayClassFieldCyclotomicAlgEquiv_autCongr_globalNormResidue_character_hom
DocumentationMonoid-hom form of cyclotomic-character invariance under the selected ray-class-field/cyclotomic-field realization.
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))
KroneckerWeber.rationalCyclotomicGaloisContinuousMulEquivRayClassGroup
DocumentationTopological global reciprocity for the actual rational cyclotomic field, with target the rational ray class group modulo (m).
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))
KroneckerWeber.rationalCyclotomicGaloisContinuousMulEquivZModUnits
DocumentationThe ordinary cyclotomic character, retaining the finite Krull topology on the actual Galois group and the discrete topology on (ℤ/mℤ)ˣ.
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))
KroneckerWeber.rationalCyclotomicGaloisContinuousMulEquivZModUnits_apply
DocumentationForgetting topology from the cyclotomic character recovers the standard galEquivZMod map literally.
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))
KroneckerWeber.rationalCyclotomicGaloisContinuousMulEquivRayClassGroup_apply
DocumentationEvaluation of rational cyclotomic reciprocity is inverse global norm-residue reciprocity followed by transport along the exact cyclotomic norm-range equality.
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))
KroneckerWeber.rationalCyclotomicGaloisContinuousMulEquivRayClassGroup_globalNormResidue
DocumentationOn an idèle-class representative, rational cyclotomic reciprocity sends the actual global norm-residue symbol to its ray class modulo (m).
Source context 20 commands
Surrounding namespaces, section variables, and local commands at this declaration.
open scoped IsMulCommutative NumberField Cyclotomic
noncomputable section
namespace KroneckerWeber
open GlobalClassFieldTheory
open GlobalClassFieldTheory.GlobalClassFields
open GlobalClassFieldTheory.Reciprocity
open NumberField IsDedekindDomain
noncomputable local instance rationalCyclotomicLevelIsAbelianGalois
(n : ℕ+) :
IsAbelianGalois ℚ (KummerTheory.rationalCyclotomicLevel n) :=
IsCyclotomicExtension.isAbelianGalois {(n : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel n)
section NonzeroOrder
variable (m : ℕ) [NeZero m]
local instance : NeZero (m : ℚ) :=
⟨by exact_mod_cast (NeZero.ne m)⟩
noncomputable local instance :
NumberField
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
KummerTheory.rationalCyclotomicLevel_numberField
⟨m, NeZero.pos m⟩
noncomputable local instance :
IsAbelianGalois ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) :=
rationalCyclotomicLevelIsAbelianGalois
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicLevelIsCyclotomicExtensionAtOrder :
IsCyclotomicExtension {m} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩) := by
change
IsCyclotomicExtension
{((⟨m, NeZero.pos m⟩ : ℕ+) : ℕ)} ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)
exact
KummerTheory.rationalCyclotomicLevel_isCyclotomicExtension
⟨m, NeZero.pos m⟩
noncomputable local instance rationalCyclotomicFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ (CyclotomicField m ℚ) :=
CyclotomicField.isCyclotomicExtension m ℚ
noncomputable local instance rationalCyclotomicFieldIsAbelianGalois :
IsAbelianGalois ℚ (CyclotomicField m ℚ) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(CyclotomicField m ℚ)
noncomputable local instance rationalCyclotomicLevelIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ
(KummerTheory.rationalCyclotomicLevel
⟨m, NeZero.pos m⟩)).range.Normal := by
rw [
rationalCyclotomicLevel_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalCyclotomicFieldIdeleClassNormRangeNormal :
(_root_.ideleClassNorm ℚ (CyclotomicField m ℚ)).range.Normal := by
rw [
rationalCyclotomicField_ideleClassNorm_range_eq_rationalCongruenceSubgroup
m (NeZero.ne m)]
infer_instance
noncomputable local instance rationalRayClassFieldIsCyclotomicExtension :
IsCyclotomicExtension {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.equiv {m} ℚ (CyclotomicField m ℚ)
(rationalRayClassFieldCyclotomicAlgEquiv m).symm
noncomputable local instance rationalRayClassFieldIsAbelianGalois :
IsAbelianGalois ℚ
(rayClassField ℚ (RayClass.rationalModulus m)) :=
IsCyclotomicExtension.isAbelianGalois {m} ℚ
(rayClassField ℚ (RayClass.rationalModulus m))