Verification-Preserving Inlining in Automatic Separation Logic Verifiers

被引:1
|
作者
Dardinier, Thibault [1 ]
Parthasarathy, Gaurav [1 ]
Mueller, Peter [1 ]
机构
[1] Swiss Fed Inst Technol, Dept Comp Sci, Zurich, Switzerland
来源
基金
瑞士国家科学基金会;
关键词
Modular Verification; Bounded Verification; Inlining; Loop Unrolling; CHECKING;
D O I
10.1145/3586054
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Bounded verification has proved useful to detect bugs and to increase confidence in the correctness of a program. In contrast to unbounded verification, reasoning about calls via (bounded) inlining and about loops via (bounded) unrolling does not require method specifications and loop invariants and, therefore, reduces the annotation overhead to the bare minimum, namely specifications of the properties to be verified. For verifiers based on traditional program logics, verification is preserved by inlining (and unrolling): successful unbounded verification of a program w.r.t. some annotation implies successful verification of the inlined program. That is, any error detected in the inlined program reveals a true error in the original program. However, this essential property might not hold for automatic separation logic verifiers such as Caper, GRASShopper, RefinedC, Steel, VeriFast, and verifiers based on Viper. In this setting, inlining generally changes the resources owned by method executions, which may affect automatic proof search algorithms and introduce spurious errors. In this paper, we present the first technique for verification-preserving inlining in automatic separation logic verifiers. We identify a semantic condition on programs and prove in Isabelle/HOL that it ensures verification-preserving inlining for state-of-the-art automatic separation logic verifiers. We also prove a dual result: successful verification of the inlined program ensures that there are method and loop annotations that enable the verification of the original program for bounded executions. To check our semantic condition automatically, we present two approximations that can be checked syntactically and with a program verifier, respectively. We implement these checks in Viper and demonstrate that they are effective for non-trivial examples from different verifiers.
引用
收藏
页数:30
相关论文
共 50 条
  • [21] AUTOMATIC IDENTIFICATION OF EQUIVALENCE POINTS FOR BOOLEAN LOGIC VERIFICATION.
    Donath, W.E.
    Ofek, H.
    IBM Technical Disclosure Bulletin, 1976, 18 (08): : 2700 - 2703
  • [22] Smallfoot: Modular automatic assertion checking with separation logic
    Berdine, Josh
    Calcagno, Cristiano
    O'Hearn, Peter W.
    FORMAL METHODS FOR COMPONENTS AND OBJECTS, 2006, 4111 : 115 - 137
  • [23] PRIVACY-PRESERVING SOUND TO DEGRADE AUTOMATIC SPEAKER VERIFICATION PERFORMANCE
    Hashimoto, Kei
    Yamagishi, Junichi
    Echizen, Isao
    2016 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING PROCEEDINGS, 2016, : 5500 - 5504
  • [24] Multris: Functional Verification of Multiparty Message Passing in Separation Logic
    Hinrichsen, Jonas Kastberg
    Jacobs, Jules
    Krebbers, Robbert
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [25] Modular Verification of Linked Lists with Views via Separation Logic
    Jensen, Jonas Braband
    Birkedal, Lars
    Sestoft, Peter
    JOURNAL OF OBJECT TECHNOLOGY, 2011, 10 : 21 - 40
  • [26] Modular Verification of Safe Memory Reclamation in Concurrent Separation Logic
    Jung, Jaehwang
    Lee, Janggun
    Choi, Jaemin
    Kim, Jaewoo
    Park, Sunho
    Kang, Jeehoon
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (OOPSLA):
  • [27] Automated verification of shape and size properties via separation logic
    Nguyen, Huu Hai
    David, Cristina
    Qin, Shengchao
    Chin, Wei-Ngan
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, PROCEEDINGS, 2007, 4349 : 251 - +
  • [28] Modular Verification of Op-Based CRDTs in Separation Logic
    Nieto, Abel
    Gondelman, Leon
    Reynaud, Alban
    Timany, Amin
    Birkedal, Lars
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA):
  • [29] A Module for Automatic Assessment and Verification of Students' Work in Digital Logic Design
    Stanisavljevic, Zarko
    Nikolic, Bosko
    Djordjevic, Jovan
    2012 IEEE 19TH INTERNATIONAL CONFERENCE AND WORKSHOPS ON ENGINEERING OF COMPUTER BASED SYSTEMS (ECBS), 2012, : 275 - 282
  • [30] Automatic verification of secrecy properties for linear logic specifications of cryptographic protocols
    Bozzano, M
    Delzanno, G
    JOURNAL OF SYMBOLIC COMPUTATION, 2004, 38 (05) : 1375 - 1415