DeepAI AI Chat
Log In Sign Up

Integrating Owicki-Gries for C11-Style Memory Models into Isabelle/HOL

by   Sadegh Dalvandi, et al.

Weak memory presents a new challenge for program verification and has resulted in the development of a variety of specialised logics. For C11-style memory models, our previous work has shown that it is possible to extend Hoare logic and Owicki-Gries reasoning to verify correctness of weak memory programs. The technique introduces a set of high-level assertions over C11 states together with a set of basic Hoare-style axioms over atomic weak memory statements (e.g., reads/writes), but retains all other standard proof obligations for compound statements. This paper takes this line of work further by showing Nipkow and Nieto's encoding of Owicki-Gries in the Isabelle theorem prover can be extended to handle C11-style weak memory models in a straightforward manner. We exemplify our techniques over several litmus tests from the literature and a non-trivial example: Peterson's algorithm adapted for C11. For the examples we consider, the proof outlines can be automatically discharged using the existing Isabelle tactics developed by Nipkow and Nieto. The benefit here is that programs can be written using a familiar pseudocode syntax with assertions embedded directly into the program.


page 1

page 2

page 3

page 4


View-Based Axiomatic Reasoning for PSO (Extended Version)

Weak memory models describe the semantics of concurrent programs on mode...

Reasoning about Promises in Weak Memory Models with Event Structures (Extended Version)

Modern processors such as ARMv8 and RISC-V allow executions in which ind...

Differential Hoare Logics and Refinement Calculi for Hybrid Systems with Isabelle/HOL

We present simple new Hoare logics and refinement calculi for hybrid sys...

Fence Synthesis under the C11 Memory Model

The C/C++11 (C11) standard offers a spectrum of ordering guarantees on m...

A Generating-Extension-Generator for Machine Code

The problem of "debloating" programs for security and performance purpos...

Taming Weak Memory Models

Speculative techniques in microarchitectures relax various dependencies ...

Up-to Techniques for Branching Bisimilarity

Ever since the introduction of behavioral equivalences on processes one ...