A Complete Narrowing Calculus for Higher-Order Functional Logic Programming

Using higher-order functions is standard practice in functional programming, but most functional logic programming languages that have been described in the literature lack this feature. The natural way to deal with higher-order functions in the framework of (first-order) term rewriting is through so-called applicative term rewriting systems. In this paper we argue that existing calculi for lazy narrowing either do not apply to applicative systems or handle applicative terms very inefficiently. We propose a new lazy narrowing calculus for applicative term rewriting systems and prove its completeness.

[1]  Gopalan Nadathur,et al.  An Overview of Lambda-PROLOG , 1988, ICLP/SLP.

[2]  Uday S. Reddy,et al.  Narrowing as the Operational Semantics of Functional Languages , 1985, SLP.

[3]  Tetsuo Ida,et al.  Lazy Narrowing: Strong Completeness and Eager Variable Elimination , 1996, Theor. Comput. Sci..

[4]  Elio Giovannetti,et al.  IDEAL: An Ideal Deductive Applicative Language , 1986, SLP.

[5]  Corrado Moiso,et al.  Kernel-LEAF: A Logic plus Functional Language , 1991, J. Comput. Syst. Sci..

[6]  Rachid Echahed,et al.  A needed narrowing strategy , 2000, JACM.

[7]  Christian Prehofer,et al.  Higher-order narrowing , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[8]  Juan José Moreno-Navarro,et al.  Logic Programming with Functions and Predicates: The Language BABEL , 1992, J. Log. Program..

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

[10]  Mario Rodríguez-Artalejo,et al.  On the Completeness of Narrowing as the Operational Semantics of Functional Logic Programming , 1992, CSL.

[11]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[12]  Rita Loogen,et al.  Lazy Narrowing in a Graph Machine , 1990, ALP.

[13]  Michael Hanus,et al.  The Integration of Functions into Logic Programming: From Theory to Practice , 1994, J. Log. Program..

[14]  Jan Willem Klop,et al.  Term Rewriting Systems: From Church-Rosser to Knuth-Bendix and Beyond , 1990, ICALP.

[15]  Viggo Stoltenberg-hansen,et al.  In: Handbook of Logic in Computer Science , 1995 .

[16]  Tetsuo Ida,et al.  Lazy Narrowing: Strong Completeness and Eager Variable Elimination , 1995, Theor. Comput. Sci..