Abstract
This paper describes a system to support reasoning about lazy functional programs. The system is based on a combination of a deep embedding of the language in HOL with a set of proof tools to raise the level of interaction with the theorem prover. This approach allows metatheoretic reasoning about the semantics and reasoning about undefined programs while still supporting practical reasoning about programs in the language.
Preview
Unable to display preview. Download preview PDF.
References
Samson Abramsky. The Lazy Lambda Calculus. In David Turner, editor, Research Topics in Functional Programming, pages 65–116. Addison-Wesley, 1990.
Richard Boulton, Andrew Gordon, Mike Gordon, John Harrison, John Herbert, and John Van Tassel. Experience with embedding hardware description languages in HOL. In V. Stavridou, T. F. Melham, and R. T. Boute, editors, Theorem Provers in Circuit Design: Theory, Practice and Experience: Proceedings of the IFIP WG10.2 International Conference, Nijmegen, pages 129–156. North-Holland, June 1992.
A. Cant and M.A. Ozols. A verification environment for ML programs. In Proceedings of the ACM SIGPLAN Workshop on ML and its Applications, San Francisco, California, June 1992.
Graham Collins. Supporting Reasoning about Functional Programs: An Operational Approach. In 1995 Glasgow Workshop on Functional Programming, Electroninc Workshops in Computer Science. Springer-Verlag, 1996.
Graham Collins and Donald Syme. A Theory of Finite Maps. In E. Thomas Schubert, Phillip J. Windley, and Hames Alves-Foss, editors, Higher Order Logic Theorem Proving and its Applications, volume 971 of Lecture Notes in Computer Science, pages 122–137. Springer-Verlag, 1995.
Andrew D. Gordon. Bisimilarity as a Theory of Functional Programming. Technical Report NS-95-3, Basic Research in Computer Science, University of Aarhus, July 1995.
Andrew D. Gordon. A Tutorial on Co-induction and Functional Programming. In 1994 Glasgow Workshop on Functional Programming, Workshops in Computer Science, pages 78–95. Springer-Verlag, 1995.
M. J. C. Gordon and T. F. Melham, editors. Introduction to HOL: A theorem proving environment for higher order logic. Cambridge University Press, 1993.
John Harrison. Inductive definitions: automation and application. In E. Thomas Schubert, Phillip J. Windley, and Hames Alves-Foss, editors, Higher Order Logic Theorem Proving and its Applications, volume 971 of Lecture Notes in Computer Science, pages 200–213. Springer-Verlag, 1995.
Savi Maharaj and Elsa Gunter. Studying the ML Module System in HOL. In Tom Melham and Juanito Camilleri, editors, Higher Order Logic Theorem Proving and its Applications, volume 859 of Lecture Notes in Computer Science, pages 346–361. Springer-Verlag, September 1994.
Tom F. Melham. A Package for Inductive Relation Definitions in HOL. In M. Archer, J. J. Joyce, K. N. Levitt, and P. J. Windley, editors, Proceedings of the 1991 International Workshop on the HOL Theorem Proving System and its Applications, Davis, August 1992, pages 350–357. IEEE Computer Society Press, 1992.
Donald Syme. Reasoning with the Formal Definition of Standard ML in HOL. In Higher Order Logic Theorem Proving and Its Applications, volume 780 of Lecture Notes in Computer Science, pages 43–60. Springer-Verlag, 1993.
Myra VanInwegen and Elsa Gunter. HOL-ML. In J. J. Joyce and C. J. H. Seger, editors, Higher Order Logic Theorem Proving and its Applications, volume 780 of Lecture Notes in Computer Science, pages 61–74. Springer-Verlag, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Collins, G. (1996). A proof tool for reasoning about functional programs. In: Goos, G., Hartmanis, J., van Leeuwen, J., von Wright, J., Grundy, J., Harrison, J. (eds) Theorem Proving in Higher Order Logics. TPHOLs 1996. Lecture Notes in Computer Science, vol 1125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0105400
Download citation
DOI: https://doi.org/10.1007/BFb0105400
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61587-3
Online ISBN: 978-3-540-70641-0
eBook Packages: Springer Book Archive