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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
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.
C. Beckstein. Zur Logik der Logik-Programmierung — Ein konstruktiver Ansatz. Informatik-Fachbericht 199. Springer-Verlag, 1988.
N. Bidoit and C. Froidevaux. Negation by Default and Unstratifiable Logic Programs. Theoretical Computer Science, 1990. To appear.
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.
D. Bojadziev. A Constructive View of Prolog. Journal of Logic Programming, 3(1):69–74, 1986.
C. Beeri and R. Ramakrishnan. On the Power of Magic. In Proc. 6th ACM SIGMOD-SIGACT Symp. on Principles of Database Systems (PODS), 1987.
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.
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.
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.
F. Bry. Negation in logischer Programmierung: Eine Formalisierung in konstruktiver Logik. Research Report IR-KB-72, ECRC, 1990.
A. Calder. Constructive Mathematics. Scientific American, 241(4):134–143, 1979.
K. L. Clark. Logic and Databases, chapter Negation as Failure. Plenum Press, New York, 1978.
J. de Kleer. An Assumption-Based Truth Maintenance system. Artificial Intelligence, 28:127–162, 1986.
J. Doyle. A Truth Maintenance system. Artificial Intelligence, 24, 1979.
H. B. Enderton. A Mathematical Introduction to Logic. Academic Press, 1972.
M. Fitting. A Kripke-Kleene Semantics for Logic Programs. Journal of Logic Programming, 4:295–312, 1985.
J. Gallagher, M. Codish, and E. Shapiro. Specialisation of Prolog and FCP Programs Using Abstract Interpretation. New Generation Computing, 6:159–186, 1988.
J.-Y. Girard. Linear Logic. Theoretical Computer Science, 50:1–102, 1987.
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.
J.-Y. Girard, Y. Lafont, and P. Taylor. Proofs and Types. Cambridge Tracts in Theoretical Computer Science 7. Cambridge University Press, 1989.
G. Huet. Fundamentals of Artificial Intelligence, chapter Deduction and Computation. LNCS 232. Springer-Verlag, 1986.
R. Kowalski. Logic for Problem Solving. North Holland, 1979.
J. Lloyd. Foundations of Logic Programming. Symbolic Computation. Springer-Verlag, 1987. Second Edition.
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.
R. C. Moore. Semantical Considerations on Nonmonotonic Logic. Artificial Intelligence, 25, 1985.
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.
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.
R. Reiter. On Closed World Databases, pages 56–76. Plenum Press, New York, 1978.
R. Reiter. A Logic for Default Reasoning. Artificial Intelligence, 13, 1980.
J. A. Robinson. A Machine-Oriented Logik Based on the Resolution Principle. Journal of the ACM, 12(1):23–41, 1965.
J. A. Robinson. Automated Deduction with Hyper-Resolution. Journal of Comp. Math., 1:227–234, 1965.
S. Safra and E. Shapiro. Meta Interpreters for Real. In Proc. 12 th IFIP World Congress, 1986.
L. Sterling and E. Shapiro. The Art of Prolog. MIT Press, 1986.
M. E. Stickel. An Introduction to Automated Deduction, pages 75–132. Springer Verlag, Berlin, 1986.
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.
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.
M. van Emden and R. Kowalski. The Semantics of Predicate Logic as a Programming Language. Journal of the ACM, 23(4):733–742, 1976.
L. Vieille. Recursive Query Processing: The Power of Logic. Theoretical Computer Science, 69(1):1–53, Dec. 1989.
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.
Author information
Authors and Affiliations
Editor information
Rights 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