Abstract
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.
Highlights
MODEL checking has become one of the most attractive and important approaches to verification for software and hardware systems
This paper focuses on investigating an external memory approach for finding all accepting cycles of large-scale systems
The main cause is that for models with valid properties, Detect Accepting Cycle (DAC), Maximal Accepting Predecessors (MAP) and Iterative-Deepening Depth-First Search (IDDFS) need to create the whole state space eventually as Detecting All Accepting Cycles (DAAC) does, but DAAC exploits some efficient techniques such as the dynamic path management technique, the efficient framework and the intersection computation technique, which greatly improve its performance
Summary
MODEL checking has become one of the most attractive and important approaches to verification for software and hardware systems. The automata-theoretic approach, as one of the most important model checking techniques, translates the LTL model checking problem into the detection of reachable accepting cycles in a directed graph [1]. With the increasing scale and complexity of software and hardware systems, the directed graph tends to be extremely large and induces the state explosion problem. Magnetic disks are about two and a half orders of magnitude cheaper than semiconductor memory [12]. These two facts together suggest the idea of using external memory in model checking large-scale systems
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.