Ranking Abstractions

  • Aziem Chawdhary
  • Byron Cook
  • Sumit Gulwani
  • Mooly Sagiv
  • Hongseok Yang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4960)


We propose an abstract interpretation algorithm for proving that a program terminates on all inputs. The algorithm uses a novel abstract domain which uses ranking relations to conservatively represent relations between intermediate program states. One of the attractive aspects of the algorithm is that it abstracts information that is usually not important for proving termination such as program invariants and yet it distinguishes between different reasons for termination which are not usually maintained in existing abstract domains. We have implemented a prototype of the algorithm and shown that in practice it is fast and precise.


Ranking Function Ranking Relation Device Driver Abstract Domain Loop Body 
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.


  1. 1.
    Balaban, I., Pnueli, A., Zuck, L.: Ranking abstraction as companion to predicate abstraction. In: Wang, F. (ed.) FORTE 2005. LNCS, vol. 3731, Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Berdine, J., Chawdhary, A., Cook, B., Distefano, D., O’Hearn, P.: Variance analyses from invariance analyses. In: POPL 2007 (2007)Google Scholar
  3. 3.
    Bradley, A., Manna, Z., Sipma, H.: Termination of polynomial programs. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, Springer, Heidelberg (2005)Google Scholar
  4. 4.
    Bruynooghe, M., Codish, M., Gallagher, J., Genaim, S., Vanhoof, W.: Termination analysis through combination of type based norms. ACM Trans. Progam. Lang. Syst. 29(2) (2007)Google Scholar
  5. 5.
    Chawdhary, A., Cook, B., Gulwani, S., Sagiv, M., Yang, H.: Ranking abstractions. Manuscript (2008),
  6. 6.
    Codish, M., Taboch, C.: A semantic basis for the termination analysis of logic programs. The Journal of Logic Programming 41(1) (1999)Google Scholar
  7. 7.
    Cook, B., Podelski, A., Rybalchenko, A.: Termination proofs for systems code. In: PLDI 2006 (2006)Google Scholar
  8. 8.
    Cook, B., Podelski, A., Rybalchenko, A.: Terminator: Beyond safety. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. 9.
    Cousot, P.: Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theoretical Comput. Sci. 277(1–2), 47–103 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: POPL 1979 (1979)Google Scholar
  11. 11.
    Detlefs, D., Nelson, G., Saxe, J.: Simplify: A theorem prover for program checking (2003)Google Scholar
  12. 12.
    Jeannet, B.: NewPolka polyhedra library,
  13. 13.
    Lee, C.S., Jones, N.D., Ben-Amram, A.M.: The size-change principle for program termination. In: POPL 2001 (2001)Google Scholar
  14. 14.
    Miné, A.: The Octagon abstract domain. Higher-Order and Symbolic Comput. 19, 31–100 (2006)zbMATHCrossRefGoogle Scholar
  15. 15.
    Necula, G., McPeak, S., Rahul, S., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, Springer, Heidelberg (2002)CrossRefGoogle Scholar
  16. 16.
    Podelski, A., Rybalchenko, A.: A complete method for the synthesis of linear ranking functions. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, Springer, Heidelberg (2004)Google Scholar
  17. 17.
    Podelski, A., Rybalchenko, A.: Transition invariants. In: LICS 2004 (2004)Google Scholar
  18. 18.
    Turing, A.M.: Checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, pp. 67–69 (1948), Reprinted In: The early British computer conferences. Charles Babbage Institute Reprint Series for the History of Computing, vol. 14, MIT Press, Cambridge (1989)Google Scholar
  19. 19.
    Yahav, E., Reps, T., Sagiv, M., Wilhelm, R.: Verifying temporal heap properties specified via evolution logic. Logic Journal of IGPL (September 2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Aziem Chawdhary
    • 1
  • Byron Cook
    • 2
  • Sumit Gulwani
    • 2
  • Mooly Sagiv
    • 3
  • Hongseok Yang
    • 1
  1. 1.Queen Mary, University of London 
  2. 2.Microsoft Research 
  3. 3.Tel Aviv University 

Personalised recommendations