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

ZetaAppendix.lemma_abadeulmit2_tsum_one_div_sub_int_sq

PrimeNumberTheoremAnd.IEANTN.ZetaAppendix · PrimeNumberTheoremAnd/IEANTN/ZetaAppendix.lean:4151 to 4186

Mathematical statement

Exact Lean statement

lemma lemma_abadeulmit2_tsum_one_div_sub_int_sq {z : ℂ} (hz : z ∈ integerComplement) :
  ∑' (n : ℤ), 1 / (z - n) ^ 2 =
  deriv (fun w ↦ -π * Complex.cot (π * w)) z

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma lemma_abadeulmit2_tsum_one_div_sub_int_sq {z : ℂ} (hz : z  integerComplement) :  ∑' (n : ), 1 / (z - n) ^ 2 =  deriv (fun w  -π * Complex.cot* w)) z := by  set f := fun w : ℂ  -π * Complex.cot* w)  set S := fun w : ℂ  ∑' (n : ), 1 / (w - n) ^ 2  suffices HasDerivAt f (∑' (n : ), 1 / (z - n) ^ 2) z from this.deriv.symm  apply HasDerivAt.congr_of_eventuallyEq (f := fun w  f z + (w - z) * ∫ t in (0:)..1, S (z + t * (w - z)))  · apply HasDerivAt.const_add    rw [hasDerivAt_iff_isLittleO]    simp only [sub_self, mul_zero, add_zero]    set g := fun x'  ∫ (t : ) in 0..1, S (z + ↑t * (x' - z))    simp only [zero_mul, sub_zero, smul_eq_mul,  mul_sub]    apply Asymptotics.isLittleO_of_tendsto    · intro x' hx; simp [sub_eq_zero.mp hx]    · have h_eq : (fun x  (x - z) * ((∫ (t : ) in 0..1, S (z + ↑t * (x - z))) - ∑' (n : ), 1 / (z - ↑n) ^ 2) / (x - z)) =            (fun x  (∫ (t : ) in 0..1, S (z + ↑t * (x - z))) - ∑' (n : ), 1 / (z - ↑n) ^ 2) := by        ext x        rcases eq_or_ne x z with rfl | hx        · simp [S]        · rw [mul_div_cancel_left₀ _ (sub_ne_zero.mpr hx)]      rw [h_eq, tendsto_sub_nhds_zero_iff]      have hgz : g z = ∑' (n : ), 1 / (z - ↑n) ^ 2 := by        simp only [g, sub_self, mul_zero, add_zero]        rw [intervalIntegral.integral_const, sub_zero, Complex.real_smul, Complex.ofReal_one, one_mul]      rw [ hgz]      apply (lemma_abadeulmit2_continuousAt_integral_tsum_one_div_sub_int_sq hz).tendsto  · obtain ε, hε, h_ball := Metric.isOpen_iff.1 (Complex.isOpen_compl_range_intCast) z hz    filter_upwards [Metric.ball_mem_nhds z hε] with w hw    rw [lemma_abadeulmit2_integral_eq_cot_diff (h_ball hw) hz]    · dsimp [f]; ring    · intro t ht      apply h_ball      apply (convex_ball z ε).segment_subset (Metric.mem_ball_self hε) hw      rw [segment_eq_image]      refine t, ht, ?_      simp; ring