论文标题
四个间隔算术运算符的计算机辅助验证
Computer-Assisted Verification of Four Interval Arithmetic Operators
论文作者
论文摘要
间隔算术库为操作数间隔提供了四个基本算术运算符,以浮点数为界。实际实施需要进行大量案例分析,例如,所有参数范围,参数与零之间的位置关系以及处理特殊价值,无限和NAN之间的幅度关系。它们的正确性并不明显,因为它们是由人类实施的,这对于可靠性至关重要。这项工作提供了机械验证的间隔算术库。为此,我们利用了配备带有注释程序的规范语言和后端定理掠夺的Why3平台。我们对目标代码的三个属性中的每一个进行了几项证明任务:有效性,健全性和紧密度;零部的异常处理也已被验证为分区代码。为了完成证明,我们提出了几种用于规范/验证的技术。首先,我们指定了支持后端SMT求解器扣除的其他引理,这使得可以在包含非线性项的浮点算术算术中排除证明义务。其次,我们检查了紧密度的注释,这需要假定计算可能导致NAN。为此,我们建议特定的极值操作员。在实验中,将技术与Alt-ergo SMT求解器结合使用,而COQ证明助手证明了整个代码。
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, infinities 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.