ABSTRACT
In this paper, we present a new proposal for an efficient implementation of constructive negation. In our approach the answers for a literal are bottom-up computed by solving equality constraints, instead of by handling frontiers of subsidiary computation trees. The required equality constraints are given by Shepherdson's operators which are, in a sense, similar to bottom-up immediate consequence operators. However, in order to make the procedure efficient two main techniques are applied. First, we restrict our constraints to a class of success-answers (resp. fail-answers) which are easy to manipulate and to solve (or to prove their unsatisfiability). And, second, we take advantage of the monotonic nature of Shepherdson's operators to make the procedure incremental and to avoid recalculations that are typical in frontiers-based methods. Then, goal computation is made in the usual top-down CLP scheme of collecting the answers for the selected literal into the constraint of the goal. The procedural mechanism for constructive negation is designed not only to generate every correct answer of a goal, but also to detect failure. That is, in spite of the bottom-up nature of the calculation of literal answers, goal computation is not necessarily infinite. The operational semantics that makes use of these ideas, called BCN, is sound and complete with respect to three-valued program completion for the whole class of normal logic programs. A prototype implementation of this approach has been developed and the experimental results are very promising.
- J. Álvez, P. Lucio, F. Orejas, E. Pasarella, and E. Pino. The BCN prototype: An implementation of constructive. Technical Report UPV/EHU/LSI/TR 12--2003, Fac. de Informática de San Sebatián, November 2003.]]Google Scholar
- M. Barbuti, P. Mancarella, D. Pedreschi, and F. Turini. A tranformational approach to negation in logic programming. Journal of Logic Programming, 8:201--228, 1990.]] Google ScholarDigital Library
- R. Barták. Constructive negation in clp(h). Technical Report No 98/6, Dept. of Theoretical Computer Science, Charles Univ., Prague, July 1998.]]Google Scholar
- A. Bossi, M. Fabris, and M. C. Meo. A bottom-up semantics for constructive negation. In P. V. Hentenryck, editor, Proceedings of the 11th International Conference on Logic Programming (ICLP '94), pages 520--534. MIT Press, 1994.]] Google ScholarDigital Library
- P. Bruscoli, F. Levi, G. Levi, and M. C. Meo. Compilative constructive negation in constraint logic programs. In S. Tison, editor, Proc. of the Trees in Algebra and Programming 19th Int. Coll. (CAAP '94), volume 787 of LNCS, pages 52--67. Springer-Verlag, 1994.]] Google ScholarDigital Library
- D. Chan. Constructive negation based on the completed database. In R. A. Kowalski and K. A. Bowen, editors, Proc. of the 5th Int. Conf. and Symp. on Logic Progr., pages 111--125. MIT Press, 1988.]]Google Scholar
- D. Chan. An extension of constructive negation and its application in coroutining. In E. Lusk and R. Overbeek, editors, Proc. of the NACLP'89, pages 477--493. MIT Press, 1989.]]Google Scholar
- K. L. Clark. Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Databases, pages 293--322, New York, 1978. Plenum Press.]]Google Scholar
- A. Colmerauer and T.-B.-H. Dao. Expresiveness of full first order constraints in the algebra of finite and infinite trees. In 6th Int. Conf. of Principles and Practice of Constraint Programming CP'2000, volume 1894 of LNCS, pages 172--186, 2000.]] Google ScholarDigital Library
- H. Common. Disunification: A survey. In J. Lassez and G. Plotkin, editors, Essays in Honour of Alan Robinson, 1991.]]Google Scholar
- W. Drabent. What is failure? an approach to constructive negation. Acta Informática, 32:27--59, 1995.]] Google ScholarDigital Library
- F. Fages. Constructive negation by pruning. Journal of Logic Programming, 32(2):85--118, 1997.]]Google ScholarCross Ref
- M. Fitting. A Kripke-Kleene semantics for logic programs. Journal of Logic Programming, 2(4):295--312, 1985.]]Google Scholar
- J. Jaffar and J. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 19, 20:503--581, 1994.]]Google ScholarCross Ref
- K. Kunen. Negation in logic programming. Journal of Logic Programming, 4:289--308, 1987.]] Google ScholarDigital Library
- P. Lucio, F. Orejas, and E. Pino. An algebraic framework for the definition of compositional semantics of normal logic programs. Journal of Logic Programming, 40:89--123, 1999.]]Google ScholarCross Ref
- M. J. Maher. Complete axiomatizations of the algebras of finite, rational and infinite trees. In Proc. of the 3rd IEEE Symp. on Logic in Computer Science, pages 348--357, 1988.]]Google ScholarCross Ref
- J. Moreno-Navarro and S. Muñoz. How to incorporate negation in a prolog compiler. In V. Santos and E. Pontelli, editors, Practical Applications Declarative Languages PADL'2000, number 1753 in LNCS, pages 124--140, 2000.]] Google ScholarDigital Library
- S. Muñoz, J. J. Moreno, and M. Hermenegildo. Efficient negation using abstract interpretation. In R. Nieuwenhuis and A. Voronkov, editors, Proc. of the Logic for Programming, Artificial Intelligence and Reasoning (LPAR 2001), number 2250 in LNAI, 2001.]] Google ScholarDigital Library
- S. Muñoz and J. J. Moreno-Navarro. Constructive negation for prolog: A real implementation. In Proc. of the Joint Conference on Declarative Programming AGP'2002, pages 39--52, 2002.]]Google Scholar
- E. Pasarella, E. Pino and F. Orejas. Constructive negation without subsidiary trees. In Proc. of the 9th International Workshop on Functional and Logic Programming, WFLP'2000, Benicassim, Spain. Also available as Technical Report LSI-00-44-R of LSI Department, Univ. Politécnica de Catalunya, 2000.]]Google Scholar
- J. Shepherdson. Language and equality theory in logic programming. Technical Report No. PM-91-02, University of Bristol, 1991.]]Google Scholar
- P. J. Stuckey. Negation and constraint logic programming. Information and Computation, 118(1):12--33, 1995.]] Google ScholarDigital Library
- S. Vorobyov. An improved lower bound for the elementary theories of trees. In Automated Deduction CADE-13 LNAI 110, pages 275--287. Springer, 1996.]] Google ScholarDigital Library
Index Terms
- Constructive negation by bottom-up computation of literal answers
Recommendations
Implementing type-based constructive negation
SAC '07: Proceedings of the 2007 ACM symposium on Applied computingThis paper presents an implementation of a constructive negation method. The constructive negation method makes use of type dependencies between arguments of a predicate to rewrite negative goals in a logic program. The constructive negation method is ...
The Basic Constructive Logic for Negation-Consistency
In this paper, consistency is understood in the standard way, i.e. as the absence of a contradiction. The basic constructive logic B Kc4 , which is adequate to this sense of consistency in the ternary relational semantics without a set of designated ...
Implementing Constructive Intensional Negation
AbstractAlthough 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 ...
Comments