Skip to main content

Negation in logic programming: A formalization in constructive logic

  • Conference paper
  • First Online:
Information Systems and Artificial Intelligence: Integration Aspects (IS/KI 1990)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 474))

Included in the following conference series:

Abstract

The conventional formalization of logic programming in classical logic explains very convincingly the basic principles of this programming style. However, it gives no easy or intuitive explanations for the treatment of negation. Logic Programming handles negation through the so-called “Negation as Failure” inference principle which is rather unconventional from the viewpoint of classical logic. Despite its nonclassical nature, this inference principle cannot be avoided in practice. The appropriate application of Negation as Failure requires either syntactical restrictions, or significant changes in the semantics of logic programs. In this article, we defend the thesis that these syntactical restrictions or semantical changes are naturally and simply explained by observing that logic programming in fact implements no more than a constructive fragment of classical logic. Relying on a “Conditional Fixpoint Procedure”, we first define a monotonic inference procedure for logic programs with negation that are consistent in this constructive fragment. Then we show how this procedure can be extended into a “Ternary Fixpoint Procedure” for general programs. This fixpoint procedure defines a ternary logic semantics for syntactically unrestricted logic programs. Finally, we argue that the constructive interpretation of logic programming also gives a simple and natural explanation of meta-programming. Relying on this view of meta-programming, we specify different forms of reflective reasoning, in particular default reasoning.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. R. Apt, H. A. Blair, and A. Walker. Foundations of Deductive Databases and Logic Programming, chapter Towards a Theory of Declarative Knowledge. Morgan Kaufmann, Los Altos, Calif., 1988.

    Google Scholar 

  2. M. Bruynooghe and D. De Schreye. Tutorial Notes for: Abstract Interpretation in Logic Programming. Research report, University of Leuven, 1988. Invited tutorial of the 5th Int. Conf. on Logic Programming (ICLP), Seattle, 1988.

    Google Scholar 

  3. C. Beckstein. Zur Logik der Logik-Programmierung — Ein konstruktiver Ansatz. Informatik-Fachbericht 199. Springer-Verlag, 1988.

    Google Scholar 

  4. N. Bidoit and C. Froidevaux. Negation by Default and Unstratifiable Logic Programs. Theoretical Computer Science, 1990. To appear.

    Google Scholar 

  5. F. Bancilhon, D. Maier, Y. Sagiv, and J. Ullamn. Magic Sets and other Strange Ways to Implement Logic Programs. In Proc. 5th ACM SIGMOD-SIGACT Symp. on Principles of Database Systems (PODS), 1986.

    Google Scholar 

  6. D. Bojadziev. A Constructive View of Prolog. Journal of Logic Programming, 3(1):69–74, 1986.

    Google Scholar 

  7. C. Beeri and R. Ramakrishnan. On the Power of Magic. In Proc. 6th ACM SIGMOD-SIGACT Symp. on Principles of Database Systems (PODS), 1987.

    Google Scholar 

  8. F. Bry. Logic Programming as Constructivism: A Formalization and its Application to Databases. In Proc. 8th ACM SIGACT-SIGMOD-SIGART Symp. on Principles of Database Systems (PODS), Philadelphia, Penn., March 1989.

    Google Scholar 

  9. F. Bry. Query Evaluation in Recursive Databases: Bottom-up and Top-down Reconciled. In Proc. 1st Int. Conf. on Deductive and Object-Oriented Databases (DOOD), Kyoto, Japan, Dec. 1989. The complete version of this article will appear in the special issue of Data & Knowledge Engineering devoted to the DOOD '89 Conference.

    Google Scholar 

  10. F. Bry. Towards an Efficient Evaluation of General Queries: Quantifier and Disjunction Processing Revisited. In Proc. ACM-SIGMOD Conf. on Management of Data (SIGMOD), Portland, Oreg., May-June 1989.

    Google Scholar 

  11. F. Bry. Negation in logischer Programmierung: Eine Formalisierung in konstruktiver Logik. Research Report IR-KB-72, ECRC, 1990.

    Google Scholar 

  12. A. Calder. Constructive Mathematics. Scientific American, 241(4):134–143, 1979.

    Google Scholar 

  13. K. L. Clark. Logic and Databases, chapter Negation as Failure. Plenum Press, New York, 1978.

    Google Scholar 

  14. J. de Kleer. An Assumption-Based Truth Maintenance system. Artificial Intelligence, 28:127–162, 1986.

    Google Scholar 

  15. J. Doyle. A Truth Maintenance system. Artificial Intelligence, 24, 1979.

    Google Scholar 

  16. H. B. Enderton. A Mathematical Introduction to Logic. Academic Press, 1972.

    Google Scholar 

  17. M. Fitting. A Kripke-Kleene Semantics for Logic Programs. Journal of Logic Programming, 4:295–312, 1985.

    Google Scholar 

  18. J. Gallagher, M. Codish, and E. Shapiro. Specialisation of Prolog and FCP Programs Using Abstract Interpretation. New Generation Computing, 6:159–186, 1988.

    Google Scholar 

  19. J.-Y. Girard. Linear Logic. Theoretical Computer Science, 50:1–102, 1987.

    Google Scholar 

  20. M. Gelfond and V. Lifschitz. The Stable Model Semantics for Logic Programming. In Proc. 5 th Int. Conf. and Symp. on Logic Programming (ICLP-SLP), Seattle, 1988.

    Google Scholar 

  21. J.-Y. Girard, Y. Lafont, and P. Taylor. Proofs and Types. Cambridge Tracts in Theoretical Computer Science 7. Cambridge University Press, 1989.

    Google Scholar 

  22. G. Huet. Fundamentals of Artificial Intelligence, chapter Deduction and Computation. LNCS 232. Springer-Verlag, 1986.

    Google Scholar 

  23. R. Kowalski. Logic for Problem Solving. North Holland, 1979.

    Google Scholar 

  24. J. Lloyd. Foundations of Logic Programming. Symbolic Computation. Springer-Verlag, 1987. Second Edition.

    Google Scholar 

  25. R. Manthey. Can We Reach a Uniform Paradigm for Deductive Query Evaluation? In Proc. 3 rd Int. GI Congress ”Knowledge Based Systems”, München, Oct. 1989.

    Google Scholar 

  26. R. C. Moore. Semantical Considerations on Nonmonotonic Logic. Artificial Intelligence, 25, 1985.

    Google Scholar 

  27. D. Poole. Explanation and Prediction: An Architecture for Default and Abductive Reasoning. Tech. Report 89-4, Dept. of Comp. Sc., Univ. of British Columbia, 198.

    Google Scholar 

  28. T. C. Przymusinski. Foundations of Deductive Databases and Logic Programming, chapter On the Declarative Semantics of Deductive Databases and Logic Programs. Morgan Kaufmann, Los Altos, Calif., 1988.

    Google Scholar 

  29. R. Reiter. On Closed World Databases, pages 56–76. Plenum Press, New York, 1978.

    Google Scholar 

  30. R. Reiter. A Logic for Default Reasoning. Artificial Intelligence, 13, 1980.

    Google Scholar 

  31. J. A. Robinson. A Machine-Oriented Logik Based on the Resolution Principle. Journal of the ACM, 12(1):23–41, 1965.

    Google Scholar 

  32. J. A. Robinson. Automated Deduction with Hyper-Resolution. Journal of Comp. Math., 1:227–234, 1965.

    Google Scholar 

  33. S. Safra and E. Shapiro. Meta Interpreters for Real. In Proc. 12 th IFIP World Congress, 1986.

    Google Scholar 

  34. L. Sterling and E. Shapiro. The Art of Prolog. MIT Press, 1986.

    Google Scholar 

  35. M. E. Stickel. An Introduction to Automated Deduction, pages 75–132. Springer Verlag, Berlin, 1986.

    Google Scholar 

  36. A. Van Gelder. Foundations of Deductive Databases and Logic Programming, chapter Negation as Failure Using Tight Derivations for General Logic Programs. Morgan Kaufmann, Los Altos, Calif., 1988.

    Google Scholar 

  37. A. Van Gelder. The Alternating Fixpoint of Logic Programs with Negation. In Proc. 8 th ACM SIGACT-SIGMOD-SIGART Symp. on Principles of Database Systems (PODS), Philadelphia, Penn., March 1989.

    Google Scholar 

  38. M. van Emden and R. Kowalski. The Semantics of Predicate Logic as a Programming Language. Journal of the ACM, 23(4):733–742, 1976.

    Google Scholar 

  39. L. Vieille. Recursive Query Processing: The Power of Logic. Theoretical Computer Science, 69(1):1–53, Dec. 1989.

    Google Scholar 

  40. A. Van Gelder, K. A. Ross, and Schlipf J. S. The Well-Founded Semantics for General Logic Programs. In Proc. 7 th ACM SIGACT-SIGMOD-SIGART Symp. on Principles of Database Systems (PODS), Austin, Texas, March 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Dimitris Karagiannis

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bry, F. (1991). Negation in logic programming: A formalization in constructive logic. In: Karagiannis, D. (eds) Information Systems and Artificial Intelligence: Integration Aspects. IS/KI 1990. Lecture Notes in Computer Science, vol 474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-53557-8_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-53557-8_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-53557-7

  • Online ISBN: 978-3-540-46809-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics