Decomposing Software Verification into Off-the-Shelf Components: An Application to CEGAR
Dirk Beyer, Jan Haltermann, Thomas Lemberger, Heike Wehrheim
Abstract
Techniques for software verification are typically realized as 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. Its realization component-based CEGAR (C-CEGAR) 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.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 6525ea6b-9668-4066-bef2-8420a44695b5Cited by top-tier papers1
Ask how each one uses itRelated papers
- Decomposing Software Verification using Distributed Summary SynthesisDirk Beyer, Matthias Kettl, Thomas LembergerFSE 2024 · 3 citations
- Trace Abstraction-Based Verification for Uninterpreted ProgramsWeijiang Hong, Zhenbang Chen, Yide Du, Ji WangFM 2021 · 2 citations
- Counterexample-Guided CommutativityMarcel Ebbinghaus, Dominik Klumpp, Andreas PodelskiCAV 2025
- Conditional interpolation: making concurrent program verification more effectiveJie Su, Cong Tian, Zhenhua DuanFSE 2021 · 4 citations
- Proof-Guided Underapproximation Widening for Bounded Model CheckingPrantik Chatterjee, Jaydeepsinh Meda, Akash Lal, Subhajit RoyCAV 2022 · 7 citations
