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

Complex.logDeriv_weierstrassFactor_one_div

PrimeNumberTheoremAnd.Mathlib.Analysis.Complex.CanonicalProduct · PrimeNumberTheoremAnd/Mathlib/Analysis/Complex/CanonicalProduct.lean:109 to 142

Source documentation

Genus-one Weierstrass factors contribute the usual 1 / (z - a) + 1 / a term to the logarithmic derivative.

Exact Lean statement

theorem logDeriv_weierstrassFactor_one_div {a z : ℂ} (ha : a ≠ 0) (hz : z ≠ a) :
    logDeriv (fun w : ℂ => weierstrassFactor 1 (w / a)) z =
      1 / (z - a) + 1 / a

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem logDeriv_weierstrassFactor_one_div {a z : ℂ} (ha : a  0) (hz : z  a) :    logDeriv (fun w : ℂ => weierstrassFactor 1 (w / a)) z =      1 / (z - a) + 1 / a := by  have hE :      (fun w : ℂ => weierstrassFactor 1 (w / a)) =        fun w : ℂ => (1 - w / a) * exp (w / a) := by    ext w    simp [weierstrassFactor_def, partialLogSum_eq_sum]  have hf : (1 - z / a)  0 := by    intro hzero    have hdiv : z / a = 1 := by      exact (sub_eq_zero.mp hzero).symm    exact hz ((div_eq_one_iff_eq ha).1 hdiv)  rw [hE, logDeriv_mul z hf (exp_ne_zero (z / a)) (by fun_prop) (by fun_prop)]  have hleft : logDeriv (fun w : ℂ => 1 - w / a) z = 1 / (z - a) := by    rw [logDeriv_apply]    have hderiv : deriv (fun w : ℂ => 1 - w / a) z = -(1 / a) := by      simp [one_div]    rw [hderiv]    have haz : -z + a  0 := by      simpa [sub_eq_add_neg, add_comm] using sub_ne_zero.mpr (Ne.symm hz)    field_simp [ha, sub_ne_zero.mpr hz, haz]    have haz' : a - z  0 := sub_ne_zero.mpr (Ne.symm hz)    have hza : z - a = -(a - z) := by ring    rw [hza]    field_simp [haz']  have hright : logDeriv (fun w : ℂ => exp (w / a)) z = 1 / a := by    rw [logDeriv_apply]    have hderiv : deriv (fun w : ℂ => exp (w / a)) z =        exp (z / a) * (1 / a) := by      simp [one_div]    rw [hderiv]    field_simp [exp_ne_zero (z / a)]  rw [hleft, hright]