# Rimo Eval

> rimo-eval

- Skill: `qhjqhj00/rimo-eval` (Agent Skill)
- Install (CLI): `npx skillmds@latest add qhjqhj00/rimo-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/rimo-eval/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/qhjqhj00/rimo-eval

---


# 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

