Skip to main content

Termination analysis by inductive evaluation

  • Conference paper
  • First Online:
Automated Deduction — CADE-15 (CADE 1998)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1421))

Included in the following conference series:

Abstract

We present a new approach for automatic termination analysis of functional programs. Several methods have been presented which try to find a well-founded ordering such that the arguments in the recursive calls are smaller than the corresponding inputs. However, previously developed approaches for automated termination analysis often disregard the conditions under which the recursive calls are evaluated. Hence, the existing methods fail for an important class of algorithms where the necessary information for proving termination is ‘hidden’ in the conditions. In this paper we develop the inductive evaluation method which analyzes the auxiliary functions occurring in the conditions of the recursive calls. We also discuss an extension of our method to partial functions in order to determine their domains automatically. The proposed technique proved successful for termination analysis of numerous algorithms in functional as well as imperative programming languages.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. T. Arts and J. Giesl. Proving innermost normalisation automatically. In Proc. RTA-97, Sitges, Spain, LNCS 1232, 1997.

    Google Scholar 

  2. R. S. Boyer and J S. Moore. A computational logic. Academic Press, 1979.

    Google Scholar 

  3. A. Bouhoula and M. Rusinowitch. Implicit induction in conditional theories. Journal of Automated Reasoning, 14:189–235, 1995.

    Article  MathSciNet  MATH  Google Scholar 

  4. J. Brauburger and J. Giesl. Termination analysis for partial functions. In Proc. 3rd Int. Static Analysis Symp., Aachen, Germany, LNCS 1145, 1996. Extended version appeared as Report IBN-96-33, TU Darmstadt, 1996.

    Google Scholar 

  5. J. Brauburger and J. Giesl. Termination analysis with inductive evaluation. Technical Report IBN-98-47, TU Darmstadt, Germany, 1998.

    Google Scholar 

  6. J. Brauburger. Automatic termination analysis for partial functions using polynomial orderings. In Proc. 4th SAS, Paris, France, LNCS 1302, 1997.

    Google Scholar 

  7. A. Bundy, F. van Harmelen, J. Hesketh, A. Smaill, and A. Stevens. A rational reconstruction and extension of recursion analysis. In Proc. IJCAI '89, Detroit, USA, 1989.

    Google Scholar 

  8. N. Dershowitz. Termination of rewriting. J. Symb. Comp., 3:69–115, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  9. J. Giesl. Generating polynomial orderings for termination proofs. In Proc. RTA-95, Kaiserslautern, Germany, LNCS 914, 1995.

    Google Scholar 

  10. J. Giesl. Automatisierung von Terminierungsbeweisen für rekursiv definierte Algorithmen. PhD thesis, Infix-Verlag, St. Augustin, Germany, 1995.

    Google Scholar 

  11. J. Giesl. Termination analysis for functional programs using term orderings. In Proc. 2nd Int. Static Analysis Symp., Glasgow, UK, LNCS 983, 1995.

    Google Scholar 

  12. J. Giesl. Termination of nested and mutually recursive algorithms. Journal of Automated Reasoning, 19:1–29, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  13. J. Giesl, C. Walther, and J. Brauburger. Termination analysis for functional programs. In W. Bibel and P. Schmitt, editors, Automated Deduction — A Basis for Applications, vol. 3. Kluwer Academic Publishers, 1998.

    Google Scholar 

  14. D. Gries. The science of programming. Springer-Verlag, New York, 1981.

    MATH  Google Scholar 

  15. P. Henderson. Functional programming. Prentice-Hall, London, 1980.

    MATH  Google Scholar 

  16. D. Hutter and C. Sengler. INKA: The next generation. In Proc. CADE-13, New Brunswick, USA, LNAI 1104, 1996.

    Google Scholar 

  17. D. Kapur and H. Zhang. An overview of Rewrite Rule Laboratory (RRL). J. Computer Math. Appl., 29:91–114, 1995.

    Article  MathSciNet  Google Scholar 

  18. D.S. Lankford. On proving term rewriting systems are noetherian. Memo MTP-3, Math. Dept., Louisiana Tech. Univ., Ruston, USA, 1979.

    Google Scholar 

  19. F. Nielson and H. R. Nielson. Operational semantics of termination types. Nordic Journal of Computing, 3(2):144–187, 1996.

    MathSciNet  MATH  Google Scholar 

  20. S. E. Panitz and M. Schmidt-Schau\. TEA: Automatically proving termination of programs in a non-strict higher-order functional language. In Proc. 4th Int. Static Analysis Symp., Paris, France, LNCS 1302, 1997.

    Google Scholar 

  21. L. Plümer. Termination proofs for logic programs. LNAI 446, 1990.

    Google Scholar 

  22. M. Protzen. Patching faulty conjectures. In Proc. CADE-13, LNAI 1104, New Brunswick, USA, 1996.

    Google Scholar 

  23. D. De Schreye and S. Decorte. Termination of logic programs: The never-ending story. Journal of Logic Programming, 19/20:199–260, 1994.

    Article  Google Scholar 

  24. C. Sengler. Termination of algorithms over non-freely generated data types. In Proc. CADE-13, New Brunswick, USA, LNAI 1104, 1996.

    Google Scholar 

  25. J. Steinbach. Generating polynomial orderings. IPL, 49:85–93, 1994.

    Article  MATH  Google Scholar 

  26. J. Steinbach. Simplification orderings: History of results. Fundamenta Informaticae, 24:47–87, 1995.

    MATH  MathSciNet  Google Scholar 

  27. J. D. Ullman and A. van Gelder. Efficient tests for top-down termination of logical rules. Journal of the ACM, 35(2):345–373, 1988.

    Article  Google Scholar 

  28. C. Walther. Mathematical induction. In D. M. Gabbay, C. J. Hogger, and J. A. Robinson, editors, Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 2. Oxford University Press, 1994.

    Google Scholar 

  29. C. Walther. On proving the termination of algorithms by machine. Artificial Intelligence, 71(1):101–157, 1994.

    Article  MATH  MathSciNet  Google Scholar 

  30. H. Zhang, D. Kapur, and M. S. Krishnamoorthy. A mechanizable induction principle for equational specifications. In Proc. CADE-9, Argonne, USA, LNCS 310, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Claude Kirchner Hélène Kirchner

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brauburger, J., Giesl, J. (1998). Termination analysis by inductive evaluation. In: Kirchner, C., Kirchner, H. (eds) Automated Deduction — CADE-15. CADE 1998. Lecture Notes in Computer Science, vol 1421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054264

Download citation

  • DOI: https://doi.org/10.1007/BFb0054264

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64675-4

  • Online ISBN: 978-3-540-69110-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics