TALP: A Tool for the Termination Analysis of Logic Programs

  • Enno Ohlebusch
  • Claus Claves
  • Claude Marché
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1833)

Abstract

In the last decade, the automatic termination analysis of logic programs has been receiving increasing attention. Among other methods, techniques have been proposed that transform a well-moded logic program into a term rewriting system (TRS) so that termination of the TRS implies termination of the logic program under Prolog’s selection rule. In [Ohl99] it has been shown that the two-stage transformation obtained by combining the transformations of [GW93] into deterministic conditional TRSs (CTRSs) with a further transformation into TRSs [CR93] yields the transformation proposed in [AZ96], and that these three transformations are equally powerful. In most cases simplification orderings are not sufficient to prove termination of the TRSs obtained by the two-stage transformation. However, if one uses the dependency pair method [AG00] in combination with polynomial interpretations instead, then most of the examples described in the literature can automatically be proven terminating. Based on these observations, we have implemented a tool for proving termination of logic programs automatically. This tool consists of a front-end which implements the two-stage transformation and a back-end, the CiME system [CiM], for proving termination of the generated TRS. Experiments show that our tool can compete with other tools [DSV99 ]based on sophisticated norm-based approaches.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [AG00]
    Arts, T., Giesl, J.: Termination of term rewriting using dependency pairs. Theoretical Computer Science (2000) (to appear)Google Scholar
  2. [AZ96]
    Arts, T., Zantema, H.: Termination of logic programs using semantic unification. In: Proietti, M. (ed.) LOPSTR 1995. LNCS, vol. 1048, pp. 219–233. Springer, Heidelberg (1996)Google Scholar
  3. [BC93]
    Benhamou, F., Colmerauer, A. (eds.): Constraint Logic Programming: selected research. MIT Press, Cambridge (1993)MATHGoogle Scholar
  4. [CiM]
    CiME 2. Prerelease, available at http://www.lri.fr/~demons/cime-2.0.html
  5. [CM96]
    Contejean, E., Marché, C.: CiME: Completion Modulo E. In: Ganzinger, H. (ed.) RTA 1996. LNCS, vol. 1103, pp. 416–419. Springer, Heidelberg (1996), System description available at http://www.lri.fr/~demons/cime.html Google Scholar
  6. [CMT99]
    Contejean, E., Marché, C., Tomás, A.-P., Urbain, X.: Solving termination constraints via finite domain polynomial interpretations. Draft (1999)Google Scholar
  7. [CR93]
    Chtourou, M., Rusinowitch, M.: Méthode transformationnelle pour la preuve de terminaison des programmes logiques. (1993) (unpublished manuscript)Google Scholar
  8. [DSV99]
    Decorte, S., De Schreye, D., Vandecasteele, H.: Constraint-based termination analysis of logic programs. ACM TOPLAS (1999) (to appear)Google Scholar
  9. [Gie95]
    Giesl, J.: Generating polynomial orderings for termination proofs. In: Hsiang, J. (ed.) RTA 1995. LNCS, vol. 914, Springer, Heidelberg (1995)Google Scholar
  10. [GW93]
    Ganzinger, H., Waldmann, U.: Termination proofs of well-moded logic programs via conditional rewrite systems. In: Rusinowitch, M., Remy, J.-L. (eds.) CTRS 1992. LNCS, vol. 656, pp. 113–127. Springer, Heidelberg (1993)Google Scholar
  11. [HJ98]
    Hong, H., Jakus, D.: Testing positiveness of polynomials. Journal of Automated Reasoning 21(1), 23–38 (1998)CrossRefMathSciNetGoogle Scholar
  12. [LS97]
    Lindenstrauss, N., Sagiv, Y.: Automatic termination analysis of logic programs (with detailed experimental results). Technical report, Hebrew University, Jerusalem (1997)Google Scholar
  13. [Ohl99]
    Ohlebusch, E.: Transforming conditional rewrite systems with extra variables into unconditional systems. In: Ganzinger, H., McAllester, D., Voronkov, A. (eds.) LPAR 1999. LNCS, vol. 1705, pp. 111–130. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  14. [Plü90]
    Plümer, L.: Termination Proofs for Logic Programs. LNCS (LNAI), vol. 446. Springer, Heidelberg (1990)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Enno Ohlebusch
    • 1
  • Claus Claves
    • 1
  • Claude Marché
    • 2
  1. 1.Faculty of TechnologyUniversity of BielefeldBielefeldGermany
  2. 2.LRI, CNRS URA 410, Bât. 490Université de Paris-Sud, Centre d’OrsayOrsay CedexFrance

Personalised recommendations