There is a newer version of the record available.

Published November 14, 2025 | Version 0.7
Software Open

CPV Release 0.7

  • 1. Ludwig-Maximilians-Universität München

Description

A Circuit-based Program Verifier for C

System Requirements

CPV relies on CoVeriTeam to coordinate the underlying hardware verifiers. Therefore, the following dependencies are required:

The complete dependencies of CoVeriTeam can be found in its documentation.

Additional Python and Debian packages required by CPV can be installed by:

apt-get install clang clang-format cpp python3 python3-bitstring python3-lxml python3-pycparser

Note that to execute the backend model-checking engines, the system also have to meet the requirements of the respective tools.

Usage

To verify whether a C program (c_prog) satisfies the given property (specified by prp_file), run:

./bin/cpv --property <prp_file> --model {ILP32,LP64} <c_prog>

Please refer to ./bin/cpv -h for more information.

License

CPV uses Kratos2 (in kratos2/) to translate C programs, utility tools and libraries for Btor2, AIGER, and VMT (in bin/ and lib/) to manipulate circuits, and hardware model checkers (in cvt-cache/) for verification. Their cooperation is implemented with the CoVeriTeam library (in lib/). The above tools are available under their respective licenses.

Other components of CPV, including program instrumentor, functional encoder, witness translator, and portfolio executor, are licensed under the Apache 2.0 License.

References

Files

cpv-0.7.zip

Files (232.7 MB)

Name Size Download all
md5:9b805299b4cd70062a3265e562f8488f
232.7 MB Preview Download

Additional details