proof-lab: add erdos160 (OPEN) finite-certificate target#6
Merged
Conversation
Mirror the shipped erdos190 proof-lab path for Erdos #160
(erdosproblems.com/160, status OPEN): h(N) is the smallest k such that
{1..N} can be k-coloured so every four-term arithmetic progression has at
least three distinct colours. The open question is the asymptotic growth of
h(N) (h(N) << N^{2/3}; Hunter ~ N^{0.355}), which a finite computation cannot
resolve.
Combinatorics kernel (Lycan/src/combinatorics.rs):
- bad_arithmetic_progression_160 / is_good_coloring_160: #160 predicate (a
4-AP is bad iff it has fewer than three distinct colours).
- search_coloring_160: bounded exhaustive search with canonical colour
assignment and incremental pruning of 4-APs ending at each position.
- h160: per-N minimum-colour search returning WITNESS (h(N) <= c),
EXHAUSTION (h(N) >= c), or INCONCLUSIVE (node limit hit, no claim).
proof-lab (src/proof_lab.rs, src/lib.rs):
- syntra proof-lab erdos160 --max-n <N> --node-limit <L> (no --k; AP length
fixed at 4). Per-N witness/exhaustion/inconclusive rows, finite exact +
bound claims, conjectures/non-claims (monotonicity; the h(N) >= 3 for N >= 4
floor), a Lean starter, and a proof arena.
- LOAD-BEARING refusal: the asymptotic estimate is an explicit proof
obligation asymptotic_estimate_h160 with status expert_theorem_required,
plus an arena asymptotic_refusal case; every finite result is labelled
"finite evidence ... does not resolve Erdos #160" and the command never
emits an asymptotic claim. Monotonicity h(N) <= h(N+1) is asserted across
rows and any violation is flagged.
Tests reproduce the independently verified facts: h(1..3)=1, h(4..12)=3,
h(13..18)=4 (jumps at N=4 and N=13), the N=22 witness validates with 4
colours, monotonicity holds, exact h(12)=3 and h(13)=4 via witness +
exhaustion, and a tiny node limit reports inconclusive (not a bound).
Docs (CONTEXT.md contract-safe, DEMOS.md, README.md, examples/proof-lab):
note erdos160 as an OPEN target handled honestly, distinct from solved #190.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
syntra proof-lab erdos160 --max-n <N> --node-limit <L>, mirroring the shippederdos190proof-lab path, for Erdos #160 (erdosproblems.com/160, status OPEN):The open question is the asymptotic growth of h(N) (known: h(N)
<< N^{2/3}; Hunter<< N^{(log3/log22)+o(1)} ~ N^{0.355}). A finite computation cannot resolve it, so the command produces finite exact values + certificates and explicitly refuses the asymptotic.What changed
Combinatorics kernel (
Lycan/src/combinatorics.rs)bad_arithmetic_progression_160/is_good_coloring_160— the #160 predicate (a 4-AP is bad iff it has< 3distinct colours), distinct from #190's monochromatic/rainbow predicate.search_coloring_160— bounded exhaustive search, canonical colour assignment, incremental pruning of the 4-APs ending at each position.h160— per-N minimum-colour search returning WITNESS (h(N) <= c), EXHAUSTION (h(N) >= c; with a c-witness gives exacth(N)=c), or INCONCLUSIVE (node limit hit -> no claim).Proof lab (
src/proof_lab.rs, CLI wiring insrc/lib.rs)run_erdos160: per-N witness/exhaustion/inconclusive rows, finite exact + bound claims, conjectures/non-claims (monotonicity; theh(N) >= 3forN >= 4floor), a Lean starter file, and a proof arena. No--kflag (AP length fixed at 4).asymptotic_estimate_h160with statusexpert_theorem_required, plus an arenaasymptotic_refusalcase; every finite result is labelled finite evidence that does not resolve Erdos #160, and the command never emits an asymptotic claim.h(N) <= h(N+1)is asserted across rows; any violation is flagged in conjectures, warnings, and the arena.Docs:
CONTEXT.md(contract still passes),DEMOS.md,README.md,examples/proof-lab/README.mddescribe erdos160 as an OPEN target handled honestly, distinct from solved #190.Verification (all green locally, cargo 1.95)
cargo build --release: clean (only a pre-existing unrelated LycanPathBufwarning).--test-threads=1): 30 passedpython3 evals/repo-read/check_context_contract.py: OK./target/release/syntra proof-lab erdos160 --max-n 18 --node-limit 200000printsh(N) = 1,1,1,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4for N=1..18 (jumps at N=4 and N=13) — matches the independently verified values.Tests reproduce the verified facts: h(1..3)=1, h(4..12)=3, h(13..18)=4; the N=22 witness
[1,1,3,4,2,4,1,2,1,3,3,2,4,1,2,1,3,3,2,4,1,4]validates with 4 colours; exact h(12)=3 and h(13)=4 via witness + exhaustion; monotonicity holds; a tiny node limit reports inconclusive (not a bound).🤖 Generated with Claude Code