Running the research loop
The loop that produced Wang's six Erdős resolutions:
attempt → failure → diagnosis → new approach → proof draft → adversarial audit → repair
Successful runs took 6–32 hours each, with roughly half of attempted problems never
resolving. The loop's design goal is symmetric: make it hard for a correct proof to be
lost AND for an incorrect proof to survive.
The route ledger (problems/<id>/routes.md)
One table row per approach FAMILY — grouped by mathematical idea, not wording:
| id |
family |
status |
artifacts |
blocking gap |
Statuses: active, blocked (stalled at a theorem-strength missing lemma — record the
exact lemma), refuted (counterexample or FATAL audit — record it), merged.
Ledger discipline:
- Reopen a
blocked route only for a materially new mechanism (new invariant,
construction, estimate, certificate) — never for optimism or crowding.
- Anti-dominance: a route is not "nearly done" because it predicts a plausible constant,
matches numerics, or gives an elegant reduction. Reduction to an unproved principle of
comparable strength = no progress; the ledger entry must say so.
- Keep incompatible routes (including both resolution directions) alive until one side
is rigorously ruled out.
- Failed routes are data: harvest each failure into next round's directives.
Round structure
- Explore — parallel explorers, one route each. Each gets ONLY the contract + its
own route's notes. Do not reveal other routes or the favored approach: independent
agents converging on the same idea is signal; anchored agents converging is noise.
Artifacts required (lemma, construction, estimate, encoding, counterexample); status
reports rejected.
- Compute — parallel experiments: small cases, encodings (SAT/ILP/exact cover),
extremal searches, counterexample hunts against this round's proposed lemmas.
Everything labeled
certificate | evidence | conjecture | counterexample; evidence
never upgrades itself to proof.
- Chair pass — update ledger, kill/spawn/redirect routes, decide which claims are
draft-ready.
- Draft — full proof draft: every lemma stated and proved, dependency structure
explicit, no forward references.
- Audit — FRESH adversarial auditor per round; inputs are contract + draft only
(discovery notes would anchor the auditor). Verdicts:
FATAL → refuted; GAP →
blocked with exact lemma; REPAIRABLE → fix and re-audit fresh; SOUND → require a
second independent fresh audit before promoting.
- Diagnose & relaunch — convert failures into new families and sharpened lemma
targets. Do not stop because a wave failed.
Exits (only two are honest)
- Candidate resolution: two independent fresh audits return
SOUND. Announce as a
CANDIDATE — never "solved" — then writeup, exact-arithmetic verifier, Lean
formalization where feasible, human review, and community-norm-respecting disclosure.
- Failure report: strongest rigorously proved statements + full ledger + exact
remaining gaps. This is a respectable output; a dressed-up partial result is not.
Budgeting
Expect hours per problem, not minutes; ask the user for a time/compute budget up front
and report ledger state at round boundaries. Long-running harnesses that retain full
context and can read/write local files are the right substrate — keep all state on disk
so a run can resume after interruption.
1---2name: research-loop3description: How to run the portfolio research loop for open problems — route ledgers, explorer independence, blocked-route discipline, computation-as-evidence, adversarial audit cycles, and honest exits. Use when orchestrating or resuming a /prove run.4---56# Running the research loop78The loop that produced Wang's six Erdős resolutions:910 attempt → failure → diagnosis → new approach → proof draft → adversarial audit → repair1112Successful runs took 6–32 hours each, with roughly half of attempted problems never13resolving. The loop's design goal is symmetric: make it hard for a correct proof to be14lost AND for an incorrect proof to survive.1516## The route ledger (`problems/<id>/routes.md`)1718One table row per approach FAMILY — grouped by mathematical idea, not wording:1920| id | family | status | artifacts | blocking gap |21|----|--------|--------|-----------|--------------|2223Statuses: `active`, `blocked` (stalled at a theorem-strength missing lemma — record the24exact lemma), `refuted` (counterexample or FATAL audit — record it), `merged`.2526Ledger discipline:27- Reopen a `blocked` route only for a materially new mechanism (new invariant,28 construction, estimate, certificate) — never for optimism or crowding.29- Anti-dominance: a route is not "nearly done" because it predicts a plausible constant,30 matches numerics, or gives an elegant reduction. Reduction to an unproved principle of31 comparable strength = no progress; the ledger entry must say so.32- Keep incompatible routes (including both resolution directions) alive until one side33 is rigorously ruled out.34- Failed routes are data: harvest each failure into next round's directives.3536## Round structure37381. **Explore** — parallel explorers, one route each. Each gets ONLY the contract + its39 own route's notes. Do not reveal other routes or the favored approach: independent40 agents converging on the same idea is signal; anchored agents converging is noise.41 Artifacts required (lemma, construction, estimate, encoding, counterexample); status42 reports rejected.432. **Compute** — parallel experiments: small cases, encodings (SAT/ILP/exact cover),44 extremal searches, counterexample hunts against this round's proposed lemmas.45 Everything labeled `certificate | evidence | conjecture | counterexample`; evidence46 never upgrades itself to proof.473. **Chair pass** — update ledger, kill/spawn/redirect routes, decide which claims are48 draft-ready.494. **Draft** — full proof draft: every lemma stated and proved, dependency structure50 explicit, no forward references.515. **Audit** — FRESH adversarial auditor per round; inputs are contract + draft only52 (discovery notes would anchor the auditor). Verdicts: `FATAL` → refuted; `GAP` →53 blocked with exact lemma; `REPAIRABLE` → fix and re-audit fresh; `SOUND` → require a54 second independent fresh audit before promoting.556. **Diagnose & relaunch** — convert failures into new families and sharpened lemma56 targets. Do not stop because a wave failed.5758## Exits (only two are honest)5960- **Candidate resolution**: two independent fresh audits return `SOUND`. Announce as a61 CANDIDATE — never "solved" — then writeup, exact-arithmetic verifier, Lean62 formalization where feasible, human review, and community-norm-respecting disclosure.63- **Failure report**: strongest rigorously proved statements + full ledger + exact64 remaining gaps. This is a respectable output; a dressed-up partial result is not.6566## Budgeting6768Expect hours per problem, not minutes; ask the user for a time/compute budget up front69and report ledger state at round boundaries. Long-running harnesses that retain full70context and can read/write local files are the right substrate — keep all state on disk71so a run can resume after interruption.