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} }
Feedback for Dagstuhl Publishing