All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Log Deriv Zeta Bdd of Re ge three halves

LogDerivZetaBdd_of_Re_ge_three_halves

Plain-language statement

The logarithmic derivative of the Riemann zeta function is bounded in the half-plane Re(s) >= 3/2.

Exact Lean statement

lemma LogDerivZetaBdd_of_Re_ge_three_halves :
    ∃ C, ∀ (s : ℂ), 3/2 ≤ s.re → ‖deriv riemannZeta s / riemannZeta s‖ ≤ C

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma LogDerivZetaBdd_of_Re_ge_three_halves :     C,  (s : ℂ), 3/2  s.re  ‖deriv riemannZeta s / riemannZeta s‖  C := by  have h_sum_converges : Summable (fun n :   vonMangoldt n / (n : ) ^ (3 / 2 : )) := by    have h_summable : Summable (fun n :   (Real.log n : ) / (n : ) ^ (3 / 2 : )) := by      obtain C, hC_pos, hC :  C > 0,  n : , n  2  Real.log n  C * (n : ) ^ (1/4 : ) := by        use 4, by grind, fun n hn  by          have := Real.log_le_sub_one_of_pos (by positivity : 0 < (n : ) ^ (1/4 : ))          rw [Real.log_rpow (by positivity)] at this          nlinarith [Real.rpow_pos_of_pos (by positivity : 0 < (n : )) (1/4 : )]      have hBound :  n : , n  2           (Real.log n : ) / (n : ) ^ (3 / 2 : )  C / (n : ) ^ (5 / 4 : ) := fun n hn  by        rw [div_le_div_iff₀ (by positivity) (by positivity)]        convert mul_le_mul_of_nonneg_right (hC n hn)          (by positivity : 0  (n : ) ^ (5 / 4 : )) using 1        rw [mul_assoc,  Real.rpow_add (by positivity)]        grind      rw [ summable_nat_add_iff 2]      exact Summable.of_nonneg_of_le        (fun n  div_nonneg (Real.log_nonneg (by grind))          (Real.rpow_nonneg (Nat.cast_nonneg _) _))        (fun n  hBound _ (by grind))        (Summable.mul_left _ <| by simpa using summable_nat_add_iff 2 |>.2 <|          Real.summable_one_div_nat_rpow.2 <| by grind)    refine .of_nonneg_of_le (fun n  ?_) (fun n  ?_) h_summable    · exact div_nonneg (by exact_mod_cast ArithmeticFunction.vonMangoldt_nonneg)        (by positivity)    · rcases eq_or_ne n 0 with (rfl | hn) <;>        simp_all [ArithmeticFunction.vonMangoldt]      field_simp      split_ifs      · exact Real.log_le_log (Nat.cast_pos.mpr (Nat.minFac_pos _))          (Nat.cast_le.mpr (Nat.minFac_le (Nat.pos_of_ne_zero hn)))      · exact Real.log_nonneg (Nat.one_le_cast.mpr (Nat.pos_of_ne_zero hn))  have h_log_deriv_sum :  s : ℂ, 3 / 2  s.re       deriv riemannZeta s / riemannZeta s = -∑' n : , (vonMangoldt n : ℂ) / (n : ℂ) ^ s := by    intro s hs; have h := LogDerivativeDirichlet s (by grind); linear_combination -h  have h_triangle :  s : ℂ,      ‖∑' n : , (vonMangoldt n : ℂ) / (n : ℂ) ^ s‖         ∑' n : , ‖(vonMangoldt n : ℂ) / (n : ℂ) ^ s‖ := fun s  by    by_cases h : Summable fun n  (ArithmeticFunction.vonMangoldt n : ℂ) / (n : ℂ) ^ s    · exact norm_tsum_le_tsum_norm h.norm    · simp only [tsum_eq_zero_of_not_summable h, norm_zero]      exact tsum_nonneg fun _  by positivity  have h_norm_summand :  s : ℂ, 3 / 2  s.re   n : ,      ‖(vonMangoldt n : ℂ) / (n : ℂ) ^ s‖  (vonMangoldt n : ) / (n : ) ^ (3 / 2 : ) := by    intro s hs n    by_cases hn : n = 0 <;> simp_all [Complex.norm_cpow_of_ne_zero]    ring_nf; norm_num    rw [abs_of_nonneg ArithmeticFunction.vonMangoldt_nonneg]    exact mul_le_mul_of_nonneg_left (inv_anti₀ (by positivity)      (Real.rpow_le_rpow_of_exponent_le (mod_cast Nat.one_le_iff_ne_zero.mpr hn) hs))      ArithmeticFunction.vonMangoldt_nonneg  refine ∑' n : , (ArithmeticFunction.vonMangoldt n : ) / (n : ) ^ (3 / 2 : ),    fun s hs  ?_  have hSum : Summable fun n  ‖(vonMangoldt n : ℂ) / (n : ℂ) ^ s‖ :=    Summable.of_nonneg_of_le (fun n  by positivity)      (fun n  h_norm_summand s hs n) h_sum_converges  simpa [neg_div, h_log_deriv_sum s hs] using (h_triangle s).trans    (hSum.tsum_le_tsum (fun n  h_norm_summand s hs n) h_sum_converges)
Project
Prime Number Theorem and More
License
Apache-2.0
Commit
a93551347dce
Source
PrimeNumberTheoremAnd/StrongPNT.lean:1747-1805

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.32.0

Admissible bound mono

admissible_bound.mono

Plain-language statement

For positive parameters A,B,C,RA,B,C,R, the classical error-bound function A(logxR)Bexp ⁣(ClogxR)A\left(\frac{\log x}{R}\right)^B\exp\!\left(-C\sqrt{\frac{\log x}{R}}\right) is nonincreasing once xexp ⁣(R(2B/C)2)x\ge \exp\!\left(R(2B/C)^2\right).

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Analytic On div Removable zero

AnalyticOn_divRemovable_zero

Plain-language statement

Let ff be analytic on an open set ss containing 00, and suppose f(0)=0f(0)=0. Define g(z)=f(z)/zg(z)=f(z)/z for z0z\ne0 and g(0)=f(0)g(0)=f'(0). Then the apparent singularity at 00 is removable and gg is analytic throughout ss.

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Analytic On div Removable zero closed Ball

AnalyticOn_divRemovable_zero_closedBall

Plain-language statement

Suppose R>0R>0 and ff is analytic on the closed disc zR|z|\le R with f(0)=0f(0)=0. Define g(z)=f(z)/zg(z)=f(z)/z for z0z\ne0 and g(0)=f(0)g(0)=f'(0). Then gg is analytic on the entire closed disc, including at the removed singularity.

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record