Model Checking Generic Container Implementations
Model checking techniques have been successfully applied to the verification of correctness properties of complex hardware systems and communication protocols. This success has fueled the application of these techniques to software systems. To date, those efforts have been targeted at concurrent software whose complexity lies, primarily, in the large number of possible execution orderings of asynchronously executing program actions. In this paper, we apply existing model checking techniques to parameterizable implementations of container data structures. In contrast to most of the concurrent systems that have been studied in the model checking literature, the complexity of these implementations lies in their data structures and algorithms. We report our experiences model checking specifications of correctness properties of queue, stack and priority queue data structures implemented in Ada.
KeywordsModel checking temporal logic assume-guarantee reasoning generic containers
Unable to display preview. Download preview PDF.
- 3.J. Beidler. The Scranton generic data structure suite. ∣http://academic.uofs.edu/faculty/beidler/ADA/default.html—, 1996.
- 4.E. Clarke, O. Grumberg, H. Hiraishi, S. Jha, D. Long, K. McMillan, and L. Ness. Verification of the future-bus+ cache coherence protocol. Formal Methods in System Design, 6(2), 1995.Google Scholar
- 5.J. Corbett. Evaluating deadlockdetection methods for concurrent software. IEEE Transactions on Software Engineering, 22(3), Mar. 1996.Google Scholar
- 6.P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the Fourth Annual ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
- 7.D. Craigen, S. Gerhart, and T. Ralston. An international survey of industrial applications of formal methods. Technical report, National Institute of Standards and Technology, Mar. 1993.Google Scholar
- 8.J. Davies and J. Woodcock. Using Z: Specification, Refinement and Proof. Prentice Hall, 1996.Google Scholar
- 9.D. Dill, A. Drexler, A. Hu, and C. H. Yang. Protocol verification as a hardware design aid. In Proceedings of the IEEE International Conference on Computer Design: VLSI in Computers and Processors, pages 522–525, July 1992.Google Scholar
- 10.M. Dwyer, G. Avrunin, and J. Corbett. Patterns in property specifications for finite-state verification. In Proceedings of the 21st International Conference on Software Engineering, May 1999. to appear.Google Scholar
- 11.M. Dwyer and D. Schmidt. Limiting state explosion with filter-based refinement. In Proceedings of the 1st International Workshop on Verification, Abstract Interpretation and Model Checking, Oct. 1997.Google Scholar
- 12.M. B. Dwyer and C. S. Păsăreanu. Filter-based model checking of partial systems. In Proceedings of the Sixth ACM SIGSOFT Symposium on Foundations of Software Engineering, Nov. 1998.Google Scholar
- 13.M. B. Dwyer, C. S. Păsăreanu, and J. C. Corbett. Translating Ada programs for model checking: A tutorial. Technical Report 98-12, Kansas State University, Department of Computing and Information Sciences, 1998.Google Scholar
- 14.J. Hatcliff, M. B. Dwyer, and S. Laubach. Staging static analysis using abstractionbased program specialization. In LNCS 1490. Principles of Declarative Programming 10th International Symposium, PLILP’98, Sept. 1998.Google Scholar
- 19.Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, 1991.Google Scholar
- 20.K. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.Google Scholar
- 21.G. Naumovich, L. Clarke, and L. Osterweil. Verification of communication protocols using data flow analysis. In Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, Oct. 1996.Google Scholar
- 22.A. Pnueli. In transition from global to modular temporal reasoning about programs. In K. Apt, editor, Logics and Models of Concurrent Systems, pages 123–144. Springer-Verlag, 1985.Google Scholar
- 23.P. Wolper. Specifying interesting properties of programs in propositional temporal logics. In Proceedings of the 13th ACM Symposium on Principles of Programming Languages, pages 184–193, St. Petersburg, Fla., Jan. 1986.Google Scholar