Cyclotomic extensions #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Let A
and B
be commutative rings with algebra A B
. For S : set ℕ+
, we define a class
is_cyclotomic_extension S A B
expressing the fact that B
is obtained from A
by adding n
-th
primitive roots of unity, for all n ∈ S
.
Main definitions #
is_cyclotomic_extension S A B
: means thatB
is obtained fromA
by addingn
-th primitive roots of unity, for alln ∈ S
.cyclotomic_field
: givenn : ℕ+
and a fieldK
, we definecyclotomic n K
as the splitting field ofcyclotomic n K
. Ifn
is nonzero inK
, it has the instanceis_cyclotomic_extension {n} K (cyclotomic_field n K)
.cyclotomic_ring
: ifA
is a domain with fraction fieldK
andn : ℕ+
, we definecyclotomic_ring n A K
as theA
-subalgebra ofcyclotomic_field n K
generated by the roots ofX ^ n - 1
. Ifn
is nonzero inA
, it has the instanceis_cyclotomic_extension {n} A (cyclotomic_ring n A K)
.
Main results #
is_cyclotomic_extension.trans
: ifis_cyclotomic_extension S A B
andis_cyclotomic_extension T B C
, thenis_cyclotomic_extension (S ∪ T) A C
iffunction.injective (algebra_map B C)
.is_cyclotomic_extension.union_right
: givenis_cyclotomic_extension (S ∪ T) A B
, thenis_cyclotomic_extension T (adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 }) B
.is_cyclotomic_extension.union_right
: givenis_cyclotomic_extension T A B
andS ⊆ T
, thenis_cyclotomic_extension S A (adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 })
.is_cyclotomic_extension.finite
: ifS
is finite andis_cyclotomic_extension S A B
, thenB
is a finiteA
-algebra.is_cyclotomic_extension.number_field
: a finite cyclotomic extension of a number field is a number field.is_cyclotomic_extension.splitting_field_X_pow_sub_one
: ifis_cyclotomic_extension {n} K L
, thenL
is the splitting field ofX ^ n - 1
.is_cyclotomic_extension.splitting_field_cyclotomic
: ifis_cyclotomic_extension {n} K L
, thenL
is the splitting field ofcyclotomic n K
.
Implementation details #
Our definition of is_cyclotomic_extension
is very general, to allow rings of any characteristic
and infinite extensions, but it will mainly be used in the case S = {n}
and for integral domains.
All results are in the is_cyclotomic_extension
namespace.
Note that some results, for example is_cyclotomic_extension.trans
,
is_cyclotomic_extension.finite
, is_cyclotomic_extension.number_field
,
is_cyclotomic_extension.finite_dimensional
, is_cyclotomic_extension.is_galois
and
cyclotomic_field.algebra_base
are lemmas, but they can be made local instances. Some of them are
included in the cyclotomic
locale.
- exists_prim_root : ∀ {n : ℕ+}, n ∈ S → (∃ (r : B), is_primitive_root r ↑n)
- adjoin_roots : ∀ (x : B), x ∈ algebra.adjoin A {b : B | ∃ (n : ℕ+), n ∈ S ∧ b ^ ↑n = 1}
Given an A
-algebra B
and S : set ℕ+
, we define is_cyclotomic_extension S A B
requiring
that there is a n
-th primitive root of unity in B
for all n ∈ S
and that B
is generated
over A
by the roots of X ^ n - 1
.
A reformulation of is_cyclotomic_extension
that uses ⊤
.
A reformulation of is_cyclotomic_extension
in the case S
is a singleton.
If is_cyclotomic_extension ∅ A B
, then the image of A
in B
equals B
.
If is_cyclotomic_extension {1} A B
, then the image of A
in B
equals B
.
If (⊥ : subalgebra A B) = ⊤
, then is_cyclotomic_extension ∅ A B
.
Transitivity of cyclotomic extensions.
If B
is a cyclotomic extension of A
given by roots of unity of order in S ∪ T
, then B
is a cyclotomic extension of adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 }
given by
roots of unity of order in T
.
If B
is a cyclotomic extension of A
given by roots of unity of order in T
and S ⊆ T
,
then adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 }
is a cyclotomic extension of B
given by roots of unity of order in S
.
If ∀ s ∈ S, n ∣ s
and S
is not empty, then is_cyclotomic_extension S A B
implies
is_cyclotomic_extension (S ∪ {n}) A B
.
If ∀ s ∈ S, n ∣ s
and S
is not empty, then is_cyclotomic_extension S A B
if and only if
is_cyclotomic_extension (S ∪ {n}) A B
.
is_cyclotomic_extension S A B
is equivalent to is_cyclotomic_extension (S ∪ {1}) A B
.
If (⊥ : subalgebra A B) = ⊤
, then is_cyclotomic_extension {1} A B
.
If function.surjective (algebra_map A B)
, then is_cyclotomic_extension {1} A B
.
Given (f : B ≃ₐ[A] C)
, if is_cyclotomic_extension S A B
then
is_cyclotomic_extension S A C
.
If S
is finite and is_cyclotomic_extension S A B
, then B
is a finite A
-algebra.
A cyclotomic finite extension of a number field is a number field.
A finite cyclotomic extension of an integral noetherian domain is integral
If S
is finite and is_cyclotomic_extension S K A
, then finite_dimensional K A
.
A cyclotomic extension splits X ^ n - 1
if n ∈ S
.
A cyclotomic extension splits cyclotomic n K
if n ∈ S
and ne_zero (n : K)
.
If is_cyclotomic_extension {n} K L
, then L
is the splitting field of X ^ n - 1
.
Any two n
-th cyclotomic extensions are isomorphic.
Equations
- is_cyclotomic_extension.alg_equiv n K L L' = let h₁ : polynomial.is_splitting_field K L (polynomial.X ^ ↑n - 1) := _, h₂ : polynomial.is_splitting_field K L' (polynomial.X ^ ↑n - 1) := _ in (polynomial.is_splitting_field.alg_equiv L (polynomial.X ^ ↑n - 1)).trans (polynomial.is_splitting_field.alg_equiv L' (polynomial.X ^ ↑n - 1)).symm
If is_cyclotomic_extension {n} K L
, then L
is the splitting field of cyclotomic n K
.
Given n : ℕ+
and a field K
, we define cyclotomic_field n K
as the
splitting field of cyclotomic n K
. If n
is nonzero in K
, it has
the instance is_cyclotomic_extension {n} K (cyclotomic_field n K)
.
Equations
Instances for cyclotomic_field
- cyclotomic_field.field
- cyclotomic_field.algebra
- cyclotomic_field.inhabited
- cyclotomic_field.char_zero
- cyclotomic_field.is_cyclotomic_extension
- cyclotomic_field.algebra_base
- cyclotomic_field.algebra'
- cyclotomic_field.is_scalar_tower
- cyclotomic_field.no_zero_smul_divisors
- cyclotomic_ring.cyclotomic_field.algebra
- cyclotomic_ring.cyclotomic_field.no_zero_smul_divisors
- cyclotomic_ring.cyclotomic_field.is_scalar_tower
- cyclotomic_ring.cyclotomic_field.is_fraction_ring
If K
is the fraction field of A
, the A
-algebra structure on cyclotomic_field n K
.
Equations
Equations
If A
is a domain with fraction field K
and n : ℕ+
, we define cyclotomic_ring n A K
as
the A
-subalgebra of cyclotomic_field n K
generated by the roots of X ^ n - 1
. If n
is nonzero in A
, it has the instance is_cyclotomic_extension {n} A (cyclotomic_ring n A K)
.
Equations
- cyclotomic_ring n A K = ↥(algebra.adjoin A {b : cyclotomic_field n K | b ^ ↑n = 1})
Instances for cyclotomic_ring
- cyclotomic_ring.comm_ring
- cyclotomic_ring.is_domain
- cyclotomic_ring.inhabited
- cyclotomic_ring.algebra_base
- cyclotomic_ring.no_zero_smul_divisors
- cyclotomic_ring.cyclotomic_field.algebra
- cyclotomic_ring.cyclotomic_field.no_zero_smul_divisors
- cyclotomic_ring.cyclotomic_field.is_scalar_tower
- cyclotomic_ring.is_cyclotomic_extension
The A
-algebra structure on cyclotomic_ring n A K
.
Equations
- cyclotomic_ring.algebra_base n A K = (algebra.adjoin A {b : cyclotomic_field n K | b ^ ↑n = 1}).algebra
Equations
- cyclotomic_ring.cyclotomic_field.algebra n A K = (algebra.adjoin A {b : cyclotomic_field n K | b ^ ↑n = 1}).to_algebra