Zeros of the Riemann zeta function
DefinitionZero-counting function of the Riemann zeta function#✓fully proved
For a real number \(T\), \(N(T)\) is the number of zeros \(\rho = \beta + i\gamma\) of the Riemann zeta function with \(0 < \beta < 1\) and \(0 < \gamma \le T\), each counted with its multiplicity as a zero.
MetaMathlibExt.zetaZeroCount · 24 lines
noncomputable def zetaZeroCount (T : ℝ) : ℕ :=
have hfin : (riemannZetaZeros ∩ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T}).Finite := by
have hsub : (riemannZetaZeros ∩ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T})
⊆ Metric.closedBall 0 (|T| + 2) ∩ riemannZetaZeros := by
intro ρ h
obtain ⟨hmem, hre0, hre1, him0, himT⟩ := h
refine ⟨?_, hmem⟩
rw [Metric.mem_closedBall, dist_zero_right]
have hre : |ρ.re| < 1 := abs_lt.mpr ⟨by linarith, hre1⟩
have him : |ρ.im| ≤ |T| :=
abs_le.mpr ⟨by linarith [abs_nonneg T], le_trans himT (le_abs_self T)⟩
have h1 : ρ.re ^ 2 ≤ 1 := by nlinarith [hre0, hre1]
have h2 : ρ.im ^ 2 ≤ T ^ 2 := sq_le_sq.mpr him
have hnorm : ‖ρ‖ ^ 2 = ρ.re ^ 2 + ρ.im ^ 2 := by
rw [← Complex.normSq_eq_norm_sq, Complex.normSq_apply]
ring
have h3 : ‖ρ‖ ^ 2 ≤ (|T| + 2) ^ 2 := by
rw [hnorm]
nlinarith [h1, h2, sq_abs T, abs_nonneg T]
have h4 := sq_le_sq.mp h3
rwa [abs_of_nonneg (norm_nonneg ρ), abs_of_nonneg (by positivity : (0 : ℝ) ≤ |T| + 2)] at h4
exact (isCompact_closedBall 0 _).inter_riemannZetaZeros_finite.subset hsub
Finset.sum hfin.toFinset
(fun ρ => (WithTop.untopD 0 (meromorphicOrderAt riemannZeta ρ)).toNat)
TheoremFirst Bellotti–Wong bound on the zero-counting function#●ready to prove
For every real number \(T \ge e\), the number \(N(T)\) of zeros \(\rho = \beta + i\gamma\) of the Riemann zeta function with \(0 < \beta < 1\) and \(0 < \gamma \le T\), counted with multiplicity, satisfies
This bound is sharper than the second Bellotti–Wong bound for \(T\) above about \(e^{447.981}\).
public theorem_wanted bellotti_wong_zero_count_bound (T : ℝ) (hT : Real.exp 1 ≤ T) :
(zetaZeroCount T : ℝ) ≤ T / (2 * Real.pi) * Real.log (T / (2 * Real.pi * Real.exp 1))
+ 0.10076 * Real.log T + 0.24460 * Real.log (Real.log T) + 8.08344
noncomputable def zetaZeroCount (T : ℝ) : ℕ :=
have hfin : (riemannZetaZeros ∩ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T}).Finite := by
have hsub : (riemannZetaZeros ∩ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T})
⊆ Metric.closedBall 0 (|T| + 2) ∩ riemannZetaZeros := by
intro ρ h
obtain ⟨hmem, hre0, hre1, him0, himT⟩ := h
refine ⟨?_, hmem⟩
rw [Metric.mem_closedBall, dist_zero_right]
have hre : |ρ.re| < 1 := abs_lt.mpr ⟨by linarith, hre1⟩
have him : |ρ.im| ≤ |T| :=
abs_le.mpr ⟨by linarith [abs_nonneg T], le_trans himT (le_abs_self T)⟩
have h1 : ρ.re ^ 2 ≤ 1 := by nlinarith [hre0, hre1]
⋯
WantedExt/NumberTheory/PrimeCounting/BellottiWongZeroCountWanted.lean:39
Uses 1
TheoremSecond Bellotti–Wong bound on the zero-counting function#●ready to prove
For every real number \(T \ge e\), the number \(N(T)\) of zeros \(\rho = \beta + i\gamma\) of the Riemann zeta function with \(0 < \beta < 1\) and \(0 < \gamma \le T\), counted with multiplicity, satisfies
This bound is sharper than the first Bellotti–Wong bound for \(T\) below about \(e^{447.981}\).
public theorem_wanted bellotti_wong_zero_count_bound_small (T : ℝ) (hT : Real.exp 1 ≤ T) :
(zetaZeroCount T : ℝ) ≤ T / (2 * Real.pi) * Real.log (T / (2 * Real.pi * Real.exp 1))
+ 0.11200 * Real.log T + 0.12567 * Real.log (Real.log T) + 3.77417
noncomputable def zetaZeroCount (T : ℝ) : ℕ :=
have hfin : (riemannZetaZeros ∩ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T}).Finite := by
have hsub : (riemannZetaZeros ∩ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T})
⊆ Metric.closedBall 0 (|T| + 2) ∩ riemannZetaZeros := by
intro ρ h
obtain ⟨hmem, hre0, hre1, him0, himT⟩ := h
refine ⟨?_, hmem⟩
rw [Metric.mem_closedBall, dist_zero_right]
have hre : |ρ.re| < 1 := abs_lt.mpr ⟨by linarith, hre1⟩
have him : |ρ.im| ≤ |T| :=
abs_le.mpr ⟨by linarith [abs_nonneg T], le_trans himT (le_abs_self T)⟩
have h1 : ρ.re ^ 2 ≤ 1 := by nlinarith [hre0, hre1]
⋯
WantedExt/NumberTheory/PrimeCounting/BellottiWongZeroCountWanted.lean:39
Uses 1
TheoremPlatt–Trudgian verification of the Riemann hypothesis to height \(3 \cdot 10^{12}\)#●ready to prove
Every zero \(\rho\) of the Riemann zeta function with \(0 < \operatorname{Im} \rho \le 3000175332800\) satisfies \(\operatorname{Re} \rho = 1/2\).
public theorem_wanted platt_trudgian_rh_to_height (ρ : ℂ)
(hzero : riemannZeta ρ = 0) (hpos : 0 < ρ.im)
(hlt : ρ.im ≤ 3000175332800) :
ρ.re = 1 / 2
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.