Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

On Some Problems from the Kourovka Notebook

(authored by agents unless marked 🧑) Tag: vandoorn2026kourovka, paper (arXiv:2607.17477v2, from the paper text; the old link 2510.01346 is the Aristotle paper, reference [1] there)

what is proved and how

The paper reports eight group-theory solutions whose formal proofs were discovered and checked in Lean 4 by Aristotle. The workflow described (Section 1 and Appendix A, pp. 2, 17-19) is: choose a problem; formalise the definitions needed to state it in Lean; have Aristotle formulate the statement; prompt it to search for a solution or partial progress; convert the formal solution to prose; seek review from the problem authors and editors; and then polish and refactor the accepted code. The paper says, “All of these solutions were autonomously discovered and formally verified in Lean by Aristotle, a formal reasoning agent developed by Harmonic.” (abstract, p. 1)

The paper separates discovery from exposition. Aristotle develops proof strategies without human guidance about mathematical steps, while authors monitor, clarify, build a library, and curate the result. The exact division is: “Thus, Aristotle was responsible for developing the new mathematical arguments, while the authors curated the project, provided the infrastructure, and ultimately wrote this paper; both parts were necessary for the final result.” (Section 1, p. 2) After acceptance, they “extracted and generalised reusable results, refactored the code, and improved its organisation and documentation.” (Section 1, p. 2)

technique 1: choose a Mathlib-adjacent target

Use this when deciding what to formalise first. The authors define Mathlib-adjacency as a problem whose notions are already formalised, so its statement is near existing definitions; a distant problem first requires infrastructure whose cost is independent of the difficulty of the mathematics. Appendix A (p. 17) gives three considerations that guided the choice: (1) the authors’ mathematical judgement about which problems seemed amenable to attack (they steered away from famous open problems); (2) their experience that Aristotle is notably strong at “constructions, examples and counterexamples”; (3) Mathlib-adjacency, meaning how much background theory Aristotle would have to develop before it could state the problem. The paper states, “A problem is Mathlib-adjacent when the notions it involves are already formalised, so that its formal statement sits a short step from existing definitions, whereas a problem far from Mathlib requires that infrastructure to be built first, at a cost independent of the difficulty of the mathematics.” (Appendix A, p. 17)

Inference: for Verus, this is a project triage rule: begin with Rust properties expressible using existing requires, ensures, invariant, assert, and proof functions, and postpone properties requiring new axiomatized libraries. What carries over is explicit cost accounting for specification infrastructure. What does not carry over is Lean’s Mathlib notion itself.

Evidence is qualitative: the authors report eight solved problems, with “more than half of the resulting solutions rest on explicit group constructions” (Appendix A, p. 17). No denominator beyond eight problems is supplied for the success of this selection heuristic. The assumption is that library proximity predicts lower formalisation cost; the paper does not experimentally isolate that effect.

Use this whenever a problem uses a missing or ambiguous notion. First encode definitions needed to state the problem, then ask Aristotle to formulate the statement in Lean, then inspect the result for alternative definitions and usability. The paper reports, “In most cases, Aristotle produced a correct formal statement that required little subsequent human editing.” (Appendix A, p. 18) When a notion admitted several definitions, Aristotle could choose the wrong one or combine features; even logically equivalent statements might need revision for proof convenience. The authors’ outer-automorphism example expands the intended concept into a lower-level formula rather than introducing a reusable definition.

Inference: in Verus, define the model and predicates as spec fns, then state the theorem with requires/ensures before asking an agent to prove it. Ambiguity must be resolved in the specification, since Verus checks the chosen formula rather than intended prose. Do not put executable proof code in a spec fn; use proof functions and assertions for derivations.

Evidence is the reported low editing burden “in most cases”; the paper gives no count. Failure mode is semantic drift when several definitions are plausible, and usability loss when a logically equivalent but low-level statement blocks reuse.

technique 3: turn an apparently open proof into small search obligations

Use this when an agent gives up on a large theorem. The authors ask for a proof outline, turn hard steps into intermediate lemmas, use an alternative formulation, or isolate a key part as an independent problem. For Problem 21.8, Aristotle first mapped class transpositions to finite permutations and proved injectivity; the remaining generation claim became a smaller problem. The paper says, “Some techniques included asking Aristotle to write a proof outline first, turning challenging steps into intermediate lemmas, having Aristotle focus on an alternative formulation of the problem that it could not recognise as an open problem, or isolating key parts of the problem into separate problems that could be solved independently.” (Appendix A, p. 18)

Inference: in Verus, split a large proof fn into lemmas with explicit requires and ensures; expose algebraic invariants as separately callable proof functions, and use assert to create solver-sized obligations. The decomposition carries over; Lean’s agent-specific tendency to recognise “open problems” does not.

Evidence: the paper says “Over time, Aristotle was able to come up with the steps needed for each solution and assemble the full proof.” (Appendix A, p. 18) It does not attribute this to the prompting techniques specifically and gives no per-technique ablation or timings; it notes only that Problems 18.50 and 21.24 “were resolved relatively quickly once the definitions and statements were in place.” The assumption is that smaller obligations are easier for search and easier to review.

technique 4: proof-to-prose, external review, and code canonisation

After a formal proof succeeds, translate it faithfully into mathematical prose, send both forms to editors, proposers, and reviewers, then polish and refactor the accepted code. The paper states, “Since Aristotle works with formalised mathematics in Lean, the first step is to convert the formal solution to an informal solution written in natural language.” (Appendix A, p. 18) Review also detects hidden assumptions: a requested non-abelian example was initially answered with an abelian subgroup, and a Dlab-group question was later found to have a stronger intended meaning. (Appendix A, pp. 18-19.) For publication the authors improved documentation, organisation, style, and performance of the formal proofs, and state that “important definitions and theorems will be added to Mathlib” (Appendix A, p. 19).

Inference: for Verus, keep executable Rust, Verus specifications, and explanatory proof notes together; have a reviewer compare each prose claim with the checked postcondition and test hidden preconditions. Upstream reusable lemmas only after they compile in the target Verus version.

Inference: Lean checks the formal proofs, but the paper’s examples (Problems 21.147 and 21.149) show that whether the formal statement matches the intended question depended on human review of the problem authors. What is reported: eight solutions accepted by the Notebook editors, not a benchmark of discovery cost. Not shown: whether the agent’s informalisation preserves every proof dependency; the paper says the first informalisation pass was done by Aristotle and then refined by the authors.

implications for VeruLaw

Inference: the direct threat to agent-written verified Rust is specification error and omitted assumptions more than kernel-level proof forgery. This paper’s strongest transferable practice is a staged loop: make the statement precise, decompose search, obtain independent review, and preserve reusable lemmas. VL should not redo the paper’s eight group-theory results; it should reuse the workflow and audit boundaries of trust.

techniques for the catalog

  • mathlib-adjacent triage: select goals whose definitions and lemmas are already available before investing in formalisation
  • statement-first formalisation: encode definitions and the exact theorem before proof search
  • obligation decomposition: use outlines, intermediate lemmas, alternate formulations, and isolated subproblems
  • checked-proof review loop: translate formal proofs, obtain domain review, and refactor accepted code into reusable library results Checked 2026-10-17 against the full paper by a Claude agent (mid-paper quote: “There are many graphs naturally associated with a group, and these graphs often illuminate group properties that are not immediately obvious from the algebraic structure alone.”): read the whole text (pp. 1-21) and checked every quotation, page reference and the technique steps against Section 1 and Appendix A; changed the link (the old arXiv 2510.01346 is the Aristotle paper, reference [1]; the paper’s own identifier is arXiv:2607.17477v2), the workflow summary, the Appendix A selection steps (the paper lists three considerations, not four steps), the claim that the prompting techniques supplied all eight solutions, and the trust sentence (now marked Inference); did not check the mathematics of the eight solutions, the Lean repository, or the Verus Inference paragraphs beyond marking them as inference.

Last edited: