Preventing Arithmetic Overflows in Alloy

In a bounded analysis, arithmetic operators become partial, and a different semantics becomes necessary. One approach, mimicking programming languages, is for overflow to result in wrap-around. Although easy to implement, wrap-around produces unexpected counterexamples that do not correspond to case...

Full description

Bibliographic Details
Main Authors: Milicevic, Aleksandar, Jackson, Daniel
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: Springer-Verlag 2014
Online Access:http://hdl.handle.net/1721.1/86925
https://orcid.org/0000-0003-4864-078X
_version_ 1826192551898513408
author Milicevic, Aleksandar
Jackson, Daniel
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Milicevic, Aleksandar
Jackson, Daniel
author_sort Milicevic, Aleksandar
collection MIT
description In a bounded analysis, arithmetic operators become partial, and a different semantics becomes necessary. One approach, mimicking programming languages, is for overflow to result in wrap-around. Although easy to implement, wrap-around produces unexpected counterexamples that do not correspond to cases that would arise in the unbounded setting. This paper describes a new approach, implemented in the latest version of the Alloy Analyzer, in which instances that would involve overflow are suppressed, and consequently, spurious counterexamples are eliminated. The key idea is to interpret quantifiers so that bound variables range only over values that do not cause overflow.
first_indexed 2024-09-23T09:19:17Z
format Article
id mit-1721.1/86925
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T09:19:17Z
publishDate 2014
publisher Springer-Verlag
record_format dspace
spelling mit-1721.1/869252022-09-30T14:13:48Z Preventing Arithmetic Overflows in Alloy Milicevic, Aleksandar Jackson, Daniel Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Milicevic, Aleksandar Jackson, Daniel In a bounded analysis, arithmetic operators become partial, and a different semantics becomes necessary. One approach, mimicking programming languages, is for overflow to result in wrap-around. Although easy to implement, wrap-around produces unexpected counterexamples that do not correspond to cases that would arise in the unbounded setting. This paper describes a new approach, implemented in the latest version of the Alloy Analyzer, in which instances that would involve overflow are suppressed, and consequently, spurious counterexamples are eliminated. The key idea is to interpret quantifiers so that bound variables range only over values that do not cause overflow. 2014-05-09T18:35:54Z 2014-05-09T18:35:54Z 2012-06 Article http://purl.org/eprint/type/ConferencePaper 978-3-642-30884-0 978-3-642-30885-7 0302-9743 1611-3349 http://hdl.handle.net/1721.1/86925 Milicevic, Aleksandar, and Daniel Jackson. “Preventing Arithmetic Overflows in Alloy.” Lecture Notes in Computer Science (2012): 108–121. https://orcid.org/0000-0003-4864-078X en_US http://dx.doi.org/10.1007/978-3-642-30885-7_8 Abstract State Machines, Alloy, B, VDM, and Z Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Springer-Verlag MIT web domain
spellingShingle Milicevic, Aleksandar
Jackson, Daniel
Preventing Arithmetic Overflows in Alloy
title Preventing Arithmetic Overflows in Alloy
title_full Preventing Arithmetic Overflows in Alloy
title_fullStr Preventing Arithmetic Overflows in Alloy
title_full_unstemmed Preventing Arithmetic Overflows in Alloy
title_short Preventing Arithmetic Overflows in Alloy
title_sort preventing arithmetic overflows in alloy
url http://hdl.handle.net/1721.1/86925
https://orcid.org/0000-0003-4864-078X
work_keys_str_mv AT milicevicaleksandar preventingarithmeticoverflowsinalloy
AT jacksondaniel preventingarithmeticoverflowsinalloy