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 that- Bis obtained from- Aby adding- n-th primitive roots of unity, for all- n ∈ S.
- cyclotomic_field: given- n : ℕ+and a field- K, we define- cyclotomic n Kas the splitting field of- cyclotomic n K. If- nis nonzero in- K, it has the instance- is_cyclotomic_extension {n} K (cyclotomic_field n K).
- cyclotomic_ring: if- Ais a domain with fraction field- Kand- n : ℕ+, we define- cyclotomic_ring n A Kas the- A-subalgebra of- cyclotomic_field n Kgenerated by the roots of- X ^ n - 1. If- nis nonzero in- A, it has the instance- is_cyclotomic_extension {n} A (cyclotomic_ring n A K).
Main results #
- is_cyclotomic_extension.trans: if- is_cyclotomic_extension S A Band- is_cyclotomic_extension T B C, then- is_cyclotomic_extension (S ∪ T) A Cif- function.injective (algebra_map B C).
- is_cyclotomic_extension.union_right: given- is_cyclotomic_extension (S ∪ T) A B, then- is_cyclotomic_extension T (adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 }) B.
- is_cyclotomic_extension.union_right: given- is_cyclotomic_extension T A Band- S ⊆ T, then- is_cyclotomic_extension S A (adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 }).
- is_cyclotomic_extension.finite: if- Sis finite and- is_cyclotomic_extension S A B, then- Bis a finite- A-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: if- is_cyclotomic_extension {n} K L, then- Lis the splitting field of- X ^ n - 1.
- is_cyclotomic_extension.splitting_field_cyclotomic: if- is_cyclotomic_extension {n} K L, then- Lis the splitting field of- cyclotomic 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