Abstract
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.
Partially supported by the National NSF of China under grant No. 60233020, National Hi-Tech Programme of China under the grant 2005AA113130 and Program for New Century Excellent Talents in University under grant No. NCET-04-0996.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: Proceedings of POPL 2005, Long Beach, California, USA (2005)
Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol. 1032. Springer, Heidelberg (1996)
Valmari, A.: Stubborn sets for reduced state space generation. In: Advances in Petri Nets 1990, pp. 491–515 (1991)
Varpaaniemi, K.: Minimizing the Number of Successor States in the Stubborn Set Method. Journal of Fundamental Informatics 51(1-2), 215–234 (2001)
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)
Holzmann, G.J., Peled, D.: An improvement in formal verification. In: Formal Descriptions Techniques VII, FORTE 1994. Chapman & Hall, Boca Raton (1995)
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)
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)
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)
Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: PLDI 2001: Programming Language Design and Implementation (2001)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Qadeer, S., Rajarnani, S.K., Rehof, J.: Summarizing Procedures in Concurrent Programs. In: Proceedings of POPL 2004 (2004)
Basten, T., Bosnacki, D., Geilen, M.: Cluster-based Partial-Order Reduction. Automatic Software Engineering 11(4), 365–402 (2004)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yi, X., Wang, J., Yang, X. (2006). Stateful Dynamic Partial-Order Reduction. In: Liu, Z., He, J. (eds) Formal Methods and Software Engineering. ICFEM 2006. Lecture Notes in Computer Science, vol 4260. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11901433_9
Download citation
DOI: https://doi.org/10.1007/11901433_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-47460-9
Online ISBN: 978-3-540-47462-3
eBook Packages: Computer ScienceComputer Science (R0)