The growth exponent , zero counts and prime gaps
DefinitionLindelofHypothesis_GrowthAndZeroCountsThis file fixes the objects in terms of which the Lindelöf hypothesis, its reformulations and its consequences are stated. Throughout, is the Riemann zeta function (analytically continued to ), and the multiplicity of a zero of is its order of vanishing.
- The growth exponent. For real ,
the infimum being taken in the extended reals (so if no such exists).
-
Zeros in a unit window. For real and , the number of zeros of with and , counted with multiplicity; and the number of all zeros of with , counted with multiplicity.
-
The zero-density count. For real and ,
- Prime gaps. Writing for the -th prime, .
These are the objects of the sections "The μ function", "Relation to the Riemann hypothesis", "Other consequences" and "The density hypothesis" of the source.
Formalization Note is LindelofHypothesis.mu σ : EReal, an sInf in EReal, so the degenerate cases are rather than a junk value. The zero counts zeroCountWindow σ T, zeroCountWindowAll T and zeroDensityCount σ T are sums in ℕ∞ of analyticOrderAt riemannZeta ρ over the zero set; an infinite count would be , never , so upper bounds on them cannot hold vacuously. Primes are indexed from (Nat.nth Nat.Prime 0 = 2), which is immaterial for the asymptotic statements. The Lindelöf hypothesis itself is reused from the published definition RiemannVonMangoldt.LindelofHypothesis: for every , as .
import Mathlib
/-!
# Growth exponent of `ζ`, zero counts and prime gaps for the Lindelöf hypothesis
* `mu σ` is `μ(σ)`: the infimum, in the extended reals, of all real `a` such that
`ζ(σ + iT) = O(T^a)` as `T → +∞` (`⊤` if there is no such `a`).
* `zeroCountWindow σ T` is the number of zeros `ρ` of `ζ` with `Re ρ ≥ σ` and
`T ≤ Im ρ ≤ T + 1`, counted with multiplicity.
* `zeroCountWindowAll T` is the number of zeros `ρ` of `ζ` with `T ≤ Im ρ ≤ T + 1`,
counted with multiplicity.
* `zeroDensityCount σ T` is `N(σ, T)`: the number of zeros `ρ` of `ζ` with `Re ρ ≥ σ` and
`|Im ρ| ≤ T`, counted with multiplicity.
* `primeGap n` is `g_n = p_{n+1} - p_n`, where `p_n = Nat.nth Nat.Prime n` (so `p_0 = 2`).
All zero counts take values in `ℕ∞`, so an infinite count would be `⊤` rather than a junk value.
-/
namespace LindelofHypothesis
open Complex Filter Asymptotics
/-- `μ(σ)`: the infimum of all real `a` with `ζ(σ + iT) = O(T^a)` as `T → +∞`, taken in `EReal`
(it is `⊤` if no such `a` exists and `⊥` if every real `a` works). -/
noncomputable def mu (σ : ℝ) : EReal :=
sInf ((fun a : ℝ => (a : EReal)) ''
{a : ℝ | (fun T : ℝ => riemannZeta (σ + T * I)) =O[atTop] (fun T : ℝ => T ^ a)})
/-- The number of zeros `ρ` of `ζ` with `Re ρ ≥ σ` and `T ≤ Im ρ ≤ T + 1`, counted with
multiplicity (order of vanishing), as an element of `ℕ∞`. -/
noncomputable def zeroCountWindow (σ T : ℝ) : ℕ∞ :=
∑' s : {s : ℂ | riemannZeta s = 0 ∧ σ ≤ s.re ∧ T ≤ s.im ∧ s.im ≤ T + 1},
analyticOrderAt riemannZeta (s : ℂ)
/-- The number of zeros `ρ` of `ζ` with `T ≤ Im ρ ≤ T + 1`, counted with multiplicity,
as an element of `ℕ∞`. -/
noncomputable def zeroCountWindowAll (T : ℝ) : ℕ∞ :=
∑' s : {s : ℂ | riemannZeta s = 0 ∧ T ≤ s.im ∧ s.im ≤ T + 1},
analyticOrderAt riemannZeta (s : ℂ)
/-- `N(σ, T)`: the number of zeros `ρ` of `ζ` with `Re ρ ≥ σ` and `|Im ρ| ≤ T`, counted with
multiplicity, as an element of `ℕ∞`. -/
noncomputable def zeroDensityCount (σ T : ℝ) : ℕ∞ :=
∑' s : {s : ℂ | riemannZeta s = 0 ∧ σ ≤ s.re ∧ |s.im| ≤ T},
analyticOrderAt riemannZeta (s : ℂ)
/-- The `n`-th prime gap `g_n = p_{n+1} - p_n`, with `p_n = Nat.nth Nat.Prime n`
(`p_0 = 2`, `p_1 = 3`, …). -/
noncomputable def primeGap (n : ℕ) : ℕ :=
Nat.nth Nat.Prime (n + 1) - Nat.nth Nat.Prime n
end LindelofHypothesis
Confirmed by the mission captain (proposal self-audit).
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.