Automated Termination Analysis for Logic Programs by Term Rewriting

There are two kinds of approaches for termination analysis of logic programs: "transformational" and "direct" ones. Direct approaches prove termination directly on the basis of the logic program. Transformational approaches transform a logic program into a term rewrite system (TRS) and then analyze termination of the resulting TRS instead. Thus, transformational approaches make all methods previously developed for TRSs available for logic programs as well. However, the applicability of most existing transformations is quite restricted, as they can only be used for certain subclasses of logic programs. (Most of them are restricted to well-moded programs.) In this paper we improve these transformations such that they become applicable for any definite logic program. To simulate the behavior of logic programs by TRSs, we slightly modify the notion of rewriting by permitting infinite terms. We show that our transformation results in TRSs which are indeed suitable for automated termination analysis. In contrast to most other methods for termination of logic programs, our technique is also sound for logic programming without occur check, which is typically used in practice. We implemented our approach in the termination prover AProVE and successfully evaluated it on a large collection of examples.

[1]  G. Aguzzi,et al.  Proving Termination of Logic Programs by Transforming them into Equivalent Term Rewriting Systems , 1993, FSTTCS.

[2]  Michael Leuschel,et al.  Redundant Argument Filtering of Logic Programs , 1996, LOPSTR.

[3]  Alexander Serebrenik,et al.  Proving Termination with Adornments , 2003, LOPSTR.

[4]  MANH THANG NGUYEN,et al.  Polynomial Interpretations as a Basis for Termination Analysis of Logic Programs , 2005, ICLP.

[5]  Massimo Marchiori Proving Existential Termination of Normal Logic Programs , 1996, AMAST.

[6]  Frédéric Mesnard,et al.  cTI: A constraint-based termination inference tool for ISO-Prolog , 2005, Theory Pract. Log. Program..

[7]  Frédéric Mesnard,et al.  On proving left termination of constraint logic programs , 2003, TOCL.

[8]  Jürgen Giesl,et al.  The Dependency Pair Framework: Combining Techniques for Automated Termination Proofs , 2005, LPAR.

[9]  Alexander Serebrenik,et al.  Inference of termination conditions for numerical loops in Prolog , 2004, Theory Pract. Log. Program..

[10]  Simon Kaplan,et al.  Conditional Term Rewriting Systems , 1987, Lecture Notes in Computer Science.

[11]  Alexander Serebrenik,et al.  Acceptability with General Orderings , 2002, Computational Logic: Logic Programming and Beyond.

[12]  Pierre Lescanne,et al.  Algebraic and Logic Programming , 1988, Lecture Notes in Computer Science.

[13]  Jürgen Giesl,et al.  Automatic Termination Proofs in the Dependency Pair Framework , 2006, IJCAR.

[14]  John P. Gallagher,et al.  Termination analysis of logic programs through combination of type-based norms , 2007, TOPL.

[15]  Jürgen Giesl,et al.  Termination of term rewriting using dependency pairs , 2000, Theor. Comput. Sci..

[16]  Deepak Kapur,et al.  A Transformational Methodology for Proving Termination of Logic Programs , 1991, CSL.

[17]  Enno Ohlebusch,et al.  Termination of Logic Programs: Transformational Methods Revisited , 2001, Applicable Algebra in Engineering, Communication and Computing.

[18]  Hans Zantema,et al.  Termination of Logic Programs Using Semantic Unification , 1995, LOPSTR.

[19]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

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

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

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

[23]  Harald Ganzinger,et al.  Termination Proofs of Well-Moded Logic Programs via Conditional Rewrite Systems , 1992, CTRS.

[24]  Antonis C. Kakas,et al.  Computational Logic: Logic Programming and Beyond , 2002, Lecture Notes in Computer Science.

[25]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

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

[27]  N. A C H U M D E R S H O W I T Z Termination of Rewriting' , 2022 .

[28]  Max Bramer Logic Programming with Prolog , 2005, Springer London.

[29]  Enno Ohlebusch,et al.  TALP: A Tool for the Termination Analysis of Logic Programs , 2000, RTA.

[30]  Massimo Marchiori Logic Programs as term Rewriting Systems , 1994, ALP.

[31]  Femke van Raamsdonk Translating Logic Programs into Conditional Rewriting Systems , 1997, ICLP.

[32]  Jan-Georg Smaus Termination of Logic Programs Using Various Dynamic Selection Rules , 2004, ICLP.

[33]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[34]  Peter J. Stuckey,et al.  Testing for Termination with Monotonicity Constraints , 2005, ICLP.

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

[36]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[37]  Alexander Serebrenik,et al.  TermiLog: A System for Checking Termination of Queries to Logic Programs , 1997, CAV.

[38]  Peter J. Stuckey,et al.  Termination Analysis with Types Is More Accurate , 2003, ICLP.