Ranking function synthesis for bit-vector relations

Ranking function synthesis is a key aspect to the success of modern termination provers for imperative programs. While it is wellknown how to generate linear ranking functions for relations over (mathematical) integers or rationals, efficient synthesis of ranking functions for machine-level integers...

Full description

Bibliographic Details
Main Authors: Cook, B, Kroening, D, Rümmer, P, Wintersteiger, C
Other Authors: Esparza, J
Format: Conference item
Published: Springer 2010
_version_ 1826259564255772672
author Cook, B
Kroening, D
Rümmer, P
Wintersteiger, C
author2 Esparza, J
author_facet Esparza, J
Cook, B
Kroening, D
Rümmer, P
Wintersteiger, C
author_sort Cook, B
collection OXFORD
description Ranking function synthesis is a key aspect to the success of modern termination provers for imperative programs. While it is wellknown 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.
first_indexed 2024-03-06T18:51:53Z
format Conference item
id oxford-uuid:10835f89-b5b3-408a-b5c4-0a8832b3d0e0
institution University of Oxford
last_indexed 2024-03-06T18:51:53Z
publishDate 2010
publisher Springer
record_format dspace
spelling oxford-uuid:10835f89-b5b3-408a-b5c4-0a8832b3d0e02022-03-26T09:56:49ZRanking function synthesis for bit-vector relationsConference itemhttp://purl.org/coar/resource_type/c_5794uuid:10835f89-b5b3-408a-b5c4-0a8832b3d0e0Symplectic Elements at OxfordSpringer2010Cook, BKroening, DRümmer, PWintersteiger, CEsparza, JMajumdar, RRanking function synthesis is a key aspect to the success of modern termination provers for imperative programs. While it is wellknown 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.
spellingShingle Cook, B
Kroening, D
Rümmer, P
Wintersteiger, C
Ranking function synthesis for bit-vector relations
title Ranking function synthesis for bit-vector relations
title_full Ranking function synthesis for bit-vector relations
title_fullStr Ranking function synthesis for bit-vector relations
title_full_unstemmed Ranking function synthesis for bit-vector relations
title_short Ranking function synthesis for bit-vector relations
title_sort ranking function synthesis for bit vector relations
work_keys_str_mv AT cookb rankingfunctionsynthesisforbitvectorrelations
AT kroeningd rankingfunctionsynthesisforbitvectorrelations
AT rummerp rankingfunctionsynthesisforbitvectorrelations
AT wintersteigerc rankingfunctionsynthesisforbitvectorrelations