Summary
Several methods for proving that computer programs terminate are presented and illustrated. The methods considered involve (a) using the “no-infinitely-descending-chain” property of well-founded sets (Floyd's approach), (b) bounding a counter associated with each loop (loop approach), (c) showing that some exit of each loop must be taken (exit approach), or (d) inducting on the structure of the data domain (Burstall's approach). We indicate the relative merit of each method for proving termination or non-termination as an integral part of an automatic verification system.
Similar content being viewed by others
References
Aho, A.V., Ullman, J.D.: The theory of parsing, translation, and compiling Vol. 2. Englewood Cliffs (N.J.): Prentice Hall 1973
Allen, F.E.: A basis for program optimization. Proc. IFIP, Congress 71, Ljubljana, Yugoslavia. Amsterdam: North-Holland 1971, pp. 380–390
Burstall, R. M.: Program proving as hand simulation with a little induction. Proc. IFIP Congress 74, Stockholm, Sweden. Amsterdam: North-Holland 1974, pp. 308–312
Caplain, M.: Finding invariant assertions for proving programs. Proceedings of International Conference on Reliable Software. Los Angeles (Calif.) April 1975, pp. 165–171
Clint, M.: Program proving: coroutines. Acta Informatica 2, 50–63 (1973)
Cooper, D.C.: Programs for mechanical program verification. Machine Intelligence 6. New York: American Elsevier 1971, pp. 43–59
Deutsch, L.P.: An interactive program verifier. Dept. of Comp. Sci., U. of Calif., Berkeley (Calif.) Ph.D. Thesis, June 1973
Elspas, B., Levitt, K.N., Waldinger, R. J.: An interactive system for the verification of computer programs. SRI, Menlo Park (Calif.), Sept. 1973
Elspas, B.: The semiautomatic generation of inductive assertions for proving program corretness. SRI, Menlo Park (Calif.), July 1974
Floyd, R. W.: Assigning meaning to programs. In: J.T. Schwartz (ed.): Proc. of a Symposium in Applied Mathematics, 19. Providence (R.I.): Amer. Math. Soc. 1967, pp. 19–32
German, S.M., Wegbreit, B.: A synthesizer of inductive assertions. IEEE Trans. on Software Engineering, SE-1, 68–75 (1975)
Igarashi, S., London, R.L., Luckham, D.C.: Automatic program verification I: A logical basis and its implementation. Acta Informatica 4, 145–182 (1975)
Katz, S.M., Manna, Z.: Towards automatic debugging of programs. Proceedings of International Conference on Reliable Software. Los Angeles (Calif.), April 1975
Katz, S.M., Manna, Z.: Logical analysis of programs. Comm. ACM, to appear (1976)
King, J.: A program verifier. Dept. of Comp. Sci., Carnegie-Mellon U., Pittsburgh (Pa.) Ph.D. Thesis, 1969
Knuth, D.E.: The Art of Computer Programing, Vol. I. Reading (Mass.): Addison-Wesley, 1968
Moriconi, M. S.: Towards the interactive synthesis of assertions. The University of Texas at Austin Research Report, October 1974
Sites, R.L.: Proving that computer programs terminate cleanly. Dept. of Computer Science, Stanford University, STAN-CS-74-418 Ph.D. Thesis, May 1974
Waldinger, R., Levitt, K.N.: Reasoning about programs. Artificial Intelligence 5, 235–316 (1974)
Wegbreit, B.: The synthesis of loop predicates. Comm. ACM 17, 102–112 (1974)
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Katz, S., Manna, Z. A closer look at termination. Acta Informatica 5, 333–352 (1975). https://doi.org/10.1007/BF00264565
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00264565