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 thatBis obtained fromAby addingn-th primitive roots of unity, for alln ∈ S.cyclotomic_field: givenn : ℕ+and a fieldK, we definecyclotomic n Kas the splitting field ofcyclotomic n K. Ifnis nonzero inK, it has the instanceis_cyclotomic_extension {n} K (cyclotomic_field n K).cyclotomic_ring: ifAis a domain with fraction fieldKandn : ℕ+, we definecyclotomic_ring n A Kas theA-subalgebra ofcyclotomic_field n Kgenerated by the roots ofX ^ n - 1. Ifnis 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 Bandis_cyclotomic_extension T B C, thenis_cyclotomic_extension (S ∪ T) A Ciffunction.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 BandS ⊆ T, thenis_cyclotomic_extension S A (adjoin A { b : B | ∃ a : ℕ+, a ∈ S ∧ b ^ (a : ℕ) = 1 }).is_cyclotomic_extension.finite: ifSis finite andis_cyclotomic_extension S A B, thenBis 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, thenLis the splitting field ofX ^ n - 1.is_cyclotomic_extension.splitting_field_cyclotomic: ifis_cyclotomic_extension {n} K L, thenLis 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