cs.LGMar 20, 2026
SavePutnam 2025 Problems in Rocq using Opus 4.6 and Rocq-MCP
Organizations: IRIF, Université Paris Cité, Inria, CNRS · DI ENS, PSL University, Inria · PRGM DEV
Abstract
We report on an experiment in which Claude Opus~4.6, equipped with a suite of Model Context Protocol (MCP) tools for the Rocq proof assistant, autonomously proved 10 of 12 problems from the 2025 Putnam Mathematical Competition. The MCP tools, designed with Claude by analyzing logs from a prior experiment on miniF2F-Rocq, encode a "compile-first, interactive-fallback" strategy. Running on an isolated VM with no internet access, the agent deployed 141 subagents over 17.7 hours of active compute (51.6h wall-clock), consuming approximately 1.9 billion tokens. All proofs are publicly available.
Figures & tables
| Problem | Status | Lines | Time | Axioms | Domain |
|---|---|---|---|---|---|
| A1 | ✓ | 305 | 51m | classical | Number theory |
| A2 | ✓ | 308 | 1h 33m | Reals | Real analysis |
| A3 | ✓ | 110 | 1h 07m | None | Combinatorics |
| A4 | ✓ | 531 | 4h 58m | Reals | Linear algebra |
| A5 | ✗ | 2294 | – | – | Enum. combinatorics |
| A6 | ✓ | 897 | 19h 56m | None | Number theory |
Table 1: Per-problem results. Lines = lines of Rocq code. Time = wall-clock from experiment start to successful compilation. ✓ = exploited a loophole in the A3 formalization (later fixed by the agent). Bold None = fully constructive (zero axioms).
Figure 1: Cumulative problems solved over wall-clock time. Solid green segments indicate active compute; dashed red segments indicate inactivity (API rate limits or user absence). Shaded regions mark the 7 detected gaps ( 30 min). The first 4 problems were solved within 2 hours; B5 was not solved until 46 hours into the experiment.
Figure 2: Cumulative problems solved vs. cumulative tokens consumed (log scale). The first 5 problems required 100M tokens; the last 5 required 10 more, illustrating sharp diminishing returns on harder problems.
| Tool | Calls | Role |
|---|---|---|
| rocq_compile | 3,100 | Compilation |
| rocq_verify | 120 | Axiom checking |
| rocq_auto_solve | 20 | Quick automation |
| rocq_query | 80 | Library search |
| rocq_step | 450 | Interactive debug |
Table 2: MCP tool usage.
| Role | Agents | Tokens | Tool calls |
|---|---|---|---|
| Lemma Prover | 55 | 738M | 4,845 |
| Bug Fixer | 36 | 538M | 3,409 |
| General | 21 | 253M | 1,588 |
| Verifier | 15 | 65M | 639 |
| Proof Completer | 13 | 185M | 1,257 |
| Compiler | 1 | 1M | 14 |
Table 3: Subagent roles. Roles are inferred from each agent’s initial prompt.
Figure 3: Subagent efficiency. Each bubble represents one subagent (141 total, filtered to those with 10 tool calls). Position: tokens consumed vs. tool calls (both log scale). Size: duration. Color: problem assignment.
| Category | Tokens | % | Cost | % Cost |
|---|---|---|---|---|
| Input | 1M | 0.0% | $1 | 0.1% |
| Output | 16M | 0.9% | $406 | 23.1% |
| Cache creation | 72M | 3.8% | $448 | 25.5% |
| Cache read | 1,809M | 95.4% | $905 | 51.4% |
| Total | 1,897M | 100% | $1,760 | 100% |
Table 4: Token economics.
| Group | Problems | Active time | Est. tokens |
|---|---|---|---|
| Easy (A1, A2, A3, B4) | 4 | 2h | 100M |
| Medium (A4, B1, B2, B3) | 4 | 5h | 400M |
| Hard (A6, B5) | 2 | 11h | 600M |
| Unsolved (A5, B6) | 2 | – | 800M |
Table 5: Scaling behavior by problem difficulty. The unsolved problems consumed the most resources.