Verifying C11 Programs Operationally
Programming Languages
2018-11-26 v1 Distributed, Parallel, and Cluster Computing
Abstract
This paper develops an operational semantics for a release-acquire fragment of the C11 memory model with relaxed accesses. We show that the semantics is both sound and complete with respect to the axiomatic model. The semantics relies on a per-thread notion of observability, which allows one to reason about a weak memory C11 program in program order. On top of this, we develop a proof calculus for invariant-based reasoning, which we use to verify the release-acquire version of Peterson's mutual exclusion algorithm.
Cite
@article{arxiv.1811.09143,
title = {Verifying C11 Programs Operationally},
author = {Simon Doherty and Brijesh Dongol and Heike Wehrheim and John Derrick},
journal= {arXiv preprint arXiv:1811.09143},
year = {2018}
}