Mertens product upper bound (3.29), finite range
ProvedTaoFivePrimes.rosser_schoenfeld_product_bound_finiteFor every real number with ,
where the product runs over the primes and denotes the Euler–Mascheroni constant.
This theorem is the finite-range leg of Rosser and Schoenfeld's proof of the Mertens product upper bound (3.29): in their proof of Theorem 8 (p. 70) the range is disposed of by direct tabulation, and the present statement covers the part of that tabulation for which no analytic substitute is available. It is provable by a finite certified computation: the left-hand side is a finite product of exact rational values, while the right-hand side can be bounded below using rational approximations to and .
Formalization Note. The product is written as ∏ p ∈ Nat.primesLE ⌊x⌋₊, (p : ℝ) / ((p : ℝ) - 1), the finite set of primes at most the natural floor of , and the right-hand side is Real.exp Real.eulerMascheroniConstant * Real.log x * (1 + 1 / (2 * (Real.log x) ^ 2)), matching the parent target's formulation.
import Mathlib.NumberTheory.PrimeCounting import Mathlib.NumberTheory.Harmonic.EulerMascheroni
namespace TaoFivePrimes
theorem rosser_schoenfeld_product_bound_finite (x : ℝ) (hx : 286 ≤ x) (hx' : x < 700) :
∏ p ∈ Nat.primesLE ⌊x⌋₊, (p : ℝ) / ((p : ℝ) - 1) <
Real.exp Real.eulerMascheroniConstant * Real.log x *
(1 + 1 / (2 * (Real.log x) ^ 2)) := by sorry
end TaoFivePrimes