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 #
Complex.mem_rootsOfUnity
: the complexn
-th roots of unity are exactly the complex numbers of the formexp (2 * π * I * (i / n))
for somei < n
.Complex.card_rootsOfUnity
: the number ofn
-th roots of unity is exactlyn
.
theorem
Complex.isPrimitiveRoot_exp_of_coprime
(i : ℕ)
(n : ℕ)
(h0 : n ≠ 0)
(hi : Nat.Coprime i n)
:
IsPrimitiveRoot (Complex.exp (2 * ↑Real.pi * Complex.I * (↑i / ↑n))) n
theorem
Complex.isPrimitiveRoot_exp
(n : ℕ)
(h0 : n ≠ 0)
:
IsPrimitiveRoot (Complex.exp (2 * ↑Real.pi * Complex.I / ↑n)) n
theorem
Complex.isPrimitiveRoot_iff
(ζ : ℂ)
(n : ℕ)
(hn : n ≠ 0)
:
IsPrimitiveRoot ζ n ↔ ∃ i < n, ∃ (_ : Nat.Coprime i n), Complex.exp (2 * ↑Real.pi * Complex.I * (↑i / ↑n)) = ζ
theorem
IsPrimitiveRoot.arg_ext
{n : ℕ}
{m : ℕ}
{ζ : ℂ}
{μ : ℂ}
(hζ : IsPrimitiveRoot ζ n)
(hμ : IsPrimitiveRoot μ m)
(hn : n ≠ 0)
(hm : m ≠ 0)
(h : Complex.arg ζ = Complex.arg μ)
:
ζ = μ
theorem
IsPrimitiveRoot.arg_eq_zero_iff
{n : ℕ}
{ζ : ℂ}
(hζ : IsPrimitiveRoot ζ n)
(hn : n ≠ 0)
:
Complex.arg ζ = 0 ↔ ζ = 1
theorem
IsPrimitiveRoot.arg_eq_pi_iff
{n : ℕ}
{ζ : ℂ}
(hζ : IsPrimitiveRoot ζ n)
(hn : n ≠ 0)
:
Complex.arg ζ = Real.pi ↔ ζ = -1