An I/O Efficient Approach for Detecting All Accepting Cycles

Existing algorithms for I/O Linear Temporal Logic (LTL) model checking usually output a single counterexample for a system which violates the property. However, in real-world applications, such as diagnosis and debugging in software and hardware system designs, people often need to have a set of counterexamples or even all counterexamples. For this purpose, we propose an I/O efficient approach for detecting all accepting cycles, called Detecting All Accepting Cycles (DAAC), where the properties to be verified are in LTL. Different from other algorithms for finding all cycles, DAAC first searches for the accepting strongly connected components (ASCCs), and then finds all accepting cycles of every ASCC, which can avoid searching for a great many paths that are impossible to be extended to accepting cycles. In order to further lower DAAC's I/O complexity and improve its performance, we propose an intersection computation technique and a dynamic path management technique, and exploit a minimal perfect hash function (MPHF). We carry out both complexity and experimental comparisons with the state-of-the-art algorithms including Detect Accepting Cycle (DAC), Maximal Accepting Predecessors (MAP) and Iterative-Deepening Depth-First Search (IDDFS). The comparative results show that our approach is better on the whole in terms of I/O complexity and practical performance, despite the fact that it finds all counterexamples.

[1]  Richard E. Korf,et al.  Linear-time disk-based implicit graph search , 2008, JACM.

[2]  Ivana Cerná,et al.  Distributed Explicit Fair Cycle Detection (Set Based Approach) , 2003, SPIN.

[3]  Richard E. Korf,et al.  Large-Scale Parallel Breadth-First Search , 2005, AAAI.

[4]  Kurt Mehlhorn,et al.  External-Memory Breadth-First Search with Sublinear I/O , 2002, ESA.

[5]  Radek Pelánek,et al.  BEEM: Benchmarks for Explicit Model Checkers , 2007, SPIN.

[6]  Nivio Ziviani,et al.  External perfect hashing for very large key sets , 2007, CIKM '07.

[7]  Stefan Leue,et al.  Counterexample Explanation by Anomaly Detection , 2012, SPIN.

[8]  Husain Aljazzar,et al.  Directed Explicit State-Space Search in the Generation of Counterexamples for Stochastic Model Checking , 2010, IEEE Transactions on Software Engineering.

[9]  Richard E. Korf,et al.  Best-First Frontier Search with Delayed Duplicate Detection , 2004, AAAI.

[10]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[11]  Lubos Brim,et al.  Revisiting Resistance Speeds Up I/O-Efficient LTL Model Checking , 2008, TACAS.

[12]  James C. Tiernan,et al.  An efficient search algorithm to find the elementary circuits of a graph , 1970, CACM.

[13]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[14]  Robert E. Tarjan,et al.  Enumeration of the Elementary Circuits of a Directed Graph , 1972, SIAM J. Comput..

[15]  Peter Sanders,et al.  STXXL: standard template library for XXL data sets , 2008, Softw. Pract. Exp..

[16]  Donald B. Johnson,et al.  Finding All the Elementary Circuits of a Directed Graph , 1975, SIAM J. Comput..

[17]  Stefan Edelkamp,et al.  Large-Scale Directed Model Checking LTL , 2006, SPIN.

[18]  Lubos Brim,et al.  Parallel breadth-first search LTL model-checking , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[19]  Gila Kamhi,et al.  Efficient debugging in a formal verification environment , 2003, International Journal on Software Tools for Technology Transfer.

[20]  Viktor Schuppan,et al.  Efficient reduction of finite state model checking to reachability analysis , 2004, International Journal on Software Tools for Technology Transfer.

[21]  Takeo Yamada,et al.  Finding all the negative cycles in a directed graph , 2002, Discret. Appl. Math..

[22]  Bolin Ding,et al.  Fast Set Intersection in Memory , 2011, Proc. VLDB Endow..

[23]  Leon J. Osterweil,et al.  An Algorithm for Finding the Elementary Circuits of a Directed Graph ; CU-CS-024-73 , 1973 .

[24]  Lubos Brim,et al.  Accepting Predecessors Are Better than Back Edges in Distributed LTL Model-Checking , 2004, FMCAD.

[25]  Rolf Drechsler,et al.  Automatic Fault Localization for Property Checking , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[26]  Peter Sanders,et al.  Semi-external LTL Model Checking , 2008, CAV.

[27]  U. Stern,et al.  Using magnetic disk instead of main memory in the mur φ verifier , 1998 .

[28]  Richard E. Korf Delayed Duplicate Detection: Extended Abstract , 2003, IJCAI.

[29]  Lubos Brim,et al.  DiVinE - A Tool for Distributed Verification , 2006, CAV.

[30]  Herbert Weinblatt,et al.  A New Search Algorithm for Finding the Simple Cycles of a Finite Directed Graph , 1972, JACM.

[31]  Rolf Drechsler,et al.  Increasing the accuracy of SAT-based debugging , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[32]  Stefan Edelkamp,et al.  Parallel External Directed Model Checking with Linear I/O , 2006, VMCAI.

[33]  Jeffery R. Westbrook,et al.  A Functional Approach to External Graph Algorithms , 1998, Algorithmica.

[34]  Rasmus Pagh,et al.  Simple and Space-Efficient Minimal Perfect Hash Functions , 2007, WADS.

[35]  Lubos Brim,et al.  I/O Efficient Accepting Cycle Detection , 2007, CAV.