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 条
  • [41] Formal verification of the heap manager of an operating system using separation logic
    Marti, Nicolas
    Affeldt, Reynald
    Yonezawa, Akinori
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2006, 4260 LNCS : 400 - 419
  • [42] Mechanical verification of recursive procedures manipulating pointers using separation logic
    Preoteasa, Viorel
    FM 2006: FORMAL METHODS, PROCEEDINGS, 2006, 4085 : 508 - 523
  • [43] Program Verification Under Weak Memory Consistency Using Separation Logic
    Vafeiadis, Viktor
    COMPUTER AIDED VERIFICATION, CAV 2017, PT I, 2017, 10426 : 30 - 46
  • [44] Fast Texture Synthesis via Patch-Based Circular Linked Lists
    Xiong Changzhen
    Guo Fenhong
    2009 IEEE PACIFIC RIM CONFERENCE ON COMMUNICATIONS, COMPUTERS AND SIGNAL PROCESSING, VOLS 1 AND 2, 2009, : 545 - 550
  • [45] Deciding Boolean Separation Logic via Small Models
    Dacik, Tomas
    Rogalewicz, Adam
    Vojnar, Tomas
    Zuleger, Florian
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PT I, TACAS 2024, 2024, 14570 : 188 - 206
  • [46] Heap Memory Requirements Analysis via Separation Logic
    He, Guanhua
    Luo, Chenguang
    THIRD INTERNATIONAL SYMPOSIUM ON THEORETICAL ASPECTS OF SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 321 - 322
  • [47] Modular verification of chemical reaction network encodings via serializability analysis
    Lakin, Matthew R.
    Stefanovic, Darko
    Phillips, Andrew
    THEORETICAL COMPUTER SCIENCE, 2016, 632 : 21 - 42
  • [48] Modular Verification of Opacity for Interconnected Control Systems via Barrier Certificates
    Kalat, Shadi Tasdighi
    Liu, Siyuan
    Zamani, Majid
    IEEE CONTROL SYSTEMS LETTERS, 2022, 6 : 890 - 895
  • [49] Modular Verification of DNA Strand Displacement Networks via Serializability Analysis
    Lakin, Matthew R.
    Phillips, Andrew
    Stefanovic, Darko
    DNA COMPUTING AND MOLECULAR PROGRAMMING, DNA 2013, 2013, 8141 : 133 - 146
  • [50] 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):