A Unifying View on SMT-Based Software Verification

被引:44
作者
Beyer, Dirk [1 ]
Dangl, Matthias [1 ]
Wendler, Philipp [1 ]
机构
[1] Ludwig Maximilians Univ Munchen, Munich, Germany
关键词
Software verification; Program analysis; Bounded model checking; k-induction; Impact; Lazy abstraction; Predicate abstraction; SMT solving; MODEL CHECKING; INVARIANT GENERATION; INTERPOLATION; ABSTRACTION; REFINEMENT; PROGRAMS;
D O I
10.1007/s10817-017-9432-6
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
After many years of successful development of new approaches for software verification, there is a need to consolidate the knowledge about the different abstract domains and algorithms. The goal of this paper is to provide a compact and accessible presentation of four SMT-based verification approaches in order to study them in theory and in practice. We present and compare the following different "schools of thought" of software verification: bounded model checking, k-induction, predicate abstraction, and lazy abstraction with interpolants. Those approaches are well-known and successful in software verification and have in common that they are based on SMT solving as the back-end technology. We reformulate all four approaches in the unifying theoretical framework of configurable program analysis and implement them in the verification framework CPAchecker. Based on this, we can present an evaluation that thoroughly compares the different approaches, where the core differences are expressed in configuration parameters and all other variables are kept constant (such as parser front end, SMT solver, used theory in SMT formulas). We evaluate the effectiveness and the efficiency of the approaches on a large set of verification tasks and discuss the conclusions.
引用
收藏
页码:299 / 335
页数:37
相关论文
共 71 条
  • [1] Albarghouthi Aws, 2012, Computer Aided Verification. Proceedings 24th International Conference, CAV 2012, P672, DOI 10.1007/978-3-642-31424-7_48
  • [2] Albarghouthi A, 2012, LECT NOTES COMPUT SC, V7214, P157, DOI 10.1007/978-3-642-28756-5_12
  • [3] An extension of lazy abstraction with interpolation for programs with arrays
    Alberti, Francesco
    Bruttomesso, Roberto
    Ghilardi, Silvio
    Ranise, Silvio
    Sharygina, Natasha
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2014, 45 (01) : 63 - 109
  • [4] [Anonymous], LNCS
  • [5] [Anonymous], 2013, K INDUCTION PRINCIPL
  • [6] [Anonymous], 2015, TOOLS ALGORITHMS CON
  • [7] [Anonymous], MIP1503 U PASS
  • [8] Ball T., 2001, Tools and Algorithms for the Construction and Analysis of Systems. 7th International Conference, TACAS 2001. Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2001. Proceedings (Lecture Notes in Computer Science Vol.2031), P268
  • [9] Ball T, 2004, LECT NOTES COMPUT SC, V2999, P1
  • [10] The SLAM project: Debugging system software via static analysis
    Ball, T
    Rajamani, SK
    [J]. ACM SIGPLAN NOTICES, 2002, 37 (01) : 1 - 3