Abstract
AbstractVerification 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 "Image missing"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.
Publisher
Springer Science and Business Media LLC
Subject
Artificial Intelligence,Computational Theory and Mathematics,Discrete Mathematics and Combinatorics,Software
Reference38 articles.
1. Aharoni, M., Asaf, S., Fournier, L., Koyfman, A., & Nagel, R. (2003). FPGen — a test generation framework for datapath floating-point verification. In Eighth IEEE international high-level design validation and test workshop. https://doi.org/10.1109/HLDVT.2003.1252469 (pp. 17–22). San Francisco: IEEE Computer Society.
2. Aho, A.V., Lam, M.S., Sethi, R., & Ullman, J.D. (2006). Compilers: principles, techniques, and tools, 2nd edn. Boston: Addison-Wesley Longman Publishing Co., Inc.
3. Arm Limited: Arm® Architecture Reference Manual, Armv8, for A-profile architecture edn. (2021). https://developer.arm.com/architectures/cpu-architecture/a-profile/docs. Last accessed on October 27th, 2021.
4. Bagnara, R., Carlier, M., Gori, R., & Gotlieb, A. (2013). Symbolic path-oriented test data generation for floating-point programs. In Proceedings of the 6th IEEE international conference on software testing, verification and validation. https://doi.org/10.1109/ICST.2013.17. Luxembourg City: IEEE Press.
5. Bagnara, R., Carlier, M., Gori, R., & Gotlieb, A. (2016). Exploiting binary floating-point representations for constraint propagation. INFORMS Journal on Computing, 28(1), 31–46. https://doi.org/10.1287/ijoc.2015.0663.
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A variable value range analysis method based on path propagation;2023 International Conference on Power, Communication, Computing and Networking Technologies;2023-09-24
2. Trapezoidal Shaping Algorithm based on FPGA;2022 2nd International Conference on Electronic Information Engineering and Computer Technology (EIECT);2022-10
3. Approximate Translation from Floating-Point to Real-Interval Arithmetic;Lecture Notes in Computer Science;2022
4. A Practical Approach to Verification of Floating-Point C/C++ Programs with math.h/cmath Functions;ACM Transactions on Software Engineering and Methodology;2021-01-31