Decomposing Software Verification using Distributed Summary Synthesis
Dirk Beyer, Matthias Kettl, Thomas Lemberger
Abstract
There are many approaches for automated software verification, but they are either imprecise, do not scale well to large systems, or do not sufficiently leverage parallelization. This hinders the integration of software model checking into the development process (continuous integration). We propose an approach to decompose one large verification task into multiple smaller, connected verification tasks, based on blocks in the program control flow. For each block, summaries (block contracts) are computed — based on independent, distributed, continuous refinement by communication between the blocks. The approach iteratively synthesizes preconditions to assume at the block entry (computed from postconditions received from block predecessors, i.e., which program states reach this block) and violation conditions to check at the block exit (computed from violation conditions received from block successors, i.e., which program states lead to a specification violation). This separation of concerns leads to an architecture in which all blocks can be analyzed in parallel, as independent verification problems. Whenever new information (as a postcondition or violation condition) is available from other blocks, the verification can decide to restart with this new information. We realize our approach on the basis of configurable program analysis and implement it for the verification of C programs in the widely used verifier CPAchecker . A large experimental evaluation shows the potential of our new approach: The distribution of the workload to several processing units works well, and there is a significant reduction of the response time when using multiple processing units. There are even cases in which the new approach beats the highly-tuned, existing single-threaded predicate abstraction.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 60f633bb-11be-47db-b2c2-51ff14522c43Cited by top-tier papers1
Ask how each one uses itRelated papers
- Domain-independent interprocedural program analysis using block-abstraction memoizationDirk Beyer, Karlheinz FriedbergerFSE 2020 · 6 citations
- Decomposing Software Verification into Off-the-Shelf Components: An Application to CEGARDirk Beyer, Jan Haltermann, Thomas Lemberger, Heike WehrheimICSE 2022 · 17 citations
- A Transferability Study of Interpolation-Based Hardware Model Checking for Software VerificationDirk Beyer, Po-Chun Chien, Marek Jankola, Nian-Ze LeeFSE 2024 · 5 citations
- Refinement for Structured Concurrent ProgramsBernhard Kragl, Shaz Qadeer, Thomas A. HenzingerCAV 2020 · 10 citations
- Incremental predicate analysis for regression verificationQianshan Yu, Fei He, Bow-Yaw WangOOPSLA 2020 · 6 citations
