A Concurrent Program Logic with a Future and History

07/05/2022
by   Roland Meyer, et al.
0

Verifying fine-grained optimistic concurrent programs remains an open problem. Modern program logics provide abstraction mechanisms and compositional reasoning principles to deal with the inherent complexity. However, their use is mostly confined to pencil-and-paper or mechanized proofs. We devise a new separation logic geared towards the lacking automation. While local reasoning is known to be crucial for automation, we are the first to show how to retain this locality for (i) reasoning about inductive properties without the need for ghost code, and (ii) reasoning about computation histories in hindsight. We implemented our new logic in a tool and used it to automatically verify challenging concurrent search structures that require inductive properties and hindsight reasoning, such as the Harris set.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/17/2019

TaDA Live: Compositional Reasoning for Termination of Fine-grained Concurrent Programs

We introduce TaDA Live, a separation logic for reasoning compositionally...
research
07/28/2023

Context-Aware Separation Logic

Separation logic is often praised for its ability to closely mimic the l...
research
10/14/2020

Concise Outlines for a Complex Logic: A Proof Outline Checker for TaDA (Full Paper)

Modern separation logics allow one to prove rich properties of intricate...
research
10/31/2019

Pomsets with Boxes: Protection, Separation, and Locality in Concurrent Kleene Algebra

Concurrent Kleene Algebra is an elegant tool for equational reasoning ab...
research
10/02/2019

Compositional Non-Interference for Fine-Grained Concurrent Programs

We present SeLoC: a relational separation logic for verifying non-interf...
research
10/06/2021

Visibility Reasoning for Concurrent Snapshot Algorithms

Visibility relations have been proposed by Henzinger et al. as an abstra...
research
01/30/2020

VERONICA: Expressive and Precise Concurrent Information Flow Security (Extended Version with Technical Appendices)

Methods for proving that concurrent software does not leak its secrets h...

Please sign up or login with your details

Forgot password? Click here to reset