pyvcg
Verification Condition Generator
Decision gist · record as of 2026-08-14
Yes, if your project is GPL v3 compatible and you need to generate verification conditions for CVC5 or SMTLIB2 solvers. The library is actively maintained, has low install friction, and provides a clean abstraction over solver APIs. No, if your project is proprietary or uses a permissive license—the GPL v3 copyleft requirement is a hard blocker. Conditional: evaluate whether the TRLC-focused feature set and current solver support meet your formal verification needs.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.8 and cvc5 package installed; CVC5 solver binary or Python API must be available at runtime.
- Low friction: pure Python wheel with no compiled dependencies.
- Active maintenance—last commit 2026-07-12, release 33 days ago.
License · maintenance · safety
GNU General Public License v3 (copyleft) — GNU GPL v3 or later (copyleft). Any code that imports and uses PyVCG must be distributed under a compatible copyleft license; proprietary or permissively licensed projects cannot use it without separate licensing.
last release 2026-07-12 (33 days) · last repo commit 2026-07-12 · 4 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 79,413 downloads/mo, #14,361 on PyPI
Alternatives
Verify before relying
pip install pyvcg
from pyvcg import Script
script = Script()
bool_var = script.bool_const('x')
script.assert_formula(bool_var)- Whether cvc5 is automatically installed as a declared runtime dependency or must be installed separately.
- Scope and maturity of the TRLC expression language support mentioned as the initial target.
- Whether the library is suitable for production formal verification workflows or primarily for research/prototyping.
What it is and what it does
PyVCG is a Python library that generates verification conditions (VCs) for formal verification solvers, primarily CVC5 and SMTLIB2-compliant solvers. It provides a high-level API to construct logical formulas, datatypes (enumerations, records, optionals), and arithmetic expressions, then translates them into solver-compatible formats. The library handles automatic logic discovery, supports quantifiers and complex boolean operations, and can solve constraints by interfacing with CVC5 either through its Python API or via SMTLIB file output.
The package is designed for developers and researchers building formal verification tools, particularly those working with the TRLC expression language. It abstracts away low-level SMTLIB details while remaining generic enough to support other solvers in the future. With no runtime dependencies beyond cvc5, it installs cleanly and maintains active development, though its GPL v3 license restricts use to copyleft-compatible projects.
Use it for
- Generate verification conditions for formal proof of program correctness using CVC5 as the backend solver.
- Build symbolic reasoning tools that need to express and solve constraints over integers, reals, strings, and sequences.
- Construct datatype-heavy formal specifications (records, enumerations, optionals) and verify their properties automatically.
- Translate high-level requirement expressions (e.g., from TRLC) into SMT solver queries for automated checking.
- Debug and test constraint satisfaction problems by generating human-readable SMTLIB files for inspection.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if your project is GPL v3 compatible and you need to generate verification conditions for CVC5 or SMTLIB2 solvers.
The library is actively maintained, has low install friction, and provides a clean abstraction over solver APIs. No, if your project is proprietary or uses a permissive license—the GPL v3 copyleft requirement is a hard blocker. Conditional: evaluate whether the TRLC-focused feature set and current solver support meet your formal verification needs.
Install
pyvcg on PyPI
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance—last commit 2026-07-12, release 33 days ago. Requires Python >= 3.8 and cvc5 as a runtime dependency.
Requires Python >= 3.8 and cvc5 package installed; CVC5 solver binary or Python API must be available at runtime.
License in practice
GNU GPL v3 or later (copyleft). Any code that imports and uses PyVCG must be distributed under a compatible copyleft license; proprietary or permissively licensed projects cannot use it without separate licensing.
Quickstart
pip install pyvcg
from pyvcg import Script
script = Script()
bool_var = script.bool_const('x')
script.assert_formula(bool_var)
Verify before relying
- Whether cvc5 is automatically installed as a declared runtime dependency or must be installed separately.
- Scope and maturity of the TRLC expression language support mentioned as the initial target.
- Whether the library is suitable for production formal verification workflows or primarily for research/prototyping.
Package facts
| License | GNU General Public License v3 copyleft |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 33 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 79,413 / month, #14,361 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Operating System :: POSIX :: LinuxTopic :: Scientific/Engineering :: MathematicsTopic :: Software Development :: Compilers |
Evidence: pyvcg-1.0.12-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “verification condition generator”
- pyvcgPyVCG generates verification conditions for SMT solvers like CVC5 and…
- cdk-iam-floydGenerates AWS IAM policy statements with a fluent interface,…
- peakrdl-uvmGenerates UVM (Universal Verification Methodology) register models in…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also cvc5 · z3-solver · PyBoolector · cvxpy-base · pyvsc · pybammsolvers · pycosat · optlang · pyamg