SimoBench release

Synthetic olympiad problems for measuring reasoning, not recall.

SimoBench, the Synthetic International Math Olympiad Bench, is a compact 126-problem benchmark of synthetic olympiad-style mathematics problems for evaluating mathematical reasoning across frontier, small, and mid-sized language models.

The benchmark keeps the spirit and difficulty profile of IMO-style reasoning while moving away from directly memorized contest statements. Each problem is a synthetic variant inspired by the mechanism of an IMO problem, selected to be standalone, interesting, and challenging.

126selected synthetic olympiad-style benchmark problems
1,008model/problem rows judge-graded across eight full runs
0–7olympiad-style score assigned to each proof
752/882leading full-run score from GPT-5.5 xhigh

Judge-graded leaderboard

Every submitted proof is scored from 0 to 7 against the reference solution. The ranking is the total over all 126 problems, rather than a model's self-reported solved label.

Full: score 7 Strong: score 5–7 Substantial: score 4–7 Zero: no proof credit
Rank Model Coverage Total score Mean Full solves Strong proofs Substantial progress Zero scores Leaderboard read
1
GPT-5.5 xhighBest overall proof conversion
126/126rows judged 752of 882 · 85.26% 5.97out of 7 59score-7 proofs 103scores 5–7 118scores 4–7 0no-credit rows Best overall conversion of correct ideas into complete, concise proofs.
2
Ling-2.6Highest strong-proof count
126/126rows judged 746of 882 · 84.58% 5.92out of 7 52score-7 proofs 111scores 5–7 114scores 4–7 0no-credit rows Very high coverage and many complete proofs, with several costly wrong classifications.
3
HY3-previewNear-leader proof depth
126/126rows judged 743of 882 · 84.24% 5.90out of 7 53score-7 proofs 104scores 5–7 114scores 4–7 0no-credit rows Strong proof depth and near-leader total; partials are concentrated on the hardest rows.
4
Command-A-PlusGood solves, costly blank outputs
126/126rows judged 559of 882 · 63.38% 4.44out of 7 38score-7 proofs 79scores 5–7 83scores 4–7 25no-credit rows Good substantive solves, but 25 answer-only or status-only submissions receive zero proof credit.
5
DeepSeek-V4-FlashHigh ceiling, many empty outputs
126/126rows judged 558of 882 · 63.27% 4.43out of 7 42score-7 proofs 84scores 5–7 87scores 4–7 38no-credit rows High ceiling on completed generations; 38 empty failed outputs sharply reduce the total.
6
MiniMax-M3Strong completions, many empty outputs
126/126rows judged 500of 882 · 56.69% 3.97out of 7 39score-7 proofs 73scores 5–7 75scores 4–7 44no-credit rows Many strong completed proofs, offset by 44 empty failed outputs.
7
Ulam-1-smallBest original small model
126/126rows judged 411of 882 · 46.60% 3.26out of 7 25score-7 proofs 33scores 5–7 48scores 4–7 2no-credit rows Best of the original small-model pair; more substantial 4–6 point proofs.
8
VibeThinker-3bCompact 3B reasoning baseline
126/126rows judged 400of 882 · 45.35% 3.17out of 7 25score-7 proofs 30scores 5–7 41scores 4–7 1no-credit rows Same full-solve count as Ulam, but fewer substantial partial proofs.

All 1,008 rows are scored. Valid counterexamples receive full credit when they resolve a statement as written; empty, answer-only, and status-only responses receive no proof credit. The score retains correct work in truncated proofs instead of collapsing them to a binary result.

Leaderboard read: GPT-5.5 xhigh leads the completed board with the strongest conversion of correct ideas into concise, complete proofs.

Ling-2.6 and HY3-preview are close behind on total score and proof depth. For the lower-ranked runs, empty or answer-only outputs are a major differentiator, not just the quality of completed proofs.

Scoring rubric

SimoBench follows an olympiad-style 0–7 grading scale. For each model, the benchmark score is the sum over all 126 problems.

7Complete correct solution.
6Essentially complete, with only minor gaps or presentation issues.
5Main idea correct, with one meaningful gap.
4Substantial progress, but incomplete proof.
3Correct key observations without a complete route.
2Limited useful progress.
1Relevant definitions or small observations only.
0No meaningful progress or incorrect solution.

Primary metrics

Total score: sum of 126 problem grades, maximum 882.

Mean score: total divided by 126, reported on the 0–7 scale.

Full solves: number of problems graded 7.

Secondary metrics

Substantial progress: number of problems graded at least 4.

Pass@k: optional when sampling multiple attempts per problem.

Cost and speed: average tokens and wall-clock time per problem.

Why SimoBench is valuable

Reasoning over recall

Original IMO problems are widely available in training data, solution archives, forum discussions, tutorials, and benchmark reports. SimoBench moves evaluation away from direct memorization.

Olympiad-style structure

The problems preserve mechanisms from high-quality contest mathematics while changing the exact statements and surface form.

Compact and repeatable

With 126 problems, SimoBench is small enough to run frequently while still hard enough to reveal reasoning gaps.

Solution-backed

Every selected benchmark problem has a reference solution, enabling human, assisted, or judge-model grading.

Release framing: SimoBench is a 126-problem synthetic olympiad benchmark for testing mathematical reasoning in small and mid-sized language models.

It is built from 1,260 generated variants inspired by IMO problem mechanisms, with one manually selected problem for each IMO problem slot from 2005 to 2025.

The public benchmark file hides origin metadata and includes only problem IDs and statements; matching reference solutions are provided separately.

Benchmark design

1Synthetic variants, not trivial paraphrases of official IMO statements
2One selected problem for every IMO slot from 2005 through 2025
3Manual selection for coherence, standalone quality, interest, and difficulty
4Hidden origin metadata to reduce shortcut prompting and retrieval hints
5Stable deterministic shuffle for reproducible benchmark runs

What is tested?

SimoBench covers algebra, number theory, geometry, combinatorics, inequalities, functional equations, games, graphs, and discrete processes.

The tasks ask models to parse a new statement, identify the hidden structure, and build a proof or computation.

What is hidden?

The benchmark-facing file removes the source IMO year, original problem number, variant number, source title, and inspiration metadata.

This prevents prompts from handing the model a strong retrieval cue such as “inspired by IMO 2017 Problem 4.”

Design choice Implementation Evaluation purpose
One problem per slot 21 years × 6 problems = 126 benchmark items. Broad IMO-style coverage without making the benchmark too large to run often.
Manual selection One final problem selected from 10 variants for each IMO slot. Favor coherent, standalone, interesting, and challenging statements with usable reference solutions.
Public file stripped Only problem_id and problem_statement are shown to solvers. Reduce origin shortcuts and contamination-style retrieval.
Stable random order Fixed seed: SimoBench-v1. Make experiments reproducible while keeping adjacent problems well mixed.

Recommended evaluation protocol

Use SimoBench.json as the solver input. Keep reference solutions and all origin metadata out of the model prompt.

Solve the following olympiad-style problem. Provide a rigorous proof. Problem: {problem_statement}

Input file

Use only the benchmark-facing problem file with problem IDs and statements.

No metadata leaks

Do not include the source IMO year, original problem number, variant number, source title, or internal SIMO metadata.

Grade reasoning

For proof problems, grade the reasoning rather than only the conclusion. For answer-only problems, require both final answer and justification.

Release files

SimoBench.json

Public benchmark input: 126 items with problem_id and problem_statement.

SimoBench-problems.json

Identical public alias for the benchmark input file.

SimoBench-solutions.json

Answer-key file in the same order, adding the reference solution field.

File group Files Use during evaluation
Benchmark inputs SimoBench.json, SimoBench-problems.json Safe to provide to the model as the problem source.
Benchmark solutions SimoBench-solutions.json Use for human or assisted grading, but never include in the solver prompt.
Audit and provenance SIMO-problems.json, SIMO-solutions.json, problems.json, solutions.json Useful for dataset maintenance; should not be shown to models during benchmark evaluation.

Caveats and reproducibility

Caveats

SimoBench is synthetic. That is a strength for evaluation, but the benchmark should be treated as a research artifact rather than an official competition archive.

The current benchmark has reference solutions, but not machine-checkable formal proofs. Grading still requires mathematical judgment.

Reproducibility

The benchmark files can be regenerated from the selected SIMO files with node scripts/create-simobench.mjs.

The selected SIMO files are generated from the TeX source pool with node scripts/prepare-json.mjs.

Access

Run SimoBench on your model.

Ulam can run private evaluations, compare model families under the same 0–7 scoring rubric, and convert failures into trainable proof-process data for mathematical reasoning systems.