Modular termination verification with a higher-order concurrent separation logic (Intermediate report)

12/28/2022
by   Justus Fasse, et al.
0

We report on intermediate results of our research on reasoning about liveness properties in addition to deep correctness properties for an imperative, concurrent programming language with a higher-order store. At present, we focus on one particular liveness property, namely termination. By guaranteeing termination we can strengthen statements of partial correctness to total correctness. This is achieved by the classic approach of turning termination into a safety property. In particular we extend the programming language under consideration with call permissions, which have been shown to enable modular reasoning about termination. Atomic blocks are added to increase the expressiveness of our call-permission-based approach. Our work builds on top of Iris – a foundational, machine-checked, higher-order concurrent separation logic framework – without modifying it. With these additions we are able to modularly reason about the termination of concurrent, but non-blocking algorithms. Our additions to the programming language under consideration preserve Iris' ability to reason about helping and prophecies. As an example, we apply the current system to an existing case study for a lock-free concurrent stack with helping that has been proven in Iris. Finally, we sketch the next steps to scale our approach to blocking concurrency.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/14/2022

Bringing Iris into the Verified Software Toolchain

The Verified Software Toolchain (VST) is a system for proving correctnes...
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
12/10/2021

Formalizing Higher-Order Termination in Coq

We describe a formalization of higher-order rewriting theory and formall...
research
05/25/2021

A beginner guide to Iris, Coq and separation logic

Creating safe concurrent algorithms is challenging and error-prone. For ...
research
10/02/2019

Compositional Non-Interference for Fine-Grained Concurrent Programs

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

Size-Change Termination as a Contract

Program termination is an undecidable, yet important, property relevant ...
research
06/06/2017

Specifying Transaction Control to Serialize Concurrent Program Executions

We define a programming language independent transaction controller and ...

Please sign up or login with your details

Forgot password? Click here to reset