Skip to main content

Formal verification of logic programs: Foundations and implementation

  • Conference paper
  • First Online:
Logical Foundations of Computer Science (LFCS 1997)

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

Included in the following conference series:

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.

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. From Logic Programming to Prolog. International Series in Computer Science. Prentice Hall, 1996.

    Google Scholar 

  2. K. R. Apt and D. Pedreschi. Reasoning about termination of pure Prolog programs. Information and Computation, 106(1):109–157, 1993.

    Google Scholar 

  3. 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 

  4. S. K. Debray and P. Mishra. Denotational and operational semantics for Prolog. J. of Logic Programming, 5(1):61–91, 1988.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. P. M. Hill and J. W. Lloyd. The Gödel Programming Language. MIT Press, 1994.

    Google Scholar 

  8. K. Kunen. Signed data dependencies in logic programs. J. of Logic Programming, 7(3):231–245, 1989.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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 

  11. R. F. Stärk. Input/output dependencies of normal logic programs. J. of Logic and Computation, 4(3):249–262, 1994.

    Google Scholar 

  12. R. F. Stärk. First-order theories for pure Prolog programs with negation. Archive for Mathematical Logic, 34(2):113–144, 1995.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. R. F. Stärk. The theoretical foundations of LPTP (a logic program theorem prover). Technical report, Institute of Informatics, University of Fribourg, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Sergei Adian Anil Nerode

Rights and permissions

Reprints 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

Publish with us

Policies and ethics