Chapter

Principles and Practice of Constraint Programming

Volume 7514 of the series Lecture Notes in Computer Science pp 593-607

Refining Abstract Interpretation Based Value Analysis with Constraint Programming Techniques

  • Olivier PonsiniAffiliated withUniversity of Nice–Sophia Antipolis, I3S/CNRS
  • , Claude MichelAffiliated withUniversity of Nice–Sophia Antipolis, I3S/CNRS
  • , Michel RueherAffiliated withUniversity of Nice–Sophia Antipolis, I3S/CNRS

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Abstract interpretation based value analysis is a classical approach for verifying programs with floating-point computations. However, state-of-the-art tools compute an over-approximation of the variable values that can be very coarse. In this paper, we show that constraint solvers can significantly refine the approximations computed with abstract interpretation tools. We introduce a hybrid approach that combines abstract interpretation and constraint programming techniques in a single static and automatic analysis. rAiCp, the system we developed is substantially more precise than Fluctuat, a state-of-the-art static analyser. Moreover, it could eliminate 13 false alarms generated by Fluctuat on a standard set of benchmarks.

Keywords

Program verification Floating-point computation Constraint solvers over floating-point numbers Constraint solvers over real number intervals Abstract interpretation-based approximation