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.
References
R.S. Boyer and J S. Moore. A Computational Logic. Academic Press, 1979.
J. Brauburger. Computing the domains of partial functions. Technical Report IBN-97-44, Darmstadt University of Technology, 1997.
J. Brauburger and J. Giesl. Termination analysis for partial functions. In Proceedings of 3rd SAS, LNCS 1145, pp. 113–127. Springer, 1996.
G.E. Collins. Quantifier elimination for real closed fields by cylindrical algebraic decomposition. Proc. 2nd GI Conf. on Automata Theory and Formal Languages, 1975.
N. Dershowitz. Termination of rewriting. Journal of Symbolic Computation, 3(1, 2):69–115, 1987.
J. Giesl. Automatisierung von Terminierungsbeweisen für rekursiv definierte Algorithmen. PhD thesis, Darmstadt University of Technology, 1995.
J. Giesl. Termination analysis for functional programs using term orderings. In Proceedings of 2nd SAS, LNCS 983, pp. 154–171. Springer, 1995.
J. Giesl. Termination of nested and mutually recursive algorithms. Journal of Automated Reasoning, to appear.
D. Gries. The Science of Programming. Springer, 1981.
P. Henderson. Functional Programming. Prentice-Hall, London, 1980.
D.S. Lankford. On proving term rewriting systems are Noetherian. Memo MTP-3, Mathematics Department, Louisiana Technical University, Ruston, USA, 1979.
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.
F. Nielson and H.R. Nielson. Operational semantics of termination types. Nordic Journal of Computing, 3(2):144–187, 1996.
L. Phimer. Termination Proofs for Logic Programs. LNAI 446. Springer, 1990.
D. De Schreye and S. Decorte. Termination of logic programs: The never-ending story. Journal of Logic Programming, 19/20:199–260, 1994.
C. Sengler. Termination of algorithms over non-freely generated data types. In Proceedings of 13th CADE, LNAI 1104, pp. 121-136. Springer, 1996.
J. Steinbach. Simplification orderings: History of results. Fundamenta Informaticae, 24:47–87, 1995.
C. Walther. Mathematical induction. In Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 2, pp. 127–227, Oxford University Press, 1994.
C. Walther. On proving the termination of algorithms by machine. Artificial Intelligence, 71(1):101–157, 1994. *** DIRECT SUPPORT *** A0008C44 00008
Author information
Authors and Affiliations
Editor information
Rights 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