Submissions to the Lean AI Formalization Leaderboard.
# List all benchmark problems and their submission status
python bin/list_problems.py
# Scaffold a new submission
python bin/new_submission.py <problem_id>
# Check which submissions are ready
python bin/submit.py --list-ready-
Pick a problem —
python bin/list_problems.pyshows all 60 problems and your local status. -
Scaffold —
python bin/new_submission.py <problem_id>createssubmissions/<problem_id>/with:lakefile.toml— declaresname = "<problem_id>"so CI can match itSubmission.lean— the theorem withsorryplaceholder (fetched from upstream)Submission/Helpers.lean— stub for helper lemmas
-
Prove — Replace
sorryinSubmission.leanwith your proof. Add helper lemmas underSubmission/. -
Submit — Push to GitHub, then
python bin/submit.py <problem_id>opens the issue form at lean-lang.org/eval/submit/.
The leaderboard CI scans every directory that contains both a lakefile.toml with a matching problem name and a Submission.lean. It overlays only two things onto a pristine benchmark workspace:
Submission.leanSubmission/**/*.lean
Everything else (Solution.lean, Challenge.lean, modified lakefile.toml) is ignored.
submissions/
<problem_id>/
lakefile.toml # name = "<problem_id>"
Submission.lean # your proof
Submission/
Helpers.lean # helper lemmas (optional)
- The proof must be hosted on a public GitHub repo (or public gist)
- Private repos require installing the
lean-eval-botGitHub App - Submissions are cumulative — every success is sticky, no submission limit
| Status | Description |
|---|---|
X |
solved — no sorry in Submission.lean |
. |
in progress — Submission.lean still has sorry |
E |
empty directory — scaffolding incomplete |
|
not attempted |
Run python bin/list_problems.py to see the full list.