Results 1 
5 of
5
On Proving Left Termination of Constraint Logic Programs
 ACM Transaction on Computational Logic
, 2001
"... The Constraint Logic Programming (CLP) Scheme merges logic programming with constraint solving over predefined domains. In this paper, we study proof methods for universal left termination of constraint logic programs. We provide a sound and complete characterization of left termination for ideal CL ..."
Abstract

Cited by 17 (7 self)
 Add to MetaCart
(Show Context)
The Constraint Logic Programming (CLP) Scheme merges logic programming with constraint solving over predefined domains. In this paper, we study proof methods for universal left termination of constraint logic programs. We provide a sound and complete characterization of left termination for ideal CLP languages which generalizes acceptability of logic programs. The characterization is then refined to the notion of partial acceptability, which is wellsuited for automatic modular inference. We describe a theoretical framework for automation of the approach, which is implemented. For nonideal CLP languages and without any assumption on their incomplete constraint solvers, even the most basic sound termination criterion from logic programming does not lift. We focus on a specific system, namely CLP(R), by proposing some additional conditions that make (partial) acceptability sound
Characterisations of Termination in Logic Programming
 Theoretical Computer Science
, 2001
"... The procedural interpretation of logic programs and queries is parametric to the selection rule, i.e. the rule that determines which atom is selected in each resolution step. Termination of logic programs and queries depends critically on the selection rule. In this survey, we present a unified ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
The procedural interpretation of logic programs and queries is parametric to the selection rule, i.e. the rule that determines which atom is selected in each resolution step. Termination of logic programs and queries depends critically on the selection rule. In this survey, we present a unified view and comparison of seven notions of universal termination considered in the literature, and the corresponding classes of programs. For each class, we focus on a su#cient, and in most cases even necessary, declarative characterisation for determining that a program is in that class. By unifying di#erent formalisms and making appropriate assumptions, we are able to establish a formal hierarchy between the di#erent classes and their respective declarative characterisations.
On Logic Programs That Always Succeed
"... We introduce a generalized definition of SLDresolution admitting restrictions on atom and/or clause selectability. Instances of these restrictions include delay declarations, inputconsuming unification and guarded clauses. In the context of such a generalization of SLDresolution, we offer a t ..."
Abstract
 Add to MetaCart
(Show Context)
We introduce a generalized definition of SLDresolution admitting restrictions on atom and/or clause selectability. Instances of these restrictions include delay declarations, inputconsuming unification and guarded clauses. In the context of such a generalization of SLDresolution, we offer a theoretical framework to reason about programs and queries such that all derivations are successful. We provide a characterization of those programs and queries which allows to reuse existing methods from the literature on termination and verification of Prolog programs.
IOS Press Control Generation by Program Transformation
"... Abstract. The objective of control generation in logic programming is to derive a computation rule for a program that is efficient and yet does not compromise program correctness. Progress in solving this fundamental problem in logic programming has been slow and, to date, only partial solutions hav ..."
Abstract
 Add to MetaCart
Abstract. The objective of control generation in logic programming is to derive a computation rule for a program that is efficient and yet does not compromise program correctness. Progress in solving this fundamental problem in logic programming has been slow and, to date, only partial solutions have been proposed. Previously proposed schemes are either inefficient, incomplete (incorrect) or difficult to apply for programs consisting of many components (the scheme is not modular). This paper shows how the control generation problem can be tackled by program transformation. The transformation relies on information about the depths of derivations to derive delay declarations which orchestrate the control. To prove correctness of the transformation, the notion of semidelay recurrency is introduced, which generalises previous ideas in the termination literature for reasoning about logic programs with delay declarations. In contrast to previous work, semidelay recurrency does not require an atom to be completely resolved before another is selected for reduction. This enhancement permits the transformation to introduce control which is flexible and relatively efficient.