Provers¶
A prover is a candidate generator: it takes a
ProofTask and produces completed Lean files. The base
AutomatedProver owns the shared lifecycle — generate,
then verify in the sandbox — so every prover gets the same final check for free.
Prover |
Spec |
Generation |
Credential |
|---|---|---|---|
|
AgentProver on the Claude Code CLI |
|
|
|
AgentProver on the Codex CLI (OpenAI) |
|
|
|
AgentProver on the OpenCode CLI (any provider) |
|
|
|
AgentProver driving ax-prover-base |
|
|
|
AgentProver on Mistral Vibe’s |
|
|
|
AgentProver (Claude) + Numina assets + round loop |
harness + helper API keys |
|
|
Harmonic’s hosted Aristotle API |
|
The Claude Code, Codex, OpenCode, AxProver, and Vibe provers are all the same
AgentProver composed with a different
Harness; Spec is the
get_prover() registry name. Every prover subclasses
AutomatedProver and funnels its output through the
shared Verifier.
How the agent provers work¶
An AgentProver composes two concerns:
a
Harness— the agent concern: launch script, credential forwarding, and output parsing (one per harness page below); anda
ComputeBackend— the compute concern: where the agent runs, with Lean+Mathlib and the lean-lsp-mcp server.
prove stages the project into the workdir, lets the agent fill the sorrys in
place, then diffs the .lean files against the staged originals to report what
changed. The shared Verifier does the final
compile / sorry / axiom check. Configuration fields are documented under
AgentProverConfig in the
provers reference.