Abstract
The total correctness of programs with mutually recursive procedures is significantly more complex than their partial correctness. Past methods of proving termination have suffered from being rigid, not general, non-intuitive, and ad hoc in structure, not suitable for mechanization. We have devised a new method for proving termination and mechanized it within an automatic tool called a Verification Condition Generator. This tool analyzes not only the program's syntax but also, uniquely, its procedure call graph, to produce verification conditions sufficient to ensure the program's total correctness. Diversion verification conditions reduce the labor involved in proving termination from infinite to finite. The VCG tool has itself been deeply embedded and proven sound within the HOL theorem prover with respect to the underlying structural operational semantics. Now proofs of total correctness of individual programs may be significantly automated with complete security.
Preview
Unable to display preview. Download preview PDF.
References
P. America and F. de Boer. Proving Total Correctness of Recursive Procedures. Information and Computation, 84(2):129–162, 1990.
K. R. Apt. Ten Years of Hoare logic: A Survey — Part 1. ACM TOPLAS, 3(4):431–483, 1981.
M. Gordon and T. Melham. Introduction to HOL, A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, Cambridge, 1993.
C. A. R. Hoare. Procedures and Parameters: an axiomatic approach. In: Proceedings of Symposium on Semantics of Algorithmic Languages, ed. E. Engeler, volume 188 of Lecture Notes in Mathematics, pages 102–116, 1971.
P. Homeier. Trustworthy Tools for Trustworthy Programs: A Mechanically Verified Verification Condition Generator for the Total Correctness of Procedures. Ph.D. Dissertation, UCLA Computer Science Department, 1995.
P. Homeier and D. Martin. A Mechanically Verified Verification Condition Generator. The Computer Journal, 38(2):131–141, 1995.
P. Homeier and D. Martin. Mechanical Verification of Mutually Recursive Procedures. In M. A. McRobbie and J. K. Slaney (eds.), Proceedings of the 13th International Conference on Automated Deduction (CADE-13), volume 1104 of Lecture Notes in Artificial Intelligence, pages 201–215, Springer-Verlag, 1996.
S. Igarashi, R. L. London, and C. Luckham. Automatic program verification: A logical basis and its implementation. Acta Informatica, 4:145–182, 1975.
T. Melham. A Package for Inductive Relation Definitions in HOL. In M. Archer, J. Joyce, K. Levitt, and Windley (eds.), Proceedings of the 1991 International Workshop on the HOL Theorem Proving System and its Applications, Davis, August 1991. IEEE Computer Society Press, pages 350–357, 1992.
P. Pandya and M. Joseph. A Structure-directed Total Correctness Proof Rule for Recursive Procedure Calls. The Computer Journal, 29(6):531–537, 1986.
S. Sokolowski. Total Correctness for Procedures, In J. Gruska (ed), Proceedings, 6th Symposium on the Mathematical Foundations of Computer Science, volume 53 of Lecture Notes in Computer Science, pages 475–483, Springer-Verlag, 1977.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Homeier, P.V., Martin, D.F. (1998). Mechanical verification of total correctness through diversion verification conditions. In: Grundy, J., Newey, M. (eds) Theorem Proving in Higher Order Logics. TPHOLs 1998. Lecture Notes in Computer Science, vol 1479. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055137
Download citation
DOI: https://doi.org/10.1007/BFb0055137
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64987-8
Online ISBN: 978-3-540-49801-8
eBook Packages: Springer Book Archive