DeepAI AI Chat
Log In Sign Up

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

by   Justus Fasse, et al.

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.


page 1

page 2

page 3

page 4


Bringing Iris into the Verified Software Toolchain

The Verified Software Toolchain (VST) is a system for proving correctnes...

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

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

A Modular Termination Method for Second-Order Computation

We present a new modular proof method of termination for second-order co...

A beginner guide to Iris, Coq and separation logic

Creating safe concurrent algorithms is challenging and error-prone. For ...

Formalizing Higher-Order Termination in Coq

We describe a formalization of higher-order rewriting theory and formall...

Size-Change Termination as a Contract

Program termination is an undecidable, yet important, property relevant ...

Specifying Transaction Control to Serialize Concurrent Program Executions

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