Skip to main content

Metatheory of Verification Calculi in LEGO

To What Extent Does Syntax Matter?

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1657))

Abstract

Investigating soundness and completeness of verification calculi for imperative programming languages is a challenging task. Incorrect results have been published in the past. We take advantage of the computer-aided proof tool LEGO to interactively establish soundness and completeness of both Hoare Logic and the operation decomposition rules of the Vienna Development Method with respect to operational semantics. We deal with parameterless recursive procedures and local variables in the context of total correctness.

In this paper, we discuss in detail the role of representations for expressions, assertions and verification calculi. To what extent is syntax relevant? One needs to carefully select an appropriate level of detail in the formalisation in order to achieve one’s objectives.

An earlier version appeared as LFCS Technical Report ECS-LFCS-98-393.

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. Randy Pollack. The Theory of LEGO, A Proof Checker for the Extended Calculus of Constructions. PhD thesis, Laboratory for Foundations of Computer Science, University of Edinburgh, 1994. 133

    Google Scholar 

  2. Krzysztof R. Apt and Lambert G. L. T. Meertens. Completeness with finite systems of intermediate assertions for recursive program schemes. SIAM Journal on Computing, 9(4):665–671, November 1980. 133

    Article  MATH  MathSciNet  Google Scholar 

  3. C. A. R. Hoare. An axiomaticb asis for computer programming. Communications of the ACM, 12:576–580, 1969. 134, 140

    Article  MATH  Google Scholar 

  4. Stefan SokoLlowski. Total correctness for procedures. In J. Gruska, editor, Sixth Mathematical Foundations of Computer Science (Tatranská Lom nica), volume 53 of Lecture Notes in Computer Science, pages 475–483. Springer-Verlag, 1977. 134, 143

    Google Scholar 

  5. Krzysztof R. Apt. Ten years of Hoare’s logic: A survey-part I. ACM Transactions on Programming Languages and Systems, 3(4):431–483, October 1981. 134, 145

    Article  MATH  Google Scholar 

  6. Michael J. C. Gordon. Mechanizing programming logics in higher order logic. In G. Birtwhistle and P. A. Subrahmanyam, editors, Current Trends in Hardware Verification and Automated Theorem Proving (Banff, Alberta), number 15 in Workshops in Computing, pages 387–439. Springer-Verlag, 1989. 134, 138, 139, 142

    Google Scholar 

  7. Peter Vincent Homeier. Trustworthy Tools for Trustworthy Programs: A Mechanically Verified Verification Condition Generator for the Total Correctness of Procedures. PhD thesis, University of California, Los Angeles, 1995. 134, 135, 142

    Google Scholar 

  8. Tobias Nipkow. Winskel is (almost) right: Towards a mechanized semantics textbook. Formal Aspects of Computing, 10:171–186, 1998. 134, 138, 142

    Article  MATH  Google Scholar 

  9. Ian A. Mason. Hoare’s logicin the LF. Technical Report 32, Laboratory for Foundations of Computer Science, University of Edinburgh, June 1987. 135

    Google Scholar 

  10. Thomas Kleymann. Hoare Logic and VDM: Machine-checked soundness and completeness proofs. PhD thesis ECS-LFCS-98-392, Laboratory for Foundations of Computer Science, University of Edinburgh, September 1998. 136, 140, 141

    Google Scholar 

  11. Arnon Avron, Furio A. Honsell, and Ian A. Mason. Using typed lambda calculus to implement formal systems on a machine. Technical Report 31, Laboratory for Foundations of Computer Science, University of Edinburgh, 1987. 136

    Google Scholar 

  12. J. von Wright, J. Hekanaho, P. Luostarinen, and T. L ångbacka. Mechanizing some advanced refinement concepts. Formal Methods in System Design, 3:49–81, 1993. 136

    Article  MATH  Google Scholar 

  13. Peter V. Homeier and David F. Martin. Mechanical verification of mutually recursive procedures. In M. A. McRobbie and J. K. Slaney, editors, Automated Deduction-CADE-13, volume 1104 of Lecture Notes in Artificial Intelligence, pages 201–215, New Brunswick, NJ, USA, July/August 1996. Springer-Verlag. 13th International Conference on Automated Deduction. 136, 142

    Google Scholar 

  14. John C. Reynolds. Idealized Algol and its specification logic. In D. Néel, editor, Tools & Notions for Program Construction. Cambridge University Press, 1982. 136

    Google Scholar 

  15. Edmund Melson Clarke Jr. Programming language constructs for which it is impossible to obtain good Hoare axiom systems. Journal of the ACM, 26(1):129–147, January 1979. 137

    Article  MATH  Google Scholar 

  16. Patrick Cousot. Methods and logics for proving programs. In Jan van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, chapter 15, pages 841–993. Elsevier, 1990. 139

    Google Scholar 

  17. Robert W. Floyd. Assigning meanings to programs. In J. T. Schwartz, editor, Proc. Symp. in Applied Mathematics, volume 19, pages 19–32, 1967. 140

    Google Scholar 

  18. Z. Manna and A. Pnueli. Axiomatic approach to total correctness of programs. Acta Informatica, 3:243–263, 1974. 140

    Article  MATH  MathSciNet  Google Scholar 

  19. David Harel. Proving the correctness of regular deterministic programs: A unifying survey using dynamiclogic. Theoretical Computer Science, 12:61–81, 1980. 140

    Article  MATH  MathSciNet  Google Scholar 

  20. Krzysztof R. Apt and Ernst-Rüdiger Olderog. Verification of Sequential and Concurrent Programs. Texts and Monographs in Computer Science. Springer, New York, 1991. 140

    Google Scholar 

  21. Nachum Dershowitz and Zohar Manna. Proving termination with multiset orderings. Communications of the ACM, 22(8):465–475, August 1979. 140

    Article  MATH  MathSciNet  Google Scholar 

  22. Thomas Schreiber. Auxiliary variables and recursive procedures. In Michel Bidoit and Max Dauchet, editors, Proceedings of TAPSOFT’ 97, volume 1214 of Lecture Notes in Computer Science, pages 697–711, Lille, France, April 1997. Springer-Verlag. 141

    Chapter  Google Scholar 

  23. Thomas Kleymann. Hoare Logican d auxiliary variables. Technical Report ECSLFCS-98-399, Laboratory for Foundations of Computer Science, University of Edinburgh, October 1998. Submitted to Formal Aspects of Computing. 141

    Google Scholar 

  24. Michael Norrish. Derivation of verification rules for C from operational definitions. In Joakim von Wright, Jim Grundy, and John Harrison, editors, Supplementary Proceedings of the 9th International Conference on TheoremP roving in Higher Order Logics: TPHOLs’96, number 1 in TUCS General Publications, pages 69–75. Turku Centre for Computer Science, August 1996. 142

    Google Scholar 

  25. Stephen A. Cook. Soundness and completeness of an axiom system for program verification. SIAM Journal on Computing, 7(1):70–90, February 1978. 143

    Article  MATH  MathSciNet  Google Scholar 

  26. Jaco de Bakker. Mathematical Theory of Program Correctness. Prentice Hall, 1980. 143

    Google Scholar 

  27. Gerald Arthur Gorelick. A complete axiomatic system for proving assertions about recursive and non-recursive programs. Technical Report 75, Department of Computer Science, University of Toronto, 1975. 143

    Google Scholar 

  28. Kurt Sieber. A new Hoare-calculus for programs with recursive parameterless procedures. Technical Report A 81/02, Fachbereich 10-Informatik, Universität des Saarlandes, Saarbrücken, February 1981. 144

    Google Scholar 

  29. Ernst-Rüdiger Olderog. Sound and complete Hoare-like calculi based on copy rules. Acta Informatica, 16:161–197, 1981. 144

    Article  MATH  MathSciNet  Google Scholar 

  30. Martin Hofmann. Extensional concepts in intensional type theory. PhD thesis, Laboratory for Foundations of Computer Science, University of Edinburgh, 1995. 145

    Google Scholar 

  31. Zhaohui Luo. Computation and Reasoning: A Type Theory for Computer Science. Oxford University Press, 1994. 146

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kleymann, T. (1999). Metatheory of Verification Calculi in LEGO. In: Altenkirch, T., Reus, B., Naraschewski, W. (eds) Types for Proofs and Programs. TYPES 1998. Lecture Notes in Computer Science, vol 1657. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48167-2_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-48167-2_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66537-3

  • Online ISBN: 978-3-540-48167-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics