Combining Lazy Narrowing with Disequality Constraints

We investigate an extension of a lazy functional logic language, which uses term disequations both in programs and in computed answers. The semantic properties of the language are derived from the fact that it can be viewed as an instance of the CFLP(X)-scheme proposed in [Lo92] for constraint functional logic programming. In particular, the operational semantics for CFLP(X) — so called lazy constrained narrowing — is a computation mechanism parameterized by a constraint solver over the underlying domain. We define a constraint solver for our language, whose properties ensure completeness. As a further step towards implementation, we present an executable Prolog specification of the operational semantics, which has been implemented on top of a Prolog system. Experimental results have shown good performance.

[1]  D. Scott Domains for Denotational Semantics , 1982, ICALP.

[2]  Alain Colmerauer,et al.  Equations and Inequations on Finite and Infinite Trees , 1984, FGCS.

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

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

[5]  Michael J. Maher Complete axiomatizations of the algebras of finite, rational and infinite trees , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

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

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

[8]  Hubert Comon,et al.  Disunification: A Survey. , 1991 .

[9]  Donald A. Smith Constraint Operations for CLP(FT) , 1991, ICLP.

[10]  Claude Kirchner,et al.  Solving Equations in Abstract Algebras: A Rule-Based Survey of Unification , 1991, Computational Logic - Essays in Honor of Alan Robinson.

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

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

[13]  Pierre Lescanne,et al.  Introduction - ALP 1988 , 1992, J. Log. Program..

[14]  Francisco Javier López-Fraguas A General Scheme for Constraint Functional Logic Programming , 1992, ALP.

[15]  Juan José Moreno-Navarro,et al.  Implementing a Lazy Functional Logic Language with Disequality Constraints , 1992, JICSLP.

[16]  Agostino Dovier,et al.  Embedding extensional finite sets in CLP , 1993, ILPS.

[17]  A. Dovier,et al.  Embedding Extensional Nite Sets in Clp , 1993 .

[18]  Rita Loogen,et al.  A Demand Driven Computation Strategy for Lazy Narrowing , 1993, PLILP.

[19]  Michael J. Maher,et al.  Constraint Logic Programming: A Survey , 1994, J. Log. Program..