cvc5
Python bindings for cvc5 (BSD version)
What it is and what it does
cvc5 is the fifth generation of the Cooperating Validity Checker family, a C++-based SMT solver designed to determine satisfiability of first-order logic formulas under various theories. The Python bindings expose this solver as a library, allowing developers to programmatically construct formulas, assert constraints, and query satisfiability.
It is intended for formal verification, automated reasoning, constraint solving, and theorem proving tasks. The package is actively maintained, has no Python runtime dependencies (the solver itself is compiled), and provides wheels for modern Python versions and multiple platforms. It is suitable for both standalone use and integration into larger verification or analysis tools.
Use it for:
- Verify correctness of software by encoding program properties as first-order formulas and checking satisfiability
- Solve constraint satisfaction problems in planning, scheduling, or configuration domains
- Perform automated reasoning and theorem proving for mathematical or logical assertions
- Debug or analyze symbolic execution traces in program analysis tools
- Validate hardware designs or protocol specifications expressed in logic
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
cvc5 is a satisfiability modulo theories (SMT) solver that determines whether first-order logic formulas are satisfiable under combinations of theories; it provides Python bindings to use the solver as a library.
Yes, if you need SMT solving or automated reasoning. cvc5 is actively maintained, has no Python dependencies, installs via precompiled wheels on common platforms, and carries no known vulnerabilities. The main caveat is that license treatment is unclear in the metadata—verify BSD 3-Clause terms apply to your use case before deploying in proprietary software.
Install
cvc5 on PyPI
pip
pip install cvc5uv
uv add cvc5poetry
poetry add cvc5Installing cvc5
Before you install
Medium install friction: precompiled wheels are available for Python 3.10–3.13 across macOS (Intel and ARM), Linux (x86_64 and aarch64), and Windows (x86_64 and ARM). The package has no runtime dependencies and is actively maintained.
License in practice
License treatment is unclear in the package metadata, though the description references BSD 3-Clause licensing. Verify the actual license terms before use in proprietary or restricted contexts.
Quickstart
pip install cvc5
import cvc5
solver = cvc5.Solver()
# construct and assert formulas, then check satisfiability
Requires a platform with a precompiled wheel available (macOS, Linux, or Windows on x86_64 or ARM); exact Python version requirements are unspecified.
Verify before relying
- Exact Python version requirements (requires_python is unspecified in metadata)
- Whether the BSD 3-Clause license applies to the Python bindings or differs from the C++ core
- Performance characteristics and memory overhead compared to earlier CVC versions
Package facts
| License | not declared (unclear) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 99 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 296,099/month — #7,905 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cvc5-1.3.4-cp310-cp310-macosx_10_13_x86_64.whl; cvc5-1.3.4-cp310-cp310-macosx_11_0_arm64.whl; cvc5-1.3.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; cvc5-1.3.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; cvc5-1.3.4-cp310-cp310-win_amd64.whl; cvc5-1.3.4-cp310-cp310-win_arm64.whl; cvc5-1.3.4-cp311-cp311-macosx_10_13_x86_64.whl; cvc5-1.3.4-cp311-cp311-macosx_11_0_arm64.whl; cvc5-1.3.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; cvc5-1.3.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; cvc5-1.3.4-cp311-cp311-win_amd64.whl; cvc5-1.3.4-cp311-cp311-win_arm64.whl; cvc5-1.3.4-cp312-cp312-macosx_10_13_x86_64.whl; cvc5-1.3.4-cp312-cp312-macosx_11_0_arm64.whl; cvc5-1.3.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; cvc5-1.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; cvc5-1.3.4-cp312-cp312-win_amd64.whl; cvc5-1.3.4-cp312-cp312-win_arm64.whl; cvc5-1.3.4-cp313-cp313-macosx_10_13_x86_64.whl; cvc5-1.3.4-cp313-cp313-macosx_11_0_arm64.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
PyBoolectorPython wrapper around Boolector, a…
permissive · top 15,000 on PyPI
pyvcgPyVCG generates verification conditions for SMT…
copyleft · top 15,000 on PyPI
z3-solverZ3 is a theorem prover and SMT (satisfiability…
permissive · top 5,000 on PyPI
pycosatProvides efficient Python bindings to PicoSAT,…
permissive · top 15,000 on PyPI
python-satPySAT wraps modern Boolean satisfiability…
permissive · top 15,000 on PyPI
python-constraintSolves constraint satisfaction problems (CSPs)…
permissive · top 15,000 on PyPI
simplesatSolves package dependency resolution using…
permissive · top 15,000 on PyPI
clingoClingo is a Python binding to the clingo Answer…
permissive · top 15,000 on PyPI
crosshair-toolCrossHair uses symbolic execution and SMT…
permissive · top 15,000 on PyPI
pyvscPyVSC generates randomized test stimulus and…
permissive · top 15,000 on PyPI