Termination Analysis of Tabled Logic Programs Using Mode and Type Information

Tabled logic programming is receiving increasing attention in the Logic Programming community. It avoids many of the shortcomings of SLD(NF) execution and provides a more flexible and efficient execution mechanism for logic programs. In particular, tabled execution of logic programs terminates more often than execution based on SLD-resolution. One of the few approaches studying termination of tabled logic programs was developed by Decorte et al. They present necessary and sufficient conditions for two notions of universal termination under SLG-resolution, the resolution principle of tabling: quasi-termination and (the stronger notion of) LG-termination. Starting from these necessary and sufficient conditions, we introduce sufficient conditions which are stated fully at the clause level and are easy to automatize. To this end, we use mode and type information: we consider simply moded, well-typed programs and queries. We point out how our termination conditions can be automatized, by extending the recently developed constraint-based automatic termination analysis for SLD-resolution by Decorte and De Schreye.

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

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

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

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

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

[6]  David A. Rosenblueth Chart Parsers as Proof Procedures for Fixed-Mode Logic Programs , 1992, FGCS.

[7]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[8]  Sandro Etalle,et al.  On the Unification Free Prolog Programs , 1993, MFCS.

[9]  Krzysztof R. Apt,et al.  On the occur-check-free PROLOG programs , 1994, TOPL.

[10]  Annalisa Bossi,et al.  Proving Termination of Logic Programs by Exploiting Term Properties , 1991, TAPSOFT, Vol.2.

[11]  Jan Maluszynski,et al.  AND-Parallelism with Intelligent Backtracking for Annotated Logic Programs , 1985, SLP.

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

[13]  Uday S. Reddy,et al.  A Framework of Directionality for Proving Termination of Logic Programs , 1992, JICSLP.

[14]  Danny De Schreye,et al.  Modular Termination Proofs for Prolog with Tabling , 1999, PPDP.

[15]  Danny De Schreye,et al.  Termination Analysis for Tabled Logic Programming , 1997, LOPSTR.

[16]  Robin Milner Action Calculi, or Syntactic Action Structures , 1993, MFCS.

[17]  Danny De Schreye,et al.  Demand-Driven and Constraint-Based Automatic Left-Termination Analysis for Logic Programs , 1997, ICLP.

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

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

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

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

[22]  Alan Bundy,et al.  Logic Program Synthesis via Proof Planning , 1992, LOPSTR.

[23]  Sandro Etalle,et al.  Termination of Well-Moded Programs , 1999, J. Log. Program..

[24]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

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