Formal Methods in System Design

, Volume 35, Issue 3, pp 369–387

Summarization for termination: no return!


DOI: 10.1007/s10703-009-0087-8

Cite this article as:
Cook, B., Podelski, A. & Rybalchenko, A. Form Methods Syst Des (2009) 35: 369. doi:10.1007/s10703-009-0087-8


We propose a program analysis method for proving termination of recursive programs. The analysis is based on a reduction of termination to two separate problems: reachability of recursive programs, and termination of non-recursive programs. Our reduction works through a program transformation that modifies the call sites and removes return edges. In the new, non-recursive program, a procedure call may non-deterministically enter the procedure body (which means that it will never return) or apply a summary statement.


Program verificationModel checkingTerminationRecursionSummarization

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Byron Cook
    • 1
    • 2
  • Andreas Podelski
    • 3
  • Andrey Rybalchenko
    • 4
  1. 1.Microsoft ResearchCambridgeUK
  2. 2.Queen MaryUniversity of LondonLondonUK
  3. 3.University of FreiburgFreiburgGermany
  4. 4.Max Planck Institute for Software Systems (MPI-SWS)SaarbrückenGermany