Skip to main content
Log in

Implementing Constructive Intensional Negation

  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

Although negation is an active area of research in logic programming, sound and complete implementations are still absent from actual Prolog systems. One of the most promising techniques in the literature is intensional negation (IN), which follows a transformational approach: for each predicate p in a program its negative counterpart intneg(p) is generated. However, implementations of IN have not been included in Prolog environments due, in part, to the lack of details and explicit techniques, such as the treatment of universally quantified goals. In this paper, we describe a variant of IN, which we have called constructive intensional negation (CIN). Unlike earlier proposals, CIN does not resort to a dedicated resolution strategy when dealing with universally quantified formulae, which has been instrumental in having an effective implementation. Therefore, pure SLD resolution is used, what enables the reuse of existing Prolog implementation technology. Among the contributions of this work we can mention not only a full implementation being tested for its integration in the Ciao Prolog system but also some formal results ensuring soundness and completeness with their associated proofs.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. The ECLiPSe website at Imperial College. http://www.icparc.doc.ic.ac.uk/eclipse/.

  2. The XSB home page. http://www.cs.sunysb.edu/~sbprolog/xsb-page.html.

  3. Barbuti, R., Mancarella, D., Pedreschi, D. and Turini, F., “Intensional negation of logic programs,” LNCS, 250, pp. 96–110, 1987

    Google Scholar 

  4. Barbuti, R., Mancarella, D., Pedreschi, D. and Turini, F. (1990) “A transformational approach to negation in logic programming,”. JLP, 8(3): 201–228

    Article  MATH  MathSciNet  Google Scholar 

  5. Bruscoli P., Levi F., Levi G. and Meo M.C., “Compilative constructive negation in constraint logic programs,” in Proc. of the Nineteenth Int. Colloquium on Trees in Algebra and Programming(Tyson, S. ed.), CAAP ’94, LNCS, 787, pp. 52–67, Springer-Verlag, Berlin, 1994

  6. Bueno, F., The CIAO Multiparadigm Compiler: A User’s Manual, 1995.

  7. Chan, D., “Constructive negation based on the completed database,” in Proc. Int. Conf. on LP’88, pp. 111–125. The MIT Press, 1988.

  8. Chan, D., “An extension of constructive negation and its application in coroutining,” in Proc. NACLP’89, pp. 477–493. The MIT Press, 1989.

  9. Clark, K.L., “Negation as failure,” in. In Logic and Databases(Gallaire, H. and Minker, J. eds.), pp. 293–322. Plenum Press, New York, 1978.

  10. di Pierro, A., Martelli, M. and Palamidessi, C., “Negation as instantiation,” Information and Computation, 120(2), pp. 263–278, 1995

    Article  MATH  MathSciNet  Google Scholar 

  11. Dovier, A., Pontelli, E. and Rossi, G., “A necessary condition for constructive negation in constraint logic programming,” Information Processing Letters, 74, pp. 147–156, 2000

    Article  MathSciNet  Google Scholar 

  12. Fages, F., “Constructive negation by pruning,” Journal of Logic Programming, 32(2), 1997.

  13. Fitting, M., “A Kripke-Kleene semantics for logic programs,” Journal of Logic Programming, 2(4), pp. 295–312, 1985

    Article  MATH  MathSciNet  Google Scholar 

  14. Hill, P.M. and Lloyd, J.W., The Gödel Programming Language. The MIT Press, 1994.

  15. Kunen, K., “Negation in logic programming,” Journal of Logic Programming, 4, pp. 289–308, 1987

    Article  MATH  MathSciNet  Google Scholar 

  16. Lassez, J.L., Maher, M.J. and Marriott, K., “Elimination of negation in term algebras,” in Mathematical Foundations of Computer Science, pp. 1–16, 1991.

  17. Leone, N., Pfeifer, G., Faber, W., Eiter, T., Gottlob, G., Perri, S. and Scarcello, F., “The DLV system for knowledge representation and reasoning,” ACM Trans. Comput. Logic, 7(3), pp. 499–562, 2006

    Article  MathSciNet  Google Scholar 

  18. Lloyd, J.W., Foundations of Logic Programming, 2nd ed., Springer, 1987.

  19. Maher, M.J., “Complete axiomatizations of the algebras of finite, rational and infinite trees,” in Proc. os the 3rd IEEE Symp. on Logic in Computer Science, pp. 348–357, 1988.

  20. Marpons, G., Mariño, J., Carro, M., Herranz, Á., Fredlund, L.-Å. and Moreno-Navarro, J.J., “Automatic coding rule conformance checking using logic programming,” in Practical Aspects of Declarative Languages, 10th Int. Symp. PADL 2008, San Francisco, CA, USA, January 7-8, 2008, LNCS, 4902, pp. 18–34. Springer, 2008.

  21. Moreno-Navarro, J.J., “Default rules: An extension of constructive negation for narrowing-based languages,” in Proc. ICLP’94, pp. 535–549. The MIT Press, 1994.

  22. Muñoz, S. and Moreno-Navarro, J.J., “Implementation results in classical constructive negation,” in ICLP’04 (Ducassie, M. ed.), LNCS, 3132, pp. 284–298, Saint-Maló, France, September 2004. Springer-Verlag.

  23. Muñoz-Hernández, S, A Negation System for Prolog. PhD thesis, Facultad de Informática (Universidad Politécnica de Madrid), 2003.

  24. Muñoz-Hernández, S. and Moreno-Navarro, J.J., “How to incorporate negation in a Prolog compiler,” in 2nd Int. Workshop PADL’2000(Santos Costa, V and Pontelli, E. ed.), LNCS, 1753, pp. 124–140, Boston, MA (USA), 2000. Springer.

  25. Muñoz-Hernández, S., Moreno-Navarro, J.J. and Hermenegildo, M., “Efficient negation using abstract interpretation,” in “Logic for Programming, Artificial Intelligence and Reasoning(Nieuwenhuis, R. and Voronkov, A. eds.), La Habana (Cuba), 2001.

  26. Naish, L., “Negation and quantifiers in NU-Prolog,” in Proc. 3rd ICLP, 1986.

  27. Niemelä, I., Simons, P. and Syrjänen, T., “Smodels: A system for answer set programming,” in 8th. Int. Workshop on Nonmonotonic Reasoning, April 2000.

  28. Sato, T., “First order compiler: A deterministic logic program synthesis algorithm,” Journal of Symbolic Computation, 8(6), pp. 605–627, 1989

    Article  MATH  MathSciNet  Google Scholar 

  29. Sato, T. and Motoyoshi, F., “A complete top-down interpreter for first order programs,” in Logic Programming, Proc. of the 1991 Intern’l Symp., pp. 35–53. MIT Press, 1991.

  30. Sato, T. and Tamaki, H. “Transformational logic program synthesis,” in Proc. of the Int. Conf. on 5th Generation Computer Systems FGCS84, pp. 195–201, 1984.

  31. Stuckey, P., “Constructive negation for constraint logic programming,” in Proc. IEEE Symp. on Logic in Computer Science, 660. IEEE Comp. Soc. Press, 1991.

  32. Stuckey, P., “Negation and constraint logic programming,” in Information and Computation, 118(1), pp. 12–33, 1995

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Julio Mariño.

About this article

Cite this article

Mariño, J., Moreno-Navarro, J.J. & Munoz-Hernandez, S. Implementing Constructive Intensional Negation. New Gener. Comput. 27, 25–56 (2008). https://doi.org/10.1007/s00354-008-0053-9

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00354-008-0053-9

Keywords:

Navigation