Combining rule- and SMT-based reasoning for verifying floating-point Java']Java programs in KeY

被引:1
|
作者
Abbasi, Rosa [1 ]
Schiffl, Jonas [2 ]
Darulova, Eva [1 ,3 ]
Ulbrich, Mattias [2 ]
Ahrendt, Wolfgang [4 ]
机构
[1] MPI SWS, Saarbrucken, Germany
[2] Karlsruhe Inst Technol, Karlsruhe, Germany
[3] Uppsala Univ, Uppsala, Sweden
[4] Chalmers Univ Technol, Gothenburg, Sweden
关键词
Deductive verification; Floating-point arithmetic; Transcendental functions; LIBRARY;
D O I
10.1007/s10009-022-00691-x
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly unintuitive to reason about due to rounding as well as the presence of the special values infinity and 'Not a Number' (NaN). In this article, we present the first floating-point support in a deductive verification tool for the Java programming language. Our support in the KeY verifier handles floating-point arithmetics, transcendental functions, and potentially rounding-type casts. We achieve this with a combination of delegation to external SMT solvers on the one hand, and KeY-internal, rule-based reasoning on the other hand, exploiting the complementary strengths of both worlds. We evaluate this integration on new benchmarks and show that this approach is powerful enough to prove the absence of floating-point special values-often a prerequisite for correct programs-as well as functional properties, for realistic benchmarks.
引用
收藏
页码:185 / 204
页数:20
相关论文
共 2 条
  • [1] Combining rule- and SMT-based reasoning for verifying floating-point Java programs in KeY
    Rosa Abbasi
    Jonas Schiffl
    Eva Darulova
    Mattias Ulbrich
    Wolfgang Ahrendt
    [J]. International Journal on Software Tools for Technology Transfer, 2023, 25 : 185 - 204
  • [2] Verifying (In-)Stability in Floating-point Programs by Increasing Precision, using SMT Solving
    Paganelli, Gabriele
    Ahrendt, Wolfgang
    [J]. 2013 15TH INTERNATIONAL SYMPOSIUM ON SYMBOLIC AND NUMERIC ALGORITHMS FOR SCIENTIFIC COMPUTING (SYNASC 2013), 2014, : 209 - 216