Skip to main content

MachineChecked

Read a mathematical paper with its Lean formalisation beside it.

MachineChecked opens a paper, finds its numbered statements and lets you explore the Lean declarations linked to them. See which proofs Lean accepts, which claims are unlinked or incomplete, and which paper-to-Lean correspondences still need a mathematician's review.

A Lean proof establishes a formal statement—not automatically the claim in the paper. MachineChecked keeps those two questions separate.

MachineChecked runs locally, in your Lean project. It reads your paper and your compiled Lean declarations, writes an interactive reader, and keeps its results on your computer: generated data in .machinechecked/, the links you confirm in machinechecked.links.json, and the reader as MachineChecked.html if you ask for one. No account, registration or upload is needed. Publishing an audit (on your own GitHub Pages, say, and listing it on machinechecked.org) is a separate step you choose to take.

Try the demo · Website · Installation and usage

Open your paper

From an existing built Lean project:

lake build
uvx machinechecked view

MachineChecked finds the paper and opens the reader in your browser. If the project contains several papers, it asks which one to use. You can also pass a file explicitly:

machinechecked view paper/main.tex

Requires Python 3.11+, the project's Lean toolchain and TeX Live for LaTeX compilation. No Node installation, handwritten configuration or separate acceptance framework is required.

A paper can also be a PDF on disk or at a URL (machinechecked view https://…/paper.pdf). From a PDF, MachineChecked tries to find the numbered statements by their bold headings; it can miss some, and their positions are drawn as approximate. If the project has a formalization.yaml, its sources are offered as papers and its mappings become links, labelled as the project's own. In a project that is not built, links read Lean not checked, never proved.

In the reader, select a theorem from the contents or the paper margin. MachineChecked displays the printed statement and its Lean counterpart. Links can come from \lean{...} tags, suggested matches or a declaration you select yourself. Confirmed links are saved in machinechecked.links.json.

Linking a theorem is not reviewing it. Suggested links, confirmed links, Lean proof results and mathematical reviews remain distinct.

Share your paper

machinechecked build   # writes MachineChecked.html, readable without a server
machinechecked build --site public/   # or a directory to publish, with its audit.json
machinechecked check   # fails if a linked declaration is missing or unproved

The HTML bundle includes the paper and reader. Share it directly, commit it to a suitable repository, or host the generated site yourself. Check its contents before making it public: private papers and Lean statements can be included.

Every claim has Copy link and, when the audit names a repository for reports (machinechecked view --issues owner/repo), Raise issue: a GitHub issue draft in the audit's own repository, with the claim, its Lean declarations and the commits filled in. The reader sends nothing, and a report changes no status.

Full guide: installation, links, sharing and troubleshooting →

With a coding agent

machinechecked check --json prints every claim's status and links as JSON, for scripts and agents. The MachineChecked skill teaches Claude Code and other agents to run it and to report what the statuses do and do not mean; see Using MachineChecked with a coding agent.

Review mathematical correspondence

The optional Review view guides a reader through one claim at a time:

  1. Read the paper and record an independent interpretation.
  2. Reveal the Lean statement, compare the assumptions and conclusion, and record a verdict.
  3. Compare with the author's review, then export a report.

A report does not mark a claim accepted. In projects with a formal acceptance policy, the maintainer decides whether to promote a submitted review. The review's provenance, version and scope remain visible.

Review guide →

More rigorous audits

An ordinary Lean repository needs no configuration. Projects that already maintain locked mathematical specifications, a claim inventory and independent review records can opt into the full assessment using machinechecked.toml.

This enables exact-type checks, definition-dependent review tracking, witnesses, refutations, per-claim evidence and optional independent kernel replay. It does not assume that a passing Lean build proves the manuscript is faithfully formalised.

Full-assessment setup and configuration →

Documentation

MachineChecked is an open-source tool, not a certifying authority. Each published audit presents its author's evidence and judgements; readers can inspect and challenge them. The website currently offers the tool and a synthetic demonstration, not an independently certified catalogue of papers.

Apache-2.0 licensed.

Metadata

Release files for machinechecked 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for machinechecked 0.1.3
File Size Uploaded
machinechecked-0.1.3.tar.gz 978.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for machinechecked 0.1.3
File Interpreter ABI Platform
machinechecked-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / machinechecked-0.1.3.tar.gz

Download URL machinechecked-0.1.3.tar.gz
Size 978.4 kB
Tags Source
SHA-256 checksum
How to use checksums
da41e9847b357e859d5b19ca37e4b225fe0c80631df2997b9c1c05efc530797f
BLAKE2b-256 checksum
How to use checksums
284846be026694c66ae84c2170e64b58cf12816045ca85be1909bf90d7f9f448
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / machinechecked-0.1.3-py3-none-any.whl

Download URL machinechecked-0.1.3-py3-none-any.whl
Size 994.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e2e125b042ec27caba248c07b7eb1b8fde9046ca0749267cfeb2202376b76341
BLAKE2b-256 checksum
How to use checksums
f97de9c6c9ccc5038eae427918e28a6671dad16c9af96bd9317dc4200dd20aa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page