Title
IC3 software model checking
Abstract
In recent years, the inductive, incremental verification algorithm IC3 had a major impact on hardware model checking. Also for software model checking, a number of adaptations of Boolean IC3 and combinations with CEGAR and ART-based techniques have been developed. However, most of them exploit the peculiarities of software programs, such as the explicit representation of control flow, only to a limited extent. In this paper, we present an approach that supports this explicit representation in the form of control-flow automata, and integrates it with symbolic reasoning about the data state space of the program. By maintaining reachability information specifically for each control location, we arrive at a “two-dimensional” extension of IC3, which provides a true lifting from hardware to software model checking. Moreover, we address the problem of generalization in this setting, an essential feature to ensure the scalability of IC3. We introduce several improvements that range from efficient caching of generalizations over variable reductions to syntax-oriented generalization by means of weakest preconditions. Using a prototypical implementation, we evaluate our approach on a number of case studies, including a significant subset of the SV-COMP 2018 benchmarks, and compare the outcomes with results obtained from other IC3 software model checkers.
Year
DOI
Venue
2020
10.1007/s10009-019-00547-x
International Journal on Software Tools for Technology Transfer
Keywords
DocType
Volume
Program verification, Safety properties, Software model checking, IC3
Journal
22
Issue
ISSN
Citations 
2
1433-2779
0
PageRank 
References 
Authors
0.34
1
4
Name
Order
Citations
PageRank
Tim Lange171.93
Martin R. Neuhäußer200.34
Thomas Noll332627.79
Joost-Pieter Katoen44444289.65