Documentation

Mathlib.RingTheory.RootsOfUnity.Complex

Complex roots of unity #

In this file we show that the n-th complex roots of unity are exactly the complex numbers exp (2 * Ο€ * I * (i / n)) for i ∈ Finset.range n.

Main declarations #

theorem Complex.isPrimitiveRoot_exp_of_isCoprime (i : β„€) (n : β„•) (h0 : n β‰  0) (hi : IsCoprime i ↑n) :
IsPrimitiveRoot (exp (2 * ↑Real.pi * I * (↑i / ↑n))) n
theorem Complex.isPrimitiveRoot_exp_of_coprime (i n : β„•) (h0 : n β‰  0) (hi : i.Coprime n) :
IsPrimitiveRoot (exp (2 * ↑Real.pi * I * (↑i / ↑n))) n
theorem Complex.isPrimitiveRoot_exp_rat (q : β„š) :
IsPrimitiveRoot (exp (2 * ↑Real.pi * I * ↑q)) q.den
theorem Complex.isPrimitiveRoot_exp_rat_of_even_num (q : β„š) (h : Even q.num) :
IsPrimitiveRoot (exp (↑Real.pi * I * ↑q)) q.den
theorem Complex.isPrimitiveRoot_exp_rat_of_odd_num (q : β„š) (h : Odd q.num) :
IsPrimitiveRoot (exp (↑Real.pi * I * ↑q)) (2 * q.den)
theorem Complex.isPrimitiveRoot_exp (n : β„•) (h0 : n β‰  0) :
IsPrimitiveRoot (exp (2 * ↑Real.pi * I / ↑n)) n
theorem Complex.isPrimitiveRoot_iff (ΞΆ : β„‚) (n : β„•) (hn : n β‰  0) :
IsPrimitiveRoot ΞΆ n ↔ βˆƒ i < n, βˆƒ (_ : i.Coprime n), exp (2 * ↑Real.pi * I * (↑i / ↑n)) = ΞΆ
theorem Complex.mem_rootsOfUnity (n : β„•) [NeZero n] (x : β„‚Λ£) :
x ∈ rootsOfUnity n β„‚ ↔ βˆƒ i < n, exp (2 * ↑Real.pi * I * (↑i / ↑n)) = ↑x

The complex n-th roots of unity are exactly the complex numbers of the form exp (2 * Real.pi * Complex.I * (i / n)) for some i < n.

theorem Complex.card_rootsOfUnity (n : β„•) [NeZero n] :
theorem IsPrimitiveRoot.norm'_eq_one {ΞΆ : β„‚} {n : β„•} (h : IsPrimitiveRoot ΞΆ n) (hn : n β‰  0) :
β€–ΞΆβ€– = 1
theorem IsPrimitiveRoot.nnnorm_eq_one {ΞΆ : β„‚} {n : β„•} (h : IsPrimitiveRoot ΞΆ n) (hn : n β‰  0) :
theorem IsPrimitiveRoot.arg_ext {n m : β„•} {ΞΆ ΞΌ : β„‚} (hΞΆ : IsPrimitiveRoot ΞΆ n) (hΞΌ : IsPrimitiveRoot ΞΌ m) (hn : n β‰  0) (hm : m β‰  0) (h : ΞΆ.arg = ΞΌ.arg) :
ΞΆ = ΞΌ
theorem IsPrimitiveRoot.arg_eq_zero_iff {n : β„•} {ΞΆ : β„‚} (hΞΆ : IsPrimitiveRoot ΞΆ n) (hn : n β‰  0) :
ΞΆ.arg = 0 ↔ ΞΆ = 1
theorem IsPrimitiveRoot.arg_eq_pi_iff {n : β„•} {ΞΆ : β„‚} (hΞΆ : IsPrimitiveRoot ΞΆ n) (hn : n β‰  0) :
ΞΆ.arg = Real.pi ↔ ΞΆ = -1
theorem IsPrimitiveRoot.arg {n : β„•} {ΞΆ : β„‚} (h : IsPrimitiveRoot ΞΆ n) (hn : n β‰  0) :
βˆƒ (i : β„€), ΞΆ.arg = ↑i / ↑n * (2 * Real.pi) ∧ IsCoprime i ↑n ∧ i.natAbs < n
theorem Complex.norm_eq_one_of_mem_rootsOfUnity {ΞΆ : β„‚Λ£} {n : β„•} [NeZero n] (hΞΆ : ΞΆ ∈ rootsOfUnity n β„‚) :
‖↑΢‖ = 1
theorem Complex.conj_rootsOfUnity {ΞΆ : β„‚Λ£} {n : β„•} [NeZero n] (hΞΆ : ΞΆ ∈ rootsOfUnity n β„‚) :
(starRingEnd β„‚) ↑΢ = ↑΢⁻¹