MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Higher-Order Narrowing with Definitional Trees (1999)

Download:
Download as a PDF | Download as a PS
by Aachener Informatik-bericht, Michael Hanus, Michael Hanus, Christian Prehofer, Christian Prehofer
Journal of Functional Programming
http://sunsite.informatik.rwth-aachen.de/Publications/AIB/1996/96-02.ps.gz
Add To MetaCart

Abstract:

Functional logic languages with a sound and complete operational semantics are mainly based on an inference rule called narrowing. Narrowing extends functional evaluation by goal solving capabilities as in logic programming. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for first-order functional logic programs due to its optimality properties w.r.t. the length of derivations and the number of computed solutions. In this paper, we extend the needed narrowing strategy to higher-order functions and-terms as data structures. By the use of definitional trees, our strategy computes only incomparable solutions. Thus, it is the first calculus for higher-order functional logic programming which provides for such an optimality result. Since we allow higher-order logical variables denoting-terms, applications go beyond current functional and logic programming languages.

Citations

894 The lambda calculus, its syntax and semantics – Barendregt - 1984
496 S.: The Implementation of Functional Programming Languages – Jones - 1987
333 The integration of functions into logic programming: from theory to practice – Hanus - 1994
288 M.: A needed narrowing strategy – Antoy, Echahed, et al. - 2000
284 An efficient unification algorithm – Martelli, Montanari - 1982
263 A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification – Miller - 1991
231 Combinatory reduction systems – Klop - 1980
215 Report on the Programming Language Haskell, A Non-strict, Purely Functional Language – Hudak, Jones, et al. - 1992
191 Introduction to combinators and *-calculus – Hindley, Seldin - 1988
176 Logic Programming with Functions and Predicates: The Language BABEL – Moreno-Navarro, Rodríguez-Artalejo - 1992
151 Canonical forms and unification – Hullot - 1980
148 Higher-order logic programming – Nadathur, Miller - 1998
135 Definitional trees – Antoy - 1992
115 Higher-order critical pairs – Nipkow - 1991
112 Kernel Leaf: A Logic plus Functional Language – Giovannetti, Levi, et al. - 1991
87 Computations in orthogonal rewriting systems – Huet, Lévy - 1991
75 V.: Confluence for Abstract and Higher-Order Rewriting – Oostrom - 1994
64 Automated theorem-proving for theories with simplifiers, commutativity and associativity – Slagle - 1974
53 Foundations of Equational Logic Programming – Holldobler - 1989
45 Higher-order unification revisited: Complete sets of transformations – Snyder, Gallier - 1989
44 Lazy narrowing: Strong completeness and eager variable elimination – Okui, Middeldorp, et al. - 1995
43 Interaction systems I: The theory of optimal reductions – Asperti, Laneve - 1994
43 Call by Need Computations to Root-Stable Form – Middeldorp - 1997
36 Efficient Translation of Lazy Functional Logic Programs into Prolog – Hanus - 1995
36 Solving Higher-Order Equations: From Logic to Programming – Prehofer - 1995
33 Combining functional and logic programming languages – Lloyd - 1994
21 On the completeness of narrowing as the operational semantics of functional logic programming – Gonz'alez-Moreno, Hortal'a-Gonz'alez, et al. - 1992
21 Higher-order narrowing – Prehofer - 1994
16 A Theoretical Framework for Reasoning about Program Construction Based on Extensions of Rewrite Systems – Lor'ia-S'aenz - 1993
15 Higher-order families – Oostrom - 1996
14 A Call-by-Need Strategy for Higher-Order Functional-Logic Programming – Prehofer - 1995
12 Leftmost outside-in narrowing calculi – Ida, Nakahara - 1997
9 Higher-order conditional rewriting and narrowing – Avenhaus, Lor'ia-S'aenz - 1994
8 Lazy Unification Algorithms for Canonical Rewrite Systems – Martelli, Rossi, et al. - 1989
6 Higher-order narrowing with convergent systems – Prehofer - 1995
2 Some applications of functional logic programming – Prehofer - 1996