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.
Similar content being viewed by others
References
The ECLiPSe website at Imperial College. http://www.icparc.doc.ic.ac.uk/eclipse/.
The XSB home page. http://www.cs.sunysb.edu/~sbprolog/xsb-page.html.
Barbuti, R., Mancarella, D., Pedreschi, D. and Turini, F., “Intensional negation of logic programs,” LNCS, 250, pp. 96–110, 1987
Barbuti, R., Mancarella, D., Pedreschi, D. and Turini, F. (1990) “A transformational approach to negation in logic programming,”. JLP, 8(3): 201–228
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
Bueno, F., The CIAO Multiparadigm Compiler: A User’s Manual, 1995.
Chan, D., “Constructive negation based on the completed database,” in Proc. Int. Conf. on LP’88, pp. 111–125. The MIT Press, 1988.
Chan, D., “An extension of constructive negation and its application in coroutining,” in Proc. NACLP’89, pp. 477–493. The MIT Press, 1989.
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.
di Pierro, A., Martelli, M. and Palamidessi, C., “Negation as instantiation,” Information and Computation, 120(2), pp. 263–278, 1995
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
Fages, F., “Constructive negation by pruning,” Journal of Logic Programming, 32(2), 1997.
Fitting, M., “A Kripke-Kleene semantics for logic programs,” Journal of Logic Programming, 2(4), pp. 295–312, 1985
Hill, P.M. and Lloyd, J.W., The Gödel Programming Language. The MIT Press, 1994.
Kunen, K., “Negation in logic programming,” Journal of Logic Programming, 4, pp. 289–308, 1987
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.
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
Lloyd, J.W., Foundations of Logic Programming, 2nd ed., Springer, 1987.
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.
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.
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.
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.
Muñoz-Hernández, S, A Negation System for Prolog. PhD thesis, Facultad de Informática (Universidad Politécnica de Madrid), 2003.
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.
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.
Naish, L., “Negation and quantifiers in NU-Prolog,” in Proc. 3rd ICLP, 1986.
Niemelä, I., Simons, P. and Syrjänen, T., “Smodels: A system for answer set programming,” in 8th. Int. Workshop on Nonmonotonic Reasoning, April 2000.
Sato, T., “First order compiler: A deterministic logic program synthesis algorithm,” Journal of Symbolic Computation, 8(6), pp. 605–627, 1989
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.
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.
Stuckey, P., “Constructive negation for constraint logic programming,” in Proc. IEEE Symp. on Logic in Computer Science, 660. IEEE Comp. Soc. Press, 1991.
Stuckey, P., “Negation and constraint logic programming,” in Information and Computation, 118(1), pp. 12–33, 1995
Author information
Authors and Affiliations
Corresponding author
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
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00354-008-0053-9