Concurrent On-the-Fly SCC Detection for Automata-Based Model Checking with Fairness Assumption

Model checking is an automated technique for verifying temporal logic properties of finite state systems. Tarjan's algorithm for detecting Strongly Connected Components (SCCs) is a widely used depth-first search procedure for Automatabased (LTL) model checking. It works on the SCC detection on-the-fly with the composition of transition systems and Büchi Automaton (state space generation), which has been deployed as sequential implementations in many tools. However, these implementations suffer from heavy time cost for systems which involve a large number of SCC explorations. To address this issue, in this paper, we develop a concurrent SCC detection approach for the on-the-fly generated state space in LTL model checking by expanding the existing concurrent Tarjan's algorithm. Besides, we involve fairness checking. Different that the previous work, which performs fairness checking after the generation of a complete SCC, in our approach we perform fairness checking during SCC generation to improve efficiency. We implement our approach in PAT model checker. Our experimental results show that our approach achieves up to 2X speedup for the complete SCC detection in large-scale system models compared to the sequential on-the-fly model checking in PAT. Besides, our parallel on-the-fly fairness checking approach speedups fairness checking around 2X∼45X.

[1]  W. Marsden I and J , 2012 .

[2]  Jun Sun,et al.  PAT: Towards Flexible Verification under Fairness , 2009, CAV.

[3]  Jun Pang,et al.  On automatic verification of self-stabilizing population protocols , 2008, Frontiers of Computer Science in China.

[4]  Fabrice Kordon,et al.  Parallel Explicit Model Checking for Generalized Büchi Automata , 2015, TACAS.

[5]  Edmund M. Clarke,et al.  Model Checking and the State Explosion Problem , 2011, LASER Summer School.

[6]  Dragan Bosnacki,et al.  GPUexplore: Many-Core On-the-Fly State Space Exploration Using GPUs , 2014, TACAS.

[7]  Alfons Laarman,et al.  Multi-core on-the-fly SCC decomposition , 2016, PPoPP.

[8]  Gavin Lowe,et al.  Concurrent Depth-First Search Algorithms , 2014, TACAS.

[9]  Jun Sun,et al.  Scalable Multi-core Model Checking Fairness Enhanced Systems , 2009, ICFEM.

[10]  Yang Liu,et al.  Model Checking Concurrent and Real-Time Systems: The PAT Approach , 2009 .

[11]  Sami Evangelista,et al.  Parallel Nested Depth-First Searches for LTL Model Checking , 2011, ATVA.

[12]  Alfons Laarman,et al.  Improved Multi-Core Nested Depth-First Search , 2012, ATVA.

[13]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[14]  Antti Valmari,et al.  Liveness and Fairness in Process-Algebraic Verification , 2001, CONCUR.

[15]  Stephan Merz,et al.  Model Checking , 2000 .

[16]  Jun Sun,et al.  GPU Accelerated Counterexample Generation in LTL Model Checking , 2014, ICFEM.

[17]  Gavin Lowe Concurrent depth-first search algorithms based on Tarjan’s Algorithm , 2015, International Journal on Software Tools for Technology Transfer.

[18]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[19]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[20]  Sami Evangelista,et al.  Multi-threaded Explicit State Space Exploration with State Reconstruction , 2013, ATVA.

[21]  Jin Song Dong,et al.  Towards a Toolkit for Flexible and Efficient Verification under Fairness , 2009 .

[22]  Jun Sun,et al.  GPU Accelerated On-the-Fly Reachability Checking , 2015, 2015 20th International Conference on Engineering of Complex Computer Systems (ICECCS).

[23]  Jean-Michel Couvreur,et al.  On-the-Fly Verification of Linear Temporal Logic , 1999, World Congress on Formal Methods.