Logarithmic Mertens product bound for (R–S 1962, Lemma 13 + (2.7))
OpenTaoFivePrimes.rosser_schoenfeld_product_log_bound_largeFor every real number with ,
where the sum runs over the primes and 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 together with the identity (2.7) (p. 65) defining the constant and the tail estimate for (p. 87). In the exact identity the constant and the infinite tail cancel, so the statement involves only finite sums. By exponentiating both sides it is equivalent to for .
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.
import Mathlib.NumberTheory.PrimeCounting import Mathlib.NumberTheory.Harmonic.EulerMascheroni
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