Abstract
Total program correctness includes partial program correctness and program termination. These two subproblems are undecidable for general programs. As the predominant part of total correctness, the partial program correctness was studied intensively by the research community. Nevertheless, proving termination for an arbitrary program is challenging. This paper describes an automated method that tests for termination of modulo-case functions by conducting a mathematical induction proof. The system takes a modulo-case function and builds an execution trace tree from its inverse. Then, a linear polynomial is formed to capture the level of the executed trace tree for which the termination problem holds. Using the cases of the original function, an inductive proof is automatically generated. If a function successfully terminates, its runtime is computed based on the polynomial.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Anderson, H., Khoo, S.C.: Affine-Based Size-Change Termination. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 122–140. Springer, Heidelberg (2003)
Andrei, S.: Termination Analysis by Program Inversion. In: Proceeding or the Ninth 2008 Symposium on Numerical Applications of Symbolic Computation (SYNASC 2008), pp. 26–29. IEEE Computer Society, Timisoara (2008)
Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The Omega Library interface guide. Technical Report CS-TR-3445, CS Dept., University of Maryland, College Park (March 1995)
Lee, C.S., Jones, N.D., Ben-Amram, A.M.: The Size-Change Principle for Program Termination. In: Conference Record of the 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 81–92. ACM Press (2001)
Rice, H.: Classes of Recursively Enumerable Sets and their Decision Problems. Transactions of the American Mathematical Society 89, 25–29 (1953)
Termination Portal, Termination Portal (December 2009), http://termination-portal.org/wiki/Termination_Portal
Turing, A.: On Computable Numbers, with an Application to the Entscheidungs Problem. Proceedings of the London Mathematical Society 42, 230–265 (1936)
Weimer, W., Forrest, S., Le Goues, C., Nguyen, T.V.: Automatic Program Repair with Evolutionary Computation. Communications of the ACM 53, 109–116 (2010)
Doss, K., Andrei, S., Makki, K.: An Automatic Induction Proof for Program Termination Analysis, Technical Report, No. 2, Lamar University, pp. 1–11 (August 2010)
Cook, B., Podelski, A., Rybalchenko, A.: Terminator: Beyond Safety. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 415–418. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag GmbH Berlin Heidelberg
About this chapter
Cite this chapter
Andrei, S., Doss, K., Makki, S.K. (2012). Proof Automation of Program Termination. In: Qian, Z., Cao, L., Su, W., Wang, T., Yang, H. (eds) Recent Advances in Computer Science and Information Engineering. Lecture Notes in Electrical Engineering, vol 125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25789-6_61
Download citation
DOI: https://doi.org/10.1007/978-3-642-25789-6_61
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-25788-9
Online ISBN: 978-3-642-25789-6
eBook Packages: EngineeringEngineering (R0)