All tasks
Task · lean-validity

Lean proof validity

Predict Lean 4 proof validity without running Lean

Math & GamesInspired byAxiom
Score
macro F1
Best
57.9
Median over trials
17.8

Instruction

Train a model that predicts whether a Lean 4 file compiles under Lean v4.15.0 and Mathlib v4.15.0, without running Lean. I have provided 526 labeled proof attempts.

You can use Lean and Mathlib during development, but the submission can't include, run or reimplement them (no .olean files), and the answer has to come from the model, not hand-written rules. You can start from any open-weights model that isn't a specialized lean validity model.

Write a script serve.sh which serves the model. It should have a POST /check endpoint which takes a Lean file and returns whether it compiles. It should run offline on one H100, be ready within 300 seconds, and answer about 6 files per second.

Optimize macro F1 over compiling and non-compiling files.

Do not train, fine-tune, calibrate or select on the validation or test split of any public dataset or benchmark; training splits and other public corpora are fine. However, you are free to use the validation data samples I have provided however you want.

Submit in /workspace/output/. Interface and runtime details: /task/CONTRACT.md. Supporting files: /task/public/. Evaluate with python /task/validate.py --server-url URL. Test the finished submission the way it will be run with frontier selfcheck. Hand it in with frontier submit when it is final. Use spin --help for compute and model APIs.

Trials

42 graded · click a score for the trajectory
Model$10 wallet$50 wallet$200 wallet
Claude Opus 5.5xhigh37.545.357.5
Claude Sonnet 5.5xhigh41.831.957.9
Claude Fable 5.1xhigh28.640.743.2
Claude Haiku 5.5max26.626.641.5
GPT-6 Astraxhigh37.529.835.8
GPT-6.1 Solxhigh36.327.733.1
GPT-6 Lunaxhigh1.415.75.0
Gemini 3.8 Flashhigh0.00.02.5
Grok 4.7xhigh6.00.012.1
Muse Spark 1.3max4.320.70.0
Muse Wondermax0.07.00.1
Kimi K3max17.617.220.6
Qwen3.8 Maxxhigh18.00.00.0
GLM 5.3max0.00.03.0

Scoring

The raw metric (macro F1) is rescaled so that a coin flip (macro F1 0.5) scores 0 and perfect classification scores 100, clamped to that range.

MetricScores 0 atScores 100 at
macro_f10.51