User:Aronisstav/sandbox/Partial order reduction

From Wikipedia, the free encyclopedia

In computer science, partial order reduction is a technique for reducing the size of the state-space to be searched by a model checking or automated planning and scheduling algorithm. It exploits the commutativity of transitions, which result in the same state when executed in different orders.

Intuition[edit]

Applications[edit]

Model checking[edit]

Concurrent Software Verification[edit]

Algorithms[edit]

Static[edit]

Dynamic[edit]

SMT-based[edit]

Formalization[edit]

In explicit state space exploration, partial order reduction usually refers to the specific technique of expanding a representative subset of all enabled transitions. This technique has also been described as model checking with representatives (Peled 1993). There are various versions of selecting the subset, such as the ample set method (Peled 1993) (Clarke 1999), persistent set method (Godefroid 1994), source set method (Abdulla 2017), and stubborn set method (Valmari 1990).

Dependency relations[edit]

The formalization of partial order reduction techniques often relies on a notion of dependency between transitions of the state transition system. Two transitions are considered independent if whenever they are mutually enabled, they cannot disable another and the execution of both results in a unique state, regardless of the order in which they are executed. Transitions that are not independent, are dependent.

Dependency can be approximated by static analysis, or determined dynamic analysis, by 'executing' the transition system (e.g. running the program) and collecting data about the executed transitions.

Soundness[edit]

In order to be useful, a partial order reduction algorithm must ensure that it will inspect states that are partial-order-equivalent with all relevant reachable states in the given state-space. This is called a soundness or correctness argument. A method to prove soundness, is to show that the subset of transitions that the algorithm explores at every inspected state satisfies some particular property and also show that the property leads to soundness. The aforementioned ample, persistent, source, and stubborn properties describe subsets that lead to soundness. The algorithms for constructing such subsets out of all the enabled transitions at each state are also described in the referenced papers.

Effectiveness[edit]

The premise of partial order reduction techniques is that exploring the entire (i.e., not reduced) state-space is too costly. The effectiveness of a It is therefore important to determine how effective a particular partial order reduction technique is.

Subset selection

Sleep Sets

Optimality

Wakeup Trees

Tools[edit]

  • CHESS
  • Concuerror
  • Nidhugg
  • Java PathFinder
  • SPIN
  • VERISOFT

Other techniques[edit]

Abstract interpretation Bounded model checking Formal analysis

References[edit]

  • Clarke, Edmund M.; Grumberg, Orna; Peled, Doron A. (1999). Model Checking. MIT Press.
  • Flanagan, Cormac; Godefroid, Patrice (2005). "Dynamic partial-order reduction for model checking software". Proceedings of POPL ’05, 32th ACM Symp. on Principles of Programming Languages. pp. 110–121.
  • Godefroid, Patrice (1994). Partial-Order Methods for the Verification of Concurrent Systems -- An Approach to the State-Explosion Problem (PostScript) (PhD). University of Liege, Computer Science Department.
  • Holzmann, Gerard J (1993). The Spin Model Checker: Primer and Reference Manual. Addison-Wesley. ISBN 0-321-22862-6.
  • Peled, Doron A. (1993). "All from One, One for All: Model Checking Using Representatives". Proceedings of CAV'93, LNCS 697, Springer 1993. pp. 409–423. doi:10.1007/3-540-56922-7_34.
  • Valmari, Antti (1990). "Stubborn sets for reduced state space generation". Advances in Petri Nets 1990, LNCS 483, Springer 1991. pp. 491–515. doi:10.1007/3-540-53863-1_36.

External links[edit]