VSL 2014: VIENNA SUMMER OF LOGIC 2014

SMT-based Model Checking for Recursive Programs

Authors: Anvesh Komuravelli, Arie Gurfinkel and Sagar Chaki

PapersPapers with AbstractsPrefaceAuthor IndexKeyword Index

Paper Information

Title:SMT-based Model Checking for Recursive Programs
Authors:Anvesh Komuravelli, Arie Gurfinkel and Sagar Chaki
Proceedings:CAV 2014 LNCS Proceedings
Editors: Armin Biere, Swen Jacobs and Roderick Bloem
Keywords:smt, recursion, quantifier elimination, horn, abstraction refinement, approximation, property-driven, ic3, pdr, bmc, model checking
Abstract:

ABSTRACT. We present an SMT-based symbolic model checking algorithm for safety verification of recursive programs. The algorithm is modular and analyzes procedures individually. Unlike other SMT-based approaches, it maintains both "over-" and "under-approximations" of procedure summaries. Under-approximations are used to propagate information over procedure calls. Over-approximations are used to block infeasible counterexamples and detect convergence. We show that for programs and properties over a decidable theory, the algorithm is guaranteed to find a counterexample, if one exists. However, efficiency depends on an oracle for quantifier elimination (QE). For Boolean Programs, the algorithm is a polynomial decision procedure, matching the worst-case bounds of the best BDD-based algorithms. For Linear Arithmetic (integers and rationals), we give an efficient instantiation of the algorithm by applying QE "lazily". We use existing interpolation techniques to over-approximate QE and introduce "Model-Based Projection" to under-approximate QE. Empirical evaluation on SV-COMP benchmarks shows that our algorithm improves significantly on the state-of-the-art.

Pages:18
Talk:Jul 19 11:05
Paper:
Disclaimer | Powered by EasyChair Smart Program