Interactive Proofs in Higher-Order Concurrent Separation Logic

Robbert Krebbers, Amin Timany and Lars Birkedal

Introduction

This webpage contains the Coq sources corresponding to the paper:

Interactive Proofs in Higher-Order Concurrent Separation Logic,
by Robbert Krebbers, Amin Timany and Lars Birkedal,
accepted for publication at POPL'17.

In the paper, we introduce IPM: Interactive Proof Mode for embedded logics in Coq, a novel method for extending the Coq proof assistant with (spatial and non-spatial) named proof contexts for the object logic. We show that thanks to these contexts we are able to implement high-level tactics for introduction and elimination of all connectives of the object logic, and thereby make reasoning in the embedded logic as seamless as reasoning in the meta logic of the proof assistant. We apply our method to Iris: a state of the art higher-order impredicative concurrent separation logic.

We show that IPM is very general, and - in contrast to earlier work - is not just limited to program verification. We demonstrate its generality by formalizing correctness proofs of fine-grained concurrent algorithms, derived constructs of the Iris logic, and a unary and binary logical relation for a language with concurrency, higher-order store, polymorphism, and recursive types. This is the first formalization of a binary logical relation for such an expressive language. We also show how to use the logical relation to prove contextual refinement of fine-grained concurrent algorithms.

Download

The Coq sources consist of two parts:

For convenience, we have packaged these two parts, together with the examples in paper, as a tarball.

Prerequisites

The Coq formalization is known to compile with:

Building Instructions

The development can be build as follows:

Getting around