A Survey of Acceleration Techniques for SMT-Based Bounded Model Checking

Model checking is wildly acknowledged to be an effective formal technique for verifying that a finite state system satisfies desired properties expressed in temporal logic. There are primarily two types of model checking approaches: explicit model checking and symbolic model checking. To mitigate the notorious state exploration problems suffered by explicit model checking, bounded model checking (BMC) has been proposed as an alternative to other symbolic model checking approaches based on binary decision diagrams. Although originally SAT solvers are used by BMC as the reasoning engine, a recent trend is to switch from SAT to SMT solvers. In this paper, we survey contributions on acceleration of SMT-based BMC. In addition, we discuss some related techniques that could be potentially used as well for the acceleration purpose.

[1]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[2]  Youssef Hamadi,et al.  A Concurrent Portfolio Approach to SMT Solving , 2009, CAV.

[3]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[4]  Dragan Bosnacki,et al.  Improving Spin's Partial-Order Reduction for Breadth-First Search , 2005, SPIN.

[5]  Lucas C. Cordeiro,et al.  Verifying multi-threaded software using smt-based context-bounded model checking , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[6]  Gerard J. Holzmann A Stack-Slicing Algorithm for Multi-Core Model Checking , 2008, Electron. Notes Theor. Comput. Sci..

[7]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[8]  Clark W. Barrett,et al.  The SMT-LIB Standard Version 2.0 , 2010 .

[9]  Dragan Bosnacki,et al.  Multi-Core Model Checking with SPIN , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[10]  Zijiang Yang,et al.  Efficient distributed SAT and SAT-based distributed Bounded Model Checking , 2003, International Journal on Software Tools for Technology Transfer.

[11]  Akira Fukuda,et al.  On Accelerating SMT-based Bounded Model Checking of HSTM Designs , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[12]  M.K. Ganai,et al.  Accelerating High-level Bounded Model Checking , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

[13]  Bernd Becker,et al.  Parallel SAT Solving in Bounded Model Checking , 2006, J. Log. Comput..

[14]  Sérgio Vale Aguiar Campos,et al.  Exploring Clause Symmetry in a Distributed Bounded Model Checking Algorithm , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[15]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.

[16]  Robert P. Kurshan,et al.  Experimental Analysis of Different Techniques for Bounded Model Checking , 2003, TACAS.

[17]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[18]  Bernd Becker,et al.  Parallel SAT Solving in Bounded Model Checking , 2011, J. Log. Comput..

[19]  Weihong Li,et al.  d-TSR: Parallelizing SMT-Based BMC Using Tunnels over a Distributed Framework , 2008, Haifa Verification Conference.

[20]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[21]  Nikolaj Bjørner,et al.  Satisfiability modulo theories , 2011, Commun. ACM.

[22]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[23]  Gerard J. Holzmann,et al.  Parallelizing the Spin Model Checker , 2012, SPIN.

[24]  Clark Barrett,et al.  CVC 3 , 2013 .

[25]  Cesare Tinelli,et al.  The SMT-LIB Standard: Version 1.2 , 2005 .

[26]  Cesare Tinelli,et al.  Handbook of Satisfiability , 2021, Handbook of Satisfiability.

[27]  Shuvendu K. Lahiri,et al.  Static and Precise Detection of Concurrency Errors in Systems Code Using SMT Solvers , 2009, CAV.

[28]  Lucas C. Cordeiro,et al.  Context-Bounded Model Checking of LTL Properties for ANSI-C Software , 2011, SEFM.

[29]  John H. Reif,et al.  Depth-First Search is Inherently Sequential , 1985, Inf. Process. Lett..

[30]  Dragan Bosnacki,et al.  The Design of a Multicore Extension of the SPIN Model Checker , 2007, IEEE Transactions on Software Engineering.

[31]  Ofer Strichman,et al.  Bounded model checking , 2003, Adv. Comput..

[32]  Aarti Gupta,et al.  Tunneling and slicing: Towards scalable BMC , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[33]  R. BurchJ.,et al.  Symbolic model checking , 1992 .

[34]  Bernd Fischer,et al.  SMT-Based Bounded Model Checking for Embedded ANSI-C Software , 2012, IEEE Transactions on Software Engineering.

[35]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .