Local partial-fraction expansion of with error (Davenport §16)
ProvedDavenport.logDeriv_LFunction_partial_fractionPartial fractions for the logarithmic derivative of , locally near the line . There is an absolute constant such that for every modulus , every non-principal Dirichlet character modulo and every real height , writing , there is a finite set of complex numbers such that:
-
is exactly the set of zeros of in the closed disc ;
-
counted with multiplicity, these zeros are few:
where is the order of the zero ;
- on the smaller closed disc , at every point where ,
This is the -function analogue of Landau's local form of the Hadamard-product expansion of (the platform theorem Zeta23.WeilEF.zeta_logDeriv_partial_fraction), and is the form in which Davenport's §16 formula is used in §§14, 19, 20: since the disc covers the whole strip at height , it gives at once (a) the zero-free-region inequality for (Davenport.neg_logDeriv_LFunction_le_sum_zeros), and (b) the bound inside a zero-free region, which drives the explicit-formula and contour estimates for . It follows from the Borel–Carathéodory / Jensen argument applied to on the disc , using the growth bound for (partial summation) and the lower bound (Euler product); for imprimitive the finitely many Euler factors contribute to and have no zeros in the disc.
Formalization Note. logDeriv f s is Mathlib's deriv f s / f s; analyticOrderNatAt (LFunction χ) ρ is the order of the zero at ; is a Finset ℂ whose underlying set is specified exactly (clause 1), so the sum in clause 3 ranges over all zeros in the disc of radius , with the correct multiplicities.
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 logDeriv_LFunction_partial_fraction :
∃ C : ℝ, 0 < C ∧
∀ (q : ℕ) [NeZero q] (χ : DirichletCharacter ℂ q), χ ≠ 1 → ∀ t : ℝ,
∃ Z : Finset ℂ,
(↑Z = {ρ ∈ Metric.closedBall (2 + t * Complex.I) (3 / 2) |
DirichletCharacter.LFunction χ ρ = 0}) ∧
(∑ ρ ∈ Z, (analyticOrderNatAt (DirichletCharacter.LFunction χ) ρ : ℝ))
≤ C * Real.log ((q : ℝ) * (|t| + 2)) ∧
∀ s ∈ Metric.closedBall (2 + t * Complex.I) (7 / 5),
DirichletCharacter.LFunction χ s ≠ 0 →
‖logDeriv (DirichletCharacter.LFunction χ) s
- ∑ ρ ∈ Z, (analyticOrderNatAt (DirichletCharacter.LFunction χ) ρ : ℂ) / (s - ρ)‖
≤ C * Real.log ((q : ℝ) * (|t| + 2)) := by sorry
end Davenport