Littlewood lower bound for under a zero-free half-plane
ProvedQRHLittlewood.littlewood_lowerThere exist constants and with the following property. Let and let be a primitive real Dirichlet character modulo such that for every complex with . Then
This is Littlewood's lower bound with the generalized Riemann hypothesis for replaced by the weaker zero-free half-plane for the same character.
Formalization Note is compared through its real part; for a real character it is a positive real number.
import Mathlib.NumberTheory.Harmonic.EulerMascheroni import Mathlib.NumberTheory.LSeries.DirichletContinuation open Real
namespace QRHLittlewood
theorem littlewood_lower :
∃ c : ℝ, 0 < c ∧ ∃ q₀ : ℕ, ∀ (q : ℕ) [NeZero q], q₀ ≤ q →
∀ χ : DirichletCharacter ℂ q, χ.IsPrimitive → (∀ a : ZMod q, (χ a).im = 0) →
(∀ s : ℂ, 7 / 8 < s.re → DirichletCharacter.LFunction χ s ≠ 0) →
c / Real.log (Real.log q) ≤ (DirichletCharacter.LFunction χ 1).re := by sorry
end QRHLittlewoodRead-back
What the Lean code literally says, in plain math · claude-opus-5-5
Statement. There exist a real constant and a natural number such that the following holds. For every natural number with , and every Dirichlet character modulo with values in satisfying
- is primitive (its conductor equals );
- is real-valued: for all ;
- for every complex with ,
one has
Here is Mathlib's Dirichlet -function: the unique meromorphic continuation to all of of (built from Hurwitz zeta functions); it is a total function , and at a pole (only possible at for the trivial character) it returns a fixed finite junk value. "Primitive" means the conductor of (the least through which factors) equals . "Real-valued" means for every residue class , including non-units (where anyway).
Quantifier structure and edge cases.
- and come first and are uniform: they may not depend on or . Nothing bounds from below beyond and nothing bounds ; the prover chooses both.
- Hypothesis 3 is a zero-free half-plane hypothesis () placed on each individual ; the theorem is conditional on it, character by character. It includes and the whole region .
- For , primitivity rules out the trivial character, so a primitive real character is a primitive quadratic character; for moduli that carry no such character the hypotheses are unsatisfiable and the claim for that is vacuous. Modulo there is no primitive character at all. Modulo the trivial character is primitive and , with Mathlib's junk value ; this case is only included if the chosen .
- is the real logarithm with Mathlib's conventions , for , and . For small (e.g. , where or is small) the left side may be , negative, or very large; such are excluded only if is chosen large enough.
- The conclusion is about the real part of ; it does not separately assert that is real.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.