Will Cook

Use AI to make what AI produces easier to understand, at every level of detail.

Build things that get better as AI models get better.

AI now writes more mathematics and code than anyone has time to read. Each project below takes some of that output and shows it at several levels: a film of about 90 seconds, a full film, a website, a paper and the source.

Start here

Short film, 1:37

Introduction

Where do I start?

  1. Short film1:37
  2. Full film10:31

I do mathematics research and build software with AI agents, and I build ways to inspect what the agents produce. The introduction says what each project makes easier to understand and which short film to try first.

Erdős problems

Short film, 1:49

Maths Map

Which statements from eight Erdős problems has Lean accepted?

  1. Short film1:49
  2. Short film1:41
  3. Full film6:20
  4. Full film30:08
  5. WebsiteMaths Map
  6. PaperThe papers
  7. plectis-erdosPapers, Lean proofs, experiments and open questions from the research on eight Erdős problems, and papers on how the research was done.Codeplectis-erdos

Browse results on eight Erdős problems, with paper links and available Lean checks.

Seven original questions remain open. The #1041 formal-statement counterexample is due to ani. The papers are not peer reviewed.

Also here: Maths map, The eight problems, plectis-erdos-lean on GitHub.

Papers beside Lean proofs

Short film, 1:50

Quartic Reader

How many more queries can a randomized algorithm need than a quantum one?

  1. Short film1:50
  2. Short film1:27
  3. Full film34:02
  4. Full film4:58
  5. WebsiteQuartic Reader
  6. PaperRead OpenAI’s paper
  7. quartic-query-leanThe Lean proof of OpenAI’s nearly quartic separation, three written explanations of the argument, and the reader website’s source.Codequartic-query-lean

Read OpenAI’s nearly quartic query separation beside its Lean 4 proof.

Original theorem by OpenAI; formalisation and explanations made with AI. No human has reviewed whether the Lean statements match the paper.

Also here: Exposition.

Short film, 1:38

SK Reader

How different can two near-best states of a spin glass be?

  1. Short film1:38
  2. Short film1:32
  3. Full film12:28
  4. Full film4:58
  5. WebsiteSK Reader
  6. PaperRead the exposition
  7. lean-expositionThe three papers, the Lean they link to at a fixed version, and the source of the reading website.Codelean-exposition

Read explanations of OpenAI’s Sherrington–Kirkpatrick theorem beside its Lean proof.

The theorem and Lean proof are OpenAI’s. I made the explanations and links with AI; no mathematician has reviewed them.

Also here: The papers as PDFs, Argument map, lean-exposition-site on GitHub.

Short film, 1:30

General Reader

Which Lean lines does this sentence of the paper describe?

  1. Short film1:30
  2. Full film4:58
  3. WebsiteGeneral Reader
  4. PaperRead Contextual Embeddings
  5. proof-readerEach paper is one folder, and any paper with public Lean can be added. A program compares the site’s text with the PDF word for word.Codeproof-reader

Click a sentence in a paper to open the linked lines of its Lean proof.

Paper and proof by Frohlich, Foster, Kavvos and Wang. I made the reader and links with AI; the authors have not reviewed the links.

Short film, 1:42

Plectis Atlas

How much of each OpenAI maths paper does its Lean statement cover?

  1. Short film1:42
  2. Full film5:35
  3. WebsitePlectis Atlas
  4. plectis-atlasThe Atlas website’s source: OpenAI’s maths papers, their Lean statements, and outside groups’ reports credited to their authors.Codeplectis-atlas

Browse OpenAI’s maths papers and compare the outside reports collected beside them.

Reports credited to MathVet, Carlos Toledo’s cert-machine and Neal McBurnett. I assembled the index and statement links with AI.

Also here: Example: two reports on a paper about π, Lean statements, How to use the Atlas.

Making the films

AI coding assistants

Reading AI-written code

Short film, 2:10

CodeMap

What does each file do, from the descriptions agents write in it?

  1. Short film2:10
  2. Full film6:49

Explore a codebase through saved file descriptions and links between functions.

Private software; the video shows it in use.

Short film, 1:35

Code Ontology Bridge

How many code questions can NVIDIA Auto Ontology answer from a database of calls?

  1. Short film1:35
  2. Full film4:38
  3. WebsiteCode Ontology Bridge
  4. code-ontology-bridgeThe exporter, the DuckDB schema, the Auto Ontology table descriptions and the 48-question study with every answer.Codecode-ontology-bridge

Query Python functions and calls through DuckDB and NVIDIA Auto Ontology.

Independent of NVIDIA. The 12-question comparison measured Auto Ontology plus the code database against DeepSeek alone. The separate no-clear-improvement result concerns adding descriptions within Auto Ontology, not the gain from the whole setup.

Also here: The study, Caller example.

Tests and proofs of code

Short film, 1:54

Zenith

Do a model’s tests catch more bugs when its prompt lists the bugs it missed?

  1. Short film1:54
  2. Full film5:03
  3. WebsiteZenith
  4. PaperEarlier paper on program repair (PDF)
  5. plectis-zenithCode, data and paper for the experiments on showing an AI tester the bugs it missed, and the code-repair studies.Codeplectis-zenith

Showing missed bugs raised DeepSeek V4.1 Flash’s average score from 69% to 77% on 58 held-out problems.

DeepSeek V4.1 Flash on 58 held-out HumanEval problems; roughly half the gain came from timeouts. The supplied checkpoint links to the unmerged study revision.

Also here: Held-out study (unmerged revision), Study pull request #13.

Short film, 1:57

Practical Formal Verification

Which calculations in this toolkit have Dafny proofs?

  1. Short film1:57
  2. Full film5:12
  3. WebsitePractical Formal Verification
  4. practical-formal-verificationThe components, their Dafny proofs, the Python compiled from them and worked examples.Codepractical-formal-verification

Explore an 88-component Python toolkit with Dafny proofs for 16 calculations.

The proofs cover those computations, not the complete system.

Also here: All 88 components, Which proofs and tests cover each one, Documentation.

About and contact

I do mathematics research and build software with AI agents. I also build ways to inspect what the agents produce.

That means Lean proofs of AI-written mathematics, websites that display a paper beside its Lean code, and tools for running several coding agents in one repository. The introduction video explains how the projects fit together.

I’m looking for a job, internship, fellowship or funding, and I’m open to working with other people on their problems. If there’s a problem you think I should work on, please email me.

If something on these pages is unclear or wrong, please tell me. If your feedback leads to a change, I’d be happy to credit you, with your permission.

More about me and what I have contributed

Contributions to other projects

Earlier work

Terms used on this page

Claude Code hook

A configured action Claude Code runs at a particular event, such as before a tool call.

Hooks can inspect event data and return a decision where the event supports one. Safety Core uses command hooks before selected tool actions to check a retry and, when required, request a person’s approval.

commit

A recorded snapshot of a project in Git history, with authorship, a message and links to its parent commits.

A normal commit records the prepared index. Most commits have one parent; a first commit has none and a merge can have several. The identifier names that snapshot and its history.

Dafny

A programming language and verifier for checking code against written mathematical specifications.

Preconditions describe allowed inputs, postconditions describe required results, and invariants describe what must stay true. Dafny generates proof obligations for these specifications and can compile executable code. Compilation and successful verification are distinct operations.

DuckDB

A SQL database designed for analytical queries that runs inside the application using it.

A DuckDB database can live in memory or in a file. Code Ontology Bridge stores Python functions and call relations in its tables, then queries those tables directly or through NVIDIA Auto Ontology.

Erdős problem

A mathematical question posed by Paul Erdős, catalogued by number with its known results.

Problem #257 asks whether every infinite selection from 1, 1/3, 1/7, 1/15, … has an irrational sum. The selected terms have the form 1/(2ⁿ − 1). Maths Map brings together work on eight numbered Erdős problems.

exposition

An explanation of a mathematical result for readers who do not specialise in that result’s field.

An exposition can introduce the needed ideas, work through examples and then explain the argument. In the funnel it is one of the written outputs between the specialist paper and the video. Its assumed background should be stated for that particular paper.

Git patch

A description of changes between file versions, such as added and removed lines with their surrounding context.

Git can produce patch text from a comparison and apply it to another version. One Checkout uses a selected patch to build a commit while leaving other unfinished edits in the shared working tree.

held-out problems

Problems set aside from the examples used to develop a method, then used to evaluate it.

In Zenith, the missed-bug material comes from practice problems and the reported comparison uses 58 other problems. Held out refers to this experiment’s preparation; it does not establish that the underlying model never encountered the problems during training.

Lean 4

A programming language and proof assistant for expressing definitions, statements and proofs that a small kernel can check.

Tactics help construct proof terms; the kernel checks those terms against their types. Files can also contain assumptions or unfinished placeholders, so a successful build alone is not the same as a completed proof of every stated theorem.

Lean proof

A proof expressed in Lean as a term whose type is the theorem statement.

When the kernel accepts the term, it establishes that formal statement from its definitions and declared assumptions. A reader website can link a passage of prose to the declarations involved. Matching the prose to the formal statement is a separate question.

nearly quartic separation

A family of problems where randomized query counts grow almost as the fourth power of quantum query counts.

For the relevant total Boolean functions, the construction makes R(fₙ) at least Q(fₙ)^(4 − o(1)) as the family grows: the exponent approaches four. This approaches the known fourth-power upper bound on input queries, rather than total running time.

NVIDIA Auto Ontology

NVIDIA’s framework for describing database concepts and relationships, then using that structure to answer questions with SQL.

The semantic layer connects names and meanings to tables, columns and joins. Code Ontology Bridge supplies a database of Python functions and calls, with descriptions in the format Auto Ontology imports. The framework and Will’s bridge are separate projects.

research record

The detailed written account of a result’s reasoning, used as the fuller source for shorter explanations.

In the funnel, the record works through the formal proof and its mathematical context before a specialist paper, exposition and video are produced. It is designed for looking up detail as well as reading sequentially.

specialist paper

A paper written for readers who already know the relevant research field.

It can rely on standard background and concentrate on the result and its argument. In the funnel it is shorter than the research record. The exposition instead supplies more context for readers outside that specialism.

timeout

A time limit after which an operation is stopped or recorded as unfinished.

A test harness needs a rule for how to score a timeout. In the Zenith study, timeouts account for roughly half the reported gain. A timeout records that a limit was reached; its cause depends on the program and test setup.

word timing

The estimated or annotated start and end positions of spoken words in a particular recording.

A visual event can be attached to a word identifier, then placed in time using the recording’s word positions. Re-recording changes those times, so the event must be aligned with the new audio. Recognition and forced alignment both produce estimates.

working tree

The checked-out files you can read and edit, including changes not yet committed.

The working tree can differ from both the current commit and the index. Saving a file changes the working tree; staging and committing are separate operations. One Checkout leaves other agents’ unfinished edits here while recording a selected patch.