Nielsen's arithmetic lemma:
ProvedOddPerfectNumber.nielsen_lemma_1_4Nielsen's key arithmetic lemma.
Let be positive integers and let be integers such that
Then
The bound is best possible: equality holds for and the extremal tuple for , .
This lemma is the engine of every known upper bound for odd perfect numbers. Given a "sandwich" condition on a product of terms around a rational number , it converts the analytic information into a doubly exponential upper bound on the product of the themselves. It strengthens Lemma 1 of Nielsen's 2003 paper (which gave the weaker bound ) both by allowing repetitions among the and by subtracting the term .
Formalization Note. The tuple is given by a function x : ℕ → ℕ and only its values on indices < r are used; monotonicity is stated stepwise. The final subtraction is truncated subtraction on ℕ, which is harmless since . The two hypotheses on are stated over ℝ.
import Mathlib open Finset
namespace OddPerfectNumber
theorem nielsen_lemma_1_4 (r a b : ℕ) (x : ℕ → ℕ) (hr : 0 < r) (ha : 0 < a) (hb : 0 < b)
(hx1 : ∀ i < r, 1 < x i) (hxmono : ∀ i, i + 1 < r → x i ≤ x (i + 1))
(h1 : ∏ i ∈ Finset.range r, (1 - 1 / (x i : ℝ)) ≤ (a : ℝ) / b)
(h2 : (a : ℝ) / b < ∏ i ∈ Finset.range (r - 1), (1 - 1 / (x i : ℝ))) :
a * ∏ i ∈ Finset.range r, x i ≤ (a + 1) ^ 2 ^ r - (a + 1) ^ 2 ^ (r - 1) := by
sorry
end OddPerfectNumber