Nielsen's upper bound for odd -perfect Diophantine solutions
ProvedOddPerfectNumber.nielsen_diophantine_boundNielsen's upper bound for solutions of the perfect-number Diophantine equation.
Fix positive integers and . Following Nielsen, a positive integer is called -perfect when (the fraction need not be in lowest terms); the case is the classical notion of a perfect number. Writing , the equation becomes
The theorem below is the abstract form of this equation, in which the are replaced by arbitrary distinct odd integers greater than (they need not be prime, so the statement also covers Descartes-style "spoof" odd perfect numbers).
Theorem. Let be positive integers. Let be a non-empty finite set of odd integers, each greater than , and let be positive integers such that
Then, writing and ,
Equivalently .
This is the finiteness engine behind all known upper bounds for odd perfect numbers: for fixed it bounds every solution of the equation, and specialising to , and the prime divisors of an odd perfect number yields the bound of Nielsen (2003). The extra factor on the left is the sharpening obtained in the 2015 paper, which is what makes the bound usable in computations.
Formalization Note. The finite set carries the distinctness of the automatically, is X.card, and the exponents are given by a function e : ℕ → ℕ whose values on are required to be positive. Subtraction x - 1 is truncated subtraction on ℕ, which is harmless because every satisfies .
import Mathlib open Finset
namespace OddPerfectNumber
theorem nielsen_diophantine_bound (n d : ℕ) (X : Finset ℕ) (e : ℕ → ℕ)
(hn : 0 < n) (hd : 0 < d) (hX : X.Nonempty)
(hodd : ∀ x ∈ X, Odd x) (hone : ∀ x ∈ X, 1 < x) (he : ∀ x ∈ X, 0 < e x)
(heq : d * ∏ x ∈ X, ∑ j ∈ Finset.range (e x + 1), x ^ j = n * ∏ x ∈ X, x ^ e x) :
(∏ x ∈ X, x ^ e x) * (n * ((∏ x ∈ X, x) * ∏ x ∈ X, (x - 1)))
< (d + 1) ^ 2 ^ (2 * X.card) := by
sorry
end OddPerfectNumber