On Termination of Binary CLP Programs

  • Alexander Serebrenik
  • Fred Mesnard
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3573)


Termination of binary CLP programs has recently become an important question in the termination analysis community. The reason for this is due to the fact that some of the recent approaches to termination of logic programs abstract the input program to a binary CLP program and conclude termination of the input program from termination of the abstracted program. In this paper we introduce a class of binary CLP programs such that their termination can be proved by using linear level mappings. We show that membership to this class is decidable and present a decision procedure. Further, we extend this class to programs such that their termination proofs require a combination of linear functions. In particular we consider as level mappings tuples of linear functions and piecewise linear functions.


Logic Program Linear Programming Problem Logic Programming Level Mapping Predicate Symbol 
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., Bezem, M.: Acyclic programs. New Generation Computing 9(3/4), 335–364 (1991)CrossRefGoogle Scholar
  2. 2.
    Codish, M.: TerminWeb. Collection of benchmarks available at:
  3. 3.
    Codish, M., Genaim, S.: Proving termination one loop at a time. In: Serebrenik, A., Mesnard, F. (eds.) Proceedings of the 13th International Workshop on Logic Programming Environments. Technical report CW 371, Department of Computer Science, K.U.Leuven, pp. 48–59 (2003)Google Scholar
  4. 4.
    Codish, M., Taboch, C.: A semantic basis for termination analysis of logic programs. Journal of Logic Programming 41(1), 103–123 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    De Schreye, D., Verschaetse, K., Bruynooghe, M.: A practical technique for detecting non-terminating queries for a restricted class of Horn clauses, using directed, weighted graphs. In: Warren, D.H., Szeredi, P. (eds.) Logic Programming, Proceedings of the Seventh International Conference, pp. 649–663. MIT Press, Cambridge (1990)Google Scholar
  6. 6.
    Devienne, P., Lebègue, P., Routier, J.-C.: Halting problem of one binary horn clause is undecidable. In: Enjalbert, P., Wagner, K.W., Finkel, A. (eds.) STACS 1993. LNCS, vol. 665, pp. 48–57. Springer, Heidelberg (1993)Google Scholar
  7. 7.
    Floyd, R.W.: Assigning meanings to programs. In: Schwartz, J. (ed.) Mathematical Aspects of Computer Science, pp. 19–32. American Mathematical Society (1967); Proceedings of Symposium in Applied Mathematics, vol. 19Google Scholar
  8. 8.
    Jaffar, J., Maher, M.J.: Constraint logic programming: A survey. Journal of Logic Programming 19/20, 503–582 (1994)CrossRefMathSciNetGoogle Scholar
  9. 9.
    Katz, S., Manna, Z.: A closer look at termination. Acta Informatica 5, 333–352 (1975)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Lagoon, V., Mesnard, F., Stuckey, P.J.: Termination analysis with types is more accurate. In: Palamidessi, C. (ed.) Logic Programming, 19th International Conference on Logic Programming, pp. 254–269. Springer, Heidelberg (2003)Google Scholar
  11. 11.
    Lindenstrauss, N., Sagiv, Y.: Automatic termination analysis of logic programs. In: Naish, L. (ed.) Proceedings of the Fourteenth International Conference on Logic Programming, pp. 63–77. MIT Press, Cambridge (1997)Google Scholar
  12. 12.
    Martin, J.C., King, A.: On the inference of natural level mappings. In: Bruynooghe, M., Lau, K.-K. (eds.) Program Development in Computational Logic. LNCS, vol. 3049, pp. 432–452. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  13. 13.
    Mesnard, F., Neumerkel, U.: Applying static analysis techniques for inferring termination conditions of logic programs. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 93–110. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  14. 14.
    Mesnard, F., Ruggieri, S.: On proving left termination of constraint logic programs. ACM Transaction on Computational Logic 4(2), 207–259 (2003)CrossRefMathSciNetGoogle Scholar
  15. 15.
    Ruggieri, S.: Decidability of logic program semantics and applications to testing. Journal of Logic Programming 46(1–2), 103–137 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Schrijver, A.: Theory of Linear and Integer Programming. Wiley, Chichester (1986)zbMATHGoogle Scholar
  17. 17.
    Serebrenik, A., De Schreye, D.: Inference of termination conditions for numerical loops in Prolog. Theory and Practice of Logic Programming (2004) ( to appear)Google Scholar
  18. 18.
    Sohn, K., Van Gelder, A.: Termination detection in logic programs using argument sizes. In: Proceedings of the Tenth ACM SIGACT-SIGART-SIGMOD Symposium on Principles of Database Systems, pp. 216–226. ACM Press, New York (1991)CrossRefGoogle Scholar
  19. 19.
    Winsborough, W.: Multiple specialization using minimal-function graph semantics. Journal of Logic Programming 13(2/3), 259–290 (1992)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Alexander Serebrenik
    • 1
  • Fred Mesnard
    • 2
  1. 1.Laboratory of Quality of Software (LaQuSo)T.U.EindhovenEindhovenThe Netherlands
  2. 2.IREMIAUniversité de La RéunionFrance

Personalised recommendations