Skip to main content

Extending constructive negation for partial functions in lazy functional-logic languages

  • Conference paper
  • First Online:
Extensions of Logic Programming (ELP 1996)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1050))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. Arenas, A. Gil, F. López-Fraguas. Combining Lazy Narrowing with Disequality Constraints. PLILP'94, Springer LNCS 844, 385–399, 1994.

    Google Scholar 

  2. R. Barbuti, D. Mancarella, D. Pedreschi, F. Turini. Intensional Negation of Logic Programs. Proc. TAPSOFT'87, Springer LNCS 250, 96–110, 1987.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. D. Chan. Constructive Negation Based on the Complete Database Proc. Int. Conference on Logic Programming'89, The MIT Press, 111–125, 1988.

    Google Scholar 

  5. D. Chan. An Extension of Constructive Negation and its Application in Coroutining. Proc. NACLP'89, The MIT Press, 477–493. 1989.

    Google Scholar 

  6. H. Comon, P. Lescanne. Equational Problems and Disunification. J. of Symbolic Computation, 7:371–425, 1989.

    Google Scholar 

  7. W. Drabent. What is Failure? An Approach to Constructive Negation. Acta Informatica 32, 27–59, Springer Verlag, 1995.

    Google Scholar 

  8. M. Fernández. Narrowing Based Procedures for Equational Disunification. Applicable Algebras in Eng. Communications and Computing, 3:1–26, 1992.

    Google Scholar 

  9. M. Fitting, M. Ben-Jacob. Stratified and Three-valued Logic Programming Semantics Proc. Int. Conf. and Symp. on Logic Programming, 1988, pp. 1054–1069.

    Google Scholar 

  10. L. Fribourg. SLOG: A Logic Programming Language Interpreter based on Clausal Superposition and Rewriting. Proc. Symp. on Logic Programming, IEEE Comp. Soc. Press, 1985.

    Google Scholar 

  11. M. Hanus. Compiling Logic Programs with Equality. Proc. PLILP'90, Springer LNCS, 1990.

    Google Scholar 

  12. M. Hanus. The Integration of Functions into Logic Programs: A Survey. J. of Logic Programming, 1994.

    Google Scholar 

  13. M. Hanus. Combining Lazy Narrowing and Simplification. PLILP'94, Springer LNCS 844, 370–384, 1994.

    Google Scholar 

  14. P. Hill, J. lloyd. The Gödel Programming Language. The MIT Press, 1994.

    Google Scholar 

  15. J. Jaffar, J.L. Lassez. Constraint Logic Programming. Proc. 14th ACM Symp. on Princ. of Prog. Lang., 114–119, 1987.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. K. Kunen. Negation in Logic Programming. J. of Logic Programming 4:289–308, 1987.

    Google Scholar 

  19. F.J. López-Fraguas. A General Scheme for Constraint Functional Logic Programming. Proc. ALP'92, Springer LNCS, 1992.

    Google Scholar 

  20. M. Maher. Complete Axiomatization of the Algebras of Finite, Rational and Infinite Trees. Proc. 3rd Symp. on Logic in Computer Science, 348–357, 1988.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. J.J. Moreno Navarro. Default Rules: An Extension of Constructive Negation for Narrowing-based Languages. Proc. ICLP'94, The MIT Press, 1994.

    Google Scholar 

  25. L. Naish. Negation and Quantifiers in NU-Prolog. ICLP'86, Springer LNCS 225, 624–634, 1986.

    Google Scholar 

  26. M.J. Ramírez, M. Falaschi. Conditional Narrowing with Constructive Negation. Proc. ELP'92, Springer LNCS 660, 59–79, 1993.

    Google Scholar 

  27. P. Stuckey. Constructive Negation for Constraint Logic Programming Proc. IEEE Symp. on Logic in Computer Science, IEEE Comp. Soc. Press, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Roy Dyckhoff Heinrich Herre Peter Schroeder-Heister

Rights and permissions

Reprints 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

Publish with us

Policies and ethics