Owicki-Gries Reasoning for C11 RAR

Sadegh Dalvandi, Simon Doherty, Brijesh Dongol, and Heike Wehrheim
Abstract: Owicki-Gries reasoning for concurrent programs uses Hoare logic together with an interference freedom rule for concurrency. In this paper, we develop a new proof calculus for the C11 RAR memory model (a fragment of C11 with both relaxed and release-acquire accesses) that allows all Owicki-Gries proof rules for compound statements, including non-interference, to remain unchanged. Our proof method features novel assertions specifying thread-specific views on the state of programs. This is combined with a set of Hoare logic rules that describe how these assertions are affected by atomic program steps. We demonstrate the utility of our proof calculus by verifying a number of standard C11 litmus tests and Peterson’s algorithm adapted for C11. Our proof calculus and its application to program verification have been fully mechanised in the theorem prover Isabelle.

The paper can be download from here.

The artifact for the paper can be downloaded from here.

A short video on this work:

The full presentation in ECOOP 2020 can be found here: