certified
Green's open problem 15
Certified 14 Sept 2026, published by conjectures.io.
Review decision
Approved in reviewREVIEW_APPROVED
Approved under policy v2: REVIEW_APPROVED, for the full locked conjecture bounty. The submission proves the existence of an infinite integer-valued Lipschitz function on the natural numbers whose graph contains no three-term arithmetic progression. Its adjacent increments lie between 1 and 125, giving Lipschitz constant 125. The reviewed graph predicate requires three distinct points and the ordinary componentwise progression relation, matching [Green's Problem 15](https://people.maths.ox.ac.uk/greenbj/papers/open-problems.pdf#problem.15). A six-letter substitution of length four and a finite invariant support an induction for all indices. The independent finite certificate replay checked 648 certificate rows and 236,032 transitions from accepted states. A finite prefix sanity check also passed; the infinite conclusion rests on the induction and Lean verification. The closest inspected prior constructions do not establish the exact target: [Rao–Rosenfeld](https://arxiv.org/html/1511.05875v2) treat a vector-valued setting, [Cassaigne et al.](https://arxiv.org/abs/1106.5204) avoid additive cubes corresponding to four-term graph progressions, and [Zhang, §11](https://arxiv.org/html/2609.08915v1) leaves the fixed-alphabet infinite avoidance problem unresolved. Shared substitution and invariant techniques alone do not establish copying. The exact accepted proof and task passed production verification and a fresh isolated replay on 10 September 2026, including statement, dependency, permitted-axiom, and Lean-kernel checks. No material formalization defect or published disqualification reason was established by the recorded review. Under v2, unresolved provenance questions alone do not justify denying the reward. This is an eligibility decision, not a guarantee of originality. The verification replays used the Lean default kernel; an independent-kernel check was not performed.
Approved · decided 11 Sept 2026
Formal statement
True ↔ ∃ K f, LipschitzWith K f ∧ {x | ∃ n, (↑n, f n) = x}.IsAPOfLengthFree 3The proof
This proof was approved in review, so the file the kernel accepted is published in full.
Verification report
Every box below had to hold before the proof counted. They are grouped in the order the verifier reaches them.
The task it was checked against
Manifest valid — Passed
The task bundle held together: the exact file set, a strict manifest, and every trusted hash matching the bytes on disk.
Task commitment matches — Passed
The bundle digest the submission committed to is the digest of the bundle that was actually verified.
Production task — Passed
The task came from the production pool rather than a test fixture.
Trusted file hashes match — Passed
The pinned dependencies agree across the manifest, the lockfile and the checkout, down to the same Formal Conjectures commit.
The submission and the sandbox
Submission policy respected — Passed
The submitted source passed the static scan: no imports, no axiom declarations, no sorry, no native_decide, no unsafe options.
Production sandbox — Passed
The run happened under real isolation, Landrun with seccomp, and the sandbox passed its own live self-test before the proof was touched.
The trusted build
Challenge built — Passed
The trusted Challenge.lean, which contains no miner code, compiled on its own.
Source type hash matches — Passed
The source theorem in the compiled environment still hashes to the type recorded in the task, so the statement has not drifted upstream.
The kernel's verdict
Solution built — Passed
The submitted Solution.lean compiled.
Statement unchanged — Passed
The theorem the proof establishes has exactly the same canonical type as the task's target - it was not weakened or restated.
Only permitted axioms — Passed
The transitive axiom closure of the proof stays inside the axioms this task permits.
Lean kernel accepted — Passed
The Lean kernel replayed the proof and accepted it.
Nanoda accepted — Not run
A second kernel, written independently of Lean's, also accepted the proof.
One kernel, not two
This task does not require a second, independent kernel, so Nanoda was not run. The verdict rests on a single kernel implementation.
Theorems established
- Bounty.target
Stage COMPLETED · Axioms permitted: propext, Quot.sound, Classical.choice