Zero-counting functions , and the Lindelöf hypothesis
DefinitionRiemannVonMangoldt_ZeroCountsThis file fixes the three objects in terms of which the Riemann–von Mangoldt formula and its refinements are stated.
- The zero-counting function of . For real , let
where is the multiplicity (order of vanishing) of the zero of the Riemann zeta function. Thus is the number of zeros of in the critical strip with imaginary part in , counted with multiplicity; for .
- The zero-counting function of a Dirichlet -function. For a positive integer , a Dirichlet character modulo and real , let
the number of zeros of in the critical strip with imaginary part between and , counted with multiplicity.
- The Lindelöf hypothesis. The statement that for every ,
These are the standard definitions used by Titchmarsh (The Theory of the Riemann Zeta-Function, §9.2 and §13) and Davenport (Multiplicative Number Theory, Ch. 16).
Formalization Note is Mathlib's riemannZeta and is DirichletCharacter.LFunction (the analytic continuation of ). The multiplicity is analyticOrderNatAt, and each count is a finsum over the zero set, which is finite for every (zeros of a nonzero meromorphic function in a bounded region); this finiteness is a fact a solver must establish, not an assumption. Every zero of with positive imaginary part lies in the open strip , so restricting to the strip in item 1 agrees with the source's "zeros with imaginary part greater than 0 and at most ". In item 2 the open strip excludes the trivial zero at of an even nonprincipal character. Since , the one-sided bound in item 3 is equivalent to the usual two-sided form .
import Mathlib
/-!
# Zero-counting functions for the Riemann–von Mangoldt formula
* `zetaZeroCount T` is `N(T)`: the number of zeros `ρ` of the Riemann zeta function with
`0 < Re ρ < 1` and `0 < Im ρ ≤ T`, counted with multiplicity.
* `dirichletZeroCount χ T` is `N(T, χ)`: the number of zeros `ρ` of the Dirichlet
`L`-function `L(s, χ)` with `0 < Re ρ < 1` and `-T ≤ Im ρ ≤ T`, counted with multiplicity.
* `LindelofHypothesis` is the Lindelöf hypothesis `ζ(1/2 + it) = O(t^ε)` for every `ε > 0`.
-/
namespace RiemannVonMangoldt
open Complex Filter Asymptotics
/-- `N(T)`: the number of zeros of `ζ` in the critical strip with imaginary part in `(0, T]`,
counted with multiplicity. -/
noncomputable def zetaZeroCount (T : ℝ) : ℝ :=
∑ᶠ s ∈ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ 0 < s.im ∧ s.im ≤ T ∧ riemannZeta s = 0},
(analyticOrderNatAt riemannZeta s : ℝ)
/-- `N(T, χ)`: the number of zeros of `L(s, χ)` in the critical strip with imaginary part in
`[-T, T]`, counted with multiplicity. -/
noncomputable def dirichletZeroCount {q : ℕ} [NeZero q] (χ : DirichletCharacter ℂ q)
(T : ℝ) : ℝ :=
∑ᶠ s ∈ {s : ℂ | 0 < s.re ∧ s.re < 1 ∧ |s.im| ≤ T ∧ χ.LFunction s = 0},
(analyticOrderNatAt χ.LFunction s : ℝ)
/-- The Lindelöf hypothesis: for every `ε > 0`, `ζ(1/2 + it) = O(t^ε)` as `t → +∞`. -/
def LindelofHypothesis : Prop :=
∀ ε : ℝ, 0 < ε →
(fun t : ℝ => riemannZeta (1 / 2 + t * I)) =O[atTop] (fun t : ℝ => t ^ ε)
end RiemannVonMangoldt
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.