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 条
  • [41] Separating Separation Logic - Modular Verification of Red-Black Trees
    Schellhorn, Gerhard
    Bodenmueller, Stefan
    Bitterlich, Martin
    Reif, Wolfgang
    VERIFIED SOFTWARE. THEORIES, TOOLS AND EXPERIMENTS, VSTTE 2022, 2023, 13800 : 129 - 147
  • [42] Program Verification Under Weak Memory Consistency Using Separation Logic
    Vafeiadis, Viktor
    COMPUTER AIDED VERIFICATION, CAV 2017, PT I, 2017, 10426 : 30 - 46
  • [43] The Nextgen Modality: A Modality for Non-Frame-Preserving Updates in Separation Logic
    Vindum, Simon Friis
    Georges, Aina Linn
    Birkedal, Lars
    PROCEEDINGS OF THE 14TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP 2025, 2025, : 83 - 97
  • [44] Automatic verification of pointer programs using monadic second-order logic
    Jensen, JL
    Jorgensen, ME
    Klarlund, N
    Schwartzbach, MI
    ACM SIGPLAN NOTICES, 1997, 32 (05) : 226 - 234
  • [45] Automata generation for on-the-fly automatic verification using formulas of an interval logic
    Hornos, MJ
    Capel, MI
    SECOND INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEMS DESIGN, PROCEEDINGS, 2001, : 221 - 230
  • [46] Igloo: Soundly Linking Compositional Refinement and Separation Logic for Distributed System Verification
    Sprenger, Christoph
    Klenze, Tobias
    Eilers, Marco
    Wolf, Felix A.
    Muller, Peter
    Clochard, Martin
    Basin, David
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (OOPSLA):
  • [47] Formal Verification of Data Modifications in Cloud Block Storage Based on Separation Logic
    Bowen ZHANG
    Zhao JIN
    Hanpin WANG
    Yongzhi CAO
    Chinese Journal of Electronics, 2024, 33 (01) : 112 - 127
  • [48] Formal Verification of C Systems CodeStructured Types, Separation Logic and Theorem Proving
    Harvey Tuch
    Journal of Automated Reasoning, 2009, 42 : 125 - 187
  • [49] Formal Verification of Data Modifications in Cloud Block Storage Based on Separation Logic
    Zhang, Bowen
    Jin, Zhao
    Wang, Hanpin
    Cao, Yongzhi
    CHINESE JOURNAL OF ELECTRONICS, 2024, 33 (01) : 112 - 127
  • [50] MPloC: Privacy-Preserving IP Verification using Logic Locking and Secure Multiparty Computation
    Mouris, Dimitris
    Gouert, Charles
    Tsoutsos, Nektarios Georgios
    2023 IEEE 29TH INTERNATIONAL SYMPOSIUM ON ON-LINE TESTING AND ROBUST SYSTEM DESIGN, IOLTS, 2023,