Abstract
It is often the case that software needs to be verified against various specifications. During this process, the same parts of the program have to be modeled/verified multiple times, forcing the model checker to duplicate actions. To reduce the overall verification effort, this chapter describes a technique for extracting function summaries after a successful verification run with respect to some assertion, and then using them during subsequent verification runs of the other assertions. A well-known mechanism to compute over-approximations, called Craig interpolation, is used to create function summaries. A summary preserves the most relevant information used to prove a specific assertion, and thus tends to be a good substitute for the functions that were examined in the previous verification runs. As a side effect of the over-approximation, spurious behaviors might be introduced. In order to eliminate them, counterexample-guided refinement of the function summaries is used. This chapter discusses the theory and implementation of the interpolation-based summarization tool FunFrog, and compares it with several state-of-the-art software model checking tools. Our experiments demonstrate the feasibility of the technique and confirm its advantages with large programs. The chapter is based on the research previously published in [SFS11] and [SFS12a].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
To simplify the examples in this chapter we ignore arithmetic overflows and underflows.
- 2.
Note that the implication may be more complicated, e.g., if the function can exit the program or if it contains user assumptions that prune some computational paths.
- 3.
Specialized SAT solvers without proof construction generally outperform PeRIPLO in the satisfiability checks though they lack the interpolant generation features.
- 4.
- 5.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Sery, O., Fedyukovich, G., Sharygina, N. (2015). Function Summarization-Based Bounded Model Checking. In: Chockler, H., Kroening, D., Mariani, L., Sharygina, N. (eds) Validation of Evolving Software. Springer, Cham. https://doi.org/10.1007/978-3-319-10623-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-10623-6_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10622-9
Online ISBN: 978-3-319-10623-6
eBook Packages: Computer ScienceComputer Science (R0)