Local Reasoning for Global Graph Properties

11/19/2019
by   Siddharth Krishna, et al.
0

Separation logics are widely used for verifying programs that manipulate complex heap-based data structures. These logics build on so-called separation algebras, which allow expressing properties of heap regions such that modifications to a region do not invalidate properties stated about the remainder of the heap. This concept is key to enabling modular reasoning and also extends to concurrency. While heaps are naturally related to mathematical graphs, many ubiquitous graph properties are non-local in character, such as reachability between nodes, path lengths, acyclicity and other structural invariants, as well as data invariants which combine with these notions. Reasoning modularly about such graph properties remains notoriously difficult, since a local modification can have side-effects on a global property that cannot be easily confined to a small region. In this paper, we address the question: What separation algebra can be used to avoid proof arguments reverting back to tedious global reasoning in such cases? To this end, we consider a general class of global graph properties expressed as fixpoints of algebraic equations over graphs. We present mathematical foundations for reasoning about this class of properties, imposing minimal requirements on the underlying theory that allow us to define a suitable separation algebra. Building on this theory we develop a general proof technique for modular reasoning about global graph properties over program heaps, in a way which can be integrated with existing separation logics. To demonstrate our approach, we present local proofs for two challenging examples: a priority inheritance protocol and the non-blocking concurrent Harris list.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/16/2019

Modular Verification of Heap Reachability Properties in Separation Logic

The correctness of many algorithms and data structures depends on reacha...
research
09/27/2022

Embedding Hindsight Reasoning in Separation Logic

Proving linearizability of concurrent data structures remains a key chal...
research
11/09/2017

Go with the Flow: Compositional Abstractions for Concurrent Data Structures (Extended Version)

Concurrent separation logics have helped to significantly simplify corre...
research
10/30/2017

Modular Labelled Sequent Calculi for Abstract Separation Logics

Abstract separation logics are a family of extensions of Hoare logic for...
research
07/28/2023

Context-Aware Separation Logic

Separation logic is often praised for its ability to closely mimic the l...
research
09/22/2017

Subjective Simulation as a Notion of Morphism for Composing Concurrent Resources

Recent approaches to verifying programs in separation logics for concurr...
research
12/12/2021

A simple proof of three properties on Simpson's 4-slot Algorithm

In this paper we present an invariance proof of three properties on Simp...

Please sign up or login with your details

Forgot password? Click here to reset