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

Complex.norm_logTail_le

PrimeNumberTheoremAnd.Mathlib.Analysis.SpecialFunctions.Complex.LogBounds · PrimeNumberTheoremAnd/Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean:161 to 202

Source documentation

A coarse geometric-series bound for the logarithm tail. This intentionally drops the extra denominator m + 1 + k; the weaker estimate is the form used by the Weierstrass-factor bounds below.

Exact Lean statement

lemma norm_logTail_le {z : ℂ} (hz : ‖z‖ < 1) (m : ℕ) :
    ‖logTail m z‖ ≤ ‖z‖ ^ (m + 1) / (1 - ‖z‖)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma norm_logTail_le {z : ℂ} (hz : ‖z‖ < 1) (m : ) :    ‖logTail m z‖  ‖z‖ ^ (m + 1) / (1 - ‖z‖) := by  dsimp only [logTail]  have h_rhs_summable : Summable (fun k => ‖z‖ ^ (m + 1 + k)) := by    simpa [pow_add] using      (summable_geometric_of_lt_one (norm_nonneg z) hz).mul_left (‖z‖ ^ (m + 1))  have h_norm_summable : Summable (fun k => ‖z ^ (m + 1 + k) / ((m + 1 + k) : ℂ)‖) := by    refine Summable.of_nonneg_of_le (fun _ => norm_nonneg _) ?_ h_rhs_summable    intro k    rw [norm_div, norm_pow]    have hnorm : ‖(↑m + 1 + ↑k : ℂ)‖ = (m + 1 + k : ) := by      simpa [Nat.cast_add, Nat.cast_one, add_assoc, add_comm, add_left_comm] using        (Complex.norm_natCast (m + 1 + k))    rw [hnorm]    have hm : 1  (m + 1 + k : ) := by      have : (0 : )  (m + k : ) := by positivity      nlinarith    exact div_le_self (pow_nonneg (norm_nonneg z) _) hm  calc    ‖∑' k, z ^ (m + 1 + k) / ((m + 1 + k) : ℂ)‖         ∑' k, ‖z ^ (m + 1 + k) / ((m + 1 + k) : ℂ)‖ :=          norm_tsum_le_tsum_norm h_norm_summable    _  ∑' k, ‖z‖ ^ (m + 1 + k) := by          refine h_norm_summable.tsum_le_tsum ?_ h_rhs_summable          intro k          rw [norm_div, norm_pow]          have hm : 1  (m + 1 + k : ) := by            have : (0 : )  (m + k : ) := by positivity            nlinarith          have hnorm : ‖(↑m + 1 + ↑k : ℂ)‖ = (m + 1 + k : ) := by            simpa [Nat.cast_add, Nat.cast_one, add_assoc, add_comm, add_left_comm] using              (Complex.norm_natCast (m + 1 + k))          rw [hnorm]          exact div_le_self (pow_nonneg (norm_nonneg z) _) hm    _ = ‖z‖ ^ (m + 1) / (1 - ‖z‖) := by          have h_eq :              (fun k => ‖z‖ ^ (m + 1 + k)) = fun k => ‖z‖ ^ (m + 1) * ‖z‖ ^ k := by            ext k            rw [pow_add]          rw [h_eq, tsum_mul_left]          have h_geom := hasSum_geometric_of_lt_one (norm_nonneg z) hz          rw [h_geom.tsum_eq, div_eq_mul_inv]