CPV Release 0.4
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:
- Linux Ubuntu 18.04 or newer
- Python 3.7 or newer
- Cgroups v1
The complete dependencies of CoVeriTeam can be found in its documentation.
Additional required Python packages are listed in requirements.txt
.
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/
) and utility tools for Btor2 and AIGER (in bin/
) to translate C programs and 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 instrumentation, witness translation, and portfolio execution, are licensed under the Apache 2.0 License.
References
- CPV: A Circuit-Based Program Verifier (Competition Contribution), by Po-Chun Chien and Nian-Ze Lee. In Proc. TACAS. Springer (2024).
Files
cpv-0.4.zip
Files
(98.9 MB)
Name | Size | Download all |
---|---|---|
md5:8f3f045eb5fd9cae86c82f2cd72328e1
|
98.9 MB | Preview Download |
Additional details
Software
- Repository URL
- https://gitlab.com/sosy-lab/software/cpv