Results 1  10
of
13
Inferring Termination Conditions for Logic Programs Using Backwards Analysis
 Proceedings of the Eighth International Conference on Logic for Programming, Artificial Intelligence and Reasoning, volume 2250 of Lecture Notes in Artificial Intelligence
, 2003
"... This paper focuses on the inference of modes for which a logic program is guaranteed to terminate. This generalizes traditional termination analysis where an analyzer tries to verify termination for a specified mode. The contribution is a methodology which combines traditional termination analysis a ..."
Abstract

Cited by 25 (1 self)
 Add to MetaCart
This paper focuses on the inference of modes for which a logic program is guaranteed to terminate. This generalizes traditional termination analysis where an analyzer tries to verify termination for a specified mode. The contribution is a methodology which combines traditional termination analysis and backwards analysis to obtain termination inference. We demonstrate the application of this methodology to enhance a termination analyzer to perform also termination inference.
Proving Termination for Logic Programs by the QueryMapping Pairs Approach
 PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC
, 2004
"... This paper describes a method for proving termination of queries to logic programs based on abstract interpretation. The method uses querymapping pairs to abstract the relation between calls in the LDtree associated with the program and query. Any well founded partial order for terms can be used ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
This paper describes a method for proving termination of queries to logic programs based on abstract interpretation. The method uses querymapping pairs to abstract the relation between calls in the LDtree associated with the program and query. Any well founded partial order for terms can be used to prove the termination. The ideas of the querymapping pairs approach have been implemented in SICStus Prolog in a system called TermiLog, which is available on the web. Given a program and query pattern the system either answers that the query terminates or that there may be nontermination. The advantages of the method are its conceptual simplicity and the fact that it does not impose any restrictions on the programs.
Inference of Termination Conditions for Numerical Loops in Prolog
 Logic for Programming, Arti Intelligence, and Reasoning, 8th International Conference, Proceedings, volume 2250 of Lecture Notes in Computer Science
, 2001
"... Numerical computations form an essential part of almost any realworld program. Clearly, in order for a termination analyser to be of practical use it should contain a mechanism for inferring termination of such computations. However, this topic attracted less attention of the research community. In ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
Numerical computations form an essential part of almost any realworld program. Clearly, in order for a termination analyser to be of practical use it should contain a mechanism for inferring termination of such computations. However, this topic attracted less attention of the research community. In this work we concentrate on automatic termination inference for logic programs depending on numerical computations. Dershowitz et al. [8] showed that termination of general numerical computations, for instance on floating point numbers, may be counterintuitive, i.e., the observed behaviour does not necessarily coincide with the theoretically expected one. Thus, we restrict ourselves to integer computations only. While discussing termination of integer computations the following question should be asked: what conditions on the queries should be assumed, such that the queries will terminate. We refer to this question as the termination inference...
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.
Forward versus Backward Verification of Logic Programs
 Proceedings of Nineteenth International Conference on Logic Programming, volume 2916 of Lecture Notes in Computer Science
, 2003
"... Abstract. One recent development in logic programming has been the application of abstract interpretation to verify the partial correctness of a logic program with respect to a given set of assertions. One approach to verification is to apply forward analysis that starts with an initial goal and tra ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
Abstract. One recent development in logic programming has been the application of abstract interpretation to verify the partial correctness of a logic program with respect to a given set of assertions. One approach to verification is to apply forward analysis that starts with an initial goal and traces the execution in the direction of the controlflow to approximate the program state at each program point. This is often enough to verify that the assertions hold. The dual approach is to apply backward analysis to propagate properties of the allowable states against the controlflow to infer queries for which the program will not violate any assertion. This paper is a systematic comparison of these two approaches to verification. The paper reports some equivalence results that relate the relative power of various forward and backward analysis frameworks. 1
Proving Termination With Adornments
 IN PROC. 14TH ICLP
, 1997
"... Proving termination is one of the most intriguing problems of program verification. Recently, the study of termination of numerical programs led to the emerging of the adorning technique. This approach is based on the idea of distinguishing between different subsets of values for variables, and d ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Proving termination is one of the most intriguing problems of program verification. Recently, the study of termination of numerical programs led to the emerging of the adorning technique. This approach is based on the idea of distinguishing between different subsets of values for variables, and deriving piecewise level mappings based on these subsets. In the current paper we generalise the technique and consider symbolical computations. Our experience suggests that such a generalisation will allow automated tools to verify termination of examples that remain at the moment beyond their abilities.
NonTermination Inference for Constraint Logic Programs
 Proc. of the 11th International Symposium on Static Analysis, volume 3148 of Lecture Notes in Computer Science
"... Termination has been a subject of intensive research in the logic programming community for the last two decades. Most works deal with proving universal left termination of a given class of queries, i.e. ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Termination has been a subject of intensive research in the logic programming community for the last two decades. Most works deal with proving universal left termination of a given class of queries, i.e.
On Termination of MetaPrograms
 Tech. Rep. cs.PL/0110035, The Computing Research Repository (CoRR). Available
, 2001
"... The term metaprogramming... In this paper we aim to specify conditions on the metainterpreters that imply that termination of the object program with respect to some goal is improved or preserved. We start by identifying popular classes of metainterpreters, such as extended metainterpreters [7], ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The term metaprogramming... In this paper we aim to specify conditions on the metainterpreters that imply that termination of the object program with respect to some goal is improved or preserved. We start by identifying popular classes of metainterpreters, such as extended metainterpreters [7], and then develop a methodology to prove the desired. Our approach is based on two observations. First, termination of logic programs can be proved via general termorderings, similar to those used to prove termination of termrewrite systems [9]. Second, if is an ordering such that termination of a metaprogram, obtained from "vanilla" and an object program P , with respect to a goal solve(G) can be proved via it, then termination of P with respect to G can be proved via >, where > is de ned as A > B if solve(A) solve(B). This is not necessary true for more practical applications of metainterpreters, such as debuggers, since they also are required to produce some additional output or to perform some additional tasks during the execution, such as constructing proof trees. These extensions can and usually will influence termination properties of the metainterpreter. However, for the specified classes of metainterpreters we can state conditions that imply a simple relation between an ordering proving termination of a metaprogram and an ordering proving termination of an object program. These conditions imply termination improvement or preservation
cTI: a bottomup constraintbased Termination Inference tool for Prolog
"... We present the implementation of cTI, the first system for universal lefttermination inference of logic programs. Termination inference generalizes termination analysis/checking. Traditionally, a termination analyzer tries to prove that a given class of queries terminates. This class must be provid ..."
Abstract
 Add to MetaCart
We present the implementation of cTI, the first system for universal lefttermination inference of logic programs. Termination inference generalizes termination analysis/checking. Traditionally, a termination analyzer tries to prove that a given class of queries terminates. This class must be provided to the system, requiring user annotations. With termination inference such annotations are no longer necessary. Instead, all provably terminating classes to all related predicates are inferred at once. The architecture of cTI and its algorithms are described. Experimentations including running times for classical examples from the logic programming termination literature and for some larger logic programs are given.
Termination Analysis of Typed Logic Programs
, 2003
"... In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed logic programs to determine more accurate termination of (type correct) programs. Type information for programs may be either inferred automatically or declared by the programme ..."
Abstract
 Add to MetaCart
In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed logic programs to determine more accurate termination of (type correct) programs. Type information for programs may be either inferred automatically or declared by the programmer. The analysis of the typed logic programs is able to completely reuse a framework for termination analysis of untyped logic programs by using abstract compilation of the type abstraction. We de ne a methodology for mapping a typed logic program to a type separated CLP(N) program that allows us to automatically determine termination characteristics of the original program. We demonstrate how the approach is able to prove termination of programs which the untyped analysis can not.