ReLoC Reloaded: A Mechanized Relational Logic for Fine-Grained Concurrency and Logical Atomicity

06/24/2020
by   Dan Frumin, et al.
0

We present a new version of ReLoC: a relational logic for proving refinements of programs in a language with higher-order state, fine-grained concurrency, polymorphism and recursive types. The core of ReLoC is the refinement judgment e ≾ e' : τ, which expresses that a program e refines a program e' at type τ. In contrast to earlier work on refinements for languages with higher-order state and concurrency, ReLoC provides type-directed structural rules and symbolic execution rules for manipulating this judgment, whereas previously, such proofs were carried out by unfolding the judgment into its definition in the model. These more abstract proof rules make it simpler to carry out refinement proofs, and enable us to generalize the notion of logically atomic specifications to the relational case, which we call logically atomic relational specifications. We build ReLoC on top of the Iris framework for separation logic in Coq, allowing us to leverage features of Iris to prove soundness of ReLoC, and to carry out refinement proofs in ReLoC. We implement tactics for interactive refinements proofs, allowing us to mechanize several case studies, and thereby demonstrate the practicality of ReLoC. ReLoC Reloaded extends our ReLoC logic (LICS'18) with various technical improvements, a new Coq mechanization, and support for Iris's prophecy variables. The latter allows us to carry out refinement proofs that involve reasoning about the program's future. We also expand ReLoC's notion of logically atomic relational specifications with a new flavor based on the HOCAP pattern by Svendsen et al.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/24/2023

Asynchronous Probabilistic Couplings in Higher-Order Separation Logic

Probabilistic couplings are the foundation for many probabilistic relati...
research
10/02/2019

Compositional Non-Interference for Fine-Grained Concurrent Programs

We present SeLoC: a relational separation logic for verifying non-interf...
research
04/27/2023

Proving Logical Atomicity using Lock Invariants

Logical atomicity has been widely accepted as a specification format for...
research
03/03/2021

Functional Extensionality for Refinement Types

Refinement type checkers are a powerful way to reason about functional p...
research
07/14/2022

Bringing Iris into the Verified Software Toolchain

The Verified Software Toolchain (VST) is a system for proving correctnes...
research
05/10/2021

A Framework for Reasoning About LF Specifications

This thesis develops a framework for formalizing reasoning about specifi...
research
10/26/2021

Flexible Refinement Proofs in Separation Logic

Refinement transforms an abstract system model into a concrete, executab...

Please sign up or login with your details

Forgot password? Click here to reset