Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Littlewood lower bound for L(1,χ)L(1,\chi)L(1,χ) under a zero-free half-plane ℜs>7/8\Re s>7/8ℜs>7/8

Proved
QRHLittlewood.littlewood_lower

by @bwdaugherty · 1 vote · Oct 16, 2026 · Mathlib 0df444a (Lean v4.33.1)

analytic-number-theorynumber-theory

There exist constants c>0c>0c>0 and q0q_0q0​ with the following property. Let q≥q0q\ge q_0q≥q0​ and let χ\chiχ be a primitive real Dirichlet character modulo qqq such that L(s,χ)≠0L(s,\chi)\neq0L(s,χ)=0 for every complex sss with ℜs>7/8\Re s>7/8ℜs>7/8. Then

L(1,χ) ≥ clog⁡log⁡q.L(1,\chi)\ \ge\ \frac{c}{\log\log q}.L(1,χ) ≥ loglogqc​.

This is Littlewood's lower bound with the generalized Riemann hypothesis for L(s,χ)L(s,\chi)L(s,χ) replaced by the weaker zero-free half-plane ℜs>7/8\Re s>7/8ℜs>7/8 for the same character.

Formalization Note L(1,χ)L(1,\chi)L(1,χ) is compared through its real part; for a real character it is a positive real number.

Preamble
import Mathlib.NumberTheory.Harmonic.EulerMascheroni
import Mathlib.NumberTheory.LSeries.DirichletContinuation

open Real
Formal statement
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 QRHLittlewood
Source
B. W. Daugherty, S. Ryan, G. Ward, Certified harmonic-measure barriers and explicit Littlewood bounds from zero-free regions, https://doi.org/10.5281/zenodo.23400116, Theorem 2(ii) (the statement with unspecified constants is the qualitative form of its explicit bound).
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Statement. There exist a real constant c>0c>0c>0 and a natural number q0q_0q0​ such that the following holds. For every natural number q≥q0q\ge q_0q≥q0​ with q≠0q\neq 0q=0, and every Dirichlet character χ\chiχ modulo qqq with values in C\mathbb{C}C satisfying

  1. χ\chiχ is primitive (its conductor equals qqq);
  2. χ\chiχ is real-valued: Im⁡χ(a)=0\operatorname{Im}\chi(a)=0Imχ(a)=0 for all a∈Z/qZa\in\mathbb{Z}/q\mathbb{Z}a∈Z/qZ;
  3. L(s,χ)≠0L(s,\chi)\neq 0L(s,χ)=0 for every complex sss with Re⁡s>7/8\operatorname{Re}s>7/8Res>7/8,

one has

clog⁡log⁡q  ≤  Re⁡L(1,χ).\frac{c}{\log\log q}\;\le\;\operatorname{Re}L(1,\chi).loglogqc​≤ReL(1,χ).

Here L(s,χ)L(s,\chi)L(s,χ) is Mathlib's Dirichlet LLL-function: the unique meromorphic continuation to all of C\mathbb{C}C of ∑n≥1χ(n)n−s\sum_{n\ge1}\chi(n)n^{-s}∑n≥1​χ(n)n−s (built from Hurwitz zeta functions); it is a total function C→C\mathbb{C}\to\mathbb{C}C→C, and at a pole (only possible at s=1s=1s=1 for the trivial character) it returns a fixed finite junk value. "Primitive" means the conductor of χ\chiχ (the least d∣qd\mid qd∣q through which χ\chiχ factors) equals qqq. "Real-valued" means Im⁡χ(a)=0\operatorname{Im}\chi(a)=0Imχ(a)=0 for every residue class a∈Z/qZa\in\mathbb{Z}/q\mathbb{Z}a∈Z/qZ, including non-units (where χ(a)=0\chi(a)=0χ(a)=0 anyway).

Quantifier structure and edge cases.

  • ccc and q0q_0q0​ come first and are uniform: they may not depend on qqq or χ\chiχ. Nothing bounds ccc from below beyond c>0c>0c>0 and nothing bounds q0q_0q0​; the prover chooses both.
  • Hypothesis 3 is a zero-free half-plane hypothesis (Re⁡s>7/8\operatorname{Re}s>7/8Res>7/8) placed on each individual χ\chiχ; the theorem is conditional on it, character by character. It includes s=1s=1s=1 and the whole region Re⁡s≥1\operatorname{Re}s\ge 1Res≥1.
  • For q≥3q\ge 3q≥3, primitivity rules out the trivial character, so a primitive real character is a primitive quadratic character; for moduli qqq that carry no such character the hypotheses are unsatisfiable and the claim for that qqq is vacuous. Modulo 222 there is no primitive character at all. Modulo 111 the trivial character is primitive and L(s,χ)=ζ(s)L(s,\chi)=\zeta(s)L(s,χ)=ζ(s), with Mathlib's junk value ζ(1)=(γ−log⁡4π)/2<0\zeta(1)=(\gamma-\log 4\pi)/2<0ζ(1)=(γ−log4π)/2<0; this case is only included if the chosen q0≤1q_0\le 1q0​≤1.
  • log⁡\loglog is the real logarithm with Mathlib's conventions log⁡0=0\log 0=0log0=0, log⁡x=log⁡∣x∣\log x=\log|x|logx=log∣x∣ for x<0x<0x<0, and c/0=0c/0=0c/0=0. For small qqq (e.g. q≤15q\le 15q≤15, where log⁡log⁡q≤0\log\log q\le 0loglogq≤0 or log⁡q\log qlogq is small) the left side may be 000, negative, or very large; such qqq are excluded only if q0q_0q0​ is chosen large enough.
  • The conclusion is about the real part of L(1,χ)L(1,\chi)L(1,χ); it does not separately assert that L(1,χ)L(1,\chi)L(1,χ) is real.
Human review
  • Endorsed by Shuze Chen · Oct 16, 2026

    Confirmed by the moderator at approval.

  • Endorsed by @bwdaugherty · Oct 16, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me