Stateful Dynamic Partial-Order Reduction

State space explosion is the main obstacle for model checking concurrent programs. Among the solutions, partial-order reduction (POR), especially dynamic partial-order reduction (DPOR) [I], is one of the promising approaches. However, DPOR only supports stateless explorations for acyclic state spaces. In this paper, we present the stateful DPOR approach for may-cyclic state spaces, which naturally combines DPOR with stateful model checking to achieve more efficient reduction. Its basic idea is to summarize the interleaving information for all transition sequences starting from each visited state, and infer the necessary partial-order information based on the summarization when a visited state is encountered again. Experiment results on two programs coming from [1] show that both of the costs of space and time could be remarkably reduced by stateful DPOR with rather reasonable extra memory overhead.

[1]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[2]  Sriram K. Rajamani,et al.  Generating Abstract Explanations of Spurious Counterexamples in C Programs , 2002 .

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

[4]  Xuejun Yang,et al.  Verification of C programs using slicing execution , 2005, Fifth International Conference on Quality Software (QSIC'05).

[5]  Dragan Bosnacki,et al.  Cluster-Based Partial-Order Reduction , 2004 .

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

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

[8]  Joël Ouaknine,et al.  Automated Compositional Abstraction Refinement for Concurrent C Programs: A Two-Level Approach , 2003, SoftMC@CAV.

[9]  Grigore Rosu,et al.  Monitoring Java Programs with Java PathExplorer , 2001, RV@CAV.

[10]  Jakob Rehof,et al.  Zing: A Model Checker for Concurrent Software , 2004, CAV.

[11]  Jakob Rehof,et al.  Summarizing procedures in concurrent programs , 2004, POPL.

[12]  Grigore Rosu,et al.  Java PathExplorer: A Runtime Verification Tool , 2001 .

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

[14]  Sagar Chaki,et al.  The ComFoRT Reasoning Framework , 2005, CAV.

[15]  Sarfraz Khurshid,et al.  Generalized Symbolic Execution for Model Checking and Testing , 2003, TACAS.

[16]  XIAODONG YI,et al.  Slicing Execution for Model Checking C Programs , 2006, Int. J. Softw. Eng. Knowl. Eng..

[17]  Kimmo Varpaaniemi Minimizing the Number of Successor States in the Stubborn Set Method , 2002, Fundam. Informaticae.

[18]  Sagar Chaki,et al.  Automated Assume-Guarantee Reasoning for Simulation Conformance , 2005, CAV.

[19]  Jürgen Dingel,et al.  Computer-assisted assume/guarantee reasoning with VeriSoft , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[20]  Dragan Bosnacki,et al.  Enhancing partial-order reduction via process clustering , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[21]  Corina S. Pasareanu,et al.  Verification of Java Programs Using Symbolic Execution and Invariant Generation , 2004, SPIN.

[22]  Doron A. Peled Combining Partial Order Reductions with On-the-fly Model-Checking , 1994, CAV.

[23]  Yichen Xie,et al.  Zing: Exploiting Program Structure for Model Checking Concurrent Software , 2004, CONCUR.

[24]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.