Choosing the height in the de la Vallée Poussin argument
ProvedWeil.perron_parameter_choiceThe parameter choice. Let . There are constants , depending only on , and , such that for every and every integer with there is a height satisfying
This is the calculus step of the argument, isolated from the complex analysis. Given the two error terms produced by the truncated Perron formula and by the contour shift, it exhibits a height at which their sum is small, and shows that the resulting saving over the trivial bound is .
The choice is . With it , so the shifted abscissa gives
and the terms carrying contribute ; the polynomial factors and are absorbed by shrinking .
The hypothesis is exactly what prevents the modulus from eating the saving, and it is the reason the Siegel-Walfisz theorem is uniform only for moduli up to a fixed power of .
No complex analysis enters: this is a statement about real functions of and .
Context. The theorem this lemma was introduced to decompose, Davenport.perron_of_region_bound, was proved independently — via the smoothed Perron route (Davenport.perron_smoothed_eq_integral and its siblings), which replaces the sharp cutoff by a smooth weight and so avoids the truncation error entirely. The statement here belongs to the classical sharp-cutoff route of Davenport Sections 17-18 and is left standing as a self-contained, reusable statement in its own right; it is not on the critical path of any current mission.
import Definitions.Def_Weil_perron import Definitions.Def_Davenport_siegelWalfisz import Mathlib.NumberTheory.LSeries.Basic import Mathlib.NumberTheory.ArithmeticFunction.VonMangoldt import Mathlib.Analysis.Analytic.Order import Mathlib.Analysis.SpecialFunctions.Pow.Real import Mathlib.Analysis.SpecialFunctions.Log.Basic import Mathlib.Analysis.SpecialFunctions.Exp import Mathlib.Analysis.SpecialFunctions.Sqrt set_option autoImplicit false open Finset
namespace Weil
theorem perron_parameter_choice (K₁ K₂ c' : ℝ) (hK₁ : 0 < K₁) (hK₂ : 0 < K₂) (hc' : 0 < c') :
∃ c₁ c₂ C : ℝ, 0 < c₁ ∧ 0 < c₂ ∧ 0 < C ∧
∀ (q N : ℕ), 1 ≤ q → 2 ≤ N → (q : ℝ) ≤ Real.exp (c₂ * Real.sqrt (Real.log N)) →
∃ T₀ : ℝ, 2 ≤ T₀ ∧
K₁ * ((N : ℝ) * Real.log N ^ 2 / T₀ + Real.log N)
+ K₂ * ((N : ℝ) ^ (1 - c' / Real.log ((q : ℝ) * T₀))
* Real.log ((q : ℝ) * T₀) ^ 3
+ (N : ℝ) * Real.log ((q : ℝ) * T₀) ^ 2 / T₀)
≤ C * N * Real.exp (-c₁ * Real.sqrt (Real.log N)) := by sorry
end Weil