AristotleProver¶
The AristotleProver wraps Harmonic’s hosted
Aristotle API. No agentic sandbox is needed for
generation — the lake project is handed to the hosted agent via aristotlelib
(submit → wait → download), the returned archive is unpacked over the workdir, and
the shared Verifier does the final check in a local
Docker sandbox. This is the platform’s simplest end-to-end slice.
Authentication¶
The prover reads the Harmonic API key from the ARISTOTLE_API_KEY environment
variable (or pass it explicitly as
AristotleProver api_key). Set it on the host:
export ARISTOTLE_API_KEY=...
or add it to a .env file in your project.
Usage¶
from open_atp.backends.docker import DockerBackend
from open_atp.images import DEFAULT_IMAGE
from open_atp.provers.aristotle import AristotleProver
backend = DockerBackend(image=DEFAULT_IMAGE)
prover = AristotleProver(backend=backend)
The remote interaction is isolated in
AristotleProver._submit_and_download, so tests can stand in a fake result without
touching the network or an API key. See Running a prover for an
end-to-end run and AristotleProver in the
provers reference for configuration.
The prompt submitted to the hosted agent is Aristotle’s own prover prompt, with the
task’s optional user_prompt appended under an Additional instructions heading
when set (the agent CLI harnesses share a longer, tool-specific prover prompt
instead):
Aristotle prover prompt
"Complete every `sorry` in this Lean project. Make the project compile and be "
"sorry-free without introducing new axioms; do not weaken or delete the stated "
"theorems."
)
Note
Aristotle runs are billed by Harmonic against your ARISTOTLE_API_KEY. Verification
still happens locally in your own Docker sandbox.