This is an experimental project aiming to formalize mathematical olympiad problems appeared in recent Turkey national contests using Aristotle and to test it against these challenging problems. Geometry problems are excluded.
I asked Aristotle two things. First, I gave only the problem statement, and asked it to solve. On a few of them, it failed to generate a Lean file, and I asked for a second time. The resulting Lean files are in tmo/problems. Second, I gave also the official solution, essentially asking it to formalize the solutions. The resulting Lean files are in tmo/solutions. Aristotle managed to solve a good amount of the problems, and formalized the solutions to even more.
Aristotle sometimes makes the same claim over and over again. It sometimes sees some very hard observations, but sometimes misses obvious things. It struggles in some problems which are pretty easy for a typical contestant (for example MO2024-P4, GTST2025-P4, JTST2025-P2). This might not come as a surprise, if all these problems were combinatorics, at least for me it wouldn't, but there are some number theory problems as well in this category. However, it solved some hard problems (for example MO2024-P6, TST2025-P9), even some containing combinatorics. MO2024-P6 surprised me the most in this category. Another nice outcome of this experiment is that when formalizing the official solution, Aristotle sometimes notices some missing parts, and tries to complete it (for example GTST2025-P3).
In the given contests, Aristotle would get a score sufficient to advance to the next round/get selected for the team in 4 of them, but would miss the IMO team (4 problems in TST2025 was not enough. I know geometries are excluded, but the geometry problems in this contest were quite hard anyway).
I asked Aristotle to formalize 26 problems, 9 of which are combinatorics, 7 of which are algebra, 10 of which are number theory problems.
| Topic | Solved | Solution Formalized | No Progress | Total |
|---|---|---|---|---|
| Combinatorics | 4 | 2 | 3 | 9 |
| Algebra | 6 | 1 | 0 | 7 |
| Number Theory | 8 | 2 | 0 | 10 |
| Total | 18 | 5 | 3 | 26 |
Among these 26 problems, 3 of them were proposed by me and Aristotle solved none of them (quite interesting when its overall performance is considered) and it managed to formalize the official solution to only one of them.
In the web UI, you can see my individual comments on each problem. Along with that, you can also find problem statement and the official solution, both Lean files, the difficulty (assessed by myself, pretty subjective but attaches a rough level to problems) and the discussion for that problem in Art of Problem Solving website. To use the web interface, run
python3 -m http.server
and go to 127.0.0.1:8000/web
In resources/problems folder, there are tex files containing the statements of the problems, and in resources/solutions folder you can find tex files containing both the statement and the solution. To compile all the problems, run
make problems
and to compile all the solutions, run (you may need olympiad.asy in the root folder)
make solutions
or to generate a single pdf, run
make resources/problems/contest/problem.pdf
make resources/solutions/contest/problem.pdf
The contest name abbreviations (all of them Turkey contests):
| Abbreviation | Contest Name |
|---|---|
| JMO | National Junior Mathematical Olympiad |
| MO | National Mathematical Olympiad |
| GTST | Team Selection Test for EGMO |
| TST | Team Selection Test (for BMO and IMO) |
| JTST | Team Selection Test for JBMO |
