DeepAI AI Chat
Log In Sign Up

A Concurrent Program Logic with a Future and History

by   Roland Meyer, et al.

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.


page 1

page 2

page 3

page 4


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

We introduce TaDA Live, a separation logic for reasoning compositionally...

A Separation Logic for Concurrent Randomized Programs

We present a concurrent separation logic with support for probabilistic ...

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...

Visibility Reasoning for Concurrent Snapshot Algorithms

Visibility relations have been proposed by Henzinger et al. as an abstra...

Compositional Non-Interference for Fine-Grained Concurrent Programs

We present SeLoC: a relational separation logic for verifying non-interf...

Automated Verification of CountDownLatch

The CountDownLatch (CDL) is a versatile concurrency mechanism that was f...