Termination Analysis for Tabled Logic Programming

We provide a theoretical basis for studying the termination of tabled logic programs executed under SLG-resolution using a left-to-right computation rule. To this end, we study the classes of quasi-terminating and LG-terminating programs (for a set of atomic goals S). These are tabled logic programs where execution of each call from S leads to only a finite number of different (i.e., non-variant) calls, and a finite number of different calls and computed answer substitutions for them, respectively. We then relate these two classes through a program transformation, and present a characterisation of quasi-termination by means of the notion of quasi-acceptability of tabled programs. The latter provides us with a practical method of proving termination and the method is illustrated on non-trivial examples of tabled logic programs.

[1]  Konstantinos Sagonas,et al.  Xsb as an Eecient Deductive Database Engine , 1994 .

[2]  K. A. Ross,et al.  Tabled Evaluation with Delaying for General Logic Programs , 1996 .

[3]  L. Vielle,et al.  Recursive query processing: the power of logic , 1989 .

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

[5]  Tadashi Kanamori,et al.  Abstract Interpretation based on OLDT Resolution , 1993, J. Log. Program..

[6]  Anders Bondorf,et al.  Logimix: A Self-Applicable Partial Evaluator for Prolog , 1992, LOPSTR.

[7]  Lutz Plümer Termination Proofs for Logic Programs , 1990, Lecture Notes in Computer Science.

[8]  Neil D. Jones,et al.  BTA Algorithms to Ensure Termination of Off-Line Partial Evaluation , 1996, Ershov Memorial Conference.

[9]  Maurice Bruynooghe,et al.  A Framework for Analyzing the Termination of Definite Logic Programs with respect to Call Patterns , 1992, FGCS.

[10]  Laurent Vieille,et al.  Recursive Query Processing: The Power of Logic , 1989, Theor. Comput. Sci..

[11]  Roland N. Bol,et al.  The Underlying Search for Magic Templates and Tabulation , 1993, ICLP.

[12]  Giorgio Levi,et al.  Declarative Modeling of the Operational Behavior of Logic Languages , 1989, Theor. Comput. Sci..

[13]  Michael Leuschel,et al.  Efficiently Generating Efficient Generating Extensions in Prolog , 1996, Dagstuhl Seminar on Partial Evaluation.

[14]  Michael Leuschel,et al.  Preserving Termination of Tabled Logic Programs While Unfolding , 1997, LOPSTR.

[15]  Carsten Kehler Holst,et al.  Finiteness Analysis , 1991, Conference on Functional Programming Languages and Computer Architecture.

[16]  Annalisa Bossi,et al.  Norms on Terms and their use in Proving Universal Termination of a Logic Program , 1994, Theor. Comput. Sci..

[17]  Dino Pedreschi,et al.  Reasoning about Termination of Pure Prolog Programs , 1993, Inf. Comput..

[18]  Konstantinos Sagonas,et al.  XSB as an efficient deductive database engine , 1994, SIGMOD '94.

[19]  Hisao Tamaki,et al.  OLD Resolution with Tabulation , 1986, ICLP.

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