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

04/06/2020
by   Sadegh Dalvandi, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/04/2023

Lifting the Reasoning Level in Generic Weak Memory Verification (Extended Version)

Weak memory models specify the semantics of concurrent programs on multi...
research
01/19/2023

View-Based Axiomatic Reasoning for PSO (Extended Version)

Weak memory models describe the semantics of concurrent programs on mode...
research
09/14/2023

A Deductive Verification Infrastructure for Probabilistic Programs

This paper presents a quantitative program verification infrastructure f...
research
11/29/2022

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...
research
05/13/2020

A Generating-Extension-Generator for Machine Code

The problem of "debloating" programs for security and performance purpos...
research
06/17/2016

Taming Weak Memory Models

Speculative techniques in microarchitectures relax various dependencies ...
research
11/16/2018

Precondition Inference via Partitioning of Initial States

Precondition inference is a non-trivial task with several applications i...

Please sign up or login with your details

Forgot password? Click here to reset