Polytool: Polynomial interpretations as a basis for termination analysis of logic programs

Our goal is to study the feasibility of porting termination analysis techniques developed for one programming paradigm to another paradigm. In this paper, we show how to adapt termination analysis techniques based on polynomial interpretations—very well known in the context of term rewrite systems—to obtain new (nontransformational) termination analysis techniques for definite logic programs (LPs). This leads to an approach that can be seen as a direct generalization of the traditional techniques in termination analysis of LPs, where linear norms and level mappings are used. Our extension generalizes these to arbitrary polynomials. We extend a number of standard concepts and results on termination analysis to the context of polynomial interpretations. We also propose a constraint-based approach for automatically generating polynomial interpretations that satisfy the termination conditions. Based on this approach, we implemented a new tool, called Polytool , for automatic termination analysis of LPs.

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

[2]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[3]  Jürgen Giesl,et al.  Automated Termination Analysis for Logic Programs by Term Rewriting , 2006, LOPSTR.

[4]  Jürgen Giesl,et al.  Termination Analysis of Logic Programs Based on Dependency Graphs , 2007, LOPSTR.

[5]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[6]  Jürgen Giesl,et al.  SAT Solving for Termination Analysis with Polynomial Interpretations , 2007, SAT.

[7]  Andy King,et al.  A simple polynomial groundness analysis for logic programs , 2000, J. Log. Program..

[8]  Nao Hirokawa,et al.  Automating the Dependency Pair Method , 2005, CADE.

[9]  Alexander Serebrenik,et al.  Hasta-La-Vista: Termination Analyser for Logic Programs , 2003, WLPE.

[10]  Jürgen Giesl,et al.  Proving Termination Using Recursive Path Orders and SAT Solving , 2007, FroCoS.

[11]  Salvador Lucas,et al.  Solving Non-linear Polynomial Arithmetic via SAT Modulo Linear Arithmetic , 2009, CADE.

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

[13]  Nachum Dershowitz,et al.  Examples of Termination , 1993, Term Rewriting.

[14]  Jürgen Giesl,et al.  Automated termination proofs for logic programs by term rewriting , 2008, TOCL.

[15]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[16]  John P. Gallagher,et al.  Techniques for Scaling Up Analyses Based on Pre-interpretations , 2005, ICLP.

[17]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

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

[19]  Hans Zantema,et al.  The Termination Competition , 2007, RTA.

[20]  Joachim Steinbach On the Complexity of Simplification Orderings , 1993 .

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

[22]  Danny De Schreye,et al.  Polytool: Proving Termination Automatically Based on Polynomial Interpretations , 2006, LOPSTR.

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

[24]  Claude Marché,et al.  Mechanically Proving Termination Using Polynomial Interpretations , 2005, Journal of Automated Reasoning.

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

[26]  Wim Vanhoof,et al.  Binding-time analysis for Mercury , 2004 .

[27]  Gerda Janssens,et al.  Deriving Descriptions of Possible Values of Program Variables by Means of Abstract Interpretation , 1990, J. Log. Program..

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

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

[30]  Jürgen Giesl,et al.  Termination Analysis by Inductive Evaluation , 1998, CADE.

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

[32]  John P. Gallagher,et al.  Inference of Well-Typings for Logic Programs with Application to Termination Analysis , 2005, SAS.

[33]  Jürgen Giesl,et al.  Maximal Termination , 2008, RTA.

[34]  Jürgen Giesl,et al.  Generating Polynomial Orderings for Termination Proofs , 1995, RTA.

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

[36]  Alexander Serebrenik,et al.  Termination Analysis of Logic Programs: Extended Abstract , 2003, ICLP.

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

[38]  Pierre Lescanne,et al.  Termination of Rewriting Systems by Polynomial Interpretations and Its Implementation , 1987, Sci. Comput. Program..

[39]  Peter J. Stuckey,et al.  Higher-Precision Groundness Analysis , 2001, ICLP.

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

[41]  Jürgen Giesl,et al.  The Dependency Triple Framework for Termination of Logic Programs , 2009, LOPSTR.

[42]  Alexander Serebrenik,et al.  Proving Termination for Logic Programs by the Query-Mapping Pairs Approach , 2004, Program Development in Computational Logic.

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

[44]  Hoon Hong,et al.  Testing Positiveness of Polynomials , 1998, Journal of Automated Reasoning.

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

[46]  Joachim Steinbach Proving Polynomials Positive , 1992, FSTTCS.

[47]  Jürgen Giesl,et al.  Proving Termination by Bounded Increase , 2007, CADE.

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

[49]  Danny De Schreye,et al.  Constraint-based termination analysis of logic programs , 1999, TOPL.

[50]  Jürgen Giesl,et al.  Mechanizing and Improving Dependency Pairs , 2006, Journal of Automated Reasoning.