SMT-based model checking for recursive programs

被引:0
作者
Anvesh Komuravelli
Arie Gurfinkel
Sagar Chaki
机构
[1] Carnegie Mellon University,
来源
Formal Methods in System Design | 2016年 / 48卷
关键词
Model checking; May-must; Satisfiability; Quantifier elimination; Recursion; Compositional;
D O I
暂无
中图分类号
学科分类号
摘要
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 analyze procedure calls without inlining. Over-approximations are used to block infeasible counterexamples and detect convergence to a proof. 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.
引用
收藏
页码:175 / 205
页数:30
相关论文
共 39 条
  • [1] Ball T(2001)Automatic predicate abstraction of C programs SIGPLAN Not 36 203-213
  • [2] Majumdar R(1979)Programming language constructs for which it is impossible to obtain good Hoare axiom systems JACM 26 129-147
  • [3] Millstein T(1979)Program invariants as fixed points Computing 21 273-294
  • [4] Rajamani SK(2005)Analysis of recursive state machines TOPLAS 27 786-818
  • [5] Clarke EM(2010)Nested interpolants SIGPLAN Not 45 471-482
  • [6] Clarke EM(2003)Bounded model checking Adv Comput 58 117-148
  • [7] Alur R(1957)Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory Symb Logic 22 269-285
  • [8] Benedikt M(2005)Analysis of recursive state machines ACM Trans Program Lang Syst 27 786-818
  • [9] Etessami K(1993)Applying linear quantifier elimination Computing 36 450-462
  • [10] Godefroid P(1972)Theorem proving in arithmetic without multiplication Mach Intel 7 300-977