Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Logarithmic Mertens product bound for x≥108x \ge 10^8x≥108 (R–S 1962, Lemma 13 + (2.7))

Open
TaoFivePrimes.rosser_schoenfeld_product_log_bound_large

by chstdu · Sep 20, 2026 · Mathlib 0df444a (Lean v4.33.1)

analytic-number-theorymertens-theoremnumber-theory

For every real number xxx with x≥108x \ge 10^8x≥108,

∑p≤x,  p primelog⁡pp−1<γ+log⁡log⁡x+log⁡(1+12log⁡2x),\sum_{p \le x, \; p \text{ prime}} \log \frac{p}{p-1} < \gamma + \log \log x + \log\left(1 + \frac{1}{2\log^2 x}\right),p≤x,p prime∑​logp−1p​<γ+loglogx+log(1+2log2x1​),

where the sum runs over the primes p≤xp \le xp≤x and γ\gammaγ denotes the Euler–Mascheroni constant.

This is the large-range leg of Rosser and Schoenfeld's proof of the Mertens product upper bound (3.29): their step (iii) (p. 87) exponentiates exactly this inequality. It packages the upper half of Lemma 13 (p. 86, inequality (8.9)) for ∑p≤x1/p\sum_{p \le x} 1/p∑p≤x​1/p together with the identity (2.7) (p. 65) defining the constant BBB and the tail estimate S>−1.02/((x−1)log⁡x)S > -1.02/((x-1)\log x)S>−1.02/((x−1)logx) for S=∑x<p{log⁡(1−1/p)+1/p}S = \sum_{x < p}\{\log(1 - 1/p) + 1/p\}S=∑x<p​{log(1−1/p)+1/p} (p. 87). In the exact identity log⁡∏p≤xpp−1=∑p≤x1p−∑p≤x{log⁡(1−1/p)+1/p}\log \prod_{p \le x} \frac{p}{p-1} = \sum_{p \le x} \frac{1}{p} - \sum_{p \le x}\{\log(1-1/p) + 1/p\}log∏p≤x​p−1p​=∑p≤x​p1​−∑p≤x​{log(1−1/p)+1/p} the constant BBB and the infinite tail cancel, so the statement involves only finite sums. By exponentiating both sides it is equivalent to ∏p≤xpp−1<eγ(log⁡x)(1+12log⁡2x)\prod_{p \le x} \frac{p}{p-1} < e^{\gamma}(\log x)\left(1 + \frac{1}{2\log^2 x}\right)∏p≤x​p−1p​<eγ(logx)(1+2log2x1​) for x≥108x \ge 10^8x≥108.

Formalization Note. The sum is written as ∑ p ∈ Nat.primesLE ⌊x⌋₊, Real.log ((p : ℝ) / ((p : ℝ) - 1)), using the same finite set of primes as the parent target.

Preamble
import Mathlib.NumberTheory.PrimeCounting
import Mathlib.NumberTheory.Harmonic.EulerMascheroni
Formal statement
namespace TaoFivePrimes
theorem rosser_schoenfeld_product_log_bound_large (x : ℝ) (hx : 10 ^ 8 ≤ x) :
    ∑ p ∈ Nat.primesLE ⌊x⌋₊, Real.log ((p : ℝ) / ((p : ℝ) - 1)) <
      Real.eulerMascheroniConstant + Real.log (Real.log x) +
        Real.log (1 + 1 / (2 * (Real.log x) ^ 2)) := by sorry
end TaoFivePrimes
Source
J.B. Rosser, L. Schoenfeld, Approximate formulas for some functions of prime numbers, Illinois J. Math. 6 (1962), 64–94; §8, Lemma 13, p. 86, inequality (8.9), together with (2.7), p. 65, and p. 87. https://doi.org/10.1215/ijm/1255631807

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, licensed under Apache 2.0.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTermsJoin SlackJoin Zulip© 2026 Prove2Me