This benchmark evaluates advanced mathematical reasoning at the International Mathematical Olympiad level. It probes two distinct capabilities: deriving a unique integer answer from complex problem statements, and constructing step-by-step deductive proofs by solving decomposed sub-problems. Use when the user wants to benchmark on RIMO, or asks about evaluating this task. Reports exact-match grading.
Installs into .claude/skills of the current project.
Are you the author of Rimo Eval?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-rimo-eval)
---
name: rimo-eval
description: This benchmark evaluates advanced mathematical reasoning at the International Mathematical Olympiad level. It probes two distinct capabilities: deriving a unique integer answer from complex problem statements, and constructing step-by-step deductive proofs by solving decomposed sub-problems. Use when the user wants to benchmark on RIMO, or asks about evaluating this task. Reports exact-match grading.
metadata:
skill_kind: dataset_eval
source_arxiv: 2509.07711
bibtex_key: chen2025rimo
confidence: high
---
# rimo-eval
> RIMO: An Easy-to-Evaluate, Hard-to-Solve Olympiad Benchmark for Advanced Mathematical Reasoning — Chen et al. (2025) (arXiv:2509.07711, 2025)
## What this evaluates
This benchmark evaluates advanced mathematical reasoning at the International Mathematical Olympiad level. It probes two distinct capabilities: deriving a unique integer answer from complex problem statements, and constructing step-by-step deductive proofs by solving decomposed sub-problems.
## Datasets
- **RIMO** — total 791; splits: RIMO-N (335), RIMO-P (456)
## Metrics
- `exact-match grading` **(primary)** — range: [0, 1]
- Calculated as the proportion of instances where the model's output exactly matches the ground-truth answer or sub-solution string. For RIMO-N, it is a direct string comparison of the final integer. For RIMO-P, it is averaged across all sub-problems in the proof sequence.
## Input / output format
**Input**: For RIMO-N: A rewritten problem statement requiring a single integer answer. For RIMO-P: An original proof problem decomposed into a sequence of 1–4 guided sub-problems.
**Output**: For RIMO-N: A single integer. For RIMO-P: A sequence of step-by-step sub-solutions corresponding to each guided sub-problem.
## Scoring recipe
```python
def compute_rimo_score(predictions, golds, track):
correct = 0
for pred, gold in zip(predictions, golds):
if track == 'RIMO-N':
if pred.strip() == gold.strip():
correct += 1
elif track == 'RIMO-P':
if all(p.strip() == g.strip() for p, g in zip(pred, gold)):
correct += 1
return correct / len(predictions)
```
## Common pitfalls
- RIMO-N grading is strictly deterministic string comparison; any extra text, units, or formatting causes a zero score.
- RIMO-P requires solving sub-problems in the exact prescribed order; models that skip steps or hallucinate intermediate lemmas will fail automated validation.
- The benchmark explicitly avoids symbolic post-processing or learned judges, so relying on external solvers or LLM-as-a-judge will invalidate the protocol.
## Evidence (verbatim from paper)
> RIMO-N rewrites 335 IMO problems into single-integer-answer formats enabling deterministic exact-match grading, while RIMO-P decomposes 456 proof problems into sub-problems to evaluate step-by-step reasoning via automated, expert-verified sub-solution validation.
## Citation
```bibtex
@misc{chen2025rimo,
title={RIMO: An Easy-to-Evaluate, Hard-to-Solve Olympiad Benchmark for Advanced Mathematical Reasoning},
author={Chen et al. (2025)},
year={2025},
note={arXiv:2509.07711}
}
```
- arXiv: 2509.07711