Abstract
In this paper the mechanism of Default Rules for narrowing-based languages proposed in [24] is adapted to lazy narrowing. Every partial definition of a function can be completed with a default rule. In a concrete function call, the default rule is applicable when the normal ones determine that they cannot compute the value of the call. Furthermore, when the goal has variables the evaluation mechanism provides constraints to the variables to make the default rule applicable. Lazy narrowing semantics are extended with the technique of constructive negation [4, 5, 27]. The main advantage is that the coroutining implementation technique described in [5], which is the basis for an efficient implementation, can be fully formalized in our framework.
Preview
Unable to display preview. Download preview PDF.
References
P. Arenas, A. Gil, F. López-Fraguas. Combining Lazy Narrowing with Disequality Constraints. PLILP'94, Springer LNCS 844, 385–399, 1994.
R. Barbuti, D. Mancarella, D. Pedreschi, F. Turini. Intensional Negation of Logic Programs. Proc. TAPSOFT'87, Springer LNCS 250, 96–110, 1987.
R. Barbuti, D. Mancarella, D. Pedreschi, F. Turini. A Transformational Approach to Negation in Logic Programming. J. of Logic Programming, 8(3):201–228, 1990.
D. Chan. Constructive Negation Based on the Complete Database Proc. Int. Conference on Logic Programming'89, The MIT Press, 111–125, 1988.
D. Chan. An Extension of Constructive Negation and its Application in Coroutining. Proc. NACLP'89, The MIT Press, 477–493. 1989.
H. Comon, P. Lescanne. Equational Problems and Disunification. J. of Symbolic Computation, 7:371–425, 1989.
W. Drabent. What is Failure? An Approach to Constructive Negation. Acta Informatica 32, 27–59, Springer Verlag, 1995.
M. Fernández. Narrowing Based Procedures for Equational Disunification. Applicable Algebras in Eng. Communications and Computing, 3:1–26, 1992.
M. Fitting, M. Ben-Jacob. Stratified and Three-valued Logic Programming Semantics Proc. Int. Conf. and Symp. on Logic Programming, 1988, pp. 1054–1069.
L. Fribourg. SLOG: A Logic Programming Language Interpreter based on Clausal Superposition and Rewriting. Proc. Symp. on Logic Programming, IEEE Comp. Soc. Press, 1985.
M. Hanus. Compiling Logic Programs with Equality. Proc. PLILP'90, Springer LNCS, 1990.
M. Hanus. The Integration of Functions into Logic Programs: A Survey. J. of Logic Programming, 1994.
M. Hanus. Combining Lazy Narrowing and Simplification. PLILP'94, Springer LNCS 844, 370–384, 1994.
P. Hill, J. lloyd. The Gödel Programming Language. The MIT Press, 1994.
J. Jaffar, J.L. Lassez. Constraint Logic Programming. Proc. 14th ACM Symp. on Princ. of Prog. Lang., 114–119, 1987.
H. Kuchen, R. Loogen, J. J. Moreno-Navarro, M. Rodríguez-Artalejo. Graph-based Implementation of a Functional Logic Language Proc. ESOP, Springer LNCS 432, 271–290, 1990.
H. Kuchen, F. López-Fraguas, J.J. Moreno-Navarro, M. Rodríguez-Artalejo. Implementing a Lazy Functional Logic Language with Disequality Constraints. Joint International Conference and Symposium on Logic Programming, The MIT Press, 189–223, 1992.
K. Kunen. Negation in Logic Programming. J. of Logic Programming 4:289–308, 1987.
F.J. López-Fraguas. A General Scheme for Constraint Functional Logic Programming. Proc. ALP'92, Springer LNCS, 1992.
M. Maher. Complete Axiomatization of the Algebras of Finite, Rational and Infinite Trees. Proc. 3rd Symp. on Logic in Computer Science, 348–357, 1988.
J.J. Moreno-Navarro, H. Kuchen, R. Loogen, M. Rodríguez-Artalejo. Lazy Narrowing in a Graph Machine. Proc. ALP'90, Springer LNCS 463, 298–317, 1990.
J.J. Moreno-Navarro, H. Kuchen, J. Mariño-Carballo, S. Winkler, W. Hans. Efficient Lazy Narrowing using Demandedness Analysis. Proc. PLILP'93, Springer LNCS 714, 167–183, 1993.
J.J. Moreno Navarro, M. Rodríguez Artalejo. Logic Programming with Functions and Predicates: The Language BABEL. J. of Logic Programming 12:189–223, 1992.
J.J. Moreno Navarro. Default Rules: An Extension of Constructive Negation for Narrowing-based Languages. Proc. ICLP'94, The MIT Press, 1994.
L. Naish. Negation and Quantifiers in NU-Prolog. ICLP'86, Springer LNCS 225, 624–634, 1986.
M.J. Ramírez, M. Falaschi. Conditional Narrowing with Constructive Negation. Proc. ELP'92, Springer LNCS 660, 59–79, 1993.
P. Stuckey. Constructive Negation for Constraint Logic Programming Proc. IEEE Symp. on Logic in Computer Science, IEEE Comp. Soc. Press, 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag
About this paper
Cite this paper
Moreno-Navarro, J.J. (1996). Extending constructive negation for partial functions in lazy functional-logic languages. In: Dyckhoff, R., Herre, H., Schroeder-Heister, P. (eds) Extensions of Logic Programming. ELP 1996. Lecture Notes in Computer Science, vol 1050. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60983-0_15
Download citation
DOI: https://doi.org/10.1007/3-540-60983-0_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60983-4
Online ISBN: 978-3-540-49751-6
eBook Packages: Springer Book Archive