Stateful Dynamic Partial-Order Reduction

  • Xiaodong Yi
  • Ji Wang
  • Xuejun Yang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4260)


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) [1], 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.


State Space Model Check File System Transition Sequence Concurrent Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: Proceedings of POPL 2005, Long Beach, California, USA (2005)Google Scholar
  2. 2.
    Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol. 1032. Springer, Heidelberg (1996)Google Scholar
  3. 3.
    Valmari, A.: Stubborn sets for reduced state space generation. In: Advances in Petri Nets 1990, pp. 491–515 (1991)Google Scholar
  4. 4.
    Varpaaniemi, K.: Minimizing the Number of Successor States in the Stubborn Set Method. Journal of Fundamental Informatics 51(1-2), 215–234 (2001)MathSciNetGoogle Scholar
  5. 5.
    Peled, D.: Combining partial order reductions with on-the-fly model checking. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818. Springer, Heidelberg (1994)Google Scholar
  6. 6.
    Holzmann, G.J., Peled, D.: An improvement in formal verification. In: Formal Descriptions Techniques VII, FORTE 1994. Chapman & Hall, Boca Raton (1995)Google Scholar
  7. 7.
    Dingel, J.: Computer-Assisted Assume/Guarantee Reasoning with VeriSoft. In: Proceedings of the 25th International Conference on Software Engineering (ICSE 2003), pp. 138–148 (2003)Google Scholar
  8. 8.
    Havelund, K., Rosu, G.: Java PathExplorer - A Runtime Verification Tool. In: Proc. ISAIRAS 2001: 6th International symposium on AI, Robotics and Automation in Space, Nordwijk, The Netherlands (2001)Google Scholar
  9. 9.
    Havelund, K., Rosu, G.: Monitoring Java Programs with Java PathExplorer. In: Proceedings of RV 2001: 1st Workshop on Runtime Verification, Paris, France. LNCS, vol. 55(2). Springer, Heidelberg (2001)Google Scholar
  10. 10.
    Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: PLDI 2001: Programming Language Design and Implementation (2001)Google Scholar
  11. 11.
    Ball, T., Rajamani, S.K.: Generating abstract explanations of spurious counterexamples in C programs. Technical Report MSR-TR-2002-09, Microsoft Research, Microsoft Corporation (2002)Google Scholar
  12. 12.
    Chaki, S., Clarke, E., Groce, A.: Modular Verification of Software Components in C. In: ACM-SIGSOFT Distinguished Paper in the 25th International Conference on Software Engineering (ICSE), pp. 385–395 (2003)Google Scholar
  13. 13.
    Chaki, S., Ouaknine, J., Yorav, K., Clarke, E.: Automated Compositional Abstraction Refinement for Concurrent C Programs: A Two-Level Approach. In: 2nd Workshop on Software Model Checking (SoftMC) (2003)Google Scholar
  14. 14.
    Chaki, S., Clarke, E., Sinha, N., Thati, P.: Automated Assume-Guarantee Reasoning for Simulation Conformance. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 534–547. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    Chaki, S., Ivers, J., Sharygina, N., Wallnau, K.: The ComFoRT Reasoning Framework. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 164–169. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  16. 16.
    Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Zing, Y.X.: Exploiting Program Structure for Model Checking Concurrent Software. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 1–15. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  17. 17.
    Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: A Model Checker for Concurrent Software. MSR Technical Report: MSR-TR-2004-10 (2004)Google Scholar
  18. 18.
    Khurshid, S., Pasareanu, C.S., Visser, W.: Generalized symbolic execution for model checking and testing. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 553–568. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  19. 19.
    Pasareanu, C.S., Visser, W.: Verification of Java Programs using Symbolic Execution and Invariant Generation. In: Graf, S., Mounier, L. (eds.) SPIN 2004. LNCS, vol. 2989, pp. 164–181. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  20. 20.
    Qadeer, S., Rajarnani, S.K., Rehof, J.: Summarizing Procedures in Concurrent Programs. In: Proceedings of POPL 2004 (2004)Google Scholar
  21. 21.
    Basten, T., Bosnacki, D., Geilen, M.: Cluster-based Partial-Order Reduction. Automatic Software Engineering 11(4), 365–402 (2004)CrossRefGoogle Scholar
  22. 22.
    Basten, T., Bosnacki, D.: Enhancing Partial-Order Reduction via Process Clustering. In: Proceedings of Automated Software Engineering, ASE 2001. IEEE Computer Society Press, Los Alamitos (2001)Google Scholar
  23. 23.
    Yi, X., Wang, J., Yang, X.: Verification of C Programs using Slicing Execution. In: Proceeding of Fifth International Conference on Quality Software (QSIC 2005), Melbourne, Australia. IEEE Computer Society press, Los Alamitos (2005)Google Scholar
  24. 24.
    Yi, X., Wang, J., Yang, X.: Slicing Execution for Model Checking C Programs. Special Issue on Quality Software of International Journal of Software Engineering and Knowledge Engineering (accepted, 2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Xiaodong Yi
    • 1
  • Ji Wang
    • 1
  • Xuejun Yang
    • 1
  1. 1.National Laboratory for Parallel and Distributed ProcessingChangshaP.R. China

Personalised recommendations