Skip to main content

Machine-Assisted Verification Using Theorem Proving and Model Checking

  • Conference paper

Part of the book series: NATO ASI Series ((NATO ASI F,volume 158))

Abstract

Theorem proving and model checking are complementary approaches to the verification of hardware designs and software algorithms. In theorem proving, the verification task is one of showing that the formal description of the program implies the formal statement of a putative program property, while model checking demonstrates that the program is a model that satisfies the putative property. Theorem proving is completely general but typically requires significant human guidance, whereas model checking though restricted to a limited range of properties of small (essentially) finitestate systems, is largely automatic. This paper is a tutorial on the combined use of theorem proving and model checking as mechanized in the PVS specification and verification environment.

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   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.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. Martin Abadi and Leslie Lamport. The existence of refinement mappings. Theoretical Computer Science, 82(2):253–284, May 1991.

    Article  MathSciNet  MATH  Google Scholar 

  2. R. Alur, C. Courcoubetis, N. Halbwachs, T. A. Henzinger, P.-H. Ho, X. Nicollin, A. Olivero, J. Sifakis, and S. Yovine. The algorithmic analysis of hybrid systems. Theoretical Computer Science, 138(1):3–34, 6 February 1995.

    Article  MathSciNet  MATH  Google Scholar 

  3. Rajeev Alur, Costas Courcoubetis, and David Dill. Model-checking in dense real-time. Information and Computation, 104(1):2–34, May 1993.

    Article  MathSciNet  MATH  Google Scholar 

  4. S. Bensalem, Y. Lakhnech, and H. Saidi. Powerful techniques for the automatic generation of invariants. In Rajeev Alur and Tom Henzinger, editors, Computer-Aided Verification96, Lecture Notes in Computer Science, New Brunswick, NJ, July 1996. Springer Verlag. To appear.

    Google Scholar 

  5. Nikolaj Bjørner, Anca Browne, and Zohar Manna. Automatic generation of invariants and intermediate assertions. In Ugo Montanari and Francesca Rossi, editors, Principles and Practice of Constraint Programming - CP ’95, volume 976 of Lecture Notes in Computer Science, Cassis, France, 1995. Springer Verlag.

    Google Scholar 

  6. K. S. Brace, R. L. Rudell, and R. E. Bryant. Efficient implementation of a BDD package. In Proc. of the 27th ACM/IEEE Design Automation Conference, pages 40-45, 1990.

    Google Scholar 

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

    Article  Google Scholar 

  8. Randal E. Bryant. Symbolic boolean manipulation with ordered binarydecision diagrams. ACM Computing Surveys, 24(3):293–318, September 1992.

    Article  Google Scholar 

  9. J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic model checking: 1020 states and beyond. Information and Computation, 98(2):142–170, June 1992.

    Article  MathSciNet  MATH  Google Scholar 

  10. K. Mani Chandy and Jayadev Misra. Parallel Program Design: A Foundation. Addison-Wesley, Reading, MA, 1988.

    MATH  Google Scholar 

  11. E. Clarke, O. Grumberg, and D. Long. Verification tools for finite-state concurrent systems, pages 124-175.

    Google Scholar 

  12. E. M. Clarke and O. Grumberg. Research on automatic verication of finite state concurrent systems. In Annual Review of Computer Science, pages 269-290. Annual Reviews, Inc., 1987.

    Google Scholar 

  13. Costas Courcoubetis, editor. Computer-Aided Verification, CAV J93, volume 697 of Lecture Notes in Computer Science, Elounda, Greece, June/July 1993. Springer-Verlag.

    Google Scholar 

  14. David Cyrluk. Inverting the abstraction mapping: A methodology for hardware verification. In Srivas and Camilleri [33], pages 172-186.

    Google Scholar 

  15. E.A. Emerson and C.L Lei. Efficient model checking in fragments of the propositional mu-calculus. In Proceedings of the 10th Symposium on Principles of Programming Languages, pages 84–96, New Orleans, LA, January 1985. Association for Computing Machinery.

    Google Scholar 

  16. M.J.C. Gordon and T.F. Melham, editors. Introduction to HOL: A Theorem Proving Environment for Higher-Order Logic. Cambridge University Press, Cambridge, UK, 1993.

    MATH  Google Scholar 

  17. Michael J. C. Gordon. Mechanizing programming logics in higher-order logic. In G. Birtwistle and P.A. Subrahmanyam, editors, Current Trends in Hardware Verification and Theorem Proving, pages 387–439, New York, NY, 1989. Springer-Verlag.

    Chapter  Google Scholar 

  18. Jozef Hooman. Correctness of real time systems by construction. In H. Langmaack, W.-P. de Roever, and J. Vytopil, editors, Formal Techniques in Real-Time and Fault-Tolerant Systems, volume 863 of Lecture Notes in Computer Science, pages 19–40, Liibeck, Germany, September 1994. Springer-Verlag.

    Google Scholar 

  19. G. L. J. M. Janssen. ROBDD Software. Department of Electrical Engineering, Eindhoven University of Technology, October 1993.

    Google Scholar 

  20. Dexter Kozen. Results on the propositional/i-calculus. Theoretical Computer Science, 27:333–354, 1983.

    Article  MathSciNet  MATH  Google Scholar 

  21. Leslie Lamport. The temporal logic of actions. ACM TOP LAS, 16(3):872–923, May 1994.

    Article  Google Scholar 

  22. Patrick Lincoln and John Rushby. Formal verification of an algorithm for interactive consistency under a hybrid fault model. In Courcoubetis [13], pages 292-304.

    Google Scholar 

  23. Patrick Lincoln and John Rushby. Formal verification of an interactive consistency algorithm for the Draper FTP architecture under a hybrid fault model. In COMPASS ’94 (Proceedings of the Ninth Annual Conference on Computer Assurance), pages 107-120, Gaithersburg, MD, June 1994. IEEE Washington Section.

    Google Scholar 

  24. Zohar Manna and Amir Pnueli. Temporal Verification of Reactive Systems, Volume 2: Safety. Springer Verlag, New York, NY, 1995.

    Book  Google Scholar 

  25. Steven P. Miller and Mandayam Srivas. Formal verification of the AAMP5 microprocessor: A case study in the industrial use of formal methods. In WIFT ’95: Workshop on Industrial-Strength Formal Specification Techniques, pages 2–16, Boca Raton, FL, 1995. IEEE Computer Society.

    Chapter  Google Scholar 

  26. Paul S. Miner and James F. Leathrum, Jr. Verification of IEEE compliant subtractive division algorithms. In Srivas and Camilleri [33], pages 64-78.

    Google Scholar 

  27. S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In Deepak Kapur, editor, 11th International Conference on Automated Deduction (CADE) volume 607 of Lecture Notes in Artificial Intelligence, pages 748–752, Saratoga, NY, June 1992. Springer-Verlag.

    Google Scholar 

  28. Sam Owre, John Rushby, Natarajan Shankar, and Friedrich von Henke. Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software Engineering, 21(2):107–125, February 1995.

    Article  Google Scholar 

  29. David Park. Finiteness is mu-ineffable. Theoretical Computer Science, 3:173–181, 19.

    Google Scholar 

  30. G. L. Peterson. Myths about the mutual exclusion problem. Information Processing Letters, 12(3):115–116, June 1981.

    Article  MATH  Google Scholar 

  31. H. Ruefi, N. Shankar, and M. K. Srivas. Modular verification of SRT division. In Rajeev Alur and Thomas A. Henzinger, editors, Computer-Aided Verification, CAV ’96, volume 1102 of Lecture Notes in Computer Science, pages 123–134, New Brunswick, NJ, July/August 1996. Springer-Verlag.

    Google Scholar 

  32. Natarajan Shankar. Verification of real-time systems using PVS. In Courcoubetis [13], pages 280-291.

    Google Scholar 

  33. Mandayam Srivas and Albert Camilleri, editors. Formal Methods in Computer-Aided Design (FMCAD ’96), volume 1166 of Lecture Notes in Computer Science, Palo Alto, CA, November 1996. Springer-Verlag.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Shankar, N. (1997). Machine-Assisted Verification Using Theorem Proving and Model Checking. In: Broy, M., Schieder, B. (eds) Mathematical Methods in Program Development. NATO ASI Series, vol 158. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-60858-2_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-60858-2_26

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-64588-4

  • Online ISBN: 978-3-642-60858-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics