Dependency Triples for Improving Termination Analysis of Logic Programs with Cut

  • Thomas Ströder
  • Peter Schneider-Kamp
  • Jürgen Giesl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6564)


In very recent work, we introduced a non-termination preserving transformation from logic programs with cut to definite logic programs. While that approach allows us to prove termination of a large class of logic programs with cut automatically, in several cases the transformation results in a non-terminating definite logic program.

In this paper we extend the transformation such that logic programs with cut are no longer transformed into definite logic programs, but into dependency triple problems. By the implementation of our new method and extensive experiments, we empirically evaluate the practical benefit of our contributions.


Logic Program Inference Rule Logic Programming Termination Graph Split Node 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apt, K.R.: From Logic Programming to Prolog. Prentice Hall, London (1997)Google Scholar
  2. 2.
    Arts, T., Giesl, J.: Termination of Term Rewriting using Dependency Pairs. Theoretical Computer Science 236(1,2), 133–178 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Bruynooghe, M., Codish, M., Gallagher, J.P., Genaim, S., Vanhoof, W.: Termination Analysis of Logic Programs through Combination of Type-Based Norms. ACM Transactions on Programming Languages and Systems 29(2), article 10 (2007)Google Scholar
  4. 4.
    Codish, M., Lagoon, V., Stuckey, P.J.: Testing for Termination with Monotonicity Constraints. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 326–340. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    De Schreye, D., Decorte, S.: Termination of Logic Programs: The Never-Ending Story. Journal of Logic Programming 19(20), 199–260 (1994)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Deransart, P., Ed-Dbali, A., Cervoni, L.: Prolog: The Standard. Springer, New York (1996)CrossRefzbMATHGoogle Scholar
  7. 7.
    Giesl, J.: Termination of Nested and Mutually Recursive Algorithms. Journal of Automated Reasoning 19, 1–29 (1997)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Giesl, J., Thiemann, R., Schneider-Kamp, P.: The Dependency Pair Framework: Combining Techniques for Automated Termination Proofs. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS (LNAI), vol. 3452, pp. 301–331. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Giesl, J., Thiemann, R., Schneider-Kamp, P., Falke, S.: Mechanizing and Improving Dependency Pairs. Journal of Automated Reasoning 37(3), 155–203 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Hirokawa, N., Middeldorp, A.: Automating the Dependency Pair Method. Information and Computation 199(1,2), 172–199 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Howe, J.M., King, A.: Efficient Groundness Analysis in Prolog. Theory and Practice of Logic Programming 3(1), 95–124 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Marchiori, M.: Proving Existential Termination of Normal Logic Programs. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 375–390. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  13. 13.
    Mesnard, F., Serebrenik, A.: Recurrence with Affine Level Mappings is P-Time Decidable for CLP(R). Theory and Practice of Logic Programming 8(1), 111–119 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Nguyen, M.T., Giesl, J., Schneider-Kamp, P., De Schreye, D.: Termination Analysis of Logic Programs Based on Dependency Graphs. In: King, A. (ed.) LOPSTR 2007. LNCS, vol. 4915, pp. 8–22. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  15. 15.
    Nguyen, M.T., De Schreye, D., Giesl, J., Schneider-Kamp, P.: Polytool: Polynomial Interpretations as a Basis for Termination Analysis of Logic Programs. Theory and Practice of Logic Programming 11(1), 33–63 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Schneider-Kamp, P., Giesl, J., Serebrenik, A., Thiemann, R.: Automated Termination Proofs for Logic Programs by Term Rewriting. ACM Transactions on Computational Logic 11(1), Article 2 (2009)Google Scholar
  17. 17.
    Schneider-Kamp, P., Giesl, J., Nguyen, M.T.: The Dependency Triple Framework for Termination of Logic Programs. In: De Schreye, D. (ed.) LOPSTR 2009. LNCS, vol. 6037, pp. 37–51. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  18. 18.
    Schneider-Kamp, P., Giesl, J., Ströder, T., Serebrenik, A., Thiemann, R.: Automated Termination Analysis for Logic Programs with Cut. Theory and Practice of Logic Programming 10(4-6), 365–381 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Serebrenik, A., De Schreye, D.: On Termination of Meta-Programs. Theory and Practice of Logic Programming 5(3), 355–390 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Ströder, T.: Towards Termination Analysis of Real Prolog Programs. Diploma Thesis, RWTH Aachen (2010),
  21. 21.
    Ströder, T., Schneider-Kamp, P., Giesl, J.: Dependency Triples for Improving Termination Analysis of Logic Programs with Cut. Technical Report AIB 2010-12, RWTH Aachen (2010),
  22. 22.
  23. 23.
    The Termination Problem Data Base 7.0 (December 11, 2009),
  24. 24.
    Walther, C.: On Proving the Termination of Algorithms by Machine. Artificial Intelligence 71(1), 101–157 (1994)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Thomas Ströder
    • 1
  • Peter Schneider-Kamp
    • 2
  • Jürgen Giesl
    • 1
  1. 1.LuFG Informatik 2RWTH Aachen UniversityGermany
  2. 2.IMADAUniversity of Southern DenmarkDenmark

Personalised recommendations