Corpus ID: 237091418

Verifying C11-Style Weak Memory Libraries via Refinement

@article{Dalvandi2021VerifyingCW,
  title={Verifying C11-Style Weak Memory Libraries via Refinement},
  author={Sadegh Dalvandi and Brijesh Dongol},
  journal={ArXiv},
  year={2021},
  volume={abs/2108.06944}
}
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… Expand

Figures from this paper

Verifying C11-style weak memory libraries
TLDR
This work develops a simple framework for specifying abstract objects that precisely characterises the observability guarantees of abstract method calls and implements such abstractions in RC11 RAR by developing a (contextual) refinement framework for abstract objects. Expand

References

SHOWING 1-10 OF 50 REFERENCES
Verifying C11-style weak memory libraries
TLDR
This work develops a simple framework for specifying abstract objects that precisely characterises the observability guarantees of abstract method calls and implements such abstractions in RC11 RAR by developing a (contextual) refinement framework for abstract objects. Expand
Library abstraction for C/C++ concurrency
TLDR
This paper proposes a criterion for sound library abstraction in the new C11 and C++11 memory model, generalising the standard sequentially consistent notion of linearizability, and proves that it soundly captures all client-library interactions, both through call and return values, and through the subtle synchronisation effects arising from the memory model. Expand
Automating deductive verification for weak-memory programs (extended version)
TLDR
This work enables, for the first time, the (unbounded) verification of C11 programs at the level of abstraction provided by the program logics; the only necessary user interaction is in the form of specifications written in the program logic and, in rare cases, ghost operations. Expand
On library correctness under weak memory consistency: specifying and verifying concurrent libraries under declarative consistency models
TLDR
A general declarative framework is proposed that allows to specify concurrent libraries declaratively, and to verify library implementations against their specifications compositionally, and is sufficient to encode standard models such as SC, (R)C11 and TSO. Expand
Integrating Owicki-Gries for C11-Style Memory Models into Isabelle/HOL
TLDR
This paper introduces the first deductive verification environment in Isabelle/HOL for C11-like weak memory programs, built on the Nipkow and Nieto’s encoding of Owicki–Gries in the Isabelle theorem prover. Expand
Modular Relaxed Dependencies in Weak Memory Concurrency
We present a denotational semantics for weak memory concurrency that avoids thin-air reads, provides data-race free programs with sequentially consistent semantics (DRF-SC), and supports aExpand
Verifying observational robustness against a c11-style memory model
TLDR
This work introduces a novel "observational robustness" property that fills the gap in existing robustness notions that allows the verification of programs that use speculative reads as in the sequence lock mechanism, and shows how to soundly check for observational robustness. Expand
Making Linearizability Compositional for Partially Ordered Executions
TLDR
This paper presents a generalisation of linearizability for concurrent objects implemented in weak-memory models, an adaptation of simulation-based methods by defining a condition using Lamport’s execution structures and applying it to the C11 memory model, providing a correctness condition for C11 objects. Expand
Operational Aspects of C/C++ Concurrency
TLDR
This work presents a family of operational semantics that gradually approximates the realistic program behaviors in the C/C++11 memory model, and is the first formal and executable operational semantics of C11 capable of expressing all essential concurrent aspects of the standard. Expand
GPS: navigating weak memory with ghosts, protocols, and separation
TLDR
GPS is introduced, the first program logic to provide a full-fledged suite of modern verification techniques - including ghost state, protocols, and separation logic - for high-level, structured reasoning about weak memory. Expand
...
1
2
3
4
5
...