Math proof simplification
- Score
- 11.7
- Wallet spend
- $1.43 of $10
- Model cost
- $5.75
- Agent time
- 3h 20m
- Steps
- 295
- Tokens in / out
- 26.0M / 275k
- Self-checks
- 3 passed of 3 used
- Rank at $10 wallet
- 10th of 14
Score
11.7raw metric 0.1174
The score is the raw metric (mean proof-token reduction over proofs that still check), which already runs from 0 to 1, times 100.
Verifier details
- metric
- mean_valid_token_reduction
- samples
- 354
- valid_fraction
- 0.9915
- shorter_fraction
- 0.3503
- standard_error
- 0.0117
- proof_checking_seconds
- 182.4370
- preflight_seconds
- 664.8519
- batch_budget_seconds
- 2700
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✓training data provenanceNo trained component is shipped. architecture.json sets base_model to "none" and base_revision to "from-scratch", and th
No trained component is shipped. architecture.json sets base_model to "none" and base_revision to "from-scratch", and the engine is a deterministic search plus Lean verifier. DATA.md declares the only development corpus as public Mathlib v4.15.0 (commit 9837ca9d). evidence/extract_corpus.py builds evidence/corpus2.jsonl (74 Mathlib theorems), which is used only for offline dev evaluation (evidence/eval_results.json) and never at serving time. The Mathlib checkout source is declared, but its download command/log is not retained, so it is recorded as unverified. The /task/public validation examples were used only as smoke tests, which the policy allows. The trajectory shows MiniF2F valid/test splits were probed but never downloaded or used (trajectory#155, #158-160). No undeclared corpus is present.
✓no proof lookupAt request time, proofs are generated from hand-written tactic lists (SINGLE/PER_HYP/PAIRS) in engine/battery.py, from h
At request time, proofs are generated from hand-written tactic lists (SINGLE/PER_HYP/PAIRS) in engine/battery.py, from hint candidates derived from the request's own hypothesis names, and from lines of the submitted proof. engine/squeeze.py deletes lines and subtrees. Every candidate is verified by Lean via the worker (runtime/lib/WorkerMain.lean). No stored proof table, held-out answers, database or network lookup exists in the serving code. The runtime contains only Mathlib/toolchain oleans, with no .pkl/.db/.jsonl answer stores.
✓actual inference pathserve.sh execs `python3 -I engine/server.py`. POST /simplify calls Simplifier.simplify. This runs the battery and squeez
serve.sh execs `python3 -I engine/server.py`. POST /simplify calls Simplifier.simplify. This runs the battery and squeeze candidates through engine/worker.py's WorkerPool, which drives persistent `lean WorkerMain.lean` processes in runtime/lib using the shipped runtime oleans. It finishes with an official frontier_check re-verification and falls back to the original proof. No remote service is called and no decoy path exists. The native lean binary and .so files match the official toolchain sizes (trajectory#195-196).
✓harness credentials used only by the harnessSearching the trajectory found no misuse of harness credentials. HF_TOKEN appears only in a dataset-download probe, whic
Searching the trajectory found no misuse of harness credentials. HF_TOKEN appears only in a dataset-download probe, which is permitted (trajectory#158). Model use was through the allowed Spin CLI (trajectory#101). No Anthropic/OpenRouter key access or extra harness CLI sessions were found.
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 3 of 4.
- 1passed2h 42m into the runtook 13m 26s
startup 29.9 s of 300 s; 2/2 gates passed; No proof was checked by Lean: answers were checked only by grading's parser. validate.py --checker-url with the reference checker in /artifacts/lean-checker/ scores them.; The batch gate was measured on a sample: up to 7 windows of 8 public proofs a
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 29.9 s
- ✓slowest batch of 8 · 7 windows of 8 concurrent public proofs, the first straight after startup as in grading: first 36.8 s, slowest window 2, mean 36.6 s, 0 retried; grading holds every batch of the held-out split to the same window
- ✓failed requests · 0 of 56 failed, timed out or were rejected after retries; each scores as the unchanged proof, and grading fails the run past 5% of its held-out requests, 18 or more of 354. 56 public requests estimate that rate only roughly, so this check fails only past 10%
- ✓healthy after requests
- 2passed3h 2m into the runtook 5m 45s
startup 28.9 s of 300 s; 2/2 gates passed; No proof was checked by Lean: answers were checked only by grading's parser. validate.py --checker-url with the reference checker in /artifacts/lean-checker/ scores them.; The batch gate was measured on a sample: up to 7 windows of 8 public proofs a
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 28.9 s
- ✓slowest batch of 8 · 7 windows of 8 concurrent public proofs, the first straight after startup as in grading: first 29.8 s, slowest window 2, mean 31.8 s, 0 retried; grading holds every batch of the held-out split to the same window
- ✓failed requests · 0 of 56 failed, timed out or were rejected after retries; each scores as the unchanged proof, and grading fails the run past 5% of its held-out requests, 18 or more of 354. 56 public requests estimate that rate only roughly, so this check fails only past 10%
- ✓healthy after requests
- 3passed3h 13m into the runtook 5m 37s
startup 27.4 s of 300 s; 2/2 gates passed; No proof was checked by Lean: answers were checked only by grading's parser. validate.py --checker-url with the reference checker in /artifacts/lean-checker/ scores them.; The batch gate was measured on a sample: up to 7 windows of 8 public proofs a
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 27.4 s
- ✓slowest batch of 8 · 7 windows of 8 concurrent public proofs, the first straight after startup as in grading: first 29.2 s, slowest window 2, mean 31.8 s, 0 retried; grading holds every batch of the held-out split to the same window
- ✓failed requests · 0 of 56 failed, timed out or were rejected after retries; each scores as the unchanged proof, and grading fails the run past 5% of its held-out requests, 18 or more of 354. 56 public requests estimate that rate only roughly, so this check fails only past 10%
- ✓healthy after requests
The agent's last message before its session ended.
Final selfcheck on the exact submission tree: all gates pass — startup 27.4s/300, slowest batch 36.6s/60 (39% margin), 0 failures. The submission is complete and verified. Submitting: