Refining Abstract Interpretation-based Approximations with Constraint Solvers
Résumé
Programs with floating-point computations are tricky to develop because floating-point arithmetic differs from real arithmetic and has many counterintuitive properties. A classical approach to verify such programs consists in estimating the precision of floating-point computations with respect to the same sequence of operations in an idealized semantics of real numbers. Tools like \FLUCTUAT{}---based on abstract interpretation---have been designed to address this problem. However, such tools compute an over-approximation of the domains of the variables, both in the semantics of the floating-point numbers and in the semantics of the real numbers. This over-approximation can be very coarse on some programs. In this paper, we show that constraint solvers over floating-point numbers and real numbers can significantly refine the approximations computed by \FLUCTUAT{}. We managed to reduce drastically the domains of variables of C programs that are difficult to handle for abstract interpretation techniques implemented in \FLUCTUAT{}.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...