cTI: Bottom-Up Termination Inference for Logic Programs

We present cTI, a system for bottom-up termination inference. Termination inference is a generalization of termination analy-sis/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 not necessary. Instead, all provably terminating classes to all related predicates are inferred at once. The architecture of cTI is discussed, highlighting several new aspects to termination analysis. The notion of termination neutral arguments is introduced, which helps to narrow down the actual arguments responsible for termination in a norm independent manner. We show how our approach can be adopted to realize an incremental system able to reuse previously inferred results, thereby allowing to use the system within a programming environment. Further we show how termination inference serves to tackle generalizations of the usual notion of termination.

[1]  Dino Pedreschi,et al.  Studies in Pure Prolog: Termination , 1990 .

[2]  Michael Codish,et al.  A Semantic Basis for the Termination Analysis of Logic Programs , 1999, J. Log. Program..

[3]  Gérard Ferrand,et al.  NSTO Programs (Not Subject to Occur-Check) , 1991, ISLP.

[4]  Michael J. Maher,et al.  Constraint Logic Programming: A Survey , 1994, J. Log. Program..

[5]  Danny De Schreye,et al.  Termination of Logic Programs: The Never-Ending Story , 1994, J. Log. Program..

[6]  Frédéric Mesnard,et al.  Localizing and Explaining Reasons for Non-terminating Logic Programs with Failure-Slices , 1999, PPDP.

[7]  Frédéric Mesnard,et al.  Un module Prolog de mu-calcul booléen: une réalisation par BDD , 1999, JFPLC.

[8]  Frédéric Mesnard,et al.  Inferring Left-terminating Classes of Queries for Constraint Logic Programs , 1996 .

[9]  John Potter,et al.  Characterisation of Terminating Logic Programs , 1986, SLP.

[10]  Frédéric Mesnard,et al.  Inférer et compiler la terminaison des programmes logiques avec contraintes , 1998, JFPLC.

[11]  Yehoshua Sagiv,et al.  Automatic Termination Analysis of Logic Programs , 1997, ICLP.

[12]  Michael Maher GUPU: A Prolog course environment and its programming methodology , 1996 .

[13]  Danny De Schreye,et al.  Automatic Inference of Norms: A Missing Link in Automatic Termination Analysis , 1993, ILPS.

[14]  Allen Van Gelder,et al.  Termination detection in logic programs using argument sizes (extended abstract) , 1991, PODS.

[15]  Patrick Cousot,et al.  Abstract Interpretation and Application to Logic Programs , 1992, J. Log. Program..

[16]  Danny De Schreye,et al.  Deriving Termination Proofs for Logic Programs, Using Abstract Procedures , 1991, International Conference on Logic Programming.

[17]  Dr. Pierre Deransart,et al.  Prolog: The Standard , 1996, Springer Berlin Heidelberg.

[18]  Frédéric Mesnard,et al.  Inferring and Compiling Termination for Constraint Logic Programs , 1998, LOPSTR.