Abstract
We present the foundations of an approach for exploiting the partial ordering of events in the verification of concurrent systems. The main objective of the approach is to avoid the state explosion that is due to the use of the standard interleaving semantics of concurrency. The approach has been applied successfully to the verification of complex hardware and software systems such as a shared memory with multicache for a multi-processor architecture. The technique is described for finite state systems and applied to the checking of liveness properties using a model-checking approach. Most existing approaches use the partial ordering of events as a means of reducing the number of traces to check: checking is in particular done on normal totally ordered traces and the reduction (i.e. the selection of representatives) is dependent on the property at hand. We strongly differ from these approaches by directly performing the checking on the partial order graphs themselves, not on particular linearizations. These partial order graphs are not dependent on the property to check: only the checking is. For this we introduce models based on tuples to represent partial orders, and a special kind of automaton that we call partial order automaton which generates the set of all possible partial ordering that can result from the execution of a system.
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have