Preventing Arithmetic Overflows in Alloy
Author(s)
Milicevic, Aleksandar; Jackson, Daniel
DownloadJackson_Preventing arithmetic.pdf (471.5Kb)
OPEN_ACCESS_POLICY
Open Access Policy
Creative Commons Attribution-Noncommercial-Share Alike
Terms of use
Metadata
Show full item recordAbstract
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.
Date issued
2012-06Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory; Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
Abstract State Machines, Alloy, B, VDM, and Z
Publisher
Springer-Verlag
Citation
Milicevic, Aleksandar, and Daniel Jackson. “Preventing Arithmetic Overflows in Alloy.” Lecture Notes in Computer Science (2012): 108–121.
Version: Author's final manuscript
ISBN
978-3-642-30884-0
978-3-642-30885-7
ISSN
0302-9743
1611-3349