Proof Pearl: Magic Wand as Frame

09/19/2019
by   Qinxiang Cao, et al.
0

Separation logic adds two connectives to assertion languages: separating conjunction * ("star") and its adjoint, separating implication -* ("magic wand"). Comparatively, separating implication is less widely used. This paper demonstrates that by using magic wand to express frames that relate mutable local portions of data structures to global portions, we can exploit its power while proofs are still easily understandable. Many useful separation logic theorems about partial data structures can now be proved by simple automated tactics, which were usually proved by induction. This magic-wand-as-frame technique is especially useful when formalizing the proofs by a high order logic. We verify binary search tree insert in Coq as an example to demonstrate this proof technique.

READ FULL TEXT

page 2

page 4

page 5

page 6

page 12

page 14

page 16

page 17

research
02/01/2023

A Universal Technique for Machine-Certified Proofs of Linearizable Algorithms

Linearizability has been the long standing gold standard for consistency...
research
10/12/2021

A Simple Way to Verify Linearizability of Concurrent Stacks

Linearizability is a commonly accepted correctness criterion for concurr...
research
01/25/2019

A First Order Logic with Frames

We propose a novel logic, called Frame Logic (FL), that extends first-or...
research
04/10/2023

Make flows small again: revisiting the flow framework

We present a new flow framework for separation logic reasoning about pro...
research
11/29/2021

A Separation Logic for Negative Dependence

Formal reasoning about hashing-based probabilistic data structures often...
research
01/17/2020

Strong-Separation Logic

Most automated verifiers for separation logic target the symbolic-heap f...
research
10/11/2021

Efficient Extensional Binary Tries

Lookup tables (finite maps) are a ubiquitous data structure. In pure fun...

Please sign up or login with your details

Forgot password? Click here to reset