Affiliation:
1. University of Parma and BUGSENG srl
2. University of Parma, BUGSENG srl, and Politecnico di Milano
3. University of Pisa
4. BUGSENG srl
Abstract
Verification of C/C<bold>++</bold> programs has seen considerable progress in several areas, but not for programs that use these languages’ mathematical libraries. The reason is that all libraries in widespread use come with no guarantees about the computed results. This would seem to prevent any attempt at formal verification of programs that use them: without a specification for the functions, no conclusion can be drawn statically about the behavior of the program. We propose an alternative to surrender. We introduce a pragmatic approach that leverages the fact that most <monospace>math.h/cmath</monospace> functions are
almost
piecewise monotonic: as we discovered through exhaustive testing, they may have
glitches
, often of very small size and in small numbers. We develop interval refinement techniques for such functions based on a modified dichotomic search, which enable verification via symbolic execution based model checking, abstract interpretation, and test data generation. To the best of our knowledge, our refinement algorithms are the first in the literature to be able to handle non-correctly rounded function implementations, enabling verification in the presence of the most common implementations. We experimentally evaluate our approach on real-world code, showing its ability to detect or rule out anomalous behaviors.
Publisher
Association for Computing Machinery (ACM)
Reference70 articles.
1. Analog Devices. 2015. C/C++ Compiler and Library Manual for Blackfin Processors. Revision 1.5. Analog Devices. Analog Devices. 2015. C/C++ Compiler and Library Manual for Blackfin Processors. Revision 1.5. Analog Devices.
2. R. Bagnara A. Bagnara F. Biselli M. Chiari and R. Gori. 2019. Correct approximation of IEEE 754 Floating-Point Arithmetic for Program Verification. arXiv:1903.06119[cs.PL] R. Bagnara A. Bagnara F. Biselli M. Chiari and R. Gori. 2019. Correct approximation of IEEE 754 Floating-Point Arithmetic for Program Verification. arXiv:1903.06119[cs.PL]
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献