Verifying C11 Programs Operationally

Simon Doherty, Brijesh Dongol, Heike Wehrheim, John Derrick

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.

Knowledge Graph

arrow_drop_up

Comments

Sign up or login to leave a comment