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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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
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
C. A. R. Hoare. An axiomaticb asis for computer programming. Communications of the ACM, 12:576–580, 1969. 134, 140
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
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
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
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
Tobias Nipkow. Winskel is (almost) right: Towards a mechanized semantics textbook. Formal Aspects of Computing, 10:171–186, 1998. 134, 138, 142
Ian A. Mason. Hoare’s logicin the LF. Technical Report 32, Laboratory for Foundations of Computer Science, University of Edinburgh, June 1987. 135
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
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
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
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
John C. Reynolds. Idealized Algol and its specification logic. In D. Néel, editor, Tools & Notions for Program Construction. Cambridge University Press, 1982. 136
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
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
Robert W. Floyd. Assigning meanings to programs. In J. T. Schwartz, editor, Proc. Symp. in Applied Mathematics, volume 19, pages 19–32, 1967. 140
Z. Manna and A. Pnueli. Axiomatic approach to total correctness of programs. Acta Informatica, 3:243–263, 1974. 140
David Harel. Proving the correctness of regular deterministic programs: A unifying survey using dynamiclogic. Theoretical Computer Science, 12:61–81, 1980. 140
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
Nachum Dershowitz and Zohar Manna. Proving termination with multiset orderings. Communications of the ACM, 22(8):465–475, August 1979. 140
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
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
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
Stephen A. Cook. Soundness and completeness of an axiom system for program verification. SIAM Journal on Computing, 7(1):70–90, February 1978. 143
Jaco de Bakker. Mathematical Theory of Program Correctness. Prentice Hall, 1980. 143
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
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
Ernst-Rüdiger Olderog. Sound and complete Hoare-like calculi based on copy rules. Acta Informatica, 16:161–197, 1981. 144
Martin Hofmann. Extensional concepts in intensional type theory. PhD thesis, Laboratory for Foundations of Computer Science, University of Edinburgh, 1995. 145
Zhaohui Luo. Computation and Reasoning: A Type Theory for Computer Science. Oxford University Press, 1994. 146
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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