Abstract
Symbolic model checking based on Binary Decision Diagrams (BDDs) is one of the most celebrated breakthroughs in the area of formal verification. It was originally proposed in the context of hardware model checking, and advanced the state of the art in model-checking capability by several orders of magnitude in terms of the sizes of state spaces that could be explored successfully. More recently, it has been extended to the domain of software verification as well, and several BDD-based model checkers for Boolean programs and push-down systems have been developed. In this chapter, we summarize some of the key concepts and techniques that have emerged in this story of successful practical verification.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Akers, S.B.: Binary decision diagrams. IEEE Trans. Comput. 27(6), 509–516 (1978)
Aziz, A., Tasiran, S., Brayton, R.K.: BDD variable ordering for interacting finite state machines. In: Proceedings of the 31st ACM IEEE Design Automation Conference (DAC ’94), pp. 283–288. ACM, San Diego (1994)
Ball, T., Rajamani, S.K.: Bebop: a path-sensitive interprocedural dataflow engine. In: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE ’01), pp. 97–103. ACM, Snowbird (2001)
Biere, A., Cimatti, A., Clarke, E.M., Strichman, O., Zhu, Y.: Bounded Model Checking. Academic Press, San Diego (2003)
Boute, R.T.: The binary decision machine as programmable controller. Euromicro Newsl. 2(1), 16–22 (1976). doi:10.1016/0303-1268(76)90033-X
Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)
Burch, J., Clarke, E.M., Long, D.E., McMillan, K., Dill, D.L.: Symbolic model checking for sequential circuit verification. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 13(4), 401–424 (1994)
Burch, J., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: \(10^{20}\) states and beyond. In: Proceedings of the 5th Annual IEEE Symposium on Logic in Computer Science (LICS ’90), pp. 1–33. IEEE, Washington (1990)
Cabodi, G., Camurati, P., Quer, S.: Improving symbolic traversals by means of activity profiles. In: Proceedings of the 36th ACM IEEE Design Automation Conference (DAC ’99), pp. 306–311. ACM, New Orleans (1999)
Cabodi, G., Camurati, P., Quer, S.: Improving the efficiency of BDD-based operators by means of partitioning. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 18(5), 545–556 (1999)
Cabodi, G., Loiacono, C., Palena, M., Pasini, P., Patti, D., Quer, S., Vendraminetto, D., Biere, A., Heljanko, K.: Hardware model checking competition 2014: an analysis and comparison of model checkers and benchmarks. J. Satisf. Boolean Model. Comput. 9, 135–172 (2015)
Cho, H., Hachtel, G.D., Macii, E., Plessier, B., Somenzi, F.: Algorithms for approximate FSM traversal based on state space decomposition. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 15(12), 1465–1478 (1996)
Cimatti, A., Clarke, E.M., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NuSMV 2: an opensource tool for symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) Proceedings of the 14th International Conference on Computer Aided Verification (CAV ’02). LNCS, vol. 2404, pp. 359–364. Springer, Copenhagen (2002)
Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Program. Lang. Syst. 8(2), 244–263 (1986)
Clarke, E.M., Grumberg, O., Hamaguchi, K.: Another look at LTL model checking. Form. Methods Syst. Des. 10(1), 47–71 (1997)
Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2000)
Coudert, O., Berthet, C., Madre, J.C.: Verification of synchronous sequential machines based on symbolic execution. In: Sifakis, J. (ed.) Automatic Verification Methods for Finite State Systems. LNCS, vol. 407, pp. 365–373. Springer, Grenoble (1989)
Hojati, R., Krishnan, S.C., Brayton, R.K.: Early quantification and partitioned transition relations. In: Proceedings of the 1996 International Conference on Computer Design: VLSI in Computers and Processors (ICCD ’96), pp. 12–19. IEEE, Austin (1996)
Lee, C.Y.: Representation of switching circuits by binary-decision programs. Bell Labs Tech. J. 38(4), 985–999 (1959)
Lichtenstein, O., Pnueli, A.: Checking that finite-state concurrent programs satisfy their linear specification. In: Proceedings of the 12th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’85), pp. 97–107. ACM, New Orleans (1985)
McMillan, K.L.: Interpolants and symbolic model checking. In: Cook, B., Podelski, A. (eds.) Proceedings of the 8th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI ’07), Springer-Verlag, Nice, France, January 14–16, 2007. LNCS, vol. 4349, pp. 89–90. Springer, New York (2007)
Minato, S.: Zero-suppressed BDDs and their applications. Int. J. Softw. Tools Technol. Transf. 3(2), 156–170 (2001)
Moon, I.H., Hachtel, G.D., Somenzi, F.: Border-block triangular form and conjunction schedule in image computation. In: Hunt, W.A. Jr., Johnson, S.D. (eds.) Proceedings of the 3rd International Conference on Formal Methods in Computer-Aided Design (FMCAD ’00). LNCS, vol. 1954, pp. 73–90. Springer, Austin (2000)
Panda, S., Somenzi, F., Plessier, B.: Symmetry detection and dynamic variable ordering of decision diagrams. In: Proceedings of the 1994 International Conference on Computer-Aided Design (ICCAD ’94), pp. 628–631. IEEE, San Jose (1994)
Park, D.M.R.: Finiteness is mu-ineffable. Theor. Comput. Sci. 3(2), 173–181 (1976)
Ranjan, R.K., Aziz, A., Brayton, R.K., Plessier, B., Pixley, C.: Efficient BDD algorithms for FSM synthesis and verification. In: Proceedings of the IEEE/ACM International Workshop on Logic Synthesis (IWLS’95), Lake Tahoe, CA (1995)
Ravi, K., Somenzi, F.: High-density reachability analysis. In: Proceedings of the 1995 International Conference on Computer-Aided Design (ICCAD ’95), pp. 154–158. IEEE, San Jose (1995)
Rozier, K.Y.: Linear temporal logic symbolic model checking. Comput. Sci. Rev. 5(2), 163–203 (2011)
Rudell, R.: Dynamic variable ordering for ordered binary decision diagrams. In: Lightner, M.R., Jess, J.A.G. (eds.) Proceedings of the 1993 International Conference on Computer-Aided Design (ICCAD ’93), pp. 42–47. IEEE, Santa Clara (1993)
Shannon, C.E.: A symbolic analysis of relay and switching circuits. Trans. Am. Inst. Electr. Eng. 57(12), 713–723 (1938)
Somenzi, F.: CUDD: CU decision diagram package. http://vlsi.colorado.edu/~fabio/CUDD/
Touati, H.J., Savoj, H., Lin, B., Brayton, R.K., Sangiovanni-Vincentelli, A.L.: Implicit state enumeration of finite state machines using BDDs. In: Proceedings of the 1990 International Conference on Computer-Aided Design (ICCAD ’90), pp. 130–133. IEEE, Santa Clara (1990)
Xu, J., Williams, M., Mony, H., Baumgartner, J.: Enhanced reachability analysis via automated dynamic netlist-based hint generation. In: Proceedings of the 12th International Conference on Formal Methods in Computer-Aided Design (FMCAD ’12), pp. 157–164. IEEE, Cambridge (2012)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this chapter
Cite this chapter
Chaki, S., Gurfinkel, A. (2018). BDD-Based Symbolic Model Checking. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds) Handbook of Model Checking. Springer, Cham. https://doi.org/10.1007/978-3-319-10575-8_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-10575-8_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10574-1
Online ISBN: 978-3-319-10575-8
eBook Packages: Computer ScienceComputer Science (R0)