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 条
  • [1] Enhancing Modular OO Verification with Separation Logic
    Chin, Wei-Ngan
    David, Cristina
    Nguyen, Huu Hai
    Qin, Shengchao
    POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 87 - 99
  • [2] 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
  • [3] Modular Verification of Heap Reachability Properties in Separation Logic
    Ter-Gabrielyan, Arshavir
    Summers, Alexander J.
    Mueller, Peter
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (OOPSLA):
  • [4] 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):
  • [5] 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):
  • [6] Modular Verification of Termination and Execution Time Bounds Using Separation Logic
    Hamin, Jafar
    Jacobs, Bart
    PROCEEDINGS OF 2016 IEEE 17TH INTERNATIONAL CONFERENCE ON INFORMATION REUSE AND INTEGRATION (IEEE IRI), 2016, : 110 - 117
  • [7] 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
  • [8] Quantitative Separation Logic and Programs with Lists
    Bozga, Marius
    Iosif, Radu
    Perarnau, Swann
    JOURNAL OF AUTOMATED REASONING, 2010, 45 (02) : 131 - 156
  • [9] Quantitative Separation Logic and programs with lists
    Bozga, Marius
    Iosit, Radu
    Perarnau, Swann
    AUTOMATED REASONING, PROCEEDINGS, 2008, 5195 : 34 - 49
  • [10] Quantitative Separation Logic and Programs with Lists
    Marius Bozga
    Radu Iosif
    Swann Perarnau
    Journal of Automated Reasoning, 2010, 45 : 131 - 156