Petri nets: an introduction
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
Handbook of graph grammars and computing by graph transformation: volume I. foundations
Handbook of graph grammars and computing by graph transformation: volume I. foundations
Algebraic approaches to graph transformation. Part I: basic concepts and double pushout approach
Handbook of graph grammars and computing by graph transformation
Handbook of graph grammars and computing by graph transformation
Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem
Unfoldings: A Partial-Order Approach to Model Checking (Monographs in Theoretical Computer Science. An EATCS Series)
Hi-index | 0.00 |
We present a new model checking procedure for concurrent systems against safety properties such as data races or atomicity violations. Our analysis sidesteps the state space explosion problem by inferring causal dependencies for concurrent traces instead of searching over a space of reachable states, and can be understood as an interplay between local trace inference and termination analysis based on causal loops. Local trace inference introduces new actions anywhere in the trace if they causally follow from the context. Our procedure terminates if we either find a complete error trace or the whole space of potential error traces is covered by causal loops. The causality-based verification of multi-threaded programs can be dramatically faster than the standard state space traversal. In particular, we show that the complexity of verifying multi-threaded programs with locks reduces from exponential to polynomial.