Results 1 
4 of
4
The theoretical foundations of LPTP (a logic program theorem prover)
 J. of Logic Programming
, 1998
"... 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 builtin predicates like ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
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 builtin 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 firstorder theory that contains induction principles corresponding to the definition of the predicates in the program plus appropriate axioms for builtin 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 builtin predicates. Keywords: Verification of logic programs; pure Prolog; lefttermination; induction. 1
Formal Verification of Logic Programs: Foundations and Implementation
 In Logical Foundations of Computer Science LFCS '97  Logic at Yaroslavl
, 1997
"... . 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 builtin predicates like is/2 an ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
. 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 builtin 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 firstorder theory that contains induction principles corresponding to the definition of the predicates in the program plus appropriate axioms for builtin predicates. 1
The Finite Stages of Inductive Definitions
 Logical Foundations of Mathematics, Computer Science and Physics — Kurt Gödel’s Legacy
, 1996
"... . In general, the least fixed point of a positive elementary inductive definition over the Herbrand universe is # 1 1 and has no computational meaning. The finite stages, however, are computable, since validity of equality formulas in the Herbrand universe is decidable. We set up a formal system BI ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. In general, the least fixed point of a positive elementary inductive definition over the Herbrand universe is # 1 1 and has no computational meaning. The finite stages, however, are computable, since validity of equality formulas in the Herbrand universe is decidable. We set up a formal system BID for the finite stages of positive elementary inductive definitions over the Herbrand universe and show that the provably total functions of the system are exactly that of Peano arithmetic. The formal system BID contains the socalled inductive extension of a logic program as a special case. This firstorder theory can be used to prove termination and correctness properties of pure Prolog programs, since notions like negationasfailure and lefttermination can be turned into positive inductive definitions. 1 Why inductive definitions over the Herbrand universe? In traditional logic programming, the semantics of a program is always given by the least fixed point of a monotonic operator over the Herbrand universe. The first example is the wellknown van EmdenKowalski operator for definite Horn clause programs in [25]. This operator is defined by a purely existential formula and is therefore continuous. The least fixed point of the operator is recursively enumerable. Moreover, the finite stages of the inductive definition are exactly what is computed by SLDresolution. In [11], Fitting has generalized the van EmdenKowalski operator using threevalued logic to programs which may also contain negation in the bodies of the clauses. Although Fitting's operator is still monotonic it is no longer continuous. It follows from Blair [2] and Kunen [14] that the least fixed point of this operator can be # 1 1 complete and that the closure ordinal can be # CK 1 even for definite Horn...
A Transformation of Propositional Prolog Programs into Classical Logic
 Archive for Mathematical Logic
, 1995
"... . We transform a propositional Prolog program P into a set of propositional formulas prl(P ) and show that Prolog, using its depthfirst lefttoright 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 ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. We transform a propositional Prolog program P into a set of propositional formulas prl(P ) and show that Prolog, using its depthfirst lefttoright 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 nonfloundering goals under Prolog. 1