Verification Condition Generator
Project description
Verification Condition Generator
PyVCG is a utility library to generate VCs directly for CVC5 or standard-compliant SMTLIB2. The interface is deliberately generic and it should be easy to add API support for other solvers in the future.
This is pretty limited for now as the initial target is the expression language of TRLC.
Features
This library provides a wrapper around SMTLIB with some additional features:
- SMTLIB Scripts
- Automatic (minimal) logic discovery
- Basic sorts: Bool, Int, Real, and String
- Parametric sorts: Sequences
- Datatype sorts: Enumerations and Records
- Uninterpreted functions
- Quantifiers
- Boolean expressions: not, and, or, xor, implication
- If-then-else expressions
- Comparisons: =, <, >, <=, >=
- Int -> Real conversion
- Real -> Int conversion (smtlib rounding (round-to-negative) and arithmetic rounding (round-nearest-away))
- Unary arithmetic: -, abs
- Binary Int arithmetic: +, -, *, smtlib div, smtlib mod, python div, ada remainder
- Binary Real arithmetic: +, -, *, /
- String operations: length, contains, prefix, suffix, concatenation
- Sequence operations: length, contains, access, concatenation
- Record operations: access
In addition this library provides a graph to build VCs with multiple paths; and generating VCs for all paths. FastWP and higher-level modelling for language features (e.g. ite, loops) are planned later.
Drivers
Current support for outputs:
- SMTLIB (for writing and debugging)
- CVC5 API (for solving)
Dependencies
Run-time
- Python >= 3.9
- cvc5
Development
Copyright & License
The sole copyright holder is Florian Schanda.
This library is licensed under the GNU GPL version 3 (or later).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file PyVCG-1.0.5.tar.gz
.
File metadata
- Download URL: PyVCG-1.0.5.tar.gz
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed5208550994f9c059fc566d70725b4e1252573e6c38c48c52141ff8f1d9379 |
|
MD5 | 83b416467d386b3059053bd638f737b0 |
|
BLAKE2b-256 | dce2b66b40c77c0d8d7943dd42aacd9d480a780a9f817832cd7a46d0fb4381e6 |
File details
Details for the file PyVCG-1.0.5-py3-none-any.whl
.
File metadata
- Download URL: PyVCG-1.0.5-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ac1726dec82c47cb2acf6e16868815a9f3fef2767e62aa44cb9d1fe42f3e00f |
|
MD5 | 12b4baa81f87231ecd158a2944ea9c5c |
|
BLAKE2b-256 | 67c6b1a3a2540f5855cf24f9f257f6ce94ee3dcb84187b7b5348b94fbf7a8cf9 |