Quantitative Perron theorem: partial sums of a Dirichlet series from an bound on its analytic continuation in a zero-free region
ProvedDavenport.perron_of_region_boundPartial sums of a Dirichlet series from a zero-free region, with de la Vallée Poussin error. Fix a region constant and a constant . There are constants , depending only on and , such that the following holds for every parameter (a natural number, playing the role of the modulus in the shape of the region), every sequence of complex coefficients , every function , every finite set of "poles" and every assignment of "residues", provided that:
- for all ( the von Mangoldt function);
- whenever ;
- is analytic (in a neighbourhood of each point) on the set ;
- every satisfies ;
- ;
- on the same set as in 3, the function minus its polar parts is small:
Then for every integer with ,
This is the analytic engine of the prime number theorem with de la Vallée Poussin error term (Davenport §18) and of its character version (§§19–20), stated once for an arbitrary Dirichlet series with von Mangoldt-size coefficients so that it applies verbatim to (with , ), to for the principal character, and to for a non-principal character with an exceptional zero (with and , producing the term ). The proof is the classical contour argument: represent a smoothed version of the partial sum as a vertical integral of on , subtract the explicit polar parts (whose contribution is evaluated exactly by shifting far to the left), shift the remaining integral to with inside the region where hypothesis 6 applies, and choose the smoothing width ; the hypothesis ensures .
Formalization Note. The region is InRegion c q s, i.e. ; analyticity is AnalyticOnNhd; is Mathlib's LSeries a s (whose term is , and is forced by hypothesis 1); the partial sum is over ; is the complex power of the positive real . Since , the quotient is well defined.
import Definitions.Def_Davenport_siegelWalfisz import Mathlib.NumberTheory.LSeries.DirichletContinuation import Mathlib.NumberTheory.LSeries.Basic import Mathlib.NumberTheory.DirichletCharacter.Basic import Mathlib.NumberTheory.ArithmeticFunction.VonMangoldt import Mathlib.NumberTheory.Chebyshev import Mathlib.Analysis.Analytic.Order import Mathlib.Analysis.SpecialFunctions.Complex.LogDeriv import Mathlib.Analysis.SpecialFunctions.Pow.Real import Mathlib.Analysis.SpecialFunctions.Pow.Complex import Mathlib.Analysis.SpecialFunctions.Log.Basic import Mathlib.Analysis.SpecialFunctions.Exp import Mathlib.Analysis.SpecialFunctions.Sqrt import Mathlib.Algebra.BigOperators.Finprod import Mathlib.Data.Nat.Totient open Finset DirichletCharacter Vino
namespace Davenport
theorem perron_of_region_bound (c C₀ : ℝ) (hc : 0 < c) (hC₀ : 0 < C₀) :
∃ c₁ c₂ C : ℝ, 0 < c₁ ∧ 0 < c₂ ∧ 0 < C ∧
∀ (q : ℕ) [NeZero q] (a : ℕ → ℂ) (G : ℂ → ℂ) (P : Finset ℂ) (r : ℂ → ℂ),
(∀ n : ℕ, ‖a n‖ ≤ ArithmeticFunction.vonMangoldt n) →
(∀ s : ℂ, 1 < s.re → G s = LSeries a s) →
AnalyticOnNhd ℂ G ({s : ℂ | InRegion c q s ∧ 3 / 4 ≤ s.re} \ ↑P) →
(∀ p ∈ P, 1 / 2 ≤ p.re ∧ p.re ≤ 1) →
(∑ p ∈ P, ‖r p‖) ≤ C₀ * Real.log (2 * q) →
(∀ s : ℂ, InRegion c q s → 3 / 4 ≤ s.re → s ∉ P →
‖G s - ∑ p ∈ P, r p / (s - p)‖ ≤ C₀ * Real.log ((q : ℝ) * (|s.im| + 2)) ^ 2) →
∀ N : ℕ, 2 ≤ N → (q : ℝ) ≤ Real.exp (c₂ * Real.sqrt (Real.log N)) →
‖(∑ n ∈ range N, a n) - ∑ p ∈ P, r p * (N : ℂ) ^ p / p‖
≤ C * N * Real.exp (-c₁ * Real.sqrt (Real.log N)) := by sorry
end Davenport