Abstract
We present the design, implementation and empirical evaluation of Bebop—a symbolic model checker for boolean programs. Bebop represents control flow explicitly, and sets of states implicitly using BDDs. By harnessing the inherent modularity in procedural abstraction and exploiting the locality of variable scoping, Bebop is able to model check boolean programs with several thousand lines of code, hundreds of procedures, and several thousand variables in a few minutes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alur, A., Grosu, R.: Modular refinement of hierarchic reactive modules. In: POPL 2000: Principles of Programming Languages. ACM Press, New York (2000)
Alur, R., Henzinger, T.A.: Reactive modules. In: LICS 1996: Logic in Computer Science, pp. 207–218. IEEE Computer Society Press, Los Alamitos (1996)
Alur, R., Henzinger, T.A., Mang, F.Y.C., Qadeer, S., Rajamani, S.K., Tasiran, S.: Mocha: Modularity in model checking. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 521–525. Springer, Heidelberg (1998)
Aho, A., Sethi, R., Ullman, J.: Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading (1986)
Bouajjani, A., Esparza, J., Maler, O.: Reachability analysis of push- down automata: Application to model-checking. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, pp. 135–150. Springer, Heidelberg (1997)
Bouajjani, A., Esparza, J., Maler, O.: Reachability analysis of push- down automata: Application to model-checking. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, pp. 135–150. Springer, Heidelberg (1997)
Ball, T., Rajamani, S.K.: Boolean programs: A model and process for software analysis. Technical Report MSR-TR-2000-14, Microsoft Re- search (February 2000)
Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers C-35(8), 677–691 (1986)
Cousot, P., Cousot, R.: Temporal abstract interpretation. In: POPL 2000: Principles of Programming Languages. ACM Press, New York (2000)
Bouajjani, A., Esparza, J., Maler, O.: Reachability analysis of push- down automata: Application to model-checking. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, pp. 135–150. Springer, Heidelberg (1997)
Dill, D.L.: The Murø Verification System. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 390–393. Springer, Heidelberg (1996)
Esparza, J., Hansel, D., Rossmanith, P., Schwoon, S.: Efficient algorithms for model checking pushdown systems. Technical Report TUM- I0002, SFB-Bericht 342/1/00 A, Technische Universitat Munchen, Institut fur Informatik (February 2000)
Finkel, A., Willems, B., Wolper, P.: A direct symbolic approach to model checking pushdown systems. In: INFINITY 1997: Verification of Infinite-state Systems (July 1997)
Hardin, R.H., Har’El, Z., Kurshan, R.P.: COSPAN. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 423–427. Springer, Heidelberg (1996)
Holzmann, G.J., Peled, D.A.: The State of SPIN. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 385–389. Springer, Heidelberg (1996)
Henzinger, T.A., Qadeer, S., Rajamani, S.K.: You assume, we gu- arantee: methodology and case studies. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 440–451. Springer, Heidelberg (1998)
Knoop, J., Steffen, B.: The interprocedural coincidence theorem. In: CC 1992: Compiler Construction, vol. 641, pp. 125–140. Springer, Heidelberg (1992)
Long, D.: Cmu bdd package. Carnegie Melon University (1993), http://emc.cmu.edu/pub
McMillan, K.L.: Symbolic Model Checking: An Approach to the State- Explosion Problem. Kluwer Academic Publishers, Dordrecht (1993)
McMillan, K.L.: A compositional rule for hardware design refinement. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 24–35. Springer, Heidelberg (1997)
Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: POPL 1995: Principles of Programming Languages, pp. 49–61. ACM Press, New York (1995)
Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis with applications to constant propagation. Theoretical Computer Science 167, 131–170 (1996)
Steffen, B., Burkart, O.: Model checking for context-free processes. In: Cleaveland, W.R. (ed.) CONCUR 1992. LNCS, vol. 630, pp. 123–137. Springer, Heidelberg (1992)
Schmidt, D.A.: Data flow analysis is model checking of abstract interpre- tation. In: POPL 1998: Principles of Programming Languages, pp. 38–48. ACM Press, New York (1998)
Somenzi, F.: Colorado university decision diagram package. University of Colorado, Boulder (1998), ftp://vlsi.colorado.edu/pub
Sharir, M., Pnueli, A.: Two approaches to interprocedural data dalow analysis. In: Program Flow Analysis: Theory and Applications, pp. 189–233. Prentice-Hall, Englewood Cliffs (1981)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ball, T., Rajamani, S.K. (2000). Bebop: A Symbolic Model Checker for Boolean Programs. In: Havelund, K., Penix, J., Visser, W. (eds) SPIN Model Checking and Software Verification. SPIN 2000. Lecture Notes in Computer Science, vol 1885. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722468_7
Download citation
DOI: https://doi.org/10.1007/10722468_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41030-0
Online ISBN: 978-3-540-45297-3
eBook Packages: Springer Book Archive