Sound Compilation of Reals

被引:81
作者
Darulova, Eva [1 ]
Kuncak, Viktor [1 ]
机构
[1] Ecole Polytech Fed Lausanne, Lausanne, Switzerland
关键词
roundoff error; floating-point arithmetic; fixed-point arithmetic; verification; compilation; embedded systems; numerical approximation; scientific computing; sensitivity analysis;
D O I
10.1145/2535838.2535874
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Writing accurate numerical software is hard because of many sources of unavoidable uncertainties, including finite numerical precision of implementations. We present a programming model where the user writes a program in a real-valued implementation and specification language that explicitly includes different types of uncertainties. We then present a compilation algorithm that generates a finite-precision implementation that is guaranteed to meet the desired precision with respect to real numbers. Our compilation performs a number of verification steps for different candidate precisions. It generates verification conditions that treat all sources of uncertainties in a unified way and encode reasoning about finite-precision roundoff errors into reasoning about real numbers. Such verification conditions can be used as a standardized format for verifying the precision and the correctness of numerical programs. Due to their non-linear nature, precise reasoning about these verification conditions remains difficult and cannot be handled using state-of-the art SMT solvers alone. We therefore propose a new procedure that combines exact SMT solving over reals with approximate and sound affine and interval arithmetic. We show that this approach overcomes scalability limitations of SMT solvers while providing improved precision over affine and interval arithmetic. Our implementation gives promising results on several numerical models, including dynamical systems, transcendental functions, and controller implementations.
引用
收藏
页码:235 / 248
页数:14
相关论文
共 53 条
[1]  
[Anonymous], 2008, TACAS
[2]  
Anta A., 2010, EMSOFT
[3]  
ANTA A, 2010, IEEE TRANSACTIONS ON, V55
[4]  
Ayad Ali, 2010, IJCAR
[5]  
BAILEY DH, 2013, C FORTRAN 90 DOUBLE
[6]  
Benz F., 2012, PLDI
[7]  
Blanc R.W., 2013, SCALA WORKSHOP
[8]   A static analyzer for large safety-critical software [J].
Blanchet, B ;
Cousot, P ;
Cousot, R ;
Feret, J ;
Mauborgne, L ;
Miné, A ;
Monniaux, D ;
Rival, X .
ACM SIGPLAN NOTICES, 2003, 38 (05) :196-207
[9]  
Borges M., 2012, ICST
[10]  
BORRALLERAS C, 2012, J AUTOMATED REASONIN, V48