Skip to main content

Combinations of Model Checking and Theorem Proving

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1794))

Abstract

The two main approaches to the formal verification of reactive systems are based, respectively, on model checking (algorithmic verification) and theorem proving (deductive verification). These two approaches have complementary strengths and weaknesses, and their combination promises to enhance the capabilities of each. This paper surveys a number of methods for doing so. As is often the case, the combinations can be classified according to how tightly the different components are integrated, their range of application, and their degree of automation.

This research was supported in part by the National Science Foundation under grant CCR-98-04100, by the Defense Advanced Research Projects Agency under contract NAG2-892, by the Army under grants DAAH04-96-1-0122 and DAAG55-98-1-0471, and by the Army under contract DABT63-96-C-0096 (DARPA).

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alur, R., Henzinger, T.A. (eds.): CAV 1996. LNCS, vol. 1102. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  2. Barrett, C., Dill, D.L., Levitt, J.: Validity checking for combinations of theories with equality. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 187–201. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  3. Bensalem, S., Lakhnech, Y., Owre, S.: Computing abstractions of infinite state systems compositionally and automatically. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 319–331. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  4. Padget, J. (ed.): Collaboration between Human and Artificial Societies 1997. LNCS, vol. 1624. Springer, Heidelberg (1999)

    Google Scholar 

  5. Biere, A., Cimatti, A., Clarke, E.M., Fujita, M., Zhu, Y.: Symbolic model checking using SAT procedures instead of BDDs. In: Design Autom. Conf., DAC 1999 (1999)

    Google Scholar 

  6. Bjørner, N.S.: Integrating Decision Procedures for Temporal Verification. PhD thesis, Comp. Sci. Department, Stanford Univ. (November 1998)

    Google Scholar 

  7. Bjórner, N.S., Browne, A., Chang, E.S., Colon, M., Kapur, A., Manna, Z., Sipma, H.B., Uribe, T.E.: STeP: Deductive-algorithmic verification of reactive and real-time systems. In: [1], pp. 415–418

    Google Scholar 

  8. Bjørner, N.S., Browne, A., Manna, Z.: Automatic generation of invariants and intermediate assertions. Theoretical Comp. Sci. 173(1), 49–87 (1997)

    Article  Google Scholar 

  9. Bjørner, N.S., Stickel, M.E., Uribe, T.E.: A practical integration of first-order reasoning and decision procedures. In: McCune, W. (ed.) CADE 1997. LNCS, vol. 1249, pp. 101–115. Springer, Heidelberg (1997)

    Google Scholar 

  10. Bradfield, J.C., Stirling, C.: Local model checking for infinite state spaces. Theoretical Comp. Sci. 96(1), 157–174 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  11. Browne, A., Manna, Z., Sipma, H.B.: Generalized temporal verification diagrams. In: Thiagarajan, P.S. (ed.) FSTTCS 1995. LNCS, vol. 1026, pp. 484–498. Springer, Heidelberg (1995)

    Google Scholar 

  12. Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers C-35(8), 677–691 (1986)

    Article  Google Scholar 

  13. Bultan, T., Gerber, R., Pugh, W.: Symbolic model checking of infinite state systems using Presburger arithmetic. In: Grumberg [29], pp. 400–411

    Google Scholar 

  14. Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)

    Chapter  Google Scholar 

  15. Clarke, E.M., Fujita, M., Zhao, X.: Hybrid decision diagrams. Overcoming the limitations of MTBDDs and BMDs. In: IEEE/ACM Intl. Conf. on Computer-Aided Design, pp. 159–163 (November 1995)

    Google Scholar 

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

    Google Scholar 

  17. Cólon, M.A., Uribe, T.E.: Generating finite-state abstractions of reactive systems using decision procedures. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 293–304. Springer, Heidelberg (1998)

    Google Scholar 

  18. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th ACM Symp. Princ. of Prog. Lang, pp. 238–252. ACM Press, New York (1977)

    Google Scholar 

  19. Damm, W., Grumberg, O., Hungar, H.: What if model checking must be truly symbolic. In: Brinksma, E., Steffen, B., Cleaveland, W.R., Larsen, K.G., Margaria, T. (eds.) TACAS 1995. LNCS, vol. 1019, pp. 230–244. Springer, Heidelberg (1995)

    Google Scholar 

  20. Dams, D.R.: Abstract Interpretation and Partition Refinement for Model Checking. PhD thesis, Eindhoven Univ. of Technology (July 1996)

    Google Scholar 

  21. Das, S., Dill, D.L., Park, S.: Experience with predicate abstraction. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 160–171. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  22. de Alfaro, L., Manna, Z.: Temporal verification by diagram transformations. In: [1], pp. 287–299

    Google Scholar 

  23. Detlefs, D.L., Leino, K.R.M., Nelson, G., Saxe, J.B.: Extended static checking. Tech. Report 159, Compaq SRC (December 1998)

    Google Scholar 

  24. Dill, D.L.: The Murp verification system. In: [1], pp. 390–393

    Google Scholar 

  25. Dingel, J., Filkorn, T.: Model checking of infinite-state systems using data abstraction, assumption-commitment style reasoning and theorem proving. In: Wolper, P. (ed.) CAV 1995. LNCS, vol. 939, pp. 54–69. Springer, Heidelberg (1995)

    Google Scholar 

  26. Emerson, E.A., Namjoshi, K.S.: On model checking for non-deterministic infinite-state systems. In: Proc. 13th IEEE Symp. Logic in Comp. Sci., pp. 70–80. IEEE Press, Los Alamitos (1998)

    Google Scholar 

  27. Finkbeiner, B., Manna, Z., Sipma, H.B.: Deductive verification of modular systems. In: de Roever, W.-P., Langmaack, H., Pnueli, A. (eds.) COMPOS 1997. LNCS, vol. 1536, pp. 239–275. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  28. Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Grumberg [29], pp. 72–83

    Google Scholar 

  29. Grumberg, O. (ed.): CAV 1997. LNCS, vol. 1254. Springer, Heidelberg (1997)

    Google Scholar 

  30. Henzinger, T.A., Ho, P.: HYTECH: The Cornell hybrid technology tool. In: Antsaklis, P.J., Kohn, W., Nerode, A., Sastry, S.S. (eds.) HS 1994. LNCS, vol. 999, pp. 265–293. Springer, Heidelberg (1995)

    Google Scholar 

  31. Henzinger, T.A., Majumdar, R.: A classification of symbolic transition systems. In: Reichel, H., Tison, S. (eds.) STACS 2000. LNCS, vol. 1770, p. 13. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  32. Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice Hall, Engelwood Cliffs (1991)

    Google Scholar 

  33. Hungar, H.: Combining model checking and theorem proving to verify parallel processes. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 154–165. Springer, Heidelberg (1993)

    Google Scholar 

  34. Jackson, D., Damon, C.A.: Nitpick reference manual. Tech. report, Carnegie-Mellon Univ. (1996)

    Google Scholar 

  35. Jones, R.B., Skakkebask, J.U., Dill, D.L.: Reducing manual abstraction in formal verification of out-of-order execution. In: Gopalakrishnan, G.C., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 2–17. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  36. Kesten, Y., Maler, O., Marcus, M., Pnueli, A., Shahar, E.: Symbolic model checking with rich assertional languages. In: Grumberg [29], pp. 424–435

    Google Scholar 

  37. Kesten, Y., Pnueli, A.: Modularization and abstraction: The keys to practical formal verification. In: Brim, L., Gruska, J., Zlatuška, J. (eds.) MFCS 1998. LNCS, vol. 1450, pp. 54–71. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  38. Kurshan, R.P., Lamport, L.: Verification of a multiplier: 64 bits and beyond. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 166–179. Springer, Heidelberg (1993)

    Google Scholar 

  39. Loiseaux, C., Graf, S., Sifakis, J., Bouajjani, A., Bensalem, S.: Property preserving abstractions for the verification of concurrent systems. Formal Methods in System Design 6, 1–35 (1995)

    Article  Google Scholar 

  40. Lowry, M., Subramaniam, M.: Abstraction for analytic verification of concurrent software systems. In: Symp. on Abstraction, Reformulation, and Approx. (May 1998)

    Google Scholar 

  41. Manna, Z., Browne, A., Sipma, H.B., Uribe, T.E.: Visual abstractions for temporal verification. In: Haeberer, A.M. (ed.) AMAST 1998. LNCS, vol. 1548, pp. 28–41. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  42. Manna, Z., Pnueli, A.: Completing the temporal picture. Theoretical Comp. Sci. 83(1), 97–130 (1991)

    Article  MATH  Google Scholar 

  43. Manna, Z., Pnueli, A.: Temporal verification diagrams. In: Hagiya, M., Mitchell, J.C. (eds.) TACS 1994. LNCS, vol. 789, pp. 726–765. Springer, Heidelberg (1994)

    Google Scholar 

  44. Manna, Z., Pnueli, A.: Temporal Verification of Reactive Systems: Safety. Springer, New York (1995)

    Google Scholar 

  45. McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Pub., Dordrecht (1993)

    Google Scholar 

  46. Müller, O., Nipkow, T.: Combining model checking and deduction for I/O-automata. In: Brinksma, E., Steffen, B., Cleaveland, W.R., Larsen, K.G., Margaria, T. (eds.) TACAS 1995. LNCS, vol. 1019, pp. 1–12. Springer, Heidelberg (1995)

    Google Scholar 

  47. Owre, S., Rajan, S., Rushby, J.M., Shankar, N., Srivas, M.K.: PVS: Combining specification, proof checking and model checking. In: [1], pp. 411–414.

    Google Scholar 

  48. Pnueli, A.: The temporal logic of programs. In: Proc. 18th IEEE Symp. Found. of Comp. Sci., pp. 46–57. IEEE Computer Society Press, Los Alamitos (1977)

    Google Scholar 

  49. Pnueli, A., Shahar, E.: A platform for combining deductive with algorithmic verification. In: [1], pp. 184–195

    Google Scholar 

  50. Queille, J., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)

    Google Scholar 

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

    Google Scholar 

  52. Rushby, J.: Integrated formal verification: Using model checking with automated abstraction, invariant generation, and theorem proving. In: Dams, D.R., Gerth, R., Leue, S., Massink, M. (eds.) SPIN 1999. LNCS, vol. 1680, pp. 1–11. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  53. Rusu, V., Singerman, E.: On proving safety properties by integrating static analysis, theorem proving and abstraction. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, p. 178. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  54. Saidi, H., Shankar, N.: Abstract and model check while you prove. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 443–454. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  55. Schmidt, D.A., Steffen, B.: Program analysis as model checking of abstract interpretations. In: Proc. 5th Static Analysis Symp. LNCS. Springer, Heidelberg (1998)

    Google Scholar 

  56. Sipma, H.B.: Diagram-based Verification of Discrete, Real-time and Hybrid Systems. PhD thesis, Comp. Sci. Department, Stanford Univ. (February 1999)

    Google Scholar 

  57. Sipma, H.B., Uribe, T.E., Manna, Z.: Deductive model checking. Formal Methods in System Design 15(1), 49–74 (1999)

    Article  Google Scholar 

  58. Uribe, T.E.: Abstraction-based Deductive-Algorithmic Verification of Reactive Systems. PhD thesis, Comp. Sci. Department, Stanford Univ., Tech. Report STAN-CS-TR-99-1618 (December 1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Uribe, T.E. (2000). Combinations of Model Checking and Theorem Proving. In: Kirchner, H., Ringeissen, C. (eds) Frontiers of Combining Systems. FroCoS 2000. Lecture Notes in Computer Science(), vol 1794. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10720084_11

Download citation

  • DOI: https://doi.org/10.1007/10720084_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67281-4

  • Online ISBN: 978-3-540-46421-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics