MachineChecked

What the machine checked, and what it didn’t.

A Lean build says the Lean theorems are proved. It does not say they are the paper’s theorems. MachineChecked opens a paper beside its formalisation and shows, claim by claim, which Lean declaration it corresponds to, whether Lean proves it, and whether anyone has checked that the two say the same thing.

In the paper

Proposition 2.3. Every natural number is strictly greater than its predecessor n − 1.

From the demo’s synthetic paper. With truncated subtraction, 0 − 1 = 0, so the claim fails at n = 0.

What was established

  • As printed: refuted in Lean (a theorem proves its negation)
  • Corrected, for n ≥ 1: proved in Lean
  • Both statements reviewed only by their author

How it works

1

Point it at a Lean project

It finds the paper, reads every numbered statement from the compiled LaTeX, and indexes the project’s built declarations. Nothing to configure.

2

Link claims to Lean

\lean{…} tags and suggestions become links you confirm in the reader. Each claim then says exactly what Lean establishes: proved, incomplete, extra axioms, or not found.

3

Share and report

Write the reader as one HTML file, or publish it. Anyone reading it can raise an issue on a claim, with the claim, the Lean declaration and the commits filled in.

Use it

Inside a built Lean project (lake build), with Python 3.11 or later and TeX Live for a LaTeX paper:

uvx --from git+https://github.com/cgarryZA/ProofLens machinechecked view

machinechecked build writes the reader as one file to share; machinechecked check fails CI when a linked declaration is missing or unproved. Reviews, locked statements and an acceptance status per claim are there for projects that want a full audit. Read the guide.

MachineChecked is a tool and a place to publish audits. An audit says what its author linked, checked and recorded, under their name; MachineChecked does not check or endorse its conclusions. Readers judge the evidence, and anyone can report what looks wrong.