Decomposing Software Verification Using Distributed Summary Synthesis
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.
Presentation: Decomposing Software Verification Using Distributed Summary Synthesis (main.pdf) | 510KiB |
Fri 19 JulDisplayed time zone: Brasilia, Distrito Federal, Brazil change
14:00 - 15:30 | Program Analysis and Performance 3Research Papers at Mandacaru Chair(s): Shaukat Ali Simula Research Laboratory and Oslo Metropolitan University | ||
14:00 18mTalk | Bin2Summary: Beyond Function Name Prediction in Stripped Binaries with Functionality-specific Code Embeddings Research Papers Zirui Song The Chinese University of Hong Kong, Jiongyi Chen National University of Defense Technology, Kehuan Zhang The Chinese University of Hong Kong | ||
14:18 18mTalk | Active Monitoring Mechanism for Control-based Self-Adaptive Systems Research Papers Yi Qin State Key Laboratory for Novel Software Technology, Nanjing University, Yanxiang Tong State Key Laboratory for Novel Software Technology, Nanjing University, Yifei Xu State Key Laboratory for Novel Software Technology, Nanjing University, Chun Cao State Key Laboratory for Novel Software Technology, Nanjing University, Xiaoxing Ma State Key Laboratory for Novel Software Technology, Nanjing University | ||
14:36 18mTalk | Cut to the Chase: An Error-Oriented Approach to Detect Error-Handling Bugs Research Papers Haoran Liu National University of Defense Technology, Zhouyang Jia National University of Defense Technology, Shanshan Li National University of Defense Technology, Yan Lei Chongqing University, Yue Yu National University of Defense Technology, Yu Jiang Tsinghua university, Xiaoguang Mao National University of Defense Technology, Liao Xiangke National University of Defense Technology | ||
14:54 18mTalk | DAInfer: Inferring API Aliasing Specifications from Library Documentation via Neurosymbolic Optimization Research Papers Chengpeng Wang The Hong Kong University of Science and Technology, Jipeng Zhang The Hong Kong University of Science and Technology, Rongxin Wu School of Informatics, Xiamen University, Charles Zhang The Hong Kong University of Science and Technology | ||
15:12 18mTalk | Decomposing Software Verification Using Distributed Summary Synthesis Research Papers DOI Media Attached File Attached |