Formal Methods in System Design

, Volume 43, Issue 1, pp 93–120

Ranking function synthesis for bit-vector relations

  • Byron Cook
  • Daniel Kroening
  • Philipp Rümmer
  • Christoph M. Wintersteiger
Article

DOI: 10.1007/s10703-013-0186-4

Cite this article as:
Cook, B., Kroening, D., Rümmer, P. et al. Form Methods Syst Des (2013) 43: 93. doi:10.1007/s10703-013-0186-4

Abstract

Ranking function synthesis is a key component of modern termination provers for imperative programs. While it is well-known how to generate linear ranking functions for relations over (mathematical) integers or rationals, efficient synthesis of ranking functions for machine-level integers (bit-vectors) is an open problem. This is particularly relevant for the verification of low-level code. We propose several novel algorithms to generate ranking functions for relations over machine integers: a complete method based on a reduction to Presburger arithmetic, and a template-matching approach for predefined classes of ranking functions based on reduction to SAT- and QBF-solving. The utility of our algorithms is demonstrated on examples drawn from Windows device drivers.

Keywords

Software verification Ranking functions Termination Bit-vectors 

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Byron Cook
    • 1
  • Daniel Kroening
    • 2
  • Philipp Rümmer
    • 3
  • Christoph M. Wintersteiger
    • 1
  1. 1.Microsoft ResearchCambridgeUK
  2. 2.Oxford UniversityOxfordUK
  3. 3.Uppsala UniversityUppsalaSweden

Personalised recommendations