,
Simon Doherty
,
Brijesh Dongol
,
Heike Wehrheim
Creative Commons Attribution 3.0 Unported license
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.
@InProceedings{dalvandi_et_al:LIPIcs.ECOOP.2020.11,
author = {Dalvandi, Sadegh and Doherty, Simon and Dongol, Brijesh and Wehrheim, Heike},
title = {{Owicki-Gries Reasoning for C11 RAR}},
booktitle = {34th European Conference on Object-Oriented Programming (ECOOP 2020)},
pages = {11:1--11:26},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-154-2},
ISSN = {1868-8969},
year = {2020},
volume = {166},
editor = {Hirschfeld, Robert and Pape, Tobias},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2020.11},
URN = {urn:nbn:de:0030-drops-131687},
doi = {10.4230/LIPIcs.ECOOP.2020.11},
annote = {Keywords: C11, Verification, Hoare logic, Owicki-Gries, Isabelle}
}