Theta: A framework for abstraction refinement-based model checking

In this paper, we present Theta, a configurable model checking framework. The goal of the framework is to support the design, execution and evaluation of abstraction refinement-based reachability analysis algorithms for models of different formalisms. It enables the definition of input formalisms, abstract domains, model interpreters, and strategies for abstraction and refinement. Currently it contains front-end support for transition systems, control flow automata and timed automata. The built-in abstract domains include predicates, explicit values, zones and their combinations, along with various refinement strategies implemented for each. The configurability of the framework allows the integration of several abstraction and refinement methods, this way supporting the evaluation of their advantages and shortcomings. We demonstrate the applicability of the framework by use cases for the safety checking of PLC, hardware, C programs and timed automata models.

[1]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[2]  Víctor M. González Suárez,et al.  Applying Model Checking to Industrial-Sized PLC Programs , 2015, IEEE Transactions on Industrial Informatics.

[3]  Gyula Sallai,et al.  Towards Evaluating Size Reduction Techniques for Software Model Checking , 2017, VPT@ETAPS.

[4]  Sriram K. Rajamani,et al.  The SLAM Toolkit , 2001, CAV.

[5]  Marsha Chechik,et al.  Craig Interpretation , 2012, SAS.

[6]  Alfons Laarman,et al.  LTSmin: High-Performance Language-Independent Model Checking , 2015, TACAS.

[7]  Marsha Chechik,et al.  Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification , 2012, CAV.

[8]  Daniel Kroening,et al.  SATABS: SAT-Based Predicate Abstraction for ANSI-C , 2005, TACAS.

[9]  Armin Biere,et al.  Hardware Model Checking Competition 2014: An Analysis and Comparison of Solvers and Benchmarks , 2014, J. Satisf. Boolean Model. Comput..

[10]  Daniel Kroening,et al.  Interpolation-Based Software Verification with Wolverine , 2011, CAV.

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

[12]  Dirk Beyer,et al.  CPAchecker: A Tool for Configurable Software Verification , 2009, CAV.

[13]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[14]  Zoltán Micskei,et al.  Exploratory Analysis of the Performance of a Configurable CEGAR Framework , 2017 .

[15]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

[16]  István Majzik,et al.  A Configurable CEGAR Framework with Interpolation-Based Refinements , 2016, FORTE.

[17]  Dirk Beyer,et al.  Reliable and Reproducible Competition Results with BenchExec and Witnesses (Report on SV-COMP 2016) , 2016, TACAS.

[18]  Kenneth L. McMillan,et al.  Lazy Abstraction with Interpolants , 2006, CAV.

[19]  István Majzik,et al.  Lazy Reachability Checking for Timed Automata Using Interpolants , 2017, FORMATS.

[20]  Supratik Chakraborty,et al.  Automatically Refining Abstract Interpretations , 2008, TACAS.

[21]  Igor Walukiewicz,et al.  Lazy abstractions for timed automata , 2013, CAV.