An Overview of Lambda-PROLOG

$\lambda$Prolog is a logic programming language that extends Prolog by incorporating notions of higher-order functions, $\lambda$-terms, higher-order unification, polymorphic types, and mechanisms for building modules and secure abstract data types. These new features are provided in a principled fashion by extending the classical first-order theory of Horn clauses to the intuitionistic higher-order theory of {\em hereditary Harrop} formulas. The justification for considering this extension a satisfactory logic programming language is provided through the proof-theoretic notion of a {\em uniform proof}. The correspondence between each extension to Prolog and the new features in the stronger logical theory is discussed. Also discussed are various aspects of an experimental implementation of $\lambda$Prolog.

[1]  Gerhard Gentzen,et al.  Investigations into Logical Deduction , 1970 .

[2]  Dale Miller,et al.  Uses of Higher-Order Unification for Implementing Program Transformers , 1988, ICLP/SLP.

[3]  L. Thorne McCarty,et al.  Clausal Intuitionistic Logic I - Fixed-Point Semantics , 1988, J. Log. Program..

[4]  Gopalan Nadathur,et al.  Higher-Order Logic Programming , 1986, ICLP.

[5]  Peter B. Andrews,et al.  AUTOMATING HIGHER-ORDER LOGIC , 1984 .

[6]  T. Thacher Robinson Review: Ronald Harrop, Concerning Formulas of the Types $A \rightarrow B \mathbf{v} C, A \rightarrow (Ex) B(x)$ in Intuitionistic Formal Systems , 1962 .

[7]  John Hannan,et al.  Enriching a Meta-Language With Higher-Order Features , 1988 .

[8]  J. W. LLOYD,et al.  Making Prolog more Expressive , 1984, J. Log. Program..

[9]  Gopalan Nadathur,et al.  Some Uses of Higher-Order Logic in Computational Linguistics , 1986, ACL.

[10]  Lars Hallnäs,et al.  A proof-theoretic approach to logic programming, I. Generalized horn clauses , 1988 .

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

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

[13]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[14]  Ronald Harrop,et al.  Concerning formulas of the types A→B ν C,A →(Ex)B(x) in intuitionistic formal systems , 1960, Journal of Symbolic Logic.

[15]  Lawrence C. Paulson,et al.  Natural Deduction as Higher-Order Resolution , 1986, J. Log. Program..

[16]  G. Nadathur A higher-order logic as the basis for logic programming , 1987 .

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

[18]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

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

[20]  Dale Miller,et al.  A Theory of Modules for Logic Programming , 1986, SLP.

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

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

[23]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

[24]  Gérard P. Huet,et al.  A Unification Algorithm for Typed lambda-Calculus , 1975, Theor. Comput. Sci..

[25]  Lars Hallnäs Generalized horn clauses , 1986 .