Elf: a language for logic definition and verified metaprogramming

A description is given of Elf, a metalanguage for proof manipulation environments that are independent of any particular logical system. Elf is intended for metaprograms such as theorem provers, proof transformers, or type inference programs for programming languages with complex type systems. Elf unifies logic definition (in the style of LF, the Edinburgh logical framework) with logic programming (in the style of lambda Prolog). It achieves this unification by giving types an operational interpretation, much the same way that Prolog gives certain formulas (Horn clauses) an operational interpretation. Novel features of Elf include: (1) the Elf search process automatically constructs terms that can represent object-logic proofs, and thus a program need not construct them explicitly; (2) the partial correctness of metaprograms with respect to a given logic can be expressed and proved in Elf itself; and (3) Elf exploits Elliott's (1989) unification algorithm for a lambda -calculus with dependent types.<<ETX>>

[1]  Douglas J. Howe Computational Metatheory in Nuprl , 1988, CADE.

[2]  Robert L. Constable,et al.  Formalized Metareasoning in Type Theory , 1986, LICS.

[3]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[4]  F. Honsell,et al.  A Framework for De ning LogicsRobert Harper , 1987 .

[5]  Amy P. Felty,et al.  Implementing Theorem Provers in Logic Programming , 1987 .

[6]  Frank Pfenning,et al.  Higher-order abstract syntax , 1988, PLDI '88.

[7]  Timothy G. Griffin An Environment for Formal Systems , 1987 .

[8]  Michael Beeson,et al.  Some Applications of Gentzen's Proof Theory in Automated Deduction , 1991, ELP.

[9]  Dale Miller,et al.  A Logical Analysis of Modules in Logic Programming , 1989, J. Log. Program..

[10]  de Ng Dick Bruijn,et al.  A survey of the project Automath , 1980 .

[11]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[12]  Amy P. Felty,et al.  Specifying Theorem Provers in a Higher-Order Logic Programming Language , 1988, CADE.

[13]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[14]  Lawrence C. Paulson The representation of logics in higher-order logic , 1987 .

[15]  Frank Pfenning,et al.  Partial polymorphic type inference and higher-order unification , 1988, LISP and Functional Programming.

[16]  Dale A. Miller,et al.  AN OVERVIEW OF PROLOG , 1988 .

[17]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[18]  Gopalan Nadathur,et al.  Hereditary Harrop Formulas and Uniform Proof Systems , 1987, Logic in Computer Science.

[19]  Anne Sjerp Troelstra Strong normalization for typed terms with surjective pairing , 1986, Notre Dame J. Formal Log..

[20]  M. Gordon HOL : A machine oriented formulation of higher order logic , 1985 .