A rewrite mechanism for logic programs with negation

  • Siva Anantharaman
  • Gilles Richard
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 914)


Pure logic programs can be interpreted as rewrite programs, executable with a version of the Knuth-Bendix completion procedure called linear completion. The main advantage here is in avoiding many of the loops inherent in the resolution approach: for most productive loops, linear completion yields a finite set of answers and a finite set of rewrite rules (involving just one predicate), from which all the remaining answers can be deduced. And this ‘program synthesizing’ aspect can be easily combined with other loop avoiding techniques using ‘marked’ literals and substitutions. It is thus natural to ask how much of the rewrite mechanism carries through for deducing negative information from pure programs, and more generally for any normal logic program. In this paper we show that such an extension can be built in a natural way, with ideas from the Clark completion for normal logic programs, and the domain of constrained rewriting. The correction and completeness of this extended mechanism is proved w.r.t. the 3-valued declarative semantics of Künen for normal programs. We also point out how the semantics of a normal program can in a certain sense be ‘parametrized’, in terms of the ‘meta-reduction’ rule set of our approach.


logic program negation rewrite system linear completion constraints 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anantharaman S., Richard G., “A Rewrite Mechanism for Logic Programs with Negation”, Research Report n°94-13, LIFO, Université d'Orleans (Fr.), 1994.Google Scholar
  2. 2.
    Bonacina M., Hsiang J. “On rewrite programs: semantics and relationship with Prolog”, Journal of Logic Programming, nℴ 14, pp. 155–180, 1992.Google Scholar
  3. 3.
    Bronsard F., Lakshman T.K., Reddy Uday S. “A Framework of Directionality for Proving Termination of Logic programs”, Proc. of ICLP-92, MIT Press (ed. K. Apt), pp. 321–335, 1992.Google Scholar
  4. 4.
    Bottoni A., Levi G. “Computing in the Completion” Proc. of GULP'93„ pp. 375–389 Orsay (Fr.), 1993.Google Scholar
  5. 5.
    Chan D. “Constructive Negation Based on the Completed Database”, Proceedings of the 5th ICLP, Seattle (USA) The MIT press, Cambridge, Mass. pp. 111–125, 1988.Google Scholar
  6. 6.
    Clark K.L. “Negation as failure”, Logic and data bases Plenum, Eds. Gallaire and Minker, 1978.Google Scholar
  7. 7.
    Dershowitz N., Josephson N.A. “Logic programming by completion”, Proceedings of the 2nd ICLP, Uppsala, Sweden, 1984.Google Scholar
  8. 8.
    Fitting M. “A Kripke-Kleene semantics for logic programs”, J. Logic Programming, vol 4, pp. 295–312, 1985.Google Scholar
  9. 9.
    Kirchner C., Kirchner H., Rusinowitch M. “Deduction with symbolic constraints”, Revue d'Intelligence Artificielle, vol 4 (nℴ 3), pp. 9–52, 1990, (Special Issue on Automated Deduction).Google Scholar
  10. 10.
    Künen K. “Negation in logic programming”, J. of Logic Programming, vol 4, pp. 289–308, 1987.Google Scholar
  11. 11.
    Lloyd J. W. “Foundations of Logic Programming”, Symbolic Computation series, Springer Verlag, 1984.Google Scholar
  12. 12.
    Maher M. J. “A Logic Programming View of CLP”, Proceedings of 10th ICLP, Budapest, pp. 737–753, 1993Google Scholar
  13. 13.
    Swift T., Warren D.S. “Compiling OLDT Evaluation: Background and Overview”, Technical Report 92/04, SUNY at Stony Brook (NY).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Siva Anantharaman
    • 1
  • Gilles Richard
    • 1
  1. 1.LIFO, Dépt. d'InformatiqueUniversité d'OrléansOrléans Cedex 02Fr.

Personalised recommendations