Correct approximation of IEEE 754 floating-point arithmetic for program verification
Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities, non-numeric objects (NaNs), signed zeroes, denormal numbers, di...
Gespeichert in:
Veröffentlicht in: | Constraints : an international journal 2022-04, Vol.27 (1-2), p.29-69 |
---|---|
Hauptverfasser: | , , , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | 69 |
---|---|
container_issue | 1-2 |
container_start_page | 29 |
container_title | Constraints : an international journal |
container_volume | 27 |
creator | Bagnara, Roberto Bagnara, Abramo Biselli, Fabio Chiari, Michele Gori, Roberta |
description | Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities, non-numeric objects (NaNs), signed zeroes, denormal numbers, different rounding modes, etc. One possibility to reason about floating-point arithmetic is to model a program computation path by means of a set of ternary constraints of the form
and use constraint propagation techniques to infer new information on the variables’ possible values. In this setting, we define and prove the correctness of algorithms to precisely bound the value of one of the variables
x
,
y
or
z
, starting from the bounds known for the other two. We do this for each of the operations and for each rounding mode defined by the IEEE 754 binary floating-point standard, even in the case the rounding mode in effect is only partially known. This is the first time that such so-called
filtering algorithms
are defined and their correctness is formally proved. This is an important slab for paving the way to formal verification of programs that use floating-point arithmetics. |
doi_str_mv | 10.1007/s10601-021-09322-9 |
format | Article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2672359510</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2672359510</sourcerecordid><originalsourceid>FETCH-LOGICAL-c380t-3f8f05d212694bfc1a6506d6c29cc5296491174337e216f74f08bf49b29ff6f33</originalsourceid><addsrcrecordid>eNp9kE1LAzEQhoMoWKt_wFPA8-rke3OUsn5AwUs9h22aqVvazZpsRf-9sRW8eRhmGN5nPl5CrhncMgBzlxloYBXwElZwXtkTMmHKlEIoeVpqUYvKMCHOyUXOGwCwRsgJWcxiSsGPtB2GFD-7XTt2sacR6XPTNNQoSXEbS7NfV0Ps-iJM3fi2C2PnKcZEC7VO7Y5-hNRh5w_4JTnDdpvD1W-ekteHZjF7quYvj8-z-3nlRQ1jJbBGUCvOuLZyiZ61WoFeac-t94pbLS1jRgphAmcajUSolyjtkltEjUJMyc1xbjnifR_y6DZxn_qy0nFtuFBWMSgqflT5FHNOAd2Qyp_pyzFwP-65o3uuuOcO7jlbIHGEchH365D-Rv9DfQMyYnFR</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2672359510</pqid></control><display><type>article</type><title>Correct approximation of IEEE 754 floating-point arithmetic for program verification</title><source>Springer Nature - Complete Springer Journals</source><creator>Bagnara, Roberto ; Bagnara, Abramo ; Biselli, Fabio ; Chiari, Michele ; Gori, Roberta</creator><creatorcontrib>Bagnara, Roberto ; Bagnara, Abramo ; Biselli, Fabio ; Chiari, Michele ; Gori, Roberta</creatorcontrib><description>Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities, non-numeric objects (NaNs), signed zeroes, denormal numbers, different rounding modes, etc. One possibility to reason about floating-point arithmetic is to model a program computation path by means of a set of ternary constraints of the form
and use constraint propagation techniques to infer new information on the variables’ possible values. In this setting, we define and prove the correctness of algorithms to precisely bound the value of one of the variables
x
,
y
or
z
, starting from the bounds known for the other two. We do this for each of the operations and for each rounding mode defined by the IEEE 754 binary floating-point standard, even in the case the rounding mode in effect is only partially known. This is the first time that such so-called
filtering algorithms
are defined and their correctness is formally proved. This is an important slab for paving the way to formal verification of programs that use floating-point arithmetics.</description><identifier>ISSN: 1383-7133</identifier><identifier>EISSN: 1572-9354</identifier><identifier>DOI: 10.1007/s10601-021-09322-9</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>Algorithms ; Artificial Intelligence ; Computer Science ; Floating point arithmetic ; Operations Research/Decision Theory ; Optimization ; Program verification (computers) ; Rounding</subject><ispartof>Constraints : an international journal, 2022-04, Vol.27 (1-2), p.29-69</ispartof><rights>The Author(s) 2022</rights><rights>The Author(s) 2022. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c380t-3f8f05d212694bfc1a6506d6c29cc5296491174337e216f74f08bf49b29ff6f33</cites><orcidid>0000-0001-7742-9233</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s10601-021-09322-9$$EPDF$$P50$$Gspringer$$Hfree_for_read</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s10601-021-09322-9$$EHTML$$P50$$Gspringer$$Hfree_for_read</linktohtml><link.rule.ids>314,776,780,27901,27902,41464,42533,51294</link.rule.ids></links><search><creatorcontrib>Bagnara, Roberto</creatorcontrib><creatorcontrib>Bagnara, Abramo</creatorcontrib><creatorcontrib>Biselli, Fabio</creatorcontrib><creatorcontrib>Chiari, Michele</creatorcontrib><creatorcontrib>Gori, Roberta</creatorcontrib><title>Correct approximation of IEEE 754 floating-point arithmetic for program verification</title><title>Constraints : an international journal</title><addtitle>Constraints</addtitle><description>Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities, non-numeric objects (NaNs), signed zeroes, denormal numbers, different rounding modes, etc. One possibility to reason about floating-point arithmetic is to model a program computation path by means of a set of ternary constraints of the form
and use constraint propagation techniques to infer new information on the variables’ possible values. In this setting, we define and prove the correctness of algorithms to precisely bound the value of one of the variables
x
,
y
or
z
, starting from the bounds known for the other two. We do this for each of the operations and for each rounding mode defined by the IEEE 754 binary floating-point standard, even in the case the rounding mode in effect is only partially known. This is the first time that such so-called
filtering algorithms
are defined and their correctness is formally proved. This is an important slab for paving the way to formal verification of programs that use floating-point arithmetics.</description><subject>Algorithms</subject><subject>Artificial Intelligence</subject><subject>Computer Science</subject><subject>Floating point arithmetic</subject><subject>Operations Research/Decision Theory</subject><subject>Optimization</subject><subject>Program verification (computers)</subject><subject>Rounding</subject><issn>1383-7133</issn><issn>1572-9354</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2022</creationdate><recordtype>article</recordtype><sourceid>C6C</sourceid><recordid>eNp9kE1LAzEQhoMoWKt_wFPA8-rke3OUsn5AwUs9h22aqVvazZpsRf-9sRW8eRhmGN5nPl5CrhncMgBzlxloYBXwElZwXtkTMmHKlEIoeVpqUYvKMCHOyUXOGwCwRsgJWcxiSsGPtB2GFD-7XTt2sacR6XPTNNQoSXEbS7NfV0Ps-iJM3fi2C2PnKcZEC7VO7Y5-hNRh5w_4JTnDdpvD1W-ekteHZjF7quYvj8-z-3nlRQ1jJbBGUCvOuLZyiZ61WoFeac-t94pbLS1jRgphAmcajUSolyjtkltEjUJMyc1xbjnifR_y6DZxn_qy0nFtuFBWMSgqflT5FHNOAd2Qyp_pyzFwP-65o3uuuOcO7jlbIHGEchH365D-Rv9DfQMyYnFR</recordid><startdate>20220401</startdate><enddate>20220401</enddate><creator>Bagnara, Roberto</creator><creator>Bagnara, Abramo</creator><creator>Biselli, Fabio</creator><creator>Chiari, Michele</creator><creator>Gori, Roberta</creator><general>Springer US</general><general>Springer Nature B.V</general><scope>C6C</scope><scope>AAYXX</scope><scope>CITATION</scope><orcidid>https://orcid.org/0000-0001-7742-9233</orcidid></search><sort><creationdate>20220401</creationdate><title>Correct approximation of IEEE 754 floating-point arithmetic for program verification</title><author>Bagnara, Roberto ; Bagnara, Abramo ; Biselli, Fabio ; Chiari, Michele ; Gori, Roberta</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c380t-3f8f05d212694bfc1a6506d6c29cc5296491174337e216f74f08bf49b29ff6f33</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2022</creationdate><topic>Algorithms</topic><topic>Artificial Intelligence</topic><topic>Computer Science</topic><topic>Floating point arithmetic</topic><topic>Operations Research/Decision Theory</topic><topic>Optimization</topic><topic>Program verification (computers)</topic><topic>Rounding</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Bagnara, Roberto</creatorcontrib><creatorcontrib>Bagnara, Abramo</creatorcontrib><creatorcontrib>Biselli, Fabio</creatorcontrib><creatorcontrib>Chiari, Michele</creatorcontrib><creatorcontrib>Gori, Roberta</creatorcontrib><collection>Springer Nature OA Free Journals</collection><collection>CrossRef</collection><jtitle>Constraints : an international journal</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Bagnara, Roberto</au><au>Bagnara, Abramo</au><au>Biselli, Fabio</au><au>Chiari, Michele</au><au>Gori, Roberta</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Correct approximation of IEEE 754 floating-point arithmetic for program verification</atitle><jtitle>Constraints : an international journal</jtitle><stitle>Constraints</stitle><date>2022-04-01</date><risdate>2022</risdate><volume>27</volume><issue>1-2</issue><spage>29</spage><epage>69</epage><pages>29-69</pages><issn>1383-7133</issn><eissn>1572-9354</eissn><abstract>Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities, non-numeric objects (NaNs), signed zeroes, denormal numbers, different rounding modes, etc. One possibility to reason about floating-point arithmetic is to model a program computation path by means of a set of ternary constraints of the form
and use constraint propagation techniques to infer new information on the variables’ possible values. In this setting, we define and prove the correctness of algorithms to precisely bound the value of one of the variables
x
,
y
or
z
, starting from the bounds known for the other two. We do this for each of the operations and for each rounding mode defined by the IEEE 754 binary floating-point standard, even in the case the rounding mode in effect is only partially known. This is the first time that such so-called
filtering algorithms
are defined and their correctness is formally proved. This is an important slab for paving the way to formal verification of programs that use floating-point arithmetics.</abstract><cop>New York</cop><pub>Springer US</pub><doi>10.1007/s10601-021-09322-9</doi><tpages>41</tpages><orcidid>https://orcid.org/0000-0001-7742-9233</orcidid><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | ISSN: 1383-7133 |
ispartof | Constraints : an international journal, 2022-04, Vol.27 (1-2), p.29-69 |
issn | 1383-7133 1572-9354 |
language | eng |
recordid | cdi_proquest_journals_2672359510 |
source | Springer Nature - Complete Springer Journals |
subjects | Algorithms Artificial Intelligence Computer Science Floating point arithmetic Operations Research/Decision Theory Optimization Program verification (computers) Rounding |
title | Correct approximation of IEEE 754 floating-point arithmetic for program verification |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-14T23%3A46%3A38IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Correct%20approximation%20of%20IEEE%20754%20floating-point%20arithmetic%20for%20program%20verification&rft.jtitle=Constraints%20:%20an%20international%20journal&rft.au=Bagnara,%20Roberto&rft.date=2022-04-01&rft.volume=27&rft.issue=1-2&rft.spage=29&rft.epage=69&rft.pages=29-69&rft.issn=1383-7133&rft.eissn=1572-9354&rft_id=info:doi/10.1007/s10601-021-09322-9&rft_dat=%3Cproquest_cross%3E2672359510%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2672359510&rft_id=info:pmid/&rfr_iscdi=true |