Skip to main content

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.

Please refer to the Changelog for what's new.

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.8
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyVCG-1.0.7.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

PyVCG-1.0.7-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file PyVCG-1.0.7.tar.gz.

File metadata

  • Download URL: PyVCG-1.0.7.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for PyVCG-1.0.7.tar.gz
Algorithm Hash digest
SHA256 2400d7bf7bd9045bbdd26beb9407b3e3c90931424f23aafa98de317c9ebbd33e
MD5 3d1ffc53c95818963cbb1c356c8bb35d
BLAKE2b-256 c9d9a83c11b8e9fc3bfeeb6ceaadb9c23131f310fdbab65d29e01774b6eeaebd

See more details on using hashes here.

File details

Details for the file PyVCG-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: PyVCG-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for PyVCG-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 bac37f3ae9bcba35aa6e8f069a276f0e7c6f6a6f9afb95e6e30b4df5817b7fb0
MD5 187d5fe641116502556d903c08ba369d
BLAKE2b-256 ca073dfebbf910a9c024650e4b84b1754a2fcbfad2208e719e85aab4a844a933

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page