LPNMR 1995: Logic Programming and Nonmonotonic Reasoning pp 302-315 | Cite as
A transformation of propositional Prolog programs into classical logic
Abstract
We transform a propositional Prolog program P into a set of propositional formulas prl(P) and show that Prolog, using its depth-first left-to-right search, is sound and complete with respect to prl(P). This means that a goal succeeds in Prolog if and only if it follows from prl(P) in classical propositional logic. The generalization of prl(P) to predicate logic leads to a system for which Prolog is still sound but unfortunately not complete. If one changes, however, the definition of the termination operator, then one obtains a theory that allows to prove termination of arbitrary non-floundering goals under Prolog.
Preview
Unable to display preview. Download preview PDF.
References
- 1.J. Andrews. A logical semantics for depth-first Prolog with ground negation. Technical Report CSS/LCCR TR93-10, Centre for Systems Science, Simon Fraser University, 1993.Google Scholar
- 2.K. R. Apt. Declarative programming in Prolog. In D. Miller, editor, Logic Programming — Proceedings of the 1993 International Symposium, pages 11–35. MIT Press, 1993.Google Scholar
- 3.K. R. Apt and D. Pedreschi. Reasoning about termination of pure Prolog programs. Information and Computation, 106(1):109–157, 1993.Google Scholar
- 4.E. Börger and D. Rosenzweig. A mathematical definition of full Prolog. Science of Computer Programming, 1993. To appear.Google Scholar
- 5.S. Cerrito. A linear axiomatization of negation as failure. J. of Logic Programming, 12(1):1–24, 1992.Google Scholar
- 6.K. L. Clark. Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Data Bases, pages 293–322. Plenum Press, New York, 1978.Google Scholar
- 7.B. Elbl. Deklarative Semantik von Logikprogrammen mit PROLOGs Auswertungsstrategie. PhD thesis, Universität der Bundeswehr, München, Germany, 1994.Google Scholar
- 8.M. Fitting. A Kripke-Kleene semantics for logic programs. J. of Logic Programming, 2:295–312, 1985.Google Scholar
- 9.G. Jäger. Non-monotonic reasoning by axiomatic extensions. In J. E. Fenstad, I. T. Frolov, and R. Hilpinen, editors, Logic, Methodology and Philosophy of Science VIII, pages 93–110, Amsterdam, 1989. North-Holland.Google Scholar
- 10.G. Jäger and R. F. Stärk. A proof-theoretic framework for logic programming. In S. Buss, editor, Handbook of Proof Theory. 1994. In Preparation.Google Scholar
- 11.M. Kalsbeek. Gentzen systems for logic programming styles. Technical Report CT-94-12, ILLC, University of Amsterdam, 1994.Google Scholar
- 12.K. Kunen. Negation in logic programming. J. of Logic Programming, 4(4):289–308, 1987.Google Scholar
- 13.G. E. Mints. Complete calculus for pure Prolog. Proc. Acad. Sci. Estonian SSR, 35(4):367–380, 1986. In Russian.Google Scholar
- 14.J. C. Shepherdson. Mints type deductive calculi for logic programming. Annals of Pure and Applied Logic, 56(1–3):7–17, 1992.Google Scholar
- 15.R. F. Stärk. Input/output dependencies of normal logic programs. J. of Logic and Computation, 4(3):249–262, 1994.Google Scholar
- 16.R. F. Stärk. The declarative semantics of the Prolog selection rule. In Proceedings of the Ninth Annual IEEE Symposium on Logic in Computer Science, LICS '94, pages 252–261, Paris, France, July 1994. IEEE Computer Society Press.Google Scholar
- 17.R. F. Stärk. First-order theories for pure Prolog programs with negation. Archive for Mathematical Logic, 199? To appear.Google Scholar
- 18.J. van Benthem. Logic as programming. Fundamenta Informaticae, 17(4):285–317, 1993.Google Scholar
- 19.A. Van Gelder and J. S. Schlipf. Commonsense axiomatizations for logic programs. J. of Logic Programming, 17(2,3,4):161–195, 1993.Google Scholar