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.Complex.norm_rootOfUnity_eq_one: A complex root of unity has norm1.
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
IsPrimitiveRoot.norm'_eq_one
{ΞΆ : β}
{n : β}
(h : IsPrimitiveRoot ΞΆ n)
(hn : n β 0)
:
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)
:
theorem
Complex.norm_eq_one_of_mem_rootsOfUnity
{ΞΆ : βΛ£}
{n : β}
[NeZero n]
(hΞΆ : ΞΆ β rootsOfUnity n β)
:
theorem
Complex.conj_rootsOfUnity
{ΞΆ : βΛ£}
{n : β}
[NeZero n]
(hΞΆ : ΞΆ β rootsOfUnity n β)
:
(starRingEnd β) βΞΆ = βΞΆβ»ΒΉ