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

riemannZeta_abel_integral

PrimeNumberTheoremAnd.Mathlib.NumberTheory.LSeries.RiemannZetaAbelContinuation · PrimeNumberTheoremAnd/Mathlib/NumberTheory/LSeries/RiemannZetaAbelContinuation.lean:106 to 142

Mathematical statement

Exact Lean statement

theorem riemannZeta_abel_integral (s : ℂ) (hs : 1 < s.re) :
    riemannZeta s = zetaAbelContinuationFormula s

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem riemannZeta_abel_integral (s : ℂ) (hs : 1 < s.re) :    riemannZeta s = zetaAbelContinuationFormula s := by  have hsne : s  1 := by    intro h    have hre : s.re = 1 := by simp [h]    linarith  set G :  := fun N =>    (N : ℂ) ^ (1 - s) / (1 - s) + 1 + 1 / (s - 1)      - s * ∫ u in (1 : )..N, zetaAbelFractKernel s u  have hEv : ᶠ N in atTop, zetaPartialSum s N = G N :=    (eventually_ge_atTop 1).mono fun N hN => (abel_formula s hsne N hN).trans rfl  have hG_to_zeta := (tendsto_congr' hEv).mp (tendsto_riemannZeta s hs)  have hA : Tendsto (fun N :  => (N : ℂ) ^ (1 - s) / (1 - s)) atTop (𝓝 0) := by    simpa [div_eq_mul_inv, mul_comm] using      (Tendsto.const_mul (1 / (1 - s))        (tendsto_natCast_cpow_zero_of_neg_re (1 - s)          (by rw [Complex.sub_re, Complex.one_re]; linarith)))  have hK : Tendsto (fun _ :  => (1 + 1 / (s - 1) : ℂ)) atTop      (𝓝 (1 + 1 / (s - 1))) := tendsto_const_nhds  have hIntMul := (tendsto_integral_Ioi s hs).const_mul s  set Aseq :  := fun N => (N : ℂ) ^ (1 - s) / (1 - s)  set Kseq :  := fun _ => (1 + 1 / (s - 1) : ℂ)  set Iseq :  := fun N => s * ∫ u in (1 : )..N, zetaAbelFractKernel s u  have hSum : Tendsto (fun N => Aseq N + Kseq N) atTop (𝓝 (1 + 1 / (s - 1))) := by    simpa using! ((continuous_fst.add continuous_snd).tendsto _).comp (hA.prodMk_nhds hK)  have hG_limit : Tendsto G atTop      (𝓝 ((1 + 1 / (s - 1)) - s * ∫ u in Ioi (1 : ), zetaAbelFractKernel s u)) := by    have hSub : Tendsto (fun N => Aseq N + Kseq N - Iseq N) atTop        (𝓝 ((1 + 1 / (s - 1)) - s * ∫ u in Ioi (1 : ), zetaAbelFractKernel s u)) := by      simpa [Function.comp_apply, Function.comp_def, sub_eq_add_neg] using        ((continuous_fst.add continuous_snd).tendsto _).comp (hSum.prodMk_nhds hIntMul.neg)    have hGdef : (fun N => Aseq N + Kseq N - Iseq N) = G := by      funext N      simp [Aseq, Kseq, Iseq, G, add_comm, add_left_comm, add_assoc, sub_eq_add_neg]    simpa [hGdef] using hSub  have huniq := tendsto_nhds_unique hG_to_zeta hG_limit  simpa [zetaAbelContinuationFormula, sub_eq_add_neg] using huniq