Skip to main content

Combining Model Checking and Deduction

  • Chapter
  • First Online:
Handbook of Model Checking

Abstract

There are two basic approaches to automated verification. In model checking, the system is viewed as a graph representing possible execution steps. Properties are established by exploring or traversing the graph structure. In deduction, both the system and its putative properties are represented by formulas in a logic, and the resulting proof obligations are discharged by decision procedures or by automated or semi-automated proof construction. Model checking sacrifices expressivity for greater automation, and with deduction it is vice versa. Newer techniques combine deductive and model-checking approaches to achieve greater scale, expressivity, and automation. We examine the logical foundations of the two approaches and explore their similarities, differences, and complementarities. The presentation is directed at students and researchers who are interested in understanding the research challenges at the intersection of deduction and model checking.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abdulla, P.A., Sistla, A.P., Talupur, M.: Model checking parameterized systems. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  2. Alur, R., Dill, D.L.: A theory of timed automata. Theor. Comput. Sci. 126(2), 183–235 (1994)

    Article  MathSciNet  Google Scholar 

  3. Andrews, P.B.: An Introduction to Mathematical Logic and Type Theory: To Truth Through Proof. Academic Press, Cambridge (1986)

    MATH  Google Scholar 

  4. Apt, K.R.: Ten years of Hoare’s logic: a survey—Part 1. Trans. Program. Lang. Syst. 3(4), 431–483 (1981)

    Article  Google Scholar 

  5. Arora, S., Barak, B.: Computational Complexity: A Modern Approach. Cambridge University Press, Cambridge (2009)

    Book  Google Scholar 

  6. Ball, T., Majumdar, R., Millstein, T., Rajamani, S.: Automatic predicate abstraction of C programs. In: Conf. on Programming Language Design and Implementation (PLDI), pp. 203–313. ACM, New York (2001)

    Google Scholar 

  7. Barrett, C.W., Tinelli, C.: Satisfiability modulo theories. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  8. Barwise, J.: First-order logic. In: Barwise, J. (ed.) Handbook of Mathematical Logic, Studies in Logic and the Foundations of Mathematics, vol. 90, pp. 5–46. North-Holland, Amsterdam (1978)

    Chapter  Google Scholar 

  9. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Springer, Heidelberg (2004). Coq home page: http://coq.inria.fr/

    Book  Google Scholar 

  10. Biere, A., Kroening, D.: SAT-based model checking. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  11. Blackburn, P., de Rijke, M., Venema, Y.: Modal Logic. Cambridge University Press, Cambridge (2002)

    MATH  Google Scholar 

  12. Bloem, R., Chatterjee, K., Jobstmann, B.: Graph games and reactive synthesis. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  13. Börger, E., Grädel, E., Gurevich, Y.: The Classical Decision Problem. Perspectives in Mathematical Logic. Springer, Heidelberg (1997)

    Book  Google Scholar 

  14. Bouyer, P., Fahrenberg, U., Larsen, K.G., Markey, N., Ouaknine, J., Worrell, J.: Model checking real-time systems. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  15. Bradfield, J., Walukiewicz, I.: The mu-calculus and model checking. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  16. Bradley, A.R.: SAT-based model checking without unrolling. In: Jhala, R., Schmidt, D.A. (eds.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 6538, pp. 70–87. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  17. Bradley, A.R.: Understanding IC3. In: Cimatti, A., Sebastiani, R. (eds.) Theory and Applications of Satisfiability Testing (SAT). LNCS, vol. 7317, pp. 1–14. Springer, Heidelberg (2012)

    Google Scholar 

  18. Bradley, A.R., Manna, Z.: The Calculus of Computation: Decision Procedures with Applications to Verification. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  19. Bryant, R.E.: Binary decision diagrams. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  20. Buss, S.R.: The Boolean formula value problem is in ALOGTIME. In: ACM Symposium on Theory of Computing (STOC), pp. 123–131. ACM, New York (1987)

    Google Scholar 

  21. Chaki, S., Gurfinkel, A.: BDD-based symbolic model checking. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    MATH  Google Scholar 

  22. Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)

    MATH  Google Scholar 

  23. Church, A.: A formulation of the simple theory of types. J. Symb. Log. 5, 56–68 (1940)

    Article  MathSciNet  Google Scholar 

  24. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    Google Scholar 

  25. Constable, R.L., Allen, S.F., Bromley, H.M., Cleaveland, W.R., Cremer, J.F., Harper, R.W., Howe, D.J., Knoblock, T.B., Mendler, N.P., Panangaden, P., Sasaki, J.T., Smith, S.F.: Implementing Mathematics with the Nuprl Proof Development System. Prentice Hall, New York (1986). Nuprl home page: http://www.nuprl.org

    Google Scholar 

  26. Cook, S.A.: Soundness and completeness of an axiom system for program verification. SIAM J. Comput. 7(1), 70–90 (1978)

    Article  MathSciNet  Google Scholar 

  27. Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Păsăreanu, C.S., Robby, Zheng, H.: Bandera: extracting finite-state models from Java source code. In: International Conference on Software Engineering, pp. 439–448 (2000)

    Google Scholar 

  28. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: ACM Symposium on Principles of Programming Languages, pp. 238–252. ACM, New York (1977)

    Google Scholar 

  29. Craig, W.: Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. J. Symb. Log. 22(3), 269–285 (1957)

    Article  MathSciNet  Google Scholar 

  30. Dams, D., Grumberg, O.: Abstraction and abstraction refinement. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  31. Doyen, L., Frehse, G., Pappas, G.J., Platzer, A.: Verification of hybrid systems. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  32. Emerson, E.A.: Temporal and modal logics. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science Volume B: Formal Models and Semantics, pp. 997–1072. MIT Press/Elsevier, Cambridge/Amsterdam (1990)

    Google Scholar 

  33. Emerson, E.A., Clarke, E.M.: Using branching time temporal logic to synthesize synchronization skeletons. Sci. Comput. Program. 2(3), 241–266 (1982)

    Article  Google Scholar 

  34. Floyd, R.W.: Assigning meanings to programs. In: Mathematical Aspects of Computer Science, Proceedings of Symposia in Applied Mathematics, vol. XIX, pp. 19–32. AMS, Providence (1967)

    Chapter  Google Scholar 

  35. Ganzinger, H., Rueß, H., Shankar, N.: Modularity and refinement in inference systems. Tech. Rep. CSL-SRI-04-02, SRI International, Computer Science Laboratory (2004). Revised, August 2004

    Google Scholar 

  36. Giannakopoulou, D., Namjoshi, K.S., Păsăreanu, C.S.: Compositional reasoning. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  37. Godefroid, P., Sen, K.: Combining model checking and testing. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  38. Gordon, M.J.C., Melham, T.F. (eds.): Introduction to HOL: A Theorem Proving Environment for Higher-Order Logic. Cambridge University Press, Cambridge (1993). HOL home page: http://www.cl.cam.ac.uk/Research/HVG/HOL/

    MATH  Google Scholar 

  39. Harel, D.: First Order Dynamic Logic. LNCS, vol. 68. Springer, Heidelberg (1979)

    Book  Google Scholar 

  40. Hennessy, M., Milner, R.: Algebraic laws for nondeterminism and concurrency. J. ACM 32(1), 137–161 (1985)

    Article  MathSciNet  Google Scholar 

  41. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–583 (1969)

    Article  Google Scholar 

  42. Holzmann, G.: Explicit-state model checking. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  43. Immerman, N.: Descriptive Complexity. Springer, Heidelberg (1999)

    Book  Google Scholar 

  44. Jhala, R., Podelski, A., Rybalchenko, A.: Predicate abstraction for program verification. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  45. Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE Ann. Hist. Comput. 25(2), 26–49 (2003)

    Article  MathSciNet  Google Scholar 

  46. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Advances in Formal Methods, vol. 3. Kluwer Academic, Norwell (2000)

    Google Scholar 

  47. Lahiri, S., Nieuwenhuis, R., Oliveras, A.: SMT techniques for predicate abstraction. In: Computer-Aided Verification, CAV. LNCS, vol. 4144, pp. 424–437. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  48. Leivant, D.: Higher order logic. In: Gabbay, D.M., Hogger, C.J., Robinson, J.A. (eds.) Handbook of Logic in Artificial Intelligence and Logic Programming, Volume 2: Deduction Methodologies, pp. 229–321. Clarendon, Oxford (1994)

    Google Scholar 

  49. Li, Y., Albarghouthi, A., Kincaid, Z., Gurfinkel, A., Chechik, M.: Symbolic optimization with SMT solvers. In: Jagannathan, S., Sewell, P. (eds.) ACM Symposium on Principles of Programming Languages, pp. 607–618. ACM, New York (2014)

    Google Scholar 

  50. Majumdar, R., Raskin, J.F.: Symbolic model checking in non-Boolean domains. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  51. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems, Volume 1: Specification. Springer, Heidelberg (1992)

    Book  Google Scholar 

  52. Marques-Silva, J., Malik, S.: Propositional SAT solving. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  53. McCarthy, J.: A basis for a mathematical theory of computation. In: Braffort, P., Hershberg, D. (eds.) Computer Programming and Formal Systems. North-Holland, Amsterdam (1963)

    Google Scholar 

  54. McMillan, K.L.: Interpolation and model checking. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  55. Mints, G.E.: A short introduction to modal logic. No. 30 in CSLI lecture notes. Center for the Study of Language and Information (1992)

    Google Scholar 

  56. Morris, F.L., Jones, C.B.: An early program proof by Alan Turing. IEEE Ann. Hist. Comput. 6(2), 139–143 (1984)

    Article  MathSciNet  Google Scholar 

  57. de Moura, L., Owre, S., Rueß, H., Rushby, J., Shankar, N., Sorea, M., Tiwari, A.: SAL 2. In: Computer-Aided Verification, CAV. LNCS, pp. 496–500. Springer, Heidelberg (2004). SAL home page: http://sal.csl.sri.com/

    Chapter  Google Scholar 

  58. Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. Trans. Program. Lang. Syst. 1(2), 245–257 (1979)

    Article  Google Scholar 

  59. von Neumann, J.: John von Neumann, Collected Works, vol. V. Pergamon, Oxford (1961)

    Google Scholar 

  60. Neumann, J.v., Goldstine, H.H.: Planning and Coding of Problems for an Electronic Computing Instrument. Institute for Advanced Study, Princeton (1948)

    Google Scholar 

  61. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  62. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer, Heidelberg (2002). Isabelle home page: http://isabelle.in.tum.de/

    Book  Google Scholar 

  63. Owre, S., Rushby, J., Shankar, N., von Henke, F.: Formal verification for fault-tolerant architectures: prolegomena to the design of PVS. Trans. Softw. Eng. 21(2), 107–125 (1995). PVS home page: http://pvs.csl.sri.com

    Article  Google Scholar 

  64. Park, D.: Finiteness is mu-ineffable. Theor. Comput. Sci. 3(2), 173–181 (1976)

    Article  Google Scholar 

  65. Peterson, G.L.: Myths about the mutual exclusion problem. Inf. Process. Lett. 12(3), 115–116 (1981)

    Article  Google Scholar 

  66. Pike, L., Brown, G.M.: Easy parameterized verification of biphase mark and 8N1 decoders. In: Hermanns, H., Palsberg, J. (eds.) Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). LNCS, vol. 3920, pp. 58–72. Springer, Heidelberg (2006)

    Google Scholar 

  67. Piterman, N., Pnueli, A.: Temporal logic and fair discrete systems. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)

    Google Scholar 

  68. Pratt, V.R.: Semantical considerations on Floyd-Hoare logic. In: Annual Symposium on Foundations of Computer Science, pp. 109–121 (1976)

    Google Scholar 

  69. Queille, J.P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Proceedings of the 5th International Symposium on Programming. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)

    Chapter  Google Scholar 

  70. Rajan, S., Shankar, N., Srivas, M.: An integration of model-checking with automated proof checking. In: Wolper, P. (ed.) Computer-Aided Verification, CAV. LNCS, vol. 939, pp. 84–97. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  71. Reps, T., Sagiv, M., Yorsh, G.: Symbolic implementation of the best transformer. In: Steffen, B., Levi, G. (eds.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 2937, pp. 252–266. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  72. Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Annual IEEE Symposium on Logic in Computer Science, pp. 55–74 (2002)

    Chapter  Google Scholar 

  73. Rondon, P.M., Kawaguchi, M., Jhala, R.: Liquid types. In: Gupta, R., Amarasinghe, S.P. (eds.) Conf. on Programming Language Design and Implementation (PLDI), pp. 159–169. ACM, New York (2008). doi:10.1145/1375581.1375602

    Chapter  Google Scholar 

  74. Rushby, J.M., von Henke, F., Owre, S.: An introduction to formal specification and verification using EHDM. Tech. Rep. SRI-CSL-91-2, Computer Science Laboratory, SRI International (1991)

    Google Scholar 

  75. Saïdi, H., Graf, S.: Construction of abstract state graphs with PVS. In: Computer-Aided Verification, CAV. LNCS, pp. 72–83. Springer, Heidelberg (1997)

    Google Scholar 

  76. Saïdi, H., Shankar, N.: Abstract and model check while you prove. In: Computer-Aided Verification, CAV. LNCS, pp. 443–454. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  77. Sankaranarayanan, S., Sipma, H.B., Manna, Z.: Scalable analysis of linear systems using mathematical programming. In: Cousot, R. (ed.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 3385, pp. 25–41. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  78. Shankar, N.: Automated deduction for verification. ACM Comput. Surv. 41(4), 20:1–20:56 (2009). doi:10.1145/1592434.1592437

    Article  Google Scholar 

  79. Turing, A.M.: Checking a large routine. In: Ince, D.C. (ed.) Collected Works of A.M. Turing: Mechanical Intelligence, pp. 129–131. North-Holland, Amsterdam (1992). Originally presented at EDSAC Inaugural Conference on High Speed Automatic Calculating Machines, 24 June, 1949

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Natarajan Shankar .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Shankar, N. (2018). Combining Model Checking and Deduction. 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_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10575-8_20

  • 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)

Publish with us

Policies and ethics