Abstract Interpretation of Recursive Logic Definitions for Efficient Runtime Assertion Checking

被引:0
|
作者
Benajmin, Thibaut [1 ]
Signoles, Julien [1 ]
机构
[1] Univ Paris Saclay, List, CEA, Palaiseau, France
来源
TESTS AND PROOFS, TAP 2023 | 2023年 / 14066卷
关键词
D O I
10.1007/978-3-031-38828-6_10
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Runtime Assertion Checking (RAC) is a lightweight formal method for verifying at runtime code properties written in a formal specification language. One of the main challenge of RAC is to check the properties efficiently, while emitting sound verdicts. In particular, arithmetic properties are only efficiently verified using machine integers, yet soundness can only be achieved by using an exact but slower exact arithmetic library. This paper presents how E-ACSL, a RAC tool for C programs, applies abstract interpretation for efficiently and soundly supporting arithmetic properties. Abstract interpretation provides sound static information regarding the size of terms involved in runtime assertions in order to choose at compile time whether machine integers or exact arithmetic will be used at runtime on a case by case basis. Our specification language includes recursive user-defined logic functions and predicates, for which we rely on fast fixpoint operators based on widening of abstract values.
引用
收藏
页码:168 / 186
页数:19
相关论文
共 50 条
  • [1] Efficient Runtime Assertion Checking of Assignable Clauses with Datagroups
    Lehner, Hermann
    Mueller, Peter
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, PROCEEDINGS, 2010, 6013 : 338 - 352
  • [2] Efficient Runtime Assertion Checking for Properties over Mathematical Numbers
    Kosmatov, Nikolai
    Maurica, Fonenantsoa
    Signoles, Julien
    RUNTIME VERIFICATION (RV 2020), 2020, 12399 : 310 - 322
  • [3] Runtime Assertion Checking with the XJML Tool
    Ramirez-de-Leon, Edgar D.
    Garcia-Alcocer, Eddy A.
    Torres-Martinez, Nicolas
    Chavez-Bosquez, Oscar A.
    Francisco-Leon, Julian J.
    2014 IEEE BIENNIAL CONGRESS OF ARGENTINA (ARGENCON), 2014, : 141 - 146
  • [4] Verified Runtime Assertion Checking for Memory Properties
    Ly, Dara
    Kosmatov, Nikolai
    Loulergue, Frederic
    Signoles, Julien
    TESTS AND PROOFS (TAP 2020), 2020, 12165 : 100 - 121
  • [5] Runtime checking for separation logic
    Nguyen, Huu Hai
    Kuncak, Viktor
    Chin, Wei-Ngan
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2008, 4905 : 203 - +
  • [6] Ortac: Runtime Assertion Checking for OCaml (Tool Paper)
    Filliatre, Jean-Christophe
    Pascutto, Clement
    RUNTIME VERIFICATION (RV 2021), 2021, 12974 : 244 - 253
  • [7] A Lesson on Runtime Assertion Checking with Frama-C
    Kosmatov, Nikolai
    Signoles, Julien
    RUNTIME VERIFICATION, RV 2013, 2013, 8174 : 386 - 399
  • [8] An Optimized Memory Monitoring for Runtime Assertion Checking of C Programs
    Kosmatov, Nikolai
    Petiot, Guillaume
    Signoles, Julien
    RUNTIME VERIFICATION, RV 2013, 2013, 8174 : 167 - 182
  • [9] Runtime Assertion Checking and Theorem Proving for Concurrent and Distributed Systems
    Din, Crystal Chang
    Owe, Olaf
    Bubel, Richard
    PROCEEDINGS OF THE 2014 2ND INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT (MODELSWARD 2014), 2014, : 480 - 487
  • [10] Abstract interpretation with specialized definitions
    Puebla, German
    Albert, Elvira
    Hermenegildo, Manuel
    STATIC ANALYSIS, PROCEEDINGS, 2006, 4134 : 107 - 126