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

ZetaPartialSum.tendsto_riemannZeta

PrimeNumberTheoremAnd.Mathlib.NumberTheory.LSeries.RiemannZetaPartialSum ยท PrimeNumberTheoremAnd/Mathlib/NumberTheory/LSeries/RiemannZetaPartialSum.lean:178 to 199

Source documentation

zetaPartialSum converges to riemannZeta for re s > 1.

Exact Lean statement

theorem tendsto_riemannZeta (s : โ„‚) (hs : 1 < s.re) :
    Tendsto (fun N : โ„• => zetaPartialSum s N) atTop (๐“ (riemannZeta s))

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem tendsto_riemannZeta (s : โ„‚) (hs : 1 < s.re) :    Tendsto (fun N : โ„• => zetaPartialSum s N) atTop (๐“ (riemannZeta s)) := by  set g : โ„• โ†’ โ„‚ := fun n => if n = 0 then 0 else (n : โ„‚) ^ (-s)  set h : โ„• โ†’ โ„‚ := fun n => (n + 1 : โ„‚) ^ (-s)  have hsne : s โ‰  0 := by    intro h0    have : (0 : โ„) < s.re := lt_trans (show (0 : โ„) < 1 by norm_num) hs    simpa [h0] using ne_of_gt this  have hgSumm : Summable g := by    simpa [g, one_div_natCast_cpow_eq_ite_cpow_neg s hsne] using      (Complex.summable_one_div_nat_cpow (p := s)).2 hs  have hhSumm : Summable h := by    have : Summable (fun n => g (n + 1)) := (summable_nat_add_iff (f := g) (k := 1)).2 hgSumm    simpa [Function.comp_apply, h, g] using this  have hg0 : g 0 = 0 := by simp [g]  have h_tsum_eq : (โˆ‘' n, h n) = โˆ‘' n, g n := by    have : (โˆ‘' n, g n) = โˆ‘' n, g (n + 1) := by simpa [hg0, add_comm] using Summable.tsum_eq_zero_add hgSumm    simpa [h, g] using this.symm  have hzeta : riemannZeta s = โˆ‘' n, g n := by    simpa [g, one_div_natCast_cpow_eq_ite_cpow_neg s hsne] using      zeta_eq_tsum_one_div_nat_cpow (s := s) hs  simpa [zetaPartialSum, h, h_tsum_eq.trans hzeta.symm] using Summable.tendsto_sum_tsum_nat hhSumm