Higher-order logic programming

  • Dale A. Miller
  • Gopalan Nadathur
Session 4b: Theory And Higher-Order Functions
Part of the Lecture Notes in Computer Science book series (LNCS, volume 225)


In this paper we consider the problem of extending Prolog to include predicate and function variables and typed λ-terms. For this purpose, we use a higher-order logic to describe a generalization to first-order Horn clauses. We show that this extension possesses certain desirable computational properties. Specifically, we show that the familiar operational and least fixpoint semantics can be given to these clauses. A language, λProlog that is based on this generalization is then presented, and several examples of its use are provided. We also discuss an interpreter for this language in which new sources of branching and backtracking must be accommodated. An experimental interpreter has been constructed for the language, and all the examples in this paper have been tested using it.


Type Variable Horn Clause Type Constructor Predicate Variable Logic Programming Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Section 7: References

  1. [Apt and van Emden, 1982]
    Krzysztof R. Apt and M. H. van Emden, “Contributions to the Theory of Logic Programming” JACM, Vol 29 (1982), 841–862.CrossRefGoogle Scholar
  2. [Church, 1940]
    Alonzo Church, “A Formulation of the Simple Theory of Types,” Journal of Symbolic Logic 5 (1940), 56–68.Google Scholar
  3. [Fortune, Leivant and O'Donnell, 1983]
    Steven Fortune, Daniel Leivant, and Michael O'Donnell, “The Expressiveness of Simple and Second-Order Type Structures”, J.ACM Vol. 30(1), January 1983, pp. 151–185.Google Scholar
  4. [Goldfarb, 1981]
    Warren D. Goldfarb, “The Undecidability of the Second-Order Unification Problem,” Theoretical Computer Science 13 (1981), 225–230.Google Scholar
  5. [Huet, 1975]
    Gérard P. Huet, “A Unification Algorithm for Typed λ-calculus,” Theoretical Computer Science 1 (1975), 27–57.Google Scholar
  6. [Huet and Lang, 1978]
    Gérard P. Huet, Bernard Lang, “Proving and Applying Program Transformations Expressed with Second-Order Patterns” Acta Informatica 11 (1978), 31–55.CrossRefGoogle Scholar
  7. [Miller, 1983]
    Dale A. Miller, “Proofs in Higher-order Logic,” Ph. D. Dissertation, Carnegie-Mellon University, August 1983.Google Scholar
  8. [Miller, 1986]
    Dale A. Miller, “A Theory of Modules for Logic Programming,” University of Pennsylvania Technical Report, 1986.Google Scholar
  9. [Miller and Nadathur, 1985]
    Dale A. Miller, Gopalan Nadathur, “A Computational Logic Approach to Syntax and Semantics,” 10th Annual Symposium of the Mathematical Foundations of Computer Science, IBM Japan, May 1985.Google Scholar
  10. [Miller and Nadathur, 1986]
    Dale A. Miller, Gopalan Nadathur, “An Abstract Interpreter for a Higher Order Extension of Prolog,” forthcoming UPenn technical report, December 1985.Google Scholar
  11. [Milner, 1978]
    Robin Milner, “A Theory of Type Polymorphism in Programming,” Journal of Computer and System Sciences 17, 348–375, 1978.CrossRefGoogle Scholar
  12. [Mycroft and O'Keefe, 1985]
    A. Mycroft and R. A. O'Keefe, “A Polymorphic Type System for Prolog,” Artificial Intelligence, Vol. 23(3), August 1984.Google Scholar
  13. [Reynolds, 1985]
    J. C. Reynolds, “Three Approaches to Type Structure”, Proceedings of the International Joint Conference on Theory and Practice of Software Development, March 1985.Google Scholar
  14. [van Emden and Kowalski, 1976]
    M. H. van Emden, R. A. Kowalski, “The semantics of predicate logic as a programming language,” J.ACM 23 4 (Oct. 1976), 733–742.Google Scholar
  15. [D. H. Warren, 1982]
    D. H. D. Warren, “Higher-order extension to PROLOG: are they needed?”, Machine Intelligence 10, 1982, pp. 441–454.Google Scholar
  16. [D. S. Warren, 1983]
    David Scott Warren, “Using λ-Calculus to Repressent Meaning in Logic Grammars” in the Proceedings of the 21st Annual Meeting of the Association for Computational Linguistics, June 1983, 51–56.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Dale A. Miller
    • 1
  • Gopalan Nadathur
    • 1
  1. 1.Computer and Information ScienceUniversity of PennsylvaniaPhiladelphiaUSA

Personalised recommendations