Write a Blog >>
ICSE 2021
Mon 17 May - Sat 5 June 2021

Verification of C/C++ 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 math.h/cmath 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, that enable verification via symbolic-execution-based model checking, abstract interpretation, and test-data generation. 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.

Fri 28 May

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

11:30 - 12:30
4.2.3. Testing: 3rd Party SoftwareJournal-First Papers / Technical Track at Blended Sessions Room 3 +12h
Chair(s): Leonardo Mariani University of Milano Bicocca
11:30
20m
Paper
Evaluating Unit Testing Practices in R PackagesTechnical Track
Technical Track
Melina Vidoni RMIT University
Pre-print Media Attached
11:50
20m
Paper
Data-Oriented Differential Testing of Object-Relational Mapping SystemsArtifact ReusableTechnical TrackArtifact Available
Technical Track
Thodoris Sotiropoulos Athens University of Economics and Business, Stefanos Chaliasos Athens University of Economics and Business, Vaggelis Atlidakis Columbia University, Dimitris Mitropoulos National and Kapodistrian University of Athens, Diomidis Spinellis Athens University of Economics and Business & TU Delft
Pre-print Media Attached
12:10
20m
Paper
A Practical Approach to Verification of Floating-Point C/C++ Programs with math.h/cmath FunctionsJournal-First
Journal-First Papers
Roberto Bagnara University of Parma, BUGSENG srl, Michele Chiari Politecnico di Milano, Roberta Gori University of Pisa, Abramo Bagnara BUGSENG srl
Link to publication DOI Pre-print Media Attached
23:30 - 00:30
4.2.3. Testing: 3rd Party SoftwareTechnical Track / Journal-First Papers at Blended Sessions Room 3
23:30
20m
Paper
Evaluating Unit Testing Practices in R PackagesTechnical Track
Technical Track
Melina Vidoni RMIT University
Pre-print Media Attached
23:50
20m
Paper
Data-Oriented Differential Testing of Object-Relational Mapping SystemsArtifact ReusableTechnical TrackArtifact Available
Technical Track
Thodoris Sotiropoulos Athens University of Economics and Business, Stefanos Chaliasos Athens University of Economics and Business, Vaggelis Atlidakis Columbia University, Dimitris Mitropoulos National and Kapodistrian University of Athens, Diomidis Spinellis Athens University of Economics and Business & TU Delft
Pre-print Media Attached
00:10
20m
Paper
A Practical Approach to Verification of Floating-Point C/C++ Programs with math.h/cmath FunctionsJournal-First
Journal-First Papers
Roberto Bagnara University of Parma, BUGSENG srl, Michele Chiari Politecnico di Milano, Roberta Gori University of Pisa, Abramo Bagnara BUGSENG srl
Link to publication DOI Pre-print Media Attached