Partial-order Checking with Unfolding for Linear Temporal Properties

06/19/2023
by   Shuo Li, et al.
0

Unfolding can tackle the path-explosion problem caused by concurrency. Traditional unfolding generation faces an NP-complete problem when adding events to the unfolding structure, which also exists in the case of verifying linear temporal logic (LTL). The reason is that it is necessary to enumerate possible concurrent event combinations after adding an event. Many state-of-the-art methods optimally explore unfolding-based structure (called event structure) by a tree-like structure, which should be constructed on the event structure with complete conflict and causal relations. However, a synchronization of a Petri net and the Buchi representation of LTL as a folded net can not represent complete conflict and causal relations. Thus, it is difficult to apply such a tree-like structure directly on the folded net. To resolve this difficulty, we propose a new method, called partial-order checking with unfolding, to verify LTL based on PDNet (program dependence net). We define an exploration tree with a new notion of delayed transitions, which is different from the existing tree-like structure. It improves the unfolding generation by avoiding all possible event combinations. Then, we propose an algorithm to simultaneously construct the exploration tree while generating the unfolding structure, as well as checking LTL. We implement a tool PUPER for concurrent programs with POSIX threads. It improves traditional unfolding generations via our exploration tree-based algorithms and shows better performance than SPIN and DiVine on the used benchmarks.

READ FULL TEXT
research
07/29/2023

Tailoring Stateless Model Checking for Event-Driven Multi-Threaded Programs

Event-driven multi-threaded programming is an important idiom for struct...
research
01/27/2023

Program Dependence Net and Its Slice for Verifying Linear Temporal Properties

The finite-state model checking of software is still limited by the noto...
research
03/15/2021

The Complexity of Checking Partial Total Positivity

We prove that checking if a partial matrix is partial totally positive i...
research
01/17/2022

A Tree Clock Data Structure for Causal Orderings in Concurrent Executions

Dynamic techniques are a scalable and effective way to analyze concurren...
research
06/13/2018

Graph-Based Decoding for Event Sequencing and Coreference Resolution

Events in text documents are interrelated in complex ways. In this paper...
research
08/25/2022

Coarser Equivalences for Concurrent Program Runs

Trace theory is a framework for designing equivalence relations for conc...
research
01/14/2020

A unified method to decentralized state inference and fault diagnosis/prediction of discrete-event systems

The state inference problem and fault diagnosis/prediction problem are f...

Please sign up or login with your details

Forgot password? Click here to reset