Documentation

TauCeti.Analysis.SpecialFunctions.Trigonometric.Cotangent

The cotangent over ℤ and away from the real axis #

Mathlib's partial-fraction expansion of the cotangent (cot_series_rep) pairs the poles at ± n. Pairing each pole n instead with the constant 1 / n gives an absolutely convergent series over ℤ (TauCeti.hasSum_one_div_sub_intCast_add_one_div_intCast):

π cot (π w) = ∑_{n ∈ ℤ} (1 / (w - n) + 1 / n) for w ∉ ℤ,

the term at n = 0 being 1 / w. This is the form in which the cotangent appears as a row of the lattice series of the Weierstrass ζ function.

Away from the real axis, π cot (π u) tends to -π i as Im u → ∞, and to π i as Im u → -∞, exponentially fast: with q = e^(2π i u), π cot (π u) + π i = 2π q / (i (1 - q)) (TauCeti.norm_pi_mul_cot_pi_mul_add_pi_mul_I_le, TauCeti.norm_pi_mul_cot_pi_mul_sub_pi_mul_I_le). Correcting by these limits, the cotangents π cot (π m w) + sign(m) π i are odd in m ∈ ℤ and sum to 0; at the division points (c z + b) / M the q-expansion is a series in e(z / M) = e^(2π i z / M) with coefficients e(k b / M).

Main results #

@[simp]
theorem Complex.cot_neg (z : ℂ) :
cot (-z) = -cot z

The cotangent is odd.

@[simp]
theorem Complex.cot_zero :
cot 0 = 0

The junk value of the cotangent at its pole 0 is 0.

The partial-fraction expansion of the cotangent over ℤ. For w ∉ ℤ, π cot (π w) = ∑_{n ∈ ℤ} (1 / (w - n) + 1 / n), the series converging absolutely; its term at n = 0 is 1 / w.

The q-expansion of the cotangent in the upper half-plane: if 0 < Im w, then π cot (π w) + π i = -2π i ∑_{k ≥ 1} e^(2π i k w). This is Mathlib's pi_mul_cot_pi_q_exp with the constant term separated from the series.

The cotangent tends to -i in the upper half-plane: if 0 < t ≤ Im u, then ‖π cot (π u) + π i‖ ≤ 2π e^(-2π Im u) / (1 - e^(-2π t)).

The cotangent tends to i in the lower half-plane: if 0 < t ≤ -Im u, then ‖π cot (π u) - π i‖ ≤ 2π e^(2π Im u) / (1 - e^(-2π t)).

theorem TauCeti.norm_pi_mul_cot_pi_mul_le {u : ℂ} {t : ℝ} (ht : 0 < t) (hu : t ≤ u.im) :

π cot (π u) is bounded by 2π / (1 - e^(-2π t)) + π when t ≤ Im u for some t > 0.

theorem TauCeti.norm_pi_mul_cot_pi_mul_add_pi_mul_cot_pi_mul_le {u v : ℂ} {t r : ℝ} (ht : 0 < t) (hu : t ≤ u.im) (hur : r ≤ u.im) (hv : t ≤ -v.im) (hvr : r ≤ -v.im) :

The sum of π cot (π u) and π cot (π v), for u in the upper and v in the lower half-plane, at imaginary distance at least t > 0 from the real axis and r from it, is at most 2 (2π / (1 - e^(-2π t))) e^(-2π r): the two cotangents approach -π i and π i.

theorem TauCeti.hasSum_pi_mul_cot_pi_mul_div_add_pi_mul_I (M : ℕ) [NeZero M] (c : ℕ+) (b : ℤ) {z : ℂ} (hz : 0 < z.im) :
HasSum (fun (k : ℕ+) => -2 * ↑Real.pi * Complex.I * (ZMod.stdAddChar (↑↑k * ↑b) * Complex.exp (2 * ↑Real.pi * Complex.I * z / ↑M) ^ (↑c * ↑k))) (↑Real.pi * Complex.cot (↑Real.pi * ((↑↑c * z + ↑b) / ↑M)) + ↑Real.pi * Complex.I)

The q-expansion of the cotangent at a division point: if 0 < Im z, c ≥ 1 and b ∈ ℤ, then π cot (π (c z + b) / M) + π i = -2π i ∑_{k ≥ 1} e(k b / M) e(z / M)^(c k), where e(k b / M) = ZMod.stdAddChar (k b) and e(z / M) = e^(2π i z / M).

theorem TauCeti.hasSum_ite_pi_mul_cot_pi_mul_div_add_pi_mul_I (M : ℕ) [NeZero M] (d : ZMod M) (b : ℤ) {z : ℂ} (hz : 0 < z.im) :
HasSum (fun (c : ℕ+) => if ↑↑c = d then ↑Real.pi * Complex.cot (↑Real.pi * ((↑↑c * z + ↑b) / ↑M)) + ↑Real.pi * Complex.I else 0) (-2 * ↑Real.pi * Complex.I * ∑' (p : ℕ+ × ℕ+), (if ↑↑p.1 = d then ZMod.stdAddChar (↑↑p.2 * ↑b) else 0) * Complex.exp (2 * ↑Real.pi * Complex.I * z / ↑M) ^ (↑p.1 * ↑p.2))

The q-expansion of the cotangents at the division points of a residue class: if 0 < Im z, the cotangents π cot (π (c z + b) / M) + π i with c ≥ 1 and c ≡ d modulo M sum to the absolutely convergent double series -2π i ∑_{c ≡ d, k ≥ 1} e(k b / M) e(z / M)^(c k).

theorem TauCeti.hasSum_pi_mul_cot_pi_mul_intCast_mul_add_sign {w : ℂ} (hw : 0 < w.im) :
HasSum (fun (m : ℤ) => ↑Real.pi * Complex.cot (↑Real.pi * (↑m * w)) + ↑m.sign * (↑Real.pi * Complex.I)) 0

The corrected cotangents over ℤ sum to zero: if 0 < Im w, the terms π cot (π m w) + sign(m) π i are odd in m ∈ ℤ, decay geometrically, and sum to 0.

theorem TauCeti.hasSum_ite_pi_mul_cot_pi_mul_intCast_div_add_sign (M : ℕ) [NeZero M] (d : ZMod M) (b : ℤ) {z : ℂ} (hz : 0 < z.im) :
HasSum (fun (n : ℤ) => if ↑n = d then ↑Real.pi * Complex.cot (↑Real.pi * ((↑n * z + ↑b) / ↑M)) + ↑n.sign * (↑Real.pi * Complex.I) else 0) ((if d = 0 then ↑Real.pi * Complex.cot (↑Real.pi * (↑b / ↑M)) else 0) + ∑' (p : ℕ+ × ℕ+), -2 * ↑Real.pi * Complex.I * ((if ↑↑p.1 = d then ZMod.stdAddChar (↑↑p.2 * ↑b) else 0) - if ↑↑p.1 = -d then ZMod.stdAddChar (-(↑↑p.2 * ↑b)) else 0) * Complex.exp (2 * ↑Real.pi * Complex.I * z / ↑M) ^ (↑p.1 * ↑p.2))

The corrected cotangents along a residue class of ℤ: if 0 < Im z, the cotangents π cot (π (n z + b) / M) + sign(n) π i over n ≡ d modulo M sum to the absolutely convergent double series -2π i ∑_{c, k ≥ 1} D(c, k) e(z / M)^(c k), plus the term π cot (π b / M) at n = 0 if d = 0. Here D(c, k) is e(k b / M) if c ≡ d minus e(-k b / M) if c ≡ -d: the classes n = c ≥ 1 and n = -c ≤ -1 give its two parts.

theorem TauCeti.hasSum_pi_mul_cot_pi_mul_div_sub_intCast_mul_add_pi_mul_cot {M b₀ : ℕ} [NeZero M] (hb : b₀ < M) (b : ℤ) {z : ℂ} (hz : 0 < z.im) :
HasSum (fun (m : ℤ) => ↑Real.pi * Complex.cot (↑Real.pi * ((↑b₀ * z + ↑b) / ↑M - ↑m * z)) + ↑Real.pi * Complex.cot (↑Real.pi * (↑m * z))) ((if b₀ = 0 then ↑Real.pi * Complex.cot (↑Real.pi * (↑b / ↑M)) else -(↑Real.pi * Complex.I)) + ∑' (p : ℕ+ × ℕ+), -2 * ↑Real.pi * Complex.I * ((if ↑↑p.1 = ↑b₀ then ZMod.stdAddChar (↑↑p.2 * ↑b) else 0) - if ↑↑p.1 = -↑b₀ then ZMod.stdAddChar (-(↑↑p.2 * ↑b)) else 0) * Complex.exp (2 * ↑Real.pi * Complex.I * z / ↑M) ^ (↑p.1 * ↑p.2))

The cotangent rows at a division point, as a q-expansion. If 0 < Im z and 0 ≤ b₀ < M, the rows π cot (π (x - m z)) + π cot (π m z) at x = (b₀ z + b) / M sum over m ∈ ℤ to -2π i ∑_{c, k ≥ 1} D(c, k) e(z / M)^(c k), plus the constant π cot (π b / M) if b₀ = 0 and -π i otherwise, with D as in TauCeti.hasSum_ite_pi_mul_cot_pi_mul_intCast_div_add_sign. Write x - m z = (n z + b) / M with n = b₀ - m M, which runs over the residue class of b₀; the signs of n and m cancel except at m = 0, and the remaining cotangents π cot (π m z) + sign(m) π i cancel in pairs.

theorem TauCeti.pi_mul_cot_pi_mul_val_div_eq_sum (M : ℕ) [NeZero M] {j : ZMod M} (hj : j ≠ 0) :
↑Real.pi * Complex.cot (↑Real.pi * (↑j.val / ↑M)) = ↑Real.pi * Complex.I + 2 * ↑Real.pi * Complex.I / ↑M * ∑ m : ZMod M, ↑m.val * ZMod.stdAddChar (m * j)

The finite Fourier expansion of the cotangent at the division points. For a nonzero residue j modulo M, π cot (π j / M) = π i + (2π i / M) ∑_{m mod M} m e(m j / M), with 0 ≤ m < M the representative of m and e(x) = e^(2π i x). With ζ = e(j / M) ≠ 1, the sum ∑_{m < M} m ζ^m is M / (ζ - 1).

theorem TauCeti.sum_pi_mul_cot_pi_mul_val_div_mul_stdAddChar (M : ℕ) [NeZero M] (x : ZMod M) :
∑ j : ZMod M, ↑Real.pi * Complex.cot (↑Real.pi * (↑j.val / ↑M)) * ZMod.stdAddChar (x * j) = if x = 0 then 0 else ↑Real.pi * Complex.I * (↑M - 2 * ↑x.val)

The finite Fourier transform of the cotangent at the division points. For a residue x modulo M, ∑_{j mod M} π cot (π j / M) e(x j / M) is π i (M - 2 x) if x ≠ 0, with 0 ≤ x < M the representative of x, and 0 if x = 0. The term at j = 0 is cot 0 = 0.