Skip to main content

Automatic termination analysis for partial functions using polynomial orderings

  • Termination
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1302))

Abstract

We present a method for automatically determining the input data for which functional programs terminate. In particular, we consider functional programs which do not terminate for each input thus defining partial functions. To characterize the domains of such partial functions, termination predicates have been introduced recently. Termination predicates can be synthesized inductively if suitable well-founded orderings are given. Up to now, these well-founded orderings have to be fixed in advance by a user. In this paper, we enable the automatic generation of well-founded polynomial orderings for termination predicate synthesis. We illustrate the problems that prevent the direct use of known techniques for that task, and we present solutions for overcoming these problems. The proposed method proved to be successful for numerous examples including functional as well as imperative programs.

This work was supported by the Deutsche Forschungsgemeinschaft under grant no. Wa 652/7-2 as part of the focus program “Deduktion”.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R.S. Boyer and J S. Moore. A Computational Logic. Academic Press, 1979.

    Google Scholar 

  2. J. Brauburger. Computing the domains of partial functions. Technical Report IBN-97-44, Darmstadt University of Technology, 1997.

    Google Scholar 

  3. J. Brauburger and J. Giesl. Termination analysis for partial functions. In Proceedings of 3rd SAS, LNCS 1145, pp. 113–127. Springer, 1996.

    Google Scholar 

  4. G.E. Collins. Quantifier elimination for real closed fields by cylindrical algebraic decomposition. Proc. 2nd GI Conf. on Automata Theory and Formal Languages, 1975.

    Google Scholar 

  5. N. Dershowitz. Termination of rewriting. Journal of Symbolic Computation, 3(1, 2):69–115, 1987.

    Google Scholar 

  6. J. Giesl. Automatisierung von Terminierungsbeweisen für rekursiv definierte Algorithmen. PhD thesis, Darmstadt University of Technology, 1995.

    Google Scholar 

  7. J. Giesl. Termination analysis for functional programs using term orderings. In Proceedings of 2nd SAS, LNCS 983, pp. 154–171. Springer, 1995.

    Google Scholar 

  8. J. Giesl. Termination of nested and mutually recursive algorithms. Journal of Automated Reasoning, to appear.

    Google Scholar 

  9. D. Gries. The Science of Programming. Springer, 1981.

    Google Scholar 

  10. P. Henderson. Functional Programming. Prentice-Hall, London, 1980.

    Google Scholar 

  11. D.S. Lankford. On proving term rewriting systems are Noetherian. Memo MTP-3, Mathematics Department, Louisiana Technical University, Ruston, USA, 1979.

    Google Scholar 

  12. M. Müller, T. Glaß, and K. Stroetmann. Automated modular termination proofs for real prolog programs. In Proc. of 3rd SAS, LNCS 1145, pp. 220–237. 1996.

    Google Scholar 

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

    Google Scholar 

  14. L. Phimer. Termination Proofs for Logic Programs. LNAI 446. Springer, 1990.

    Google Scholar 

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

    Google Scholar 

  16. C. Sengler. Termination of algorithms over non-freely generated data types. In Proceedings of 13th CADE, LNAI 1104, pp. 121-136. Springer, 1996.

    Google Scholar 

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

    Google Scholar 

  18. C. Walther. Mathematical induction. In Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 2, pp. 127–227, Oxford University Press, 1994.

    Google Scholar 

  19. C. Walther. On proving the termination of algorithms by machine. Artificial Intelligence, 71(1):101–157, 1994. *** DIRECT SUPPORT *** A0008C44 00008

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pascal Van Hentenryck

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brauburger, J. (1997). Automatic termination analysis for partial functions using polynomial orderings. In: Van Hentenryck, P. (eds) Static Analysis. SAS 1997. Lecture Notes in Computer Science, vol 1302. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032751

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63468-3

  • Online ISBN: 978-3-540-69576-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics