## The theoretical foundations of LPTP (a logic program theorem prover) (1998)

Venue: | J. of Logic Programming |

Citations: | 20 - 2 self |

### BibTeX

@ARTICLE{Stärk98thetheoretical,

author = {Robert F. Stärk},

title = {The theoretical foundations of LPTP (a logic program theorem prover)},

journal = {J. of Logic Programming},

year = {1998},

volume = {36},

pages = {241--269}

}

### OpenURL

### 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. Keywords: Verification of logic programs; pure Prolog; left-termination; induction. 1

### Citations

978 |
Negation as failure
- Clark
- 1977
(Show Context)
Citation Context ...e introduced if sσ is syntactically identical to tσ, where σ is the most general unifier of the already derived equations. This is a simple and efficient treatment of Clark’s equality theory CET =-=(cf. [6]-=-). The user can define new predicate and function symbols by definitional extensions. Since the new function symbols are in general not simple data constructors, equality between terms with defined fu... |

410 |
A Computational Logic Handbook
- Boyer, Moore
- 1988
(Show Context)
Citation Context ...an interactive theorem prover LPTP (Logic Program Theorem Prover). LPTP is still a prototype and it would be daring to say that LPTP is for Prolog what the Boyer-Moore theorem prover is for Lisp (cf. =-=[5]-=-). Although this article is on the theoretical foundations of LPTP, we list some details about the implementation: LPTP consists of 6500 lines of Prolog code. It is a light system. LPTP has been desig... |

241 |
Negation in logic programming
- Kunen
- 1987
(Show Context)
Citation Context ...es A such that ΓP (A) = A and A |= CET. Theorem 8.5 Let A be an ˆ L-structure that satisfies CET. Assume that all predicates are empty in A. Then I P,A ∞ is a model of IND(P ). The results of [8] =-=and [15] on -=-the closure ordinal of ext and ΦP can be transformed to the operator ΓP . The closure ordinal of ΓP can be ω CK 1 . But in general only the finite stages have a computational meaning. Therefore we... |

201 | The execution algorithm of Mercury: an efficient purely declarative logic programming language. volume 29
- Somogyi, Henderson, et al.
- 1996
(Show Context)
Citation Context ...ional properties of a logic program in a declarative way. Thereby we obtain a declarative semantics for the the mode-, type- and determinism declarations of the new logic programming language Mercury =-=[19]-=-. There are well-established methods for proving properties of logic programs. There are methods for proving termination, there are methods for proving well-typedness etc. (cf. eg. [2, 4, 9, 16, 18]).... |

176 |
Elementary Induction on Abstract Structures
- Moschovakis
- 1974
(Show Context)
Citation Context ...UNI. (3) If A satisfies TOT, then ΓP (A)satisfies TOT. (4) If A satisfies CET and ΓP (A) = A then A satisfies the fixed point axioms. The definition of the stages of the operator ΓP is canonical (c=-=f. [17]). -=-Definition 8.2 Let A be an ˆ L-structure that satisfies CET. Assume that all predicates are empty in A. Then one defines for ordinal numbers α the stages I P,A α way: in the following I P,A 0 := A,... |

126 | Reasoning about termination of pure Prolog programs
- Apt, Pedreschi
- 1993
(Show Context)
Citation Context ... an error message. Rule 8 says that always the left goal is selected in a conjunction. This corresponds to a left-most goal selection rule in standard terminology or to so-called LDNF-resolution (see =-=[3]). Rule 9 -=-and 10 are nondeterministic. This is the only place where nondeterminism occurs. To solve a disjunction (G or H) means either to solve first G and then H or to 11s(1) Σ 〈Φ; true & Q, η〉 ⊲ Σ ... |

86 |
From Logic to Logic Programming
- Doets
- 1994
(Show Context)
Citation Context ...structures A such that ΓP (A) = A and A |= CET. Theorem 8.5 Let A be an ˆ L-structure that satisfies CET. Assume that all predicates are empty in A. Then I P,A ∞ is a model of IND(P ). The results=-= of [8] and-=- [15] on the closure ordinal of ext and ΦP can be transformed to the operator ΓP . The closure ordinal of ΓP can be ω CK 1 . But in general only the finite stages have a computational meaning. The... |

82 | Reasoning about Prolog programs: from Modes through Types to Assertions
- Apt, Marchiori
- 1994
(Show Context)
Citation Context ...nguage Mercury [19]. There are well-established methods for proving properties of logic programs. There are methods for proving termination, there are methods for proving well-typedness etc. (cf. eg. =-=[2, 4, 9, 16, 18]-=-). Our approach, however, is different in two aspects. First, we have one single formal system in which we prove all the different properties of logic programs. Second, we prove the properties not on ... |

56 | Inductive assertion method for logic programs
- Drabent, Małuszyński
- 1988
(Show Context)
Citation Context ...nguage Mercury [19]. There are well-established methods for proving properties of logic programs. There are methods for proving termination, there are methods for proving well-typedness etc. (cf. eg. =-=[2, 4, 9, 16, 18]-=-). Our approach, however, is different in two aspects. First, we have one single formal system in which we prove all the different properties of logic programs. Second, we prove the properties not on ... |

55 | Denotational and operational semantics for Prolog
- Debray, Mishra
- 1988
(Show Context)
Citation Context ...ment is a finite set of bindings {t1/x1, . . . , tn/xn} such that the xi’s are pairwise different variables. Environments are different from substitutions, since it is not required that ti �≡ xi=-= (cf. [7]). W-=-e work with environments rather than with substitutions, since in this way we can avoid some problems related to “standardizing apart” variables. All variables that have ever been used in the comp... |

28 |
Proving Termination Properties of Prolog Programs: A Semantic Approach
- Baudinet
- 1992
(Show Context)
Citation Context ...nguage Mercury [19]. There are well-established methods for proving properties of logic programs. There are methods for proving termination, there are methods for proving well-typedness etc. (cf. eg. =-=[2, 4, 9, 16, 18]-=-). Our approach, however, is different in two aspects. First, we have one single formal system in which we prove all the different properties of logic programs. Second, we prove the properties not on ... |

23 |
Logics for termination and correctness of functional programs II: Logics of strength PRA
- Feferman
- 1992
(Show Context)
Citation Context ...or Q terminate but also that there are no errors in calls of built-in predicates during the computation. There is an interesting analogy between the T operator and the logic of partial terms (cf. eg. =-=[11, 12]).-=- In the logic of partial terms the expression t↓ means that the functional program t terminates and that during the evaluation there are no type conflicts, i.e. the program is dynamically well-typed... |

14 | A proof-theoretic framework for logic programming
- Jager, Stark
- 1998
(Show Context)
Citation Context ...ove the properties not on the operational level but on the declarative level. The main difference to [1, 10, 14] is that we use classical logic. There are several differences between this article and =-=[13, 21]-=-. In this article we use general goals and not only sequences of literals. This allows a uniform treatment of built-in predicates including the predicate call/n + 1. The notion of modes, mode-assignme... |

10 | A logical semantics for depth-first prolog with ground negation
- Andrews
- 1997
(Show Context)
Citation Context ...ingle formal system in which we prove all the different properties of logic programs. Second, we prove the properties not on the operational level but on the declarative level. The main difference to =-=[1, 10, 14]-=- is that we use classical logic. There are several differences between this article and [13, 21]. In this article we use general goals and not only sequences of literals. This allows a uniform treatme... |

10 | The declarative semantics of the Prolog selection rule
- Stark
- 1993
(Show Context)
Citation Context ...= t & G) is equivalent to s = t → F G and T(s = t & G) is equivalent to s = t → T G. The definition of T(not G) is the essential difference between the T operator here and the T (resp. L) operator=-= in [20] and [21].-=- There, T(not G) is simply defined as T G. Here, we require in addition that G is ground using the operator ‘gr’ which is extended from terms to goals as follows: gr(true) :≡ ⊤, gr(G & H) :≡... |

8 | Why the constant ‘undefined’? Logics of partial terms for strict and non-strict functional programming languages
- Stärk
- 1998
(Show Context)
Citation Context ...introduce a new function symbol by a definitional extension. — The advantage of the graph representation is that we do not have to worry about possibly undefined terms and values for ‘undefined’=-= (cf. [22]-=-). Prolog is an untyped programming language and LPTP is untyped too, i.e. the language of LPTP is the language of untyped predicate logic. The types, however, are around in LPTP disguised as unary Pr... |

4 |
Deklarative Semantik von Logikprogrammen mit PROLOGs Auswertungsstrategie
- Elbl
- 1994
(Show Context)
Citation Context ...ingle formal system in which we prove all the different properties of logic programs. Second, we prove the properties not on the operational level but on the declarative level. The main difference to =-=[1, 10, 14]-=- is that we use classical logic. There are several differences between this article and [13, 21]. In this article we use general goals and not only sequences of literals. This allows a uniform treatme... |

4 | First-order theories for pure Prolog programs with negation
- Stärk
- 1995
(Show Context)
Citation Context ...ove the properties not on the operational level but on the declarative level. The main difference to [1, 10, 14] is that we use classical logic. There are several differences between this article and =-=[13, 21]-=-. In this article we use general goals and not only sequences of literals. This allows a uniform treatment of built-in predicates including the predicate call/n + 1. The notion of modes, mode-assignme... |

3 |
Meta Logics for Logic Programming
- Kalsbeek
- 1995
(Show Context)
Citation Context ...ingle formal system in which we prove all the different properties of logic programs. Second, we prove the properties not on the operational level but on the declarative level. The main difference to =-=[1, 10, 14]-=- is that we use classical logic. There are several differences between this article and [13, 21]. In this article we use general goals and not only sequences of literals. This allows a uniform treatme... |

3 |
Proving inductive properties of Prolog programs in second-order intuitionistic logic
- McCarty
- 1993
(Show Context)
Citation Context |