Hardy zeta

11.16. HardyZeta.ThetaCusp🔗

def thetaTerm (z : ℂ) (n : ℕ) : ℂ := Complex.exp (-Real.pi * (n : ℂ) ^ 2 * z)theorem hasSum_thetaTerm {z : ℂ} (hz : 0 < z.re) : HasSum (thetaTerm z) (1 + psi z) := z:ℂhz:0 < z.re⊢ HasSum (thetaTerm z) (1 + psi z) z:ℂhz:0 < z.reh:HasSum (fun n => thetaTerm z (n + 1)) (psi z)⊢ HasSum (thetaTerm z) (1 + psi z) All goals completed! 🐙theorem thetaTerm_even (z : ℂ) (n : ℕ) : thetaTerm z (2 * n) = thetaTerm (4 * z) n := z:ℂn:ℕ⊢ thetaTerm z (2 * n) = thetaTerm (4 * z) n z:ℂn:ℕ⊢ cexp (-↑Real.pi * ↑(2 * n) ^ 2 * z) = cexp (-↑Real.pi * ↑n ^ 2 * (4 * z)) z:ℂn:ℕ⊢ cexp (-↑Real.pi * (2 * ↑n) ^ 2 * z) = cexp (-↑Real.pi * ↑n ^ 2 * (4 * z)) z:ℂn:ℕ⊢ -↑Real.pi * (2 * ↑n) ^ 2 * z = -↑Real.pi * ↑n ^ 2 * (4 * z) All goals completed! 🐙theorem thetaTerm_shift (z : ℂ) (n : ℕ) : thetaTerm (I + z) n = (-1 : ℂ) ^ n * thetaTerm z n := z:ℂn:ℕ⊢ thetaTerm (I + z) n = (-1) ^ n * thetaTerm z n z:ℂn:ℕ⊢ cexp (-↑Real.pi * ↑n ^ 2 * (I + z)) = (-1) ^ n * cexp (-↑Real.pi * ↑n ^ 2 * z) z:ℂn:ℕ⊢ cexp (-↑Real.pi * ↑n ^ 2 * I) * cexp (-↑Real.pi * ↑n ^ 2 * z) = (-1) ^ n * cexp (-↑Real.pi * ↑n ^ 2 * z) z:ℂn:ℕ⊢ cexp (-↑Real.pi * ↑n ^ 2 * I) = (-1) ^ n z:ℂn:ℕhe:-↑Real.pi * ↑n ^ 2 * I = ↑(n ^ 2) * -(↑Real.pi * I)⊢ cexp (-↑Real.pi * ↑n ^ 2 * I) = (-1) ^ n z:ℂn:ℕhe:-↑Real.pi * ↑n ^ 2 * I = ↑(n ^ 2) * -(↑Real.pi * I)⊢ (-1)⁻¹ ^ n ^ 2 = (-1) ^ n z:ℂn:ℕhe:-↑Real.pi * ↑n ^ 2 * I = ↑(n ^ 2) * -(↑Real.pi * I)⊢ (-1) ^ n ^ 2 = (-1) ^ n All goals completed! 🐙 /-- The even/odd split is justified by absolute convergence in Re(z)>0. -/theorem psi_shift {z : ℂ} (hz : 0 < z.re) : psi (I + z) = 2 * psi (4 * z) - psi z := z:ℂhz:0 < z.re⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).re⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).re⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))ho:Summable (thetaTerm z ∘ fun n => 2 * n + 1)⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))ho:Summable (thetaTerm z ∘ fun n => 2 * n + 1)hsum:1 + psi (4 * z) + ∑' (b : ℕ), (thetaTerm z ∘ fun n => 2 * n + 1) b = 1 + psi z⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))ho:Summable (thetaTerm z ∘ fun n => 2 * n + 1)hsum:1 + psi (4 * z) + ∑' (b : ℕ), (thetaTerm z ∘ fun n => 2 * n + 1) b = 1 + psi zhe':HasSum (fun n => thetaTerm (I + z) (2 * n)) (1 + psi (4 * z))⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))ho:Summable (thetaTerm z ∘ fun n => 2 * n + 1)hsum:1 + psi (4 * z) + ∑' (b : ℕ), (thetaTerm z ∘ fun n => 2 * n + 1) b = 1 + psi zhe':HasSum (fun n => thetaTerm (I + z) (2 * n)) (1 + psi (4 * z))ho':HasSum (fun n => thetaTerm (I + z) (2 * n + 1)) (-∑' (n : ℕ), thetaTerm z (2 * n + 1))⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))ho:Summable (thetaTerm z ∘ fun n => 2 * n + 1)hsum:1 + psi (4 * z) + ∑' (b : ℕ), (thetaTerm z ∘ fun n => 2 * n + 1) b = 1 + psi zhe':HasSum (fun n => thetaTerm (I + z) (2 * n)) (1 + psi (4 * z))ho':HasSum (fun n => thetaTerm (I + z) (2 * n + 1)) (-∑' (n : ℕ), thetaTerm z (2 * n + 1))hsum':1 + psi (4 * z) + -∑' (n : ℕ), thetaTerm z (2 * n + 1) = 1 + psi (I + z)⊢ psi (I + z) = 2 * psi (4 * z) - psi z z:ℂhz:0 < z.reh4:0 < (4 * z).rehi:0 < (I + z).rehe:HasSum (fun n => thetaTerm z (2 * n)) (1 + psi (4 * z))ho:Summable (thetaTerm z ∘ fun n => 2 * n + 1)hsum:1 + psi (4 * z) + ∑' (b : ℕ), thetaTerm z (2 * b + 1) = 1 + psi zhe':HasSum (fun n => thetaTerm (I + z) (2 * n)) (1 + psi (4 * z))ho':HasSum (fun n => thetaTerm (I + z) (2 * n + 1)) (-∑' (n : ℕ), thetaTerm z (2 * n + 1))hsum':1 + psi (4 * z) + -∑' (n : ℕ), thetaTerm z (2 * n + 1) = 1 + psi (I + z)⊢ psi (I + z) = 2 * psi (4 * z) - psi z All goals completed! 🐙theorem cpow_four_mul_half {z : ℂ} (hz : z ≠ 0) : (4 * z) ^ (1 / 2 : ℂ) = 2 * z ^ (1 / 2 : ℂ) := z:ℂhz:z ≠ 0⊢ (4 * z) ^ (1 / 2) = 2 * z ^ (1 / 2) z:ℂhz:z ≠ 0h4:4 ^ (1 / 2) = 2⊢ (4 * z) ^ (1 / 2) = 2 * z ^ (1 / 2) z:ℂhz:z ≠ 0h4:4 ^ (1 / 2) = 2⊢ cexp (↑(Real.log 4) * (1 / 2)) * cexp (log z * (1 / 2)) = 2 * z ^ (1 / 2) z:ℂhz:z ≠ 0h4:4 ^ (1 / 2) = 2⊢ cexp (↑(Real.log 4) * (1 / 2)) * z ^ (1 / 2) = 2 * z ^ (1 / 2) z:ℂhz:z ≠ 0h4:4 ^ (1 / 2) = 2hlog:↑(Real.log 4) = log 4⊢ cexp (↑(Real.log 4) * (1 / 2)) * z ^ (1 / 2) = 2 * z ^ (1 / 2) All goals completed! 🐙 /-- Exact transformed cusp identity; all complex powers use the principal branch. -/theorem psi_cusp_identity {z : ℂ} (hz : 0 < z.re) : 1 / 2 + psi (I + z) = (1 / z ^ (1 / 2 : ℂ)) * (psi (1 / (4 * z)) - psi (1 / z)) := z:ℂhz:0 < z.re⊢ 1 / 2 + psi (I + z) = 1 / z ^ (1 / 2) * (psi (1 / (4 * z)) - psi (1 / z)) z:ℂhz:0 < z.rehz0:z ≠ 0⊢ 1 / 2 + psi (I + z) = 1 / z ^ (1 / 2) * (psi (1 / (4 * z)) - psi (1 / z)) z:ℂhz:0 < z.rehz0:z ≠ 0h:1 + 2 * psi z = 1 / z ^ (1 / 2) * (1 + 2 * psi (1 / z))⊢ 1 / 2 + psi (I + z) = 1 / z ^ (1 / 2) * (psi (1 / (4 * z)) - psi (1 / z)) z:ℂhz:0 < z.rehz0:z ≠ 0h:1 + 2 * psi z = 1 / z ^ (1 / 2) * (1 + 2 * psi (1 / z))h4:1 + 2 * psi (4 * z) = 1 / (4 * z) ^ (1 / 2) * (1 + 2 * psi (1 / (4 * z)))⊢ 1 / 2 + psi (I + z) = 1 / z ^ (1 / 2) * (psi (1 / (4 * z)) - psi (1 / z)) z:ℂhz:0 < z.rehz0:z ≠ 0h:1 + 2 * psi z = 1 / z ^ (1 / 2) * (1 + 2 * psi (1 / z))h4:1 + 2 * psi (4 * z) = 1 / (2 * z ^ (1 / 2)) * (1 + 2 * psi (1 / (4 * z)))⊢ 1 / 2 + psi (I + z) = 1 / z ^ (1 / 2) * (psi (1 / (4 * z)) - psi (1 / z)) z:ℂhz:0 < z.rehz0:z ≠ 0h:1 + 2 * psi z = 1 / z ^ (1 / 2) * (1 + 2 * psi (1 / z))h4:1 + 2 * psi (4 * z) = 1 / (2 * z ^ (1 / 2)) * (1 + 2 * psi (1 / (4 * z)))⊢ 1 / 2 + (2 * psi (4 * z) - psi z) = 1 / z ^ (1 / 2) * (psi (1 / (4 * z)) - psi (1 / z)) All goals completed! 🐙 /-- Positive real part is preserved by reciprocal in the right half-plane. -/theorem re_one_div_pos {z : ℂ} (hz : 0 < z.re) : 0 < (1 / z).re := z:ℂhz:0 < z.re⊢ 0 < (1 / z).re z:ℂhz:0 < z.rehz0:z ≠ 0⊢ 0 < (1 / z).re All goals completed! 🐙 /-- An explicit cusp estimate before taking any limits or derivatives. -/theorem norm_psi_cusp_le {z : ℂ} (hz : 0 < z.re) : ‖1 / 2 + psi (I + z)‖ ≤ ‖z ^ (1 / 2 : ℂ)‖⁻¹ * (Real.exp (-Real.pi * (1 / (4 * z)).re) / (1 - Real.exp (-Real.pi * (1 / (4 * z)).re)) + Real.exp (-Real.pi * (1 / z).re) / (1 - Real.exp (-Real.pi * (1 / z).re))) := z:ℂhz:0 < z.re⊢ ‖1 / 2 + psi (I + z)‖ ≤ ‖z ^ (1 / 2)‖⁻¹ * (Real.exp (-Real.pi * (1 / (4 * z)).re) / (1 - Real.exp (-Real.pi * (1 / (4 * z)).re)) + Real.exp (-Real.pi * (1 / z).re) / (1 - Real.exp (-Real.pi * (1 / z).re))) z:ℂhz:0 < z.reh4:0 < (4 * z).re⊢ ‖1 / 2 + psi (I + z)‖ ≤ ‖z ^ (1 / 2)‖⁻¹ * (Real.exp (-Real.pi * (1 / (4 * z)).re) / (1 - Real.exp (-Real.pi * (1 / (4 * z)).re)) + Real.exp (-Real.pi * (1 / z).re) / (1 - Real.exp (-Real.pi * (1 / z).re))) z:ℂhz:0 < z.reh4:0 < (4 * z).re⊢ ‖z ^ (1 / 2)‖⁻¹ * ‖psi (1 / (4 * z)) - psi (1 / z)‖ ≤ ‖z ^ (1 / 2)‖⁻¹ * (Real.exp (-Real.pi * (1 / (4 * z)).re) / (1 - Real.exp (-Real.pi * (1 / (4 * z)).re)) + Real.exp (-Real.pi * (1 / z).re) / (1 - Real.exp (-Real.pi * (1 / z).re))) z:ℂhz:0 < z.reh4:0 < (4 * z).re⊢ ‖psi (1 / (4 * z)) - psi (1 / z)‖ ≤ Real.exp (-Real.pi * (1 / (4 * z)).re) / (1 - Real.exp (-Real.pi * (1 / (4 * z)).re)) + Real.exp (-Real.pi * (1 / z).re) / (1 - Real.exp (-Real.pi * (1 / z).re)) All goals completed! 🐙 end HardyZeta