MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  The theoretical foundations of LPTP (A Logic Program Theorem Prover (1998) [14 citations — 2 self]

Download:
Download as a PDF
by Robert F. Stärk
J. of Logic Programming
http://www.inf.ethz.ch/personal/staerk/pdf/fnd.pdf
Add To MetaCart

Abstract:

This article contains the theoretical foundations of LPTP, a logic program theorem prover that has been implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove correctness properties of pure Prolog programs that contain negation and built-in predicates like is/2 and call/n + 1. The largest example 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. The inductive extension allows to express modes and types of predicates. These can then be used to prove termination and correctness properties of programs. The main result of this article is that the inductive extension is an adequate axiomatization of the operational semantics of pure Prolog with built-in predicates.

Citations

787 Negation as Failure – Clark - 1978
387 A Computational Logic Handbook – Boyer, Moore - 1988
214 Negation in logic programming – Kunen - 1987
146 The execution algorithm of Mercury, an efficient purely declarative logic programming language – Somogyi, Henderson, et al. - 1996
140 Elementary induction on abstract structures – Moschovakis - 1974
119 Reasoning about termination of pure PROLOG programs – Apt, Pedreschi - 1993
74 Reasoning about Prolog programs: from modes through types to assertions – Apt, Marchiori - 1994
62 Inductive Assertion Method for Logic Programs – Drabent, Maluszynski - 1988
61 From Logic to Logic Programming – Doets - 1994
53 Denotational and Operational Semantics for Prolog – Debray, Mishra - 1988
24 Proving termination properties of Prolog programs: a semantic approach – Baudinet - 1992
24 Logics for termination and correctness of functional programs – Feferman - 1992
11 The declarative semantics of the Prolog selection rule – Stärk - 1994
10 A proof-theoretic framework for logic programming – Jäger, Stärk - 1998
10 Why the constant ‘undefined’? Logics of partial terms for strict and non-strict functional programming languages – Stärk - 1998
9 A logical semantics for depth-first Prolog with ground negation – Andrews - 1993
5 Deklarative Semantik von Logikprogrammen mit PROLOGs Auswertungsstrategie – Elbl - 1994
4 First-order theories for pure Prolog programs with negation – Stärk - 1995
3 Meta Logics for Logic Programming – Kalsbeek - 1995
3 Proving inductive properties of Prolog programs in second-order intuitionistic logic – McCarty - 1993