Programming and Computing in HOL

This article describes a set of derived inference rules and an abstract reduction machine using them that allow the implementation of an interpreter for HOL terms, with the same complexity as with ML code. The latter fact allows us to use HOL as a computer algebra system in which the user can implement algorithms, provided he proved them correct.

[1]  Paul-André Melliès Typed lambda-calculi with explicit substitutions may not terminate , 1995, TLCA.

[2]  Richard J. Boulton,et al.  Lazy techniques for fully expansive theorem proving , 1993, Formal Methods Syst. Des..

[3]  Pierre Crégut,et al.  An abstract machine for Lambda-terms normalization , 1990, LISP and Functional Programming.

[4]  Martín Abadi,et al.  Explicit substitutions , 1989, POPL '90.

[5]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[6]  Samuel Boutin,et al.  Using Reflection to Build Efficient and Certified Decision Procedures , 1997, TACS.

[7]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[8]  Jan Friso Groote,et al.  Proceedings of the International Conference on Typed Lambda Calculi and Applications , 1993 .

[9]  Konrad Slind,et al.  Function Definition in Higher-Order Logic , 1996, TPHOLs.

[10]  Jean-Jacques Lévy,et al.  Confluence properties of weak and strong calculi of explicit substitutions , 1996, JACM.

[11]  Lawrence C. Paulson,et al.  Logic and computation - interactive proof with Cambridge LCF , 1987, Cambridge tracts in theoretical computer science.

[12]  Lawrence C. Paulson,et al.  A Higher-Order Implementation of Rewriting , 1983, Sci. Comput. Program..

[13]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[14]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .