Abstract
We present the theoretical foundations of LPTP, a logic program theorem prover implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove termination and correctness properties of pure Prolog programs that contain negation and built-in predicates like is/2 and call/n. The largest program that has been verified using LPTP is 635 lines long including its specification. The full formal correctness proof is 13128 lines long (133 pages). The formal theory underlying LPTP is the inductive extension of pure Prolog programs. This is a first-order theory that contains induction principles corresponding to the definition of the predicates in the program plus appropriate axioms for built-in predicates.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
K. R. Apt. From Logic Programming to Prolog. International Series in Computer Science. Prentice Hall, 1996.
K. R. Apt and D. Pedreschi. Reasoning about termination of pure Prolog programs. Information and Computation, 106(1):109–157, 1993.
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.
S. K. Debray and P. Mishra. Denotational and operational semantics for Prolog. J. of Logic Programming, 5(1):61–91, 1988.
S. Feferman. Logics for termination and correctness of functional programs. In Y. N. Moschovakis, editor, Logic from Computer Science, pages 95–127, New York, 1992. Springer-Verlag.
S. Feferman. Logics for termination and correctness of functional programs, II. Logics of strength PRA. In P. Aczel, H. Simmons, and S. S. Wainer, editors, Proof Theory, pages 195–225. Cambridge University Press, 1992.
P. M. Hill and J. W. Lloyd. The Gödel Programming Language. MIT Press, 1994.
K. Kunen. Signed data dependencies in logic programs. J. of Logic Programming, 7(3):231–245, 1989.
Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an efficient purely declarative logic programming language. J. of Logic Programming, 1996. To appear.
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.
R. F. Stärk. Input/output dependencies of normal logic programs. J. of Logic and Computation, 4(3):249–262, 1994.
R. F. Stärk. First-order theories for pure Prolog programs with negation. Archive for Mathematical Logic, 34(2):113–144, 1995.
R. F. Stärk. The finite stages of inductive definitions. In P. Hájek, editor, GöDEL'96. Logical Foundations of Mathematics, Computer Science and Physics — Kurt Gödel's Legacy, pages 267–290, Brno, Czech Republic, 1996. Springer-Verlag, Lecture Notes in Logic 6.
R. F. Stärk. The theoretical foundations of LPTP (a logic program theorem prover). Technical report, Institute of Informatics, University of Fribourg, 1997.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stärk, R.F. (1997). Formal verification of logic programs: Foundations and implementation. In: Adian, S., Nerode, A. (eds) Logical Foundations of Computer Science. LFCS 1997. Lecture Notes in Computer Science, vol 1234. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63045-7_36
Download citation
DOI: https://doi.org/10.1007/3-540-63045-7_36
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63045-6
Online ISBN: 978-3-540-69065-8
eBook Packages: Springer Book Archive