An automated, transparent log of frontier-model attempts at every open Erdős problem.
🌐 Live status board → · Erdős Problems · Setup guide
Every open Erdős problem can be investigated by an offline-first, long-horizon proof harness. It locks the exact statement, builds a validated subgoal DAG, explores independent branches, persists failed approaches, and separates construction from layered adversarial verification. The full reasoning artifacts remain auditable.
Important
These are machine attempts, not peer-reviewed proofs. A high completeness score is an invitation to verify a transcript — never a claim that a problem is actually solved. Treat every result as unverified until a human checks it.
→ erichou1.github.io/erdos-open-problems
A single-page dashboard that loads directly from the committed solution files:
- headline stats — attempted, solved, ≥60 % complete, average completeness;
- a searchable, sortable, filterable table of every attempt;
- a completeness bar and verdict badge per problem, linking to the full transcript and to the original problem page;
- light / dark themes;
- collaborative Fable / Cooked review marks that sync to the repo (connect a fine-grained GitHub token in your browser — never committed).
The board updates itself. A GitHub Action (.github/workflows/build-site.yml)
regenerates the feed (data.json) from outputs/chatgpt/open/ on every push, so
new solutions appear on the site automatically — no manual rebuild step.
- Submit —
solve_submit.pyopens a chat per problem in a ChatGPT Project and sends the research-mode prompt. It drives a real browser via Playwright, so it uses your session — no API keys. - Collect —
solve_rename.pyrevisits each chat, saves the answer, and names the file by candidate verdict and completeness, e.g.Erdős #117 [candidate-proved] 82%.md. - Publish —
build_status_sheet.pyturns those filenames intodata.json; the static site renders it. The Action keeps it current.
For verified research runs, run_verified_pipeline.py creates isolated scout,
planner, constructor, reviewer, regulator, revision, and adjudicator contexts.
Only the deterministic gate can emit verified_proved or
verified_disproved; a model cannot promote its own candidate. Promotion also
requires a statement-bound formal-proof, exact-computation, or expert-review
artifact applied to the exact saved candidate by promote_verified_run.py.
Use verification-evidence.example.json
as the schema. The harness hashes the referenced artifact itself.
The completeness score is how much of the argument the model rigorously established, deliberately distinct from how confident the prose sounds.
git clone https://github.com/erichou1/erdos-open-problems.git
cd erdos-open-problems
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cp .env.example .env # optional: set your ChatGPT Project URL
python3 solve_submit.py --login
# submit a batch, then collect the answers
python3 solve_submit.py --reverse --start 0 --limit 50
python3 solve_rename.py --watch --interval 60
# full statement-locked, independently reviewed workflow
python3 run_verified_pipeline.py --problem 137 --print-statement-sha
python3 run_verified_pipeline.py --problem 137 --max-revisions 2
# Review proof_runs/problem_137/<run-id>/candidate.md, fill the evidence JSON,
# then promote that exact saved run:
python3 promote_verified_run.py --run-dir proof_runs/problem_137/<run-id> \
--evidence-json verification-evidence.json --publishSee SETUP_GUIDE.md (or the printable SETUP_GUIDE.pdf) for the
full walkthrough, including DeepSeek and resume behavior.
| Path | Purpose |
|---|---|
index.html |
The live status board (static SPA, reads data.json). |
build_status_sheet.py |
Regenerates data.json + status.csv from outputs/. |
.github/workflows/build-site.yml |
Auto-rebuilds the feed on every push. |
outputs/chatgpt/open/ |
Human-named solution copies — the source of truth for the site. |
solutions/<category>/ |
Raw machine-readable solution records. |
open/, falsifiable/, verifiable/, individual/ |
The Erdős problem set as LaTeX (problem_N.tex). |
solve_submit.py / solve_rename.py |
Submit problems to ChatGPT and collect answers. |
deepseek_submit.py / deepseek_rename.py |
Same pipeline for DeepSeek. |
proof_pipeline.py |
Long-horizon scout, DAG, construct, regulate, revise, and adjudicate orchestrator. |
promote_verified_run.py |
Bind external evidence to an exact saved candidate and publish only after the gate passes. |
research_state.py |
Immutable statement lock and persistent DAG/lemma/failure memory. |
solver_prompts.py |
Offline, role-separated search and verification prompts. |
verification.py |
Deterministic proof-promotion gate. |
problem_catalog.json |
Online source status/provenance, isolated from solver prompts. |
erdos_common.py / deepseek_common.py |
Shared prompt, parsing, browser and output helpers. |
fetch_erdos.py / fetch_categories.py |
(Re)download and categorize the problem set. |
Your browser session, conversation IDs, and project URL never leave your
machine — .env, .chatgpt_profile/, .deepseek_profile/, and the
*_chat_map.json files are all git-ignored. Only the finished solution files and
the site feed are published.
Problems are sourced from Tom Bloom's Erdős Problems database, openly maintained at https://github.com/teorth/erdosproblems. This project is an independent experiment and is not affiliated with that database.
See SOLVER_ARCHITECTURE.md for the trust model and
HARNESS_RESEARCH.md for the July 2026 comparison with
current research harnesses.