Software Open Access
Beyer, Dirk; Haltermann, Jan; Lemberger, Thomas; Wehrheim, Heike
Decomposing Software Verification into Off-the-Shelf Components: An Application to CEGAR
Abstract: Tools for software verification are typically cohesive units of software with tightly coupled components. This makes it difficult to re-use components, and the potential for workload distribution is limited. Innovations in software verification might find their way into practice faster if provided in smaller, more specialized components.
In this paper, we propose to strictly decompose software verification: the verification task is split into independent subtasks, implemented by only loosely coupled components communicating via clearly defined interfaces. We apply this decomposition concept to one of the most frequently employed techniques in software verification: counterexample-guided abstraction refinement (CEGAR). CEGAR is a technique to iteratively compute an abstract model of the system. We develop a decomposition of CEGAR into independent components with clearly defined interfaces that are based on existing, standardized exchange formats.
We implement this component-based CEGAR (C-CEGAR) to investigate the feasibility of decomposition for verification. The decomposition concerns the three core tasks of CEGAR: abstract-model exploration, feasibility check, and precision refinement. We experimentally show that — despite the necessity of exchanging complex data via interfaces — the efficiency thereby only reduces by a small constant factor while the precision in solving verification tasks even increases. We furthermore illustrate the advantages of C-CEGAR by experimenting with different implementations of components, thereby further increasing the overall effectiveness and testing that substitution of components works well.
This archive provides data and tools to reproduce the results of the article. For ease of use, it provides a VirtualBox virtual machine. Inside the machine, we provide scripts and all information to reproduce the numbers and figures that are presented in our article.
The virtual machine was tested with 5 cores and 12 GB of memory. It requires about 20 GB of disk space.
After importing the Virtual Machine with the required resources and starting it, open file ~/Desktop/ICSE22AE_Decomposing_SoftwareVerification/README.html to get more instructions.
We strongly encourage use of the virtual machine or use of Ubuntu 20.04. Setup outside these two options may require knowledge about configuration of the Linux kernel (to enable CGroups v1).
Usage in docker containers is possible, but requires more additional setup. Because of this, we do not encourage it.
|All versions||This version|
|Data volume||312.9 GB||158.4 GB|