Abstract

Iris is a framework for higher-order concurrent separation logic, which has been implemented in the Coq proof assistant and deployed very effectively in a wide variety of verification projects. Iris was designed with the express goal of simplifying and consolidating the foundations of modern separation logics, but it has evolved over time, and the design and semantic foundations of Iris itself have yet to be fully written down and explained together properly in one place. Here, we attempt to fill this gap, presenting a reasonably complete picture of the latest version of Iris (version 3.1), from first principles and in one coherent narrative.

Highlights

  • Iris is a framework for higher-order concurrent separation logic, implemented in the Coq proof assistant, which we and a growing network of collaborators have been developing actively since 2014

  • In Iris 2.0, to support higher-order ghost state, we proposed a generalization of partial commutative monoids (PCMs) to what we call cameras

  • In Iris 3.0, we aimed to simplify the remaining sources of complexity in Iris by taking the Iris story to its logical conclusion: applying the reductionist Iris methodology to Iris itself! at the core of Iris 3.0 is a small, resourceful base logic, which distills the essence of Iris to what we argue is a bare minimum: it is a higher-order logic extended with the basic connectives of BI, a predicate for resource ownership, and a handful of simple modalities, but it does not bake in any propositions about programs as primitive

Read more

Summary

Introduction

Iris is a framework for higher-order concurrent separation logic, implemented in the Coq proof assistant, which we and a growing network of collaborators have been developing actively since 2014. By foundational machine-checked proofs, we mean proofs that are performed directly in a proof assistant against the operational semantics of the programming languages under consideration and assuming only the low-level axioms of mathematical logic (as encoded in the type theory of Coq).. Iris is general in the sense that it is not tied to a particular language semantics and can be used to derive and deploy a range of different formal systems, including but not limited to: logics for atomicity refinement of fine-grained concurrent data structures (Jung et al, 2015), Kripke logical-relations models for relational reasoning in ML-like languages (Krebbers et al, 2017b; Krogh-Jespersen et al, 2017; Timany et al, 2018; Frumin et al, 2018), program logics for relaxed memory models (Kaiser et al, 2017), a program logic for object capability patterns in a JavaScript-like language (Swasey et al, 2017), and a safety proof for a realistic subset of the Rust programming language (Jung et al, 2018). Before getting to those foundations and what is so interesting about them, we begin with a bit of historical background on concurrent separation logic

A brief history of concurrent separation logic
Overview of the paper
A tour of Iris
Ghost state in Iris
Invariants
Persistent propositions
Proof of the example
Advanced ghost state constructions
RA constructions
Derived forms and the global ghost state
Naive higher-order ghost state paradox
A model of Iris
Informal and conceptual overview of the model construction
Ordered families of equivalences
Higher-order agreement
Cameras
Uniform predicates as a model of separation logic
The Iris model
Instantiating the Iris model
The Iris base logic
Separation logic
Resource ownership
The persistence modality and persistent resources
The basic update modality
The later modality
Guarded fixed-points
Timeless propositions
Consistency
Weakest preconditions
Operational semantics
Proof rules
First stage
Second stage
Authoritative camera
Third stage
Eliminating basic view shifts
Adequacy
Recovering the Iris program logic
World satisfaction
Invariant namespaces
Cancellable invariants
View shifts and the fancy update modality
Past development of Iris
Naive impredicative invariants paradox
Formalization in Coq
Related work
User-defined ghost state and invariants
Higher-order ghost state
Generalizations of PCMs
Minimal base logic
10 Ongoing and future development of Iris

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.