Behrend's lower bound:
OpenErdos142.behrend_lower_boundFor every ,
Behrend's 1946 construction produces a subset of of this size containing no non-trivial three-term arithmetic progression, by taking integers whose digits in a suitable base are the coordinates of lattice points on a sphere; strict convexity of the sphere prevents any point from being the midpoint of two others, which is exactly the three-term condition. The explicit constant in the exponent is the one carried by the formalized version in Mathlib.
This bound is the reason the problem is hard rather than merely unsolved. It shows the truth at is of the shape , so no asymptotic formula can be a power of , and it places an absolute ceiling on how strong an upper bound can be: no argument may prove . Together with the monotonicity milestone it yields the same lower bound for every .
import Mathlib import Definitions.Def_Erdos142Basic
namespace Erdos142
theorem behrend_lower_bound (N : ℕ) :
(N : ℝ) * Real.exp (-4 * Real.sqrt (Real.log N)) ≤ (r 3 N : ℝ) := by sorry
end Erdos142Read-back
What the Lean code literally says, in plain math · claude-opus-5
Read-back: Erdos142.behrend_lower_bound
The statement
The declaration asserts a single claim, universally quantified over every natural number , with no hypotheses whatsoever (in particular and are included):
Here on the left is the image of the natural number under the canonical embedding , is the real natural logarithm, is the real square root, is the real exponential, and the right-hand side is the natural number (defined below) likewise cast into . The inequality is non-strict (), and it is a lower bound on . The exponent is the product of the real constant with .
What means in this file
The quantity is not a Mathlib notion; it is defined in the imported bundle as a natural number given by a supremum of a set of natural numbers:
where ranges over finite subsets of , is its cardinality, and is the integer interval from to inclusive (which is empty when ). The supremum is taken in ; the defining set is always non-empty (it contains ) and is bounded above by , so this is a genuine maximum. The bundle also records, as separate already-proved facts, that the empty set is progression-free for every length, that any progression-free satisfies , and that for all . The theorem instantiates .
What "progression-free" means in this file
The predicate applied to above is, unfolded completely, the following. Working in an arbitrary additive commutative monoid (instantiated here at , with viewed as a set of naturals), and with a length parameter living in the extended naturals (here , the natural number coerced into the extended naturals):
- A set is an arithmetic progression of length with first term and difference when both
where is the extended-natural cardinality of and is the -fold monoid multiple of (ordinary multiplication when ).
- A set is an arithmetic progression of length when such and exist.
- A set is progression-free of length when
Because the theorem fixes , the conclusion of that implication is false, so for the predicate is equivalent to: no subset of is an arithmetic progression of length , i.e. there are no with and . The cardinality clause forces the three terms to be distinct, hence ; a constant "progression" with has cardinality and is therefore not excluded. Note the second clause demands set equality , not merely containment, so is exactly the three-term progression.
The bundle additionally defines two elementary predicates — " contains a -term progression" ( with and for all ) and its negation — but neither of these is used by or by the theorem; the theorem's notion of progression-freeness is exclusively the set-and-cardinality one spelled out above.
Degenerate and edge cases the quantifier silently includes
- . The cast of into is , so by Mathlib's convention (the logarithm is a total function taking the junk value at and at all non-positive reals), hence and . The left-hand side is therefore . Meanwhile is empty, so the only admissible is and . The claim in this case reads .
- . Again , , , so the left-hand side is exactly , and the claim reads .
- Square root at small arguments. Mathlib's
Real.sqrtis total and returns on every non-positive input. Since for every natural and by the convention above, the argument of the square root is never negative for any in this statement, so the junk-value branch is never reached; only the convention at is load-bearing. - Sign of the exponent. For the exponent is strictly negative, so the exponential factor lies strictly between and and the left-hand side is strictly less than ; the claim is thus weaker than for those .
- No hypothesis restricts to be large, positive, or of any particular form, and no hypothesis in the statement is vacuous or unsatisfiable — the statement is a bare universally quantified inequality.