π SolverPy
SolverPy is a generic Python interface for evaluation and machine
learning of automated theorem provers (ATPs) and Satisfiability Modulo
Theories solvers (SMTs). Most everyday work happens through the
solverpy shell command and YAML experiment files β no Python code
required β though a full Python API is available too.
$ pip install solverpy
See Install for other ways to install SolverPy (from source,
solver binaries, solverpy-learn).
π What SolverPy gives you
- A single
solverpycommand that runs an experiment described by a YAML file, such as evaluating a set of E Prover strategies on a set of problems. - A uniform interface across ATP and SMT solvers β
E,Vampire,Prover9,Lash,cvc5,Z3,Opensmt, and more β so the same experiment, database, and reporting code works for all of them. - A results database (
solverpy_db/) that caches every run: re-running an experiment reuses cached results instead of re-solving. - Machine-learning guidance via the companion
solverpy-learnpackage:enigmatrains E Prover's ENIGMA clause-selection models, andcvc5mltrains ML-enhanced cvc5 strategies, both as iterative evaluate β train β re-evaluate loops.
π What's new in v2.1.2 (2026-09-10)
- Revamped this documentation site: Home/Install/Usage/Tutorials/Commands, step-by-step tutorials (including a full ENIGMA training walkthrough), and a proper favicon.
- Added the
SPASS-SATTSMT solver plugin. - Wired the new
RunHashstatus decorator intoEandPrimo, for reproducibility checks across runs. - Fixed E's
--cpu-limit/--soft-cpu-limitordering under--auto-schedule.
See the full changelog for every release.