Monotonic Partial Order Reduction: An Optimal Symbolic Partial Order Reduction Technique

We present a new technique called Monotonic Partial Order Reduction (MPOR) that effectively combines dynamic partial order reduction with symbolic state space exploration for model checking concurrent software. Our technique hinges on a new characterization of partial orders defined by computations of a concurrent program in terms of quasi-monotonic sequences of thread-ids. This characterization, which is of independent interest, can be used both for explicit or symbolic model checking. For symbolic model checking, MPOR works by adding constraints to allow automatic pruning of redundant interleavings in a SAT/SMT solver based search by restricting the interleavings explored to the set of quasi-monotonic sequences. Quasi-monotonicity guarantees both soundness (all necessary interleavings are explored) and optimality (no redundant interleaving is explored) and is, to the best of our knowledge, the only known optimal symbolic POR technique.

[1]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[2]  Doron A. Peled,et al.  Defining Conditional Independence Using Collapses , 1992, Theor. Comput. Sci..

[3]  Patrice Godefroid,et al.  Dynamic partial-order reduction for model checking software , 2005, POPL '05.

[4]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[5]  Grzegorz Rozenberg Advances in Petri Nets 1990 , 1989, Lecture Notes in Computer Science.

[6]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[7]  Flavio Lerda,et al.  Symbolic Model Checking of Software , 2003, SoftMC@CAV.

[8]  Anca Muscholl,et al.  Trace Theory , 2011, Encyclopedia of Parallel Computing.

[9]  Eran Yahav,et al.  Cartesian Partial-Order Reduction , 2007, SPIN.

[10]  Chao Wang,et al.  Peephole Partial Order Reduction , 2008, TACAS.

[11]  Grzegorz Rozenberg,et al.  Advances in Petri Nets 1985 , 1985, Lecture Notes in Computer Science.

[12]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[13]  Ofer Strichman,et al.  Proof-guided underapproximation-widening for multi-process systems , 2005, POPL '05.

[14]  Daniel Kroening,et al.  Symbolic Model Checking for Asynchronous Boolean Programs , 2005, SPIN.

[15]  Antti Valmari,et al.  Stubborn sets for reduced state space generation , 1991, Applications and Theory of Petri Nets.

[16]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[17]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.

[18]  Vineet Kahlon,et al.  Symbolic Model Checking of Concurrent Programs Using Partial Orders and On-the-Fly Transactions , 2006, CAV.

[19]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[20]  Antti Valmari,et al.  Stubborn sets for reduced state generation , 1991 .

[21]  Robert K. Brayton,et al.  Partial-Order Reduction in Symbolic State Space Exploration , 1997, CAV.

[22]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.