Published August 27, 2023 | Version ASE23-proceedings
Software Open

Reproduction Package for ASE 2023 Article `CEGAR-PT: A Tool for Abstraction by Program Transformation'

  • 1. LMU Munich, Germany

Description

CEGAR-PT

Artifact

In order to run this artifact please clone sv-benchmarks into this folder. Afterwards you can just run the program using the running instructions down below. The results used in the paper can be found in the folder transformation-for-verification-data.

The tag on the gitlab repository this artifact is based upon is ASE23.

A in depth explanation of the architecture and the use cases for which this tool was developed can be found on the website for this tool.

Setup

In order to setup this project, first initialize the submodules or clone this repository with the flag --recursive. Afterwards execute python3 src/setup.py in this directory, in order to add the required files to the submodules and download the verifiers and validators locally for execution with benchexec.

In order to use the patch generator version of CPAchecker, please clone the loopsummary branch of CPAchecker into src/tools and build it.

This step can be skipped, except for the cloning of sv-benchmarks, if you are using the artifact version of CEGAR-PT.

Running

In order to run this locally inside ./src

./main_bench.py --specification specification/path.prp program/to/verify.c

For example:

./main_bench.py --specification ../setup-files/test-run/unreach-call.prp ../setup-files/test-run/test_program.c 

In order to execute with benchexec, execute the following insider ./src, after adapting bench.xml to suit your purposes:

./benchmark_local.sh

Developing

Every component being implemented can be modified independently of any other. In order to add some new verifier, program generator, validator, etc.. just create a new class which implements the abstract base class.

Files

CEGARPT-artifact-ASE23-proceedings.zip

Files (308.3 MB)

Name Size Download all
md5:f16ec5648e38e9066cd7168d4f40de8f
308.3 MB Preview Download