Abstraction for Crash-Resilient Objects (Extended Version)

11/06/2021
by   Artem Khyzha, et al.
0

We study abstraction for crash-resilient concurrent objects using non-volatile memory (NVM). We develop a library correctness criterion that is sound for ensuring contextual refinement in this setting, thus allowing clients to reason about library behaviors in terms of their abstract specifications, and library developers to verify their implementations against the specifications abstracting away from particular client programs. As a semantic foundation we employ a recent NVM model, called Persistent Sequential Consistency, and extend its language and operational semantics with useful specification constructs. The proposed correctness criterion accounts for NVM-related interactions between client and library code due to explicit persist instructions, and for calling policies enforced by libraries. We illustrate our approach on two implementations and specifications of simple persistent objects with different prototypical durability guarantees. Our results provide the first approach to formal compositional reasoning under NVM.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/16/2021

Verifying C11-Style Weak Memory Libraries via Refinement

Deductive verification of concurrent programs under weak memory has thus...
research
06/02/2023

Specifying and Verifying Persistent Libraries

We present a general framework for specifying and verifying persistent l...
research
04/21/2020

Semantics, Specification, and Bounded Verification of Concurrent Libraries in Replicated Systems

Geo-replicated systems provide a number of desirable properties such as ...
research
08/10/2021

Data-Driven Abductive Inference of Library Specifications

Programmers often leverage data structure libraries that provide useful ...
research
12/28/2020

Verifying C11-Style Weak Memory Libraries

Deductive verification of concurrent programs under weak memory has thus...
research
07/31/2023

Verified Scalable Parallel Computing with Why3

BSML is a pure functional library for the multi-paradigm language OCaml....
research
01/25/2023

Proving Correctness of Parallel Implementations of Transition System Specifications

The overall problem addressed in this paper is the long-standing problem...

Please sign up or login with your details

Forgot password? Click here to reset