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

Complex.tsum_one_div_natCast_add_add_one_sq_le

PrimeNumberTheoremAnd.Mathlib.Analysis.SpecialFunctions.Gamma.DigammaSeries · PrimeNumberTheoremAnd/Mathlib/Analysis/SpecialFunctions/Gamma/DigammaSeries.lean:151 to 203

Source documentation

The tail of the series ∑ 1 / (m + 1) ^ 2 past N is at most 1 / N.

Exact Lean statement

lemma tsum_one_div_natCast_add_add_one_sq_le {N : ℕ} (hN : 1 ≤ N) :
    ∑' i : ℕ, 1 / (((i + N : ℕ) : ℝ) + 1) ^ 2 ≤ (N : ℝ)⁻¹

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma tsum_one_div_natCast_add_add_one_sq_le {N : } (hN : 1  N) :    ∑' i : , 1 / (((i + N : ) : ) + 1) ^ 2  (N : )⁻¹ := by  have hNR : (1 : )  (N : ) := by exact_mod_cast hN  have hpos :  i : , (0 : ) < (i : ) + N := fun i => by    have : (0 : )  i := Nat.cast_nonneg i    linarith  set u :    := fun i => ((i : ) + N)⁻¹ with hu_def  have h0 : Tendsto u atTop (𝓝 0) := by    apply Filter.Tendsto.inv_tendsto_atTop    exact tendsto_atTop_add_const_right atTop _ tendsto_natCast_atTop_atTop  have hdiff :  i : , u i - u (i + 1) = (((i : ) + N) * ((i : ) + 1 + N))⁻¹ := by    intro i    simp only [hu_def]    have h1 : ((i : ) + N)  0 := (hpos i).ne'    have h2 : ((i : ) + 1 + N)  0 := by      have := hpos i      intro h      linarith    push_cast    rw [inv_sub_inv h1 h2]    have e1 : (i : ) + 1 + N - ((i : ) + N) = 1 := by ring    rw [e1, one_div]  have hsumu : Summable (fun i :  => u i - u (i + 1)) := by    apply Summable.of_nonneg_of_le (f := fun i :  => 1 / ((i : ) + 1) ^ 2) ?_ ?_      summable_one_div_natCast_add_one_sq    · intro i      rw [hdiff i]      positivity    · intro i      rw [hdiff i,  one_div]      apply one_div_le_one_div_of_le (by positivity)      have h3 : (0 : )  i := Nat.cast_nonneg i      nlinarith  have htel := hasSum_sub_succ_of_tendsto_zero h0 hsumu  have hu0 : u 0 = (N : )⁻¹ := by    simp only [hu_def]    norm_num  have hsumL : Summable (fun i :  => 1 / (((i + N : ) : ) + 1) ^ 2) :=    (summable_nat_add_iff N).mpr summable_one_div_natCast_add_one_sq  have hcomp :  i : , 1 / (((i + N : ) : ) + 1) ^ 2  u i - u (i + 1) := by    intro i    rw [hdiff i,  one_div]    have h3 : (0 : )  i := Nat.cast_nonneg i    have h4 : (0 : ) < ((i : ) + N) * ((i : ) + 1 + N) := by      have := hpos i      nlinarith    push_cast    apply one_div_le_one_div_of_le h4    nlinarith  calc ∑' i : , 1 / (((i + N : ) : ) + 1) ^ 2       ∑' i : , (u i - u (i + 1)) := hsumL.tsum_le_tsum hcomp htel.summable    _ = u 0 := htel.tsum_eq    _ = (N : )⁻¹ := hu0