English
The (complex) version: lim_{s→1} (riemannZeta(s) - 1/(s-1)) = γ.
Русский
Комплексная версия: предел riemannZeta(s) - 1/(s-1) при s → 1 равен γ.
LaTeX
$$$$\\\\lim_{s \\to 1} \\,\\\\bigl(\\\\operatorname{riemannZeta}(s) - \\\\frac{1}{s-1}\\\\bigr) = \\\\gamma$$$$
Lean4
/-- The function `ζ s - 1 / (s - 1)` tends to `γ` as `s → 1`. -/
theorem _root_.tendsto_riemannZeta_sub_one_div : Tendsto (fun s : ℂ ↦ riemannZeta s - 1 / (s - 1)) (𝓝[≠] 1) (𝓝 γ) := by
-- We use the removable-singularity theorem to show that *some* limit over `𝓝[≠] (1 : ℂ)` exists,
-- and then use the previous result to deduce that this limit must be `γ`.
let f (s : ℂ) := riemannZeta s - 1 / (s - 1)
suffices ∃ C, Tendsto f (𝓝[≠] 1) (𝓝 C) by
obtain ⟨C, hC⟩ := this
suffices Tendsto (fun s : ℝ ↦ f s) _ _ from
(tendsto_nhds_unique this tendsto_riemannZeta_sub_one_div_nhds_right) ▸ hC
refine hC.comp (tendsto_nhdsWithin_of_tendsto_nhds_of_eventually_within _ ?_ ?_)
· exact (Complex.continuous_ofReal.tendsto 1).mono_left (nhdsWithin_le_nhds ..)
· filter_upwards [self_mem_nhdsWithin] with a ha
rw [mem_compl_singleton_iff, ← Complex.ofReal_one, Ne, Complex.ofReal_inj]
exact ne_of_gt ha
refine ⟨_, Complex.tendsto_limUnder_of_differentiable_on_punctured_nhds_of_isLittleO ?_ ?_⟩
· filter_upwards [self_mem_nhdsWithin] with s hs
refine (differentiableAt_riemannZeta hs).sub ((differentiableAt_const _).div ?_ ?_)
· fun_prop
· rwa [mem_compl_singleton_iff, ← sub_ne_zero] at hs
· refine Asymptotics.isLittleO_of_tendsto' ?_ ?_
· filter_upwards [self_mem_nhdsWithin] with t ht ht'
rw [inv_eq_zero, sub_eq_zero] at ht'
tauto
· simp_rw [div_eq_mul_inv, inv_inv, sub_mul, (by ring_nf : 𝓝 (0 : ℂ) = 𝓝 ((1 - 1) - f 1 * (1 - 1)))]
apply Tendsto.sub
· simp_rw [mul_comm (f _), f, mul_sub]
apply riemannZeta_residue_one.sub
refine Tendsto.congr' ?_ (tendsto_const_nhds.mono_left nhdsWithin_le_nhds)
filter_upwards [self_mem_nhdsWithin] with x hx
field_simp [sub_ne_zero.mpr <| mem_compl_singleton_iff.mp hx]
· exact ((tendsto_id.sub tendsto_const_nhds).mono_left nhdsWithin_le_nhds).const_mul _