Verifying C11-Style Weak Memory Libraries via Refinement

08/16/2021
by   Sadegh Dalvandi, et al.
0

Deductive verification of concurrent programs under weak memory has thus far been limited to simple programs over a monolithic state space. For scalability, we also require modular techniques with verifiable library abstractions. This paper addresses this challenge in the context of RC11 RAR, a subset of the C11 memory model that admits relaxed and release-acquire accesses, but disallows, so-called, load-buffering cycles. We develop a simple framework for specifying abstract objects that precisely characterises the observability guarantees of abstract method calls. We show how this framework can be integrated with an operational semantics that enables verification of client programs that execute abstract method calls from a library they use. Finally, we show how implementations of such abstractions in RC11 RAR can be verified by developing a (contextual) refinement framework for abstract objects. Our framework, including the operational semantics, verification technique for client-library programs, and simulation between abstract libraries and their implementations, has been mechanised in Isabelle/HOL.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

12/28/2020

Verifying C11-Style Weak Memory Libraries

Deductive verification of concurrent programs under weak memory has thus...
11/06/2021

Abstraction for Crash-Resilient Objects (Extended Version)

We study abstraction for crash-resilient concurrent objects using non-vo...
02/13/2018

A wide-spectrum language for verification of programs on weak memory models

Modern processors deploy a variety of weak memory models, which for effi...
08/10/2021

Data-Driven Abductive Inference of Library Specifications

Programmers often leverage data structure libraries that provide useful ...
07/06/2021

Thread-modular Analysis of Release-Acquire Concurrency

We present a thread-modular abstract interpretation(TMAI) technique to v...
05/19/2020

Choreographies as Objects

We present Choral, the first framework for programming choreographies (m...
05/12/2021

Semantics, Verification, and Efficient Implementations for Tristate Numbers

Extended Berkeley Packet Filter(BPF)is an in-kernel, register-based virt...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.