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 条
  • [1] Verification Algorithms for Automated Separation Logic Verifiers
    Eilers, Marco
    Schwerhoff, Malte
    Mueller, Peter
    COMPUTER AIDED VERIFICATION, PT I, CAV 2024, 2024, 14681 : 362 - 386
  • [2] Annotation Inference for Separation Logic Based Verifiers
    Vogels, Frederic
    Jacobs, Bart
    Piessens, Frank
    Smans, Jan
    FORMAL TECHNIQUES FOR DISTRIBUTED SYSTEMS, 2011, 6722 : 319 - 333
  • [3] Automatic Verification of Heap Manipulation Using Separation Logic
    Berdine, Josh
    SOFSEM 2009-THEORY AND PRACTICE OF COMPUTER SCIENCE, PROCEEDINGS, 2009, 5404 : 34 - 34
  • [4] Program Verification with Separation Logic
    Iosif, Radu
    MODEL CHECKING SOFTWARE, SPIN 2018, 2018, 10869 : 48 - 62
  • [5] Automatic Parallelization with Separation Logic
    Raza, Mohammad
    Calcagno, Cristiano
    Gardner, Philippa
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2009, 5502 : 348 - 362
  • [6] AUTOMATIC VERIFICATION OF DISTRIBUTED LOGIC SPECIFICATIONS
    MALL, R
    PATNAIK, LM
    MICROPROCESSING AND MICROPROGRAMMING, 1994, 40 (01): : 43 - 56
  • [7] Verification of protocol specifications with separation logic
    Kiss, Tibor
    Craciun, Florin
    Pary, Bazil
    2015 IEEE 11TH INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTER COMMUNICATION AND PROCESSING (ICCP), 2015, : 109 - 116
  • [8] Completeness of Pointer Program Verification by Separation Logic
    Tatsuta, Makoto
    Chin, Wei-Ngan
    Al Ameen, Mahmudul Faisal
    SEFM 2009: SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND FORMAL METHODS, 2009, : 179 - +
  • [9] A Program Construction and Verification Tool for Separation Logic
    Dongol, Brijesh
    Gomes, Victor B. F.
    Struth, Georg
    MATHEMATICS OF PROGRAM CONSTRUCTION, MPC 2015, 2015, 9129 : 137 - 158
  • [10] Enhancing modular OO verification with separation logic
    Chin, Wei-Ngan
    David, Cristina
    Nguyen, Huu Hai
    Qin, Shengchao
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 87 - 99