The Siegel–Walfisz theorem, character form (Davenport §22) — the platform proposition `ThreePrimes.SiegelWalfisz`
ProvedDavenport.siegel_walfisz_charThe Siegel–Walfisz theorem, character form (Davenport §22). For every there are constants and such that for every modulus , every Dirichlet character modulo , and every with ,
where if is the principal character and otherwise. In Davenport's notation: for any fixed , uniformly for and , together with in the same range. The constants are ineffective, because Siegel's theorem is.
The statement of this theorem is literally the platform proposition ThreePrimes.SiegelWalfisz (definition file Vino_threeprimes), which the conditional three primes theorem ThreePrimes.three_primes takes as its hypothesis. Proving it therefore makes Vinogradov's theorem unconditional on the platform.
import Definitions.Def_Vino_threeprimes import Definitions.Def_Davenport_siegelWalfisz import Mathlib.NumberTheory.LSeries.DirichletContinuation import Mathlib.NumberTheory.DirichletCharacter.Basic import Mathlib.NumberTheory.ArithmeticFunction.VonMangoldt import Mathlib.NumberTheory.Chebyshev 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 siegel_walfisz_char : ThreePrimes.SiegelWalfisz := by sorry end Davenport
Read-back
What the Lean code literally says, in plain math · claude-opus-4-8
Read-back: Davenport.siegel_walfisz_char
What the declaration is. Davenport.siegel_walfisz_char is a closed theorem — it takes no arguments, no variables, and no typeclass assumptions. Its statement is exactly the proposition ThreePrimes.SiegelWalfisz, which is a single Prop with no parameters. Unfolding that proposition, and unfolding Vino.vmSumChar inside it, the theorem asserts the following.
The character sum. For a natural number , a Dirichlet character modulo with values in (i.e. a multiplicative character on the ring into ), and a natural number , write
where is the von Mangoldt function (regarded as a real number and then coerced into ), and is the image of in . Two features of this sum are literal and worth stating: the index set is , so the summation runs over strictly below and includes (with and , so those terms vanish); and is a multiplicative character on , so takes the value at every non-unit residue, meaning the sum is effectively over those with .
The assertion. The theorem states:
For every real number with , there exist real numbers and such that and, for every natural number with , for every Dirichlet character modulo with values in , and for every natural number with , if
(real power of the natural logarithm; , not ), then
where is the complex absolute value, means is the trivial (principal) character modulo , and in the main term is the natural number coerced to .
Quantifier order and what depends on what. The constants and are chosen after and before , , and : they may depend only on , and are uniform in the modulus , in the character , and in the length . Only is required to be positive; carries no positivity or sign hypothesis at all (it is merely asserted to exist as a real number), and there is no other relation imposed between and . Nothing asserts that or is effectively computable, nor is any explicit value given.
Hypotheses on , , . The only hypothesis on the modulus is (so is excluded, but is allowed). Nothing requires to be primitive, non-principal, quadratic, of bounded conductor, or induced by anything; the single Dirichlet character quantifier ranges over all characters mod , principal and non-principal alike, including the character that is identically on non-units. The only hypothesis on the length is , together with the size constraint . No hypothesis relates to beyond that inequality, and there is no lower bound on of the form " sufficiently large in terms of " other than what the inequality itself forces.
Degenerate and edge cases silently included.
- Small is vacuous. Since and , the hypothesis forces , hence , hence . In particular the case (where and ) satisfies the hypotheses for no at all, so the conclusion there is vacuously true; the effective range is .
- The modulus . is the trivial ring, so the only Dirichlet character mod is the trivial one; the branch is taken, for every , and the claim becomes a Prime Number Theorem statement with error term : .
- The principal character's main term. Whenever is the trivial character mod (for any ), the quantity subtracted is exactly — not , not , not , and not an integral. For every non-principal the subtracted quantity is exactly , so the claim is a bound on itself.
- Off-by-one. Because the sum stops at while the main term is , the comparison is between and .
- The
ifis decided classically (open Classical insupplies decidability of the equality ); it has no mathematical content beyond selecting the two branches above. - Bound shape. The right-hand side is with the real square root and the real natural logarithm; the exponent is , i.e. square-root-of-log savings, not and not a power saving.
Unused material in the bundle. The dependency file Definitions/Def_Davenport_siegelWalfisz.lean also defines (psiAP), a zero-free-region boundary (regionBoundary), the predicate saying that boundary is , and IsExceptionalSet (a subsingleton set of real zeros in of for quadratic non-principal , outside which on the region for ), and Vino.gaussE defines a Gauss sum. None of these definitions occur in the statement of Davenport.siegel_walfisz_char; the statement uses only Vino.vmSumChar as unfolded above.
Proof status (factual). The declaration's proof body is sorry.
Confirmed by the mission captain (proposal self-audit).