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 built-in predicates like ..."
Abstract
-
Cited by 16 (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 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
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 built-in 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 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. 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 so-called inductive extension of a logic program as a special case. This first-order theory can be used to prove termination and correctness properties of pure Prolog programs, since notions like negation-as-failure and left-termination 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 well-known van Emden-Kowalski 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 SLD-resolution. In [11], Fitting has generalized the van Emden-Kowalski 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 depth-first left-to-right 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 depth-first left-to-right 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 non-floundering goals under Prolog. 1

