Proving Logical Atomicity using Lock Invariants

04/27/2023
by   Roshan Sharma, et al.
0

Logical atomicity has been widely accepted as a specification format for data structures in concurrent separation logic. While both lock-free and lock-based data structures have been verified against logically atomic specifications, most of the latter start with atomic specifications for the locks as well. In this paper, we compare this approach with one based on older lock-invariant-based specifications for locks. We show that we can still prove logically atomic specifications for data structures with fine-grained locking using these older specs, but the proofs are significantly more complicated than those that use atomic lock specifications. Our proof technique is implemented in the Verified Software Toolchain, which relies on older lock specifications for its soundness proof, and applied to C implementations of lock-based concurrent data structures.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/21/2018

Proving Linearizability Using Reduction

Lipton's reduction theory provides an intuitive and simple way for deduc...
research
07/14/2022

Bringing Iris into the Verified Software Toolchain

The Verified Software Toolchain (VST) is a system for proving correctnes...
research
06/12/2020

Pointer Data Structure Synthesis from Answer Set Programming Specifications

We develop an inductive proof-technique to generate imperative programs ...
research
06/24/2020

ReLoC Reloaded: A Mechanized Relational Logic for Fine-Grained Concurrency and Logical Atomicity

We present a new version of ReLoC: a relational logic for proving refine...
research
01/22/2020

Fine-grained Analysis on Fast Implementations of Multi-writer Atomic Registers

This draft in its current version proves an impossibility result concern...
research
08/21/2023

Proofs about Network Communication: For Humans and Machines

Many concurrent and distributed systems are safety-critical and therefor...
research
01/13/2023

The Commutativity Quotients of Concurrent Objects

Concurrent objects form the foundation of many applications that exploit...

Please sign up or login with your details

Forgot password? Click here to reset