A Framework to Synergize Partial Order Reduction with State Interpolation

We address the problem of reasoning about interleavings in safety verification of concurrent programs. In the literature, there are two prominent techniques for pruning the search space. First, there are wellinvestigated trace-based methods, collectively known as “Partial Order Reduction (POR)”, which operate by weakening the concept of a trace by abstracting the total order of its transitions into a partial order. Second, there is state-based interpolation where a collection of formulas can be generalized by taking into account the property to be verified. Our main contribution is a framework that synergistically combines POR with state interpolation so that the sum is more than its parts.

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

[2]  Sarfraz Khurshid,et al.  Symbolic execution for software testing in practice: preliminary assessment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[4]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

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

[6]  Neeraj Suri,et al.  Supporting domain-specific state space reductions through local partial-order reduction , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[7]  Yu Yang,et al.  Efficient Stateful Dynamic Partial Order Reduction , 2008, SPIN.

[8]  Marsha Chechik,et al.  Analysis of Symbolic Executions , 2010 .

[9]  Swarat Chaudhuri,et al.  Symbolic pruning of concurrent program executions , 2009, ESEC/FSE '09.

[10]  Lucas C. Cordeiro,et al.  Verifying multi-threaded software using smt-based context-bounded model checking , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[11]  Yu Yang,et al.  Dynamic Model Checking with Property Driven Pruning to Detect Race Conditions , 2008, ATVA.

[12]  Ashutosh Gupta,et al.  Predicate abstraction and refinement for verifying multi-threaded programs , 2011, POPL '11.

[13]  Joël Ouaknine,et al.  Verifying multi-threaded software with impact , 2013, 2013 Formal Methods in Computer-Aided Design.

[14]  Chao Wang,et al.  On interference abstractions , 2011, POPL '11.

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

[16]  Chao Wang,et al.  Staged concurrent program analysis , 2010, FSE '10.

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

[18]  Robert K. Brayton,et al.  Partial-Order Reduction in Symbolic State-Space Exploration , 2001, Formal Methods Syst. Des..

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

[20]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

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

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

[23]  Parosh Aziz Abdulla,et al.  Optimal dynamic partial order reduction , 2014, POPL.

[24]  Jorge A. Navas,et al.  Unbounded Symbolic Execution for Program Verification , 2011, RV.

[25]  Andrew E. Santosa,et al.  An Interpolation Method for CLP Traversal , 2009, CP.

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

[27]  Kenneth L. McMillan Lazy Annotation for Program Testing and Verification , 2010, CAV.

[28]  Chao Wang,et al.  Monotonic Partial Order Reduction: An Optimal Symbolic Partial Order Reduction Technique , 2009, CAV.

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

[30]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[31]  Joxan Jaffar,et al.  A Complete Method for Symmetry Reduction in Safety Verification , 2012, CAV.