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...
Main Authors: | , , , |
---|---|
Other Authors: | |
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 |