A proof tool for reasoning about functional programs
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.
Unable to display preview. Download preview PDF.
- 1.Samson Abramsky. The Lazy Lambda Calculus. In David Turner, editor, Research Topics in Functional Programming, pages 65–116. Addison-Wesley, 1990.Google Scholar
- 2.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.Google Scholar
- 3.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.Google Scholar
- 4.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.Google Scholar
- 5.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.Google Scholar
- 6.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.Google Scholar
- 7.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.Google Scholar
- 8.M. J. C. Gordon and T. F. Melham, editors. Introduction to HOL: A theorem proving environment for higher order logic. Cambridge University Press, 1993.Google Scholar
- 9.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.Google Scholar
- 10.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.Google Scholar
- 11.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.Google Scholar
- 12.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.Google Scholar
- 13.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.Google Scholar