Abstract
Logic Programming has been advocated as a language for system specification, especially for those involving logical behaviours, rules and knowledge. However, modeling problems involving negation, which is quite natural in many cases, is somewhat limited if Prolog is used as the specification / implementation language. These restrictions are not related to theory viewpoint, where users can find many different models with their respective semantics; they concern practical implementation issues. The negation capabilities supported by current Prolog systems are rather constrained, and there is no a correct and complete implementation available. In this paper, we refine and propose some extensions to the classical method of constructive negation, providing the complete theoretical algorithm. Furthermore, we also discuss implementation issues providing a preliminary implementation and also an optimized one to negate predicates with a finite number of solutions.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alferes, J.J., Damásio, C.V., Pereira, L.M.: A logic programming system for nonmonotonic reasoning. In: Journal of Automated Reasoning, volume 14(1), pp. 93–147 (1995)
Alvez, J., Lucio, P., Orejas, F., Pasarella, E., Pino, E.: Constructive negation by bottom-up computation of literal answers. In: Proceedings of the 2004 ACM Symposium on Applied Computing, Nicosia (Cyprus). ACM, vol. 2, pp. 1468–1475 (2004)
Barbuti, R., Mancarella, D., Pedreschi, D., Turini, F.: Intensional negation of logic programs. In: Ehrig, H., Levi, G., Montanari, U. (eds.) TAPSOFT 1987 and CFLP 1987. LNCS, vol. 250, pp. 96–110. Springer, Heidelberg (1987)
Barbuti, R., Mancarella, D., Pedreschi, D., Turini, F.: A transformational approach to negation in logic programming. JLP 8(3), 201–228 (1990)
Barták, R.: Constructive negation in clp(h). Tech. Report 98/6, Department of Theoretical Computer Science, Charles University, Prague (July 1998)
Bruscoli, P., Levi, F., Levi, G., Meo, M.C.: Compilative Constructive Negation in Constraint Logic Programs. In: Tison, S. (ed.) CAAP 1994. LNCS, vol. 787, pp. 52–67. Springer, Heidelberg (1994)
Cabeza, D., Hermenegildo, M.: A New Module System for Prolog. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 131–148. Springer, Heidelberg (2000)
Chan, D.: Constructive negation based on the complete database. In: Proc. Int. Conference on LP 1988, pp. 111–125. MIT Press, Cambridge (1988)
Chan, D.: An extension of constructive negation and its application in coroutining. In: Proc. NACLP 1989, pp. 477–493. MIT Press, Cambridge (1989)
Clark, K.L.: Negation as failure. In: Gallaire, H., Minker, J. (eds.) Logic and Data Bases, New York, NY, pp. 293–322. Plenum Press, New York (1978)
Drabent, W.: What is a failure? An approach to constructive negation. Acta Informatica 33, 27–59 (1995)
Hermenegildo, M., Bueno, F., Puebla, G., López-García, P.: Program Analysis, Debugging and Optimization Using the Ciao System Preprocessor. In: 1999 ICLP, Cambridge, MA, November 1999, pp. 52–66. MIT Press, Cambridge (1999)
Kunen, K.: Negation in logic programming. JLP 4, 289–308 (1987)
López-García, P., Hermenegildo, M., Debray, S., Lin, N.W.: Lower bound cost estimation for logic programs. In: 1997 International Logic Programming Symposium, MIT Press, Cambridge (1997)
Moreno-Navarro, J.J.: Extending constructive negation for partial functions in lazy narrowing-based languages. ELP (1996)
Muñoz, S., Mariño, J., Moreno-Navarro, J.J.: Constructive intensional negation. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 39–54. Springer, Heidelberg (2004)
Muñoz, S., Moreno-Navarro, J.J.: How to incorporate negation in a prolog compiler. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 124–140. Springer, Heidelberg (2000)
Muñoz, S., Moreno-Navarro, J.J., Hermenegildo, M.: Efficient negation using abstract interpretation. In: Nieuwenhuis, R., Voronkov, A. (eds.) LPAR 2001. LNCS (LNAI), vol. 2250, pp. 485–494. Springer, Heidelberg (2001)
Naish, L.: Negation and Control in Prolog. LNCS, vol. 238. Springer, Heidelberg (1986)
Di Pierro, A., Drabent, W.: On negation as instantiation. In: Hanus, M., Rodríguez-Artalejo, M. (eds.) ALP 1996. LNCS, vol. 1139, Springer, Heidelberg (1996)
Shoenfield, J.R.: Mathematical Logic. Association for Symbolic Logic (1967)
Stuckey, P.: Constructive negation for constraint logic programming. In: Proc. IEEE Symp. on Logic in Computer Science, vol. 660, IEEE Comp. Soc. Press, Los Alamitos (1991)
Stuckey, P.: Negation and constraint logic programming. In: Information and Computation, vol. 118(1), pp. 12–33 (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Muñoz-Hernández, S., Moreno-Navarro, J.J. (2004). Implementation Results in Classical Constructive Negation. In: Demoen, B., Lifschitz, V. (eds) Logic Programming. ICLP 2004. Lecture Notes in Computer Science, vol 3132. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27775-0_20
Download citation
DOI: https://doi.org/10.1007/978-3-540-27775-0_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22671-0
Online ISBN: 978-3-540-27775-0
eBook Packages: Springer Book Archive