Inference of termination conditions for numerical loops in Prolog

  title={Inference of termination conditions for numerical loops in Prolog},
  author={Alexander Serebrenik and Danny De Schreye},
  journal={Theory and Practice of Logic Programming},
  pages={719 - 751}
We present a new approach to termination analysis of numerical computations in logic programs. Traditional approaches fail to analyse them due to non well-foundedness of the integers. We present a technique that allows overcoming these difficulties. Our approach is based on transforming a program in a way that allows integrating and extending techniques originally developed for analysis of numerical computations in the framework of query-mapping pairs with the well-known framework of… 
cTI: a constraint-based termination inference tool for ISO-Prolog
The architecture of cTI is described and an extensive experimental evaluation of the system is reported, covering many classical examples from the logic programming termination literature and several Prolog programs of respectable size and complexity.
Proving Termination with Adornments
This paper generalises the adorning technique and discusses its applicability to the domain of terms (the Herbrand domain), which implements the well-known “divide et impera” strategy.
SAT-based termination analysis using monotonicity constraints over the integers
An algorithm for proving termination of programs abstracted to systems of monotonicity constraints in the integer domain based on the search for a special type of ranking function defined in terms of bounded differences between multisets of integer values is described.
Terminating Evaluation of Logic Programs with Finite Three-Valued Models
This article provides a formal definition of tabling with subgoal abstraction resulting in the SLGSA algorithm, which has an asymptotic complexity on strongly bounded term-size programs equal to the best known and produces a residual program that can be sent to an answer set programming system.
Static Termination Analysis for Prolog Using Term Rewriting and SAT Solving
This approach is based on the use of program transformations to obtain simpler termination problems, a framework for modular termination analysis, and the encoding of search problems into satisfiability of propositional logic (SAT) for efficient generation of ranking functions.
Automated Termination Analysis for Logic Programs by Term Rewriting
This paper improves the transformations of a logic program into a term rewrite system (TRS) such that they become applicable for any definite logic program, and simulates the behavior of logic programs by TRSs by slightly modifying the notion of rewriting by permitting infinite terms.
Automated termination proofs for logic programs by term rewriting
This article improves transformations of a logic program into a Term Rewrite System (TRS) such that they become applicable for any definite logic program and slightly modify the notion of rewriting by permitting infinite terms.
Termination Analysis of Logic Programs: Extended Abstract
This paper briefly discusses both conditions that are equivalent to termination and their approximations that imply termination and can be verified automatically in Turing-complete logic programs.
Analysis and Transformation Tools for Constrained Horn Clause Verification
It is found that many problems can be solved using a combination of tools based on well-known techniques from abstract interpretation, semantics-preserving transformations, program specialisation and query-answer transformations to solve challenging CHC verification problems.
On Termination of Binary CLP Programs
This paper introduces a class of binary CLP programs such that their termination can be proved by using linear level mappings and shows that membership to this class is decidable and presents a decision procedure.


Inference of termination conditions for numerical loops
An approach based on transforming a program in way that allows integrating and extending techniques originally developed for analysis of numerical computations in the framework of query-mapping pairs with the well-known framework of acceptability to perform a correct analysis of such computations automatically, thus, extending previous work on a constraints-based approach to termination.
Detecting Optimal Termination Conditions of Logic Programs
This framework relies on an extension of the Lifting Theorem, where some specific argument positions can be instantiated while others are generalized, and is tailored to attempt proofs of optimality of left termination conditions computed by a termination inference tool.
Applying Static Analysis Techniques for Inferring Termination Conditions of Logic Programs
The implementation of cTI is presented, a system for universal left-termination inference of logic programs, where all provably terminating classes to all related predicates are inferred at once.
Unfolding the Mystery of Mergesort
This paper outlines a fully automatic transformation for proving termination of queries to a class of logic programs, for which existing methods do not work directly. The transformation consists of
Constraint-based termination analysis of logic programs
A new termination analysis is presented which integrates the various components and produces a set of constraints that, when solvable, identifies successful termination proofs and the need for multiple analyses is considerably reduced.
A declarative approach for first-order built-in's of Prolog
A new, declarative semantics is proposed and it is shown that this semantics is fully abstract in an appropriate sense and proves completeness of the Prolog computation mechanism w.r.t. this semantics.
Reuse of Results in Termination Analysis of Typed Logic Programs
It is shown that by considering polymorphic types the authors reduce, without sacrificing precision, the number of type-based norms which should be combined to provide the candidate norm and that when a generic polymorphic typed program component occurs in one or more specific type contexts, they need not reanalyze it.
Termination detection in logic programs using argument sizes (extended abstract)
A method ofding a nonnegative linear combination of bound argument sizes that is guaranteed to decrease during top-down execution of recursive rules is described, which can handle nonlinear recursion, mutual recursions, and cases in which no speci c argument is certain to decrease.
Proving Termination of Logic Programs by Exploiting Term Properties
In this paper semi-linear norms, a class of functions to weight the terms occurring in a program, are defined and studied. All the functions in this class have the nice property of allowing a
A General Framework for Automatic Termination Analysis of Logic Programs
A new method is presented, based on combining a finite abstraction of the integers with the technique of the query-mapping pairs, and is essentially capable of dividing a termination proof into several cases, such that a simple termination function suffices for each case.