Implementing RPO and POLO using SAT

Well-founded orderings are the most basic, but also most important ingredient to virtually all termination analyses. The recursive path order with status (RPO) and polynomial interpretations (POLO) are the two classes that are the most popular in the termination analysis of term rewrite systems. Numerous fully automated search algorithms for these classes have therefore been devised and implemented in termination tools. Unfortunately, the performance of these algorithms on all but the smallest termination problems has been lacking. E.g., recently developed transformations from programming languages like Haskell or Prolog allow to apply termination tools for term rewrite systems to real programming languages. The results of the transformations are often of non-trivial size, though, and cannot be handled efficiently by the existing algorithms. The need for more efficient search algorithms has triggered research in reducing these search problems into decision problems for which more efficient algorithms already exist. Here, we introduce an encoding of RPO and POLO to the satisfiability of propositional logic (SAT). We implemented these encodings in our termination tool AProVE. Extensive experiments have shown that one can obtain speedups in orders of magnitude by this encoding and the application of modern SAT solvers. The talk is based on joint work with Elena Annov, Mike Codish, Carsten Fuhs, JAƒÂ¼rgen Giesl, Aart Middeldorp, RenAƒÂ© Thiemann, and Harald Zankl.

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

[2]  Aart Middeldorp,et al.  Satisfying KBO Constraints , 2006, RTA.

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

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

[5]  Ralf Treinen,et al.  Ordering Constraints on Trees , 1994, CAAP.

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

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

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

[9]  Masahito Kurihara,et al.  Efficient BDD Encodings for Partial Order Constraints with Application to Expert Systems in Software Verification , 2004, IEA/AIE.

[10]  Nao Hirokawa,et al.  Tyrolean termination tool: Techniques and features , 2007, Inf. Comput..

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

[12]  Jürgen Giesl,et al.  SAT Solving for Argument Filterings , 2006, LPAR.

[13]  Peter J. Stuckey,et al.  Solving Partial Order Constraints for LPO Termination , 2005, J. Satisf. Boolean Model. Comput..

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

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