当前位置: X-MOL 学术J. Comput. Appl. Math. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Computer-assisted verification of four interval arithmetic operators
Journal of Computational and Applied Mathematics ( IF 2.4 ) Pub Date : 2020-03-30 , DOI: 10.1016/j.cam.2020.112893
Daisuke Ishii , Tomohito Yabu

Interval arithmetic libraries provide the four elementary arithmetic operators for operand intervals bounded by floating-point numbers. Actual implementations need to make a large case analysis that considers, e.g., magnitude relations between all pairs of argument bounds, positional relations between the arguments and zero, and handling of the special values, ± and NaN. Their correctness is not obvious as they are implemented by human hands, which comes to be critical for the reliability. This work provides a mechanically-verified interval arithmetic library. For this purpose, we utilize the Why3 platform equipped with a specification language for annotated programs and back-end theorem provers. We conduct several proof tasks for each of three properties of the target code: validity, soundness, and tightness; zero division exception handling is also verified for the division code. To accomplish the proof, we propose several techniques for specification/verification. First, we specify additional lemmas that support deductions made by back-end SMT solvers, which enable to discharge proof obligations in floating-point arithmetic containing nonlinear terms. Second, we examine the annotation of tightness, which requires to assume that a computation may result in NaN; we propose specific extremum operators for this purpose. In the experiments, applying the techniques in conjunction with the Alt-Ergo SMT solver and the Coq proof assistant proved the entire code.



中文翻译:

四个区间算术运算符的计算机辅助验证

间隔算术库为由浮点数限制的操作数间隔提供了四个基本算术运算符。实际的实现需要进行大案例分析,其中要考虑所有对参数范围之间的大小关系,参数与零之间的位置关系以及特殊值的处理,±N。由于它们是由人手操作的,因此其正确性并不明显,这对于可靠性至关重要。这项工作提供了一个机械验证的区间算术库。为此,我们利用带有规范语言的Why3平台来注释程序和后端定理证明者。我们针对目标代码的三个属性分别执行几个证明任务:有效性,稳健性和紧密性;还对除法代码的零除异常处理进行了验证。为了完成证明,我们提出了几种用于规范/验证的技术。首先,我们指定额外的引理,以支持后端SMT求解器进行的推导,从而可以消除包含非线性项的浮点算术中的证明义务。其次,我们检查密封性的注释,这要求假设计算可能会导致NaN;为此,我们建议使用特定的极值运算符。在实验中,将这些技术与Alt-Ergo SMT求解器和Coq证明助手一起使用证明了整个代码。

更新日期:2020-03-30
down
wechat
bug