OpenATP is an open-source Python package providing a common interface for Automated Theorem Proving (ATP). OpenATP focuses on recent agentic ATP methods that prove formal statements in Lean. Each method runs in an isolated sandbox, either locally with Docker or remotely with Modal. OpenATP also provides benchmarking utilities to run methods on common datasets.
Installation
pip install open-atp
OpenATP runs each prover (e.g., Claude Code, Codex, OpenCode) in a
Docker container. The image must be built before running any prover:
open-atp build-docker-image
Each prover has its own authentication requirements. See each prover page for its authentication instructions, and check what the host currently has with:
open-atp auth-status
Quickstart
Complete the sorrys in a lake project (or a .lean file) from the CLI:
open-atp prove path/to/project runs/example claude
Or programmatically, here on a simple example theorem:
from open_atp import standard_prover
from open_atp.backends import DockerBackend
from open_atp.examples import EXAMPLE, example_task
prover = standard_prover("claude", backend=DockerBackend())
task = example_task(EXAMPLE.MUL_REORDER)
result = prover.prove(task, output_dir="runs/example")
Available provers
The ID is the standard prover name used by standard_prover, the CLI prove command's prover argument, and the benchmark command's -p/--provers option. Also see Provers.
| Prover | ID | Skills | MCP | Paper | Source |
|---|---|---|---|---|---|
| Claude Code | claude |
leanprover, lean4 | ✓ | — | — |
| Codex | codex |
leanprover | ✓ | — | GitHub |
| DeepSeek | deepseek |
leanprover | ✓ | — | GitHub |
| Grok | grok |
leanprover | ✓ | — | — |
| AxProverBase | axproverbase |
— | ✗ | Requena et al. 2026 | GitHub |
| Leanstral | leanstral |
leanprover | ✓ | Leanstral (blog) | HuggingFace |
| Kimi Code | kimi |
leanprover | ✓ | — | GitHub |
| Numina | numina |
— | ✓ | Liu et al. 2026 | GitHub |
| Aristotle | aristotle |
— | — | Achim et al. 2025 | — |
Download common datasets
OpenATP provides utilities to download common proof-synthesis benchmarks (see Downloading a dataset). The available datasets are listed in the DATASET enum.
| Benchmark | DATASET |
Toolchain | Paper | Source |
|---|---|---|---|---|
| Examples | EXAMPLES |
v4.28.0 |
— | docs |
| PutnamBench | PUTNAM |
v4.27.0 |
Tsoukalas et al. 2024 | trishullab/PutnamBench |
| FATE-H | FATE_H |
v4.28.0 |
Jiang et al. 2025 | frenzymath/FATE-H |
| FATE-M | FATE_M |
v4.28.0 |
Jiang et al. 2025 | frenzymath/FATE-M |
| FATE-X | FATE_X |
v4.28.0 |
Jiang et al. 2025 | frenzymath/FATE-X |
Citing
If you use OpenATP in your work, please cite it:
@software{openatp,
title = {OpenATP: Open Automated Theorem Proving},
author = {Henry Robbins},
year = {2026},
publisher = {GitHub},
url = {https://github.com/henryrobbins/open-atp}
}
OpenATP includes provers with associated papers and bundles popular open-source tools for improving agentic theorem proving. Please see Citations for a comprehensive list of references.
Development
See AGENTS.md for development information.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_atp-0.4.1.tar.gz.
File metadata
- Download URL: open_atp-0.4.1.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
583df5cb5b6d579a35bf139115b15d4a6153bafa5eff7a75b7eae046aeddf6af
|
|
| MD5 |
f0919b85e73bac93ee8747f2177d6a63
|
|
| BLAKE2b-256 |
a734d7d4a46e1ae6651fe34b02bfd1ff1092b5f10509fb72a041d9585057f9b7
|
File details
Details for the file open_atp-0.4.1-py3-none-any.whl.
File metadata
- Download URL: open_atp-0.4.1-py3-none-any.whl
- Upload date:
- Size: 706.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20ffba67d954c49a46b572e10c157494171f62d32cc84c1b64325e816dc5c581
|
|
| MD5 |
15daad9ae095eb92f1e516c1bc420d9f
|
|
| BLAKE2b-256 |
7ee759eff5dbda524b23ff08aea2202e7a8b585d42d2733072f87bf12caf6687
|