Documentation

Atlas.ComplexVariables.code.Lecture2

Lecture 2: Roots of Unity #

This file formalizes results from Lecture 2, including the exponential addition law, the real power formula, and Theorem 2 which characterizes the n-th roots of unity as powers of the primitive root ω = exp(2πi/n) = cos(2π/n) + i·sin(2π/n).

Main declarations #

theorem Complex.exp_add_prop1 (z w : ) :
exp (z + w) = exp z * exp w

Proposition 1 (Exponential Addition Law): The complex exponential satisfies exp(z + w) = exp(z) · exp(w) for all z, w ∈ ℂ.

This fundamental property means exp is a homomorphism from (ℂ, +) to (ℂ, ·). The textbook proves this via ODE uniqueness: the functions t ↦ exp((t·z) + w) and t ↦ exp(t·z) · exp(w) both satisfy f'(t) = z · f(t) with f(0) = exp(w).

This is a thin wrapper around Mathlib's Complex.exp_add, included for pedagogical cross-referencing with the book's Proposition 1.

theorem Complex.exp_mul_exp_neg_eq_one (z : ) :
exp z * exp (-z) = 1

Corollary of Proposition 1: exp(z) · exp(-z) = 1.

The textbook notes this immediately after Proposition 1 (for z = it), showing that exp(z) is always a unit in with inverse exp(-z).

theorem Complex.exp_add_two_pi_mul_I (z : ) :
exp (z + 2 * Real.pi * I) = exp z

Periodicity of the complex exponential (Corollary of Proposition 1): exp(z + 2πi) = exp(z) for all z ∈ ℂ.

The textbook derives this from Proposition 1 and the fact that exp(2πi) = 1 (Euler's formula). We prove it the same way.

theorem Complex.exp_mul_exp_mul_exp_neg_eq_one (z w : ) :
exp z * exp w * exp (-z - w) = 1

exp(z) · exp(w) · exp(-z - w) = 1: a two-variable cancellation identity using the exponential addition law twice.

theorem rpow_eq_exp_mul_log (b : ) (hb : 0 < b) (x : ) :
b ^ x = Real.exp (x * Real.log b)

Theorem 1 (Lecture 2): b^x = exp(x * log b) for b > 0 and x ∈ ℝ.

theorem rpow_add_mul (b : ) (hb : 0 < b) (x y : ) :
b ^ (x + y) = b ^ x * b ^ y

Corollary 1 (Lecture 2): b^(x+y) = b^x * b^y for b > 0.

noncomputable def primitiveUnitRoot (n : ) :

The primitive n-th root of unity ω = exp(2πi/n), as in Theorem 2, Lecture 2.

Instances For

    The primitive root of unity equals cos(2π/n) + i·sin(2π/n), by Euler's formula.

    ω is a primitive n-th root of unity.

    theorem roots_of_unity_eq_powers_of_primitiveUnitRoot (n : ) (hn : 0 < n) (z : ) :
    z ^ n = 1 ∃ (k : Fin n), z = primitiveUnitRoot n ^ k

    Theorem 2, Lecture 2. The roots of $z^n = 1$ are $1, \omega, \omega^2, \ldots, \omega^{n-1}$, where $\omega = \cos(2\pi/n) + i\sin(2\pi/n) = \exp(2\pi i/n)$.

    More precisely, for $n > 0$, a complex number $z$ satisfies $z^n = 1$ if and only if $z = \omega^k$ for some $0 \le k < n$, where $\omega$ is the primitive $n$-th root of unity.

    theorem Complex.log_mul_eq_add_log_add_int (z₁ z₂ : ) (hz₁ : z₁ 0) (hz₂ : z₂ 0) :
    n{-1, 0, 1}, log (z₁ * z₂) = log z₁ + log z₂ + n * (2 * Real.pi * I)

    Theorem 3, Lecture 2 (general form): For nonzero complex numbers z₁ and z₂, Log(z₁ z₂) = Log(z₁) + Log(z₂) + n · 2πi where n ∈ {-1, 0, 1}.

    The correction term arises because Arg takes values in (-π, π], so the sum Arg(z₁) + Arg(z₂) may fall outside this range, requiring a correction by ±2π.

    theorem Complex.log_mul_of_arg_sum (z₁ z₂ : ) (hz₁ : z₁ 0) (hz₂ : z₂ 0) (h_lo : -Real.pi < z₁.arg + z₂.arg) (h_hi : z₁.arg + z₂.arg < Real.pi) :
    log (z₁ * z₂) = log z₁ + log z₂

    Theorem 3, Lecture 2 (special case): If -π < Arg(z₁) + Arg(z₂) < π, then Log(z₁ z₂) = Log(z₁) + Log(z₂) (i.e., the correction term n equals 0).