Proving Mutual Termination of Programs

  • Dima Elenbogen
  • Shmuel Katz
  • Ofer Strichman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7857)


Two programs are said to be mutually terminating if they terminate on exactly the same inputs. We suggest a proof rule that uses a mapping between the functions of the two programs for proving mutual termination of functions f, f′. The rule’s premise requires proving that given the same arbitrary input in, f(in) and f’(in) call mapped functions with the same arguments. A variant of this rule with a weaker premise allows to prove termination of one of the programs if the other is known to terminate for all inputs. We present an algorithm for decomposing the verification problem of whole programs to that of proving mutual termination of individual functions, based on our suggested rules.


Function Call Recursive Function Recursive Call Function Pair Input Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
  3. 3.
  4. 4.
    Bradley, A.R., Manna, Z., Sipma, H.B.: Linear ranking with reachability. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 491–504. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Clarke, E., Kroening, D.: Hardware verification using ANSI-C programs as a reference. In: Proceedings of ASP-DAC 2003, pp. 308–311. IEEE Computer Society Press (January 2003)Google Scholar
  6. 6.
    Cook, B., Podelski, A., Rybalchenko, A.: Abstraction refinement for termination. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 87–101. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Cook, B., Podelski, A., Rybalchenko, A.: Proving program termination. Commun. ACM 54(5), 88–98 (2011)CrossRefGoogle Scholar
  8. 8.
    Eén, N., Sörensson, N.: Translating pseudo-boolean constraints into sat. JSAT 2(1-4), 1–26 (2006)zbMATHGoogle Scholar
  9. 9.
    Floyd, R.: Assigning meanings to programs. Proc. Symposia in Applied Mathematics 19, 19–32 (1967)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Garner, L.E.: On the Collatz 3n + 1 algorithm. Proceedings of the American Mathematical Society 82(1), 19–22 (1981)MathSciNetzbMATHGoogle Scholar
  11. 11.
    Godlin, B., Strichman, O.: Inference rules for proving the equivalence of recursive procedures. Acta Informatica 45(6), 403–439 (2008)MathSciNetzbMATHCrossRefGoogle Scholar
  12. 12.
    Godlin, B., Strichman, O.: Regression verification. Technical Report IE/IS-2011-02, Technion (2011),
  13. 13.
    Godlin, B., Strichman, O.: Regression verification. In: 46th Design Automation Conference, DAC (2009)Google Scholar
  14. 14.
    Kawaguchi, M., Lahiri, S.K., Rebelo, H.: Conditional equivalence. Technical Report MSR-TR-2010-119, Microsoft Research (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Dima Elenbogen
    • 1
  • Shmuel Katz
    • 1
  • Ofer Strichman
    • 2
  1. 1.CSTechnionHaifaIsrael
  2. 2.Information Systems Engineering, IETechnionHaifaIsrael

Personalised recommendations