Modular Verification of Linked Lists with Views via Separation Logic

被引:4
|
作者
Jensen, Jonas Braband [1 ]
Birkedal, Lars [1 ]
Sestoft, Peter [1 ]
机构
[1] IT Univ Copenhagen, Copenhagen, Denmark
来源
关键词
Separation logic; formal verification; modularity;
D O I
10.5381/jot.2011.10.1.a2
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a separation logic specification and verification of linked lists with views, a data structure from the C5 collection library for .NET. A view is a generalization of the well-known concept of an iterator. Linked lists with views form an interesting case study for verification since they allow mutation through multiple, possibly overlapping, views of the same underlying list. For modularity, we build on a fragment of higher-order separation logic and use abstract predicates to give a specification with respect to which clients can be proved correct. We introduce a novel mathematical model of lists with views, and formulate succinct modular abstract specifications of the operations on the data structure. To show that the concrete implementation realizes the specification, we use fractional permissions in a novel way to capture the sharing of data between views and their underlying list. We conclude by suggesting directions for future research that arose from conducting this case study
引用
收藏
页码:21 / 40
页数:20
相关论文
共 50 条
  • [31] Modular Primal-Dual Fixpoint Logic Solving for Temporal Verification
    Unno, Hiroshi
    Terauchi, Tachio
    Gu, Yu
    Koskinen, Eric
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (POPL): : 2111 - 2140
  • [32] Modular Control Plane Verification via Temporal Invariants
    Thijm, Timothy Alberdingk
    Beckett, Ryan
    Gupta, Aarti
    Walker, David
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (PLDI): : 50 - 75
  • [33] 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):
  • [34] Verification-Preserving Inlining in Automatic Separation Logic Verifiers
    Dardinier, Thibault
    Parthasarathy, Gaurav
    Mueller, Peter
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (OOPSLA):
  • [35] LOGIC DESIGN VERIFICATION VIA TEST-GENERATION
    ABADIR, MS
    FERGUSON, J
    KIRKLAND, TE
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 1988, 7 (01) : 138 - 148
  • [36] Modular Verification of Concurrent Programs via Sequential Model Checking
    Rasin, Dan
    Grumberg, Orna
    Shoham, Sharon
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2018), 2018, 11138 : 228 - 247
  • [37] Modular Development and Verification of Domain Requirements via Model Checking
    Bhowmik, Tanmay
    Niu, Nan
    Allen, Edward B.
    PROCEEDINGS OF THE 48TH ANNUAL SOUTHEAST REGIONAL CONFERENCE (ACM SE 10), 2010, : 294 - 297
  • [38] Triple Modular Redundancy verification via heuristic netlist analysis
    Beltrame, Giovanni
    PEERJ COMPUTER SCIENCE, 2015,
  • [39] Modular logic gates: cascading independent logic gates via metal ion signals
    Ecik, Esra Tanriverdi
    Atilgan, Ahmet
    Guliyev, Ruslan
    Uyar, T. Bilal
    Gumus, Aysegul
    Akkaya, Engin U.
    DALTON TRANSACTIONS, 2014, 43 (01) : 67 - 70
  • [40] Formal verification of the heap manager of an operating system using separation logic
    Marti, Nicolas
    Affeldt, Reynald
    Yonezawa, Akinori
    FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2006, 4260 : 400 - +