Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedtheorem · leanprover/lean4:v4.32.0

Complex.logDeriv_canonicalProduct_one_eq_tsum

PrimeNumberTheoremAnd.Mathlib.Analysis.Complex.CanonicalProduct · PrimeNumberTheoremAnd/Mathlib/Analysis/Complex/CanonicalProduct.lean:237 to 278

Source documentation

The logarithmic derivative of a genus-one sequence-indexed canonical product is the expected sum of the logarithmic derivatives of the Weierstrass factors, away from the prescribed zero set.

Exact Lean statement

theorem logDeriv_canonicalProduct_one_eq_tsum {a : ℕ → ℂ}
    (h_sum : Summable (fun n : ℕ => ‖a n‖⁻¹ ^ (2 : ℕ))) (h_nonzero : ∀ n, a n ≠ 0)
    {z : ℂ} (hz : z ∉ Set.range a)
    (hm : Summable (fun n : ℕ => 1 / (z - a n) + 1 / a n)) :
    logDeriv (canonicalProduct 1 a) z =
      ∑' n : ℕ, (1 / (z - a n) + 1 / a n)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem logDeriv_canonicalProduct_one_eq_tsum {a :   ℂ}    (h_sum : Summable (fun n :  => ‖a n‖⁻¹ ^ (2 : ))) (h_nonzero :  n, a n  0)    {z : ℂ} (hz : z  Set.range a)    (hm : Summable (fun n :  => 1 / (z - a n) + 1 / a n)) :    logDeriv (canonicalProduct 1 a) z =      ∑' n : , (1 / (z - a n) + 1 / a n) := by  let Φ :  := fun n w => weierstrassFactor 1 (w / a n)  have hf :  n, Φ n z  0 := by    intro n    refine weierstrassFactor_ne_zero_of_ne_one 1 ?_    intro h    have hza : z = a n := (div_eq_one_iff_eq (h_nonzero n)).1 h    exact hz n, hza.symm  have hd :  n, DifferentiableOn ℂ (Φ n) (Set.univ : Set ℂ) := by    intro n    exact ((differentiable_weierstrassFactor 1).comp      (differentiable_id.div_const (a n))).differentiableOn  have hm' : Summable fun n => logDeriv (Φ n) z := by    refine hm.congr ?_    intro n    have hza : z  a n := by      intro h      exact hz n, h.symm    simpa [Φ] using      (logDeriv_weierstrassFactor_one_div (a := a n) (z := z) (h_nonzero n) hza).symm  have htend : MultipliableLocallyUniformlyOn Φ (Set.univ : Set ℂ) := by    simpa [Φ] using multipliableLocallyUniformlyOn_canonicalProduct h_sum h_nonzero  have hnez : (∏' n, Φ n z)  0 := by    simpa [Φ, canonicalProduct] using canonicalProduct_ne_zero h_sum h_nonzero hz  have hlog :      logDeriv (∏' n, Φ n ·) z = ∑' n, logDeriv (Φ n) z :=    logDeriv_tprod_eq_tsum (s := (Set.univ : Set ℂ)) isOpen_univ (by simp)      hf hd hm' htend hnez  calc    logDeriv (canonicalProduct 1 a) z = ∑' n, logDeriv (Φ n) z := by      simpa [Φ, canonicalProduct] using! hlog    _ = ∑' n : , (1 / (z - a n) + 1 / a n) := by      refine tsum_congr fun n => ?_      have hza : z  a n := by        intro h        exact hz n, h.symm      simpa [Φ] using logDeriv_weierstrassFactor_one_div (a := a n) (z := z) (h_nonzero n) hza