FIMO
June 30, 2026 · View on GitHub
Looking for FIMO in Lean 4? Our ACL 2026 work Discover and Prove ports FIMO from Lean 3 to Lean 4 and adds a Hard Mode (answer hidden, must be discovered before proving). Paper · Dataset
FIMO is a formal mathematics dataset comprising formal mathematical problem statements sourced from the International Mathematical Olympiad (IMO) Shortlisted Problems from 2006 to 2021. FIMO is currently tailored for the Lean formal language and is designed to facilitate advanced automated theorem proving at the IMO level. It comprises 149 formal problem statements, accompanied by both informal problem descriptions and their corresponding LATEX-based informal proofs.
The dataset aims to facilitate IMO-level AI mathematical reasoning research and provide a challenging benchmark to evaluate the reasoning ability of automated theorem systems. The dataset is currently targeting Lean formal system.
The dataset is a work in progress. Each problem is auto-formalized with feedback and verified by human experts. However, there is still a small probability that the generated formal statement is semantically incorrect. Discussions or P&R are welcome.
Citation
The construction process of the dataset (i.e., auto-formalization with feedback) is described in detail in the following paper. If you find our work helpful, please consider to cite this paper.
@misc{liu2023fimo,
title={FIMO: A Challenge Formal Dataset for Automated Theorem Proving},
author={Chengwu Liu and Jianhao Shen and Huajian Xin and Zhengying Liu and Ye Yuan and Haiming Wang and Wei Ju and Chuanyang Zheng and Yichun Yin and Lin Li and Ming Zhang and Qun Liu},
year={2023},
eprint={2309.04295},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
Statistics
| Category | Total Quantity | Success Count | Success Rate |
|---|---|---|---|
| Algebra | 124 | 89 | 71.8% |
| Number Theory | 121 | 60 | 49.6% |
| Total | 245 | 149 | 60.8% |
Total Quantity denotes all the problems from the International Mathematical Olympiad Shortlisted Problems from 2006 to 2021. Success Count denotes the problems that are formalized through our auto-formalization with feedback process and, therefore, being a part of this dataset.
Example Problem Statement
- Informal Statement
Let be the sides of a triangle. Prove that
- Informal Proof
Note first that the denominators are all positive, e.g. . Let and . Then
and
applying in the last step. Similarly we obtain
Substituting these quantities into the statement, it is sufficient to prove that
By symmetry we can assume . Then
and (1) follows.
- Formal Statement (Lean)
theorem fimo_2006_algebra_p5
(a b c : ℝ)
(h₀ : a > 0 ∧ b > 0 ∧ c > 0)
(h₁ : a + b > c ∧ a + c > b ∧ b + c > a) :
(sqrt (b + c - a) / (sqrt b + sqrt c - sqrt a)) +
(sqrt (c + a - b) / (sqrt c + sqrt a - sqrt b)) +
(sqrt (a + b - c) / (sqrt a + sqrt b - sqrt c)) ≤ 3 :=
begin
sorry
end
Structure
When organizing our project structure, we followed openai/miniF2F, hopefully making it easier for researchers to utilize our work. Each problem is nominated as fimo_{year}_{category}_p{problem_count}, where fimo denotes the Formalized IMO-level problems.
lean/fimo.lean: Formalized IMO shortlist problems in LEAN language.prompts/algebra_prompts.txt: Prompts for algebra problems.prompts/number_theory_prompts.txt: Prompts for number theory problems.informal: Problems in JSON format. Each problem has aproblem_name, aninformal_statement, and aninformal_proof.
Lean
To install the project make sure you have elan installed, then in the directory where you want the project installed run:
leanpkg configure
leanpkg build
Since having one file per statement causes slowness in Lean parsing stage, all Lean statements are
exceptionally aggregated in one file (fimo.lean). These files contain a list of
the problem statements defined as theorems.