Iris logo

A Higher-Order Concurrent Separation Logic Framework,
implemented and verified in the Coq proof assistant

Coq Formalization Technical Reference (v4.2) Mailing List Chat

Learning Iris Events Publications PhD dissertations Other material

Iris is a framework that can be used for reasoning about safety of concurrent programs, as the logic in logical relations, to reason about type-systems, data-abstraction etc. In case of questions, please contact us on the Iris Club list or in our chat room.

Learning Iris

Some useful resources designed to learn Iris and its Coq implementation:

A selection of papers that are suited to get started with Iris:

Events

Publications

Below, we give an overview of the research that uses Iris one way or another.

Verified Lock-Free Session Channels with Linking
Thomas Somers, Robbert Krebbers
In OOPSLA 2024: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Multris: Functional Verification of Multiparty Message Passing in Separation Logic
Jonas Kastberg Hinrichsen, Jules Jacobs, Robbert Krebbers
In OOPSLA 2024: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Tachis: Higher-Order Separation Logic with Credits for Expected Costs
Philipp G. Haselwarter, Kwing Hei Li, Markus de Medeiros, Simon Oddershede Gregersen, Alejandro Aguirre, Joseph Tassarotti, Lars Birkedal
In OOPSLA 2024: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Snapshottable Stores
Clément Allain, Basile Clément, Alexandre Moine, Gabriel Scherer
In ICFP 2024: ACM SIGPLAN International Conference on Functional Programming
Recipient of ICFP 2024 Distinguished Paper Award
Almost-Sure Termination by Guarded Refinement
Simon Oddershede Gregersen, Alejandro Aguirre, Philipp G. Haselwarter, Joseph Tassarotti, Lars Birkedal
In ICFP 2024: ACM SIGPLAN International Conference on Functional Programming
Error Credits: Resourceful Reasoning about Error Bounds for Higher-Order Probabilistic Programs
Alejandro Aguirre, Philipp G. Haselwarter, Markus de Medeiros, Kwing Hei Li, Simon Oddershede Gregersen, Joseph Tassarotti, Lars Birkedal
In ICFP 2024: ACM SIGPLAN International Conference on Functional Programming
Recipient of ICFP 2024 Distinguished Paper Award
A Logical Approach to Type Soundness
Amin Timany, Robbert Krebbers, Derek Dreyer, Lars Birkedal
To appear in Journal of the ACM (JACM), 2024
The Functional Essence of Imperative Binary Search Trees
Anton Lorenzen, Daan Leijen, Wouter Swierstra, Sam Lindley
In PLDI 2024: ACM SIGPLAN International Conference on Programming Language Design and Implementation
Quiver: Guided Abductive Inference of Separation Logic Specifications in Coq
Simon Spies, Lennard Gäher, Michael Sammler, Derek Dreyer
In PLDI 2024: ACM SIGPLAN International Conference on Programming Language Design and Implementation
Recipient of PLDI 2024 Distinguished Artifact Award
RefinedRust: A Type System for High-Assurance Verification of Rust Programs
Lennard Gäher, Michael Sammler, Ralf Jung, Robbert Krebbers, Derek Dreyer
In PLDI 2024: ACM SIGPLAN International Conference on Programming Language Design and Implementation
A Proof Recipe for Linearizability in Relaxed Memory Separation Logic
Sunho Park, Jaewoo Kim, Ike Mulder, Jaehwang Jung, Janggun Lee, Robbert Krebbers, Jeehoon Kang
In PLDI 2024: ACM SIGPLAN International Conference on Programming Language Design and Implementation
Unification for Subformula Linking under Quantifiers
Ike Mulder, Robbert Krebbers
In CPP 2024: ACM SIGPLAN International Conference on Certified Programs and Proofs
Thunks and Debits in Separation Logic with Time Credits
François Pottier, Armaël Guéneau, Jacques-Henri Jourdan, Glen Mével
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
An Iris Instance for Verifying CompCert C Programs
William Mansky, Ke Du
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
Deadlock-Free Separation Logic: Linearity Yields Progress for Dependent Higher-Order Message Passing
Jules Jacobs, Jonas Kastberg Hinrichsen, Robbert Krebbers
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
DisLog: A Separation Logic for Disentanglement
Alexandre Moine, Sam Westrick, Stephanie Balzer
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
The Logical Essence of Well-Bracketed Control Flow
Amin Timany, Armaël Gueneau, Lars Birkedal
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
The Essence of Generalized Algebraic Data Types
Filip Sieczkowski, Sergei Stepanenko, Jonathan Sterling, Lars Birkedal
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
Modular Denotational Semantics for Effects with Guarded Interaction Trees
Dan Frumin, Amin Timany, Lars Birkedal
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
Recipient of POPL 2024 Distinguished Paper Award
Asynchronous Probabilistic Couplings in Higher-Order Separation Logic
Simon Oddershede Gregersen, Alejandro Aguirre, Philipp G. Haselwarter, Joseph Tassarotti, Lars Birkedal
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional Refinement
Amin Timany, Simon Oddershede Gregersen, Léo Stefanesco, Jonas Kastberg Hinrichsen, Léon Gondelman, Abel Nieto, Lars Birkedal
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
An axiomatic basis for computer programming on the relaxed Arm-A architecture: The AxSL logic
Angus Hammond, Zongyuan Liu, Thibaut Pérami, Peter Sewell, Lars Birkedal, Jean Pichon-Pharabod
In POPL 2024: ACM SIGPLAN Symposium on Principles of Programming Languages
Cerise: Program Verification on a Capability Machine in the Presence of Untrusted Code
Aïna Linn Georges, Armaël Guéneau, Thomas Van Strydonck, Amin Timany, Alix Trieu, Dominique Devriese, Lars Birkedal
Journal of the ACM (JACM), Volume 71, Issue 1, Article No. 3, February 2024
Grove: a Separation-Logic Library for Verifying Distributed Systems
Upamanyu Sharma, Ralf Jung, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich
In SOSP 2023: ACM Symposium on Operating Systems Principles
Leaf: Modularity for Temporary Sharing in Separation Logic
Travis Hance, Jon Howell, Oded Padon, Bryan Parno
In OOPSLA 2023: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Melocoton: A Program Logic for Verified Interoperability Between OCaml and C
Armaël Guéneau, Johannes Hostert, Simon Spies, Michael Sammler, Lars Birkedal, Derek Dreyer
In OOPSLA 2023: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Modular Verification of Safe Memory Reclamation in Concurrent Separation Logic
Jaehwang Jung, Janggun Lee, Jaemin Choi, Jaewoo Kim, Sunho Park, Jeehoon Kang
In OOPSLA 2023: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Spirea: A Mechanized Concurrent Separation Logic for Weak Persistent Memory
Simon Friis Vindum, Lars Birkedal
In OOPSLA 2023: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Recipient of OOPSLA 2023 Distinguished Paper Award
Proof Automation for Linearizability in Separation Logic
Ike Mulder, Robbert Krebbers
In OOPSLA 2023: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Recipient of OOPSLA 2023 Distinguished Artifact Award
Verifying an Effect-Handler-Based Define-By-Run Reverse-Mode AD Library
Paulo Emílio de Vilhena, François Pottier
In LMCS 2023: Logical Methods in Computer Science
Verifying Reliable Network Components in a Distributed Separation Logic with Dependent Separation Protocols
Léon Gondelman, Jonas Kastberg Hinrichsen, Mário Pereira, Amin Timany, Lars Birkedal
In ICFP 2023: ACM SIGPLAN International Conference on Functional Programming
Dependent Session Protocols in Separation Logic from First Principles
Jules Jacobs, Jonas Kastberg Hinrichsen, Robbert Krebbers
In ICFP 2023: ACM SIGPLAN International Conference on Functional Programming
Modular Verification of State-Based CRDTs in Separation Logic
Abel Nieto, Arnaud Daby-Seesaram, Léon Gondelman, Amin Timany, Lars Birkedal
In ECOOP 2023: European Conference on Object-Oriented Programming
Verifying vMVCC, a high-performance transaction library using multi-version concurrency control
Yun-Sheng Chang, Ralf Jung, Upamanyu Sharma, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich
In OSDI 2023: USENIX Symposium on Operating Systems Design and Implementation
Fair Operational Semantics
Dongjae Lee, Minki Cho, Jinwoo Kim, Soonwon Moon, Youngju Song, Chung-Kil Hur
In PLDI 2023: ACM SIGPLAN International Conference on Programming Language Design and Implementation
CQS: A Formally-Verified Framework for Fair and Abortable Synchronization
Nikita Koval, Dmitry Khalanskiy, Dan Alistarh
In PLDI 2023: ACM SIGPLAN International Conference on Programming Language Design and Implementation
Beyond Backtracking: Connections in Fine-Grained Concurrent Separation Logic
Ike Mulder, Łukasz Czajka, Robbert Krebbers
In PLDI 2023: ACM SIGPLAN International Conference on Programming Language Design and Implementation
VMSL: A Separation Logic for Mechanised Robust Safety of Virtual Machines Communicating over FF-A
Zongyuan Liu, Sergei Stepanenko, Jean Pichon-Pharabod, Amin Timany, Aslan Askarov, Lars Birkedal
In PLDI 2023: ACM SIGPLAN International Conference on Programming Language Design and Implementation
Iris-Wasm: Robust and Modular Verification of WebAssembly Programs
Xiaojia Rao, Aina Linn Georges, Maxime Legoupil, Conrad Watt, Jean Pichon-Pharabod, Philippa Gardner, Lars Birkedal
In PLDI 2023: ACM SIGPLAN International Conference on Programming Language Design and Implementation
A Type System for Effect Handlers and Dynamic Labels
Paulo Emílio de Vilhena, François Pottier
In ESOP 2023: European Symposium on Programming
Higher-Order Leak and Deadlock Free Locks
Jules Jacobs, Stephanie Balzer
In POPL 2023: ACM SIGPLAN Symposium on Principles of Programming Languages
Recipient of POPL 2023 Distinguished Paper Award
A High-Level Separation Logic for Heap Space under Garbage Collection
Alexandre Moine, Arthur Charguéraud, François Pottier
In POPL 2023: ACM SIGPLAN Symposium on Principles of Programming Languages
DimSum: A Decentralized Approach to Multi-language Semantics and Verification
Michael Sammler, Simon Spies, Youngju Song, Emanuele D'Osualdo, Robbert Krebbers, Deepak Garg, Derek Dreyer
In POPL 2023: ACM SIGPLAN Symposium on Principles of Programming Languages
Recipient of POPL 2023 Distinguished Paper Award
Purity of an ST monad: full abstraction by semantically typed back-translation
Koen Jacobs, Dominique Devriese, Amin Timany
In OOPSLA 2022: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
BFF: Foundational and Automated Verification of Bitfield-Manipulating Programs
Fengmin Zhu, Michael Sammler, Rodolphe Lepigre, Derek Dreyer, Deepak Garg
In OOPSLA 2022: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Modular Verification of Op-Based CRDTs in Separation Logic
Abel Nieto, Léon Gondelman, Alban Reynaud, Amin Timany, Lars Birkedal
In OOPSLA 2022: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Le Temps des Cerises: Efficient Temporal Stack Safety on Capability Machines using Directed Capabilities
Aïna Linn Georges, Alix Trieu, Lars Birkedal
In OOPSLA 2022: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Recipient of OOPSLA 2022 Distinguished Paper Award
Verified Symbolic Execution with Kripke Specification Monads (and No Meta-programming)
Steven Keuchel, Sander Huyghebaert, Georgy Lukyanov, Dominique Devriese
In ICFP 2022: ACM SIGPLAN International Conference on Functional Programming
Multiparty GV: Functional Multiparty Session Types with Certified Deadlock Freedom
Jules Jacobs, Stephanie Balzer, Robbert Krebbers
In ICFP 2022: ACM SIGPLAN International Conference on Functional Programming
Later Credits: Resourceful Reasoning for the Later Modality ("Iris 4.0")
Simon Spies, Lennard Gäher, Joseph Tassarotti, Ralf Jung, Robbert Krebbers, Lars Birkedal, Derek Dreyer
In ICFP 2022: ACM SIGPLAN International Conference on Functional Programming
Compass: Strong and Compositional Library Specifications in Relaxed Memory Separation Logic
Hoang-Hai Dang, Jaehwang Jung, Jaemin Choi, Duc-Than Nguyen, William Mansky, Jeehoon Kang, Derek Dreyer
In PLDI 2022: ACM SIGPLAN Conference on Programming Language Design and Implementation
RustHornBelt: A Semantic Foundation for Functional Verification of Rust Programs with Unsafe Code
Yusuke Matsushita, Xavier Denis, Jacques-Henri Jourdan, Derek Dreyer
In PLDI 2022: ACM SIGPLAN Conference on Programming Language Design and Implementation
Recipient of PLDI 2022 Distinguished Paper Award
Diaframe: Automated Verification of Fine-Grained Concurrent Programs in Iris
Ike Mulder, Robbert Krebbers, Herman Geuvers
In PLDI 2022: ACM SIGPLAN Conference on Programming Language Design and Implementation
Islaris: Verification of Machine Code Against Authoritative ISA Semantics
Michael Sammler, Angus Hammond, Rodolphe Lepigre, Brian Campbell, Jean Pichon-Pharabod, Derek Dreyer, Deepak Garg, Peter Sewell
In PLDI 2022: ACM SIGPLAN Conference on Programming Language Design and Implementation
A Self-Dual Distillation of Session Types
Jules Jacobs
In ECOOP 2022: European Conference on Object-Oriented Programming
Actris 2.0: Asynchronous Session-Type Based Reasoning in Separation Logic
Jonas Kastberg Hinrichsen, Jesper Bengtson, Robbert Krebbers
In LMCS 2022: Logical Methods in Computer Science
Applying Formal Verification to Microkernel IPC at Meta
Quentin Carbonneaux, Noam Zilberstein, Christoph Klee, Peter W. O'Hearn, Francesco Zappa Nardelli
In CPP 2022: ACM SIGPLAN International Conference on Certified Programs and Proofs
Mechanized Verification of a Fine-Grained Concurrent Queue from Meta's Folly Library
Simon Friis Vindum, Dan Frumin, Lars Birkedal
In CPP 2022: ACM SIGPLAN International Conference on Certified Programs and Proofs
Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations
Lennard Gäher, Michael Sammler, Simon Spies, Ralf Jung, Hoang-Hai Dang, Robbert Krebbers, Jeehoon Kang, Derek Dreyer
In POPL 2022: ACM SIGPLAN Symposium on Principles of Programming Languages
Recipient of POPL 2022 Distinguished Paper Award
Connectivity Graphs: A Method for Proving Deadlock Freedom Based on Separation Logic
Jules Jacobs, Stephanie Balzer, Robbert Krebbers
In POPL 2022: ACM SIGPLAN Symposium on Principles of Programming Languages
VIP: Verifying Real-World C Idioms with Integer-Pointer Casts
Rodolphe Lepigre, Michael Sammler, Kayvan Memarian, Robbert Krebbers, Derek Dreyer, Peter Sewell
In POPL 2022: ACM SIGPLAN Symposium on Principles of Programming Languages
A Separation Logic for Heap Space under Garbage Collection
Jean-Marie Madiot, François Pottier
In POPL 2022: ACM SIGPLAN Symposium on Principles of Programming Languages
Verifying Concurrent Multicopy Search Structures
Nisarg Patel, Siddharth Krishna, Dennis Shasha, Thomas Wies
In OOPSLA 2021: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Certifying the synthesis of heap-manipulating programs
Yasunari Watanabe, Kiran Gopinathan, George Pîrlea, Nadia Polikarpova, Ilya Sergey
In ICFP 2021: ACM SIGPLAN International Conference on Functional Programming
Formal Verification of a Concurrent Bounded Queue in a Weak Memory Model
Glen Mével, Jacques-Henri Jourdan
In ICFP 2021: ACM SIGPLAN International Conference on Functional Programming
GhostCell: Separating Permissions from Data in Rust
Joshua Yanovski, Hoang-Hai Dang, Ralf Jung, Derek Dreyer
In ICFP 2021: ACM SIGPLAN International Conference on Functional Programming
Theorems for Free from Separation Logic Specifications
Lars Birkedal, Thomas Dinsdale-Young, Armaël Guéneau, Guilhem Jaber, Kasper Svendsen, Nikos Tzevelekos
In ICFP 2021: ACM SIGPLAN International Conference on Functional Programming
Recipient of ICFP 2021 Distinguished Paper Award
ReLoC Reloaded: A Mechanized Relational Logic for Fine-Grained Concurrency and Logical Atomicity
Dan Frumin, Robbert Krebbers, Lars Birkedal
In LMCS 2021: Logical Methods in Computer Science
GoJournal: A Verified, Concurrent, Crash-Safe Journaling System
Tej Chajed, Joseph Tassarotti, Mark Theng, Ralf Jung, M. Frans Kaashoek, Nickolai Zeldovich
In OSDI 2021: USENIX Symposium on Operating System Design and Implementation
RefinedC: Automating the Foundational Verification of C Code with Refined Ownership Types
Michael Sammler, Rodolphe Lepigre, Robbert Krebbers, Kayvan Memarian, Derek Dreyer, Deepak Garg
In PLDI 2021: ACM SIGPLAN Conference on Programming Language Design and Implementation
Recipient of PLDI 2021 Distinguished Paper Award
Recipient of PLDI 2021 Distinguished Artifact Award
Transfinite Iris: Resolving an Existential Dilemma of Step-Indexed Separation Logic
Simon Spies, Lennard Gäher, Daniel Gratzer, Joseph Tassarotti, Robbert Krebbers, Derek Dreyer, Lars Birkedal
In PLDI 2021: ACM SIGPLAN Conference on Programming Language Design and Implementation
Compositional Non-Interference for Fine-Grained Concurrent Programs
Dan Frumin, Robbert Krebbers, Lars Birkedal
In S&P 2021: IEEE Symposium on Security and Privacy
Safe Systems Programming in Rust
Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, Derek Dreyer
In Communications of the ACM (CACM), April 2021
Efficient and Provable Local Capability Revocation using Uninitialized Capabilities
Aïna Linn Georges, Armaël Guéneau, Thomas Van Strydonck, Amin Timany, Alix Trieu, Sander Huyghebaert, Dominique Devriese, Lars Birkedal
In POPL 2021: ACM SIGPLAN Symposium on Principles of Programming Languages
Mechanized Logical Relations for Termination-Insensitive Noninterference
Simon Oddershede Gregersen, Johan Bay, Amin Timany, Lars Birkedal
In POPL 2021: ACM SIGPLAN Symposium on Principles of Programming Languages
Distributed Causal Memory: Modular Specification and Verification in Higher-Order Distributed Separation Logic
Léon Gondelman, Simon Oddershede Gregersen, Abel Nieto, Amin Timany, Lars Birkedal
In POPL 2021: ACM SIGPLAN Symposium on Principles of Programming Languages
Fully Abstract from Static to Gradual
Koen Jacobs, Amin Timany, Dominique Devriese
In POPL 2021: ACM SIGPLAN Symposium on Principles of Programming Languages
A Separation Logic for Effect Handlers
Paulo Emílio de Vilhena, François Pottier
In POPL 2021: ACM SIGPLAN Symposium on Principles of Programming Languages
Contextual Refinement of the Michael-Scott Queue (Proof Pearl)
Simon Friis Vindum, Lars Birkedal
In CPP 2021: ACM SIGPLAN International Conference on Certified Programs and Proofs
Reasoning about Monotonicity in Separation Logic
Amin Timany, Lars Birkedal
In CPP 2021: ACM SIGPLAN International Conference on Certified Programs and Proofs
Machine-Checked Semantic Session Typing
Jonas Kastberg Hinrichsen, Daniël Louwrink, Robbert Krebbers, Jesper Bengtson
In CPP 2021: ACM SIGPLAN International Conference on Certified Programs and Proofs
Recipient of CPP 2021 Distinguished Paper Award
Cosmo: A Concurrent Separation Logic for Multicore OCaml
Glen Mével, Jacques-Henri Jourdan, François Pottier
In ICFP 2020: ACM SIGPLAN International Conference on Functional Programming
Scala Step-by-Step: Soundness for DOT with Step-Indexed Logical Relations in Iris
Paolo G. Giarrusso, Léo Stefanesco, Amin Timany, Lars Birkedal, Robbert Krebbers
In ICFP 2020: ACM SIGPLAN International Conference on Functional Programming
Verifying Concurrent Search Structure Templates
Siddharth Krishna, Nisarg Patel, Dennis Shasha, Thomas Wies
In PLDI 2020: ACM SIGPLAN Conference on Programming Language Design and Implementation
Aneris: A Mechanised Logic for Modular Reasoning about Distributed Systems
Morten Krogh-Jespersen, Amin Timany, Marit Edna Ohlenbusch, Simon Oddershede Gregersen, Lars Birkedal
In ESOP 2020: European Symposium on Programming
RustBelt Meets Relaxed Memory
Hoang-Hai Dang, Jacques-Henri Jourdan, Jan-Oliver Kaiser, Derek Dreyer
In POPL 2020: ACM SIGPLAN Symposium on Principles of Programming Languages
Spy Game: Verifying a Local Generic Solver in Iris
Paulo Emílio de Vilhena, François Pottier, Jacques-Henri Jourdan
In POPL 2020: ACM SIGPLAN Symposium on Principles of Programming Languages
Actris: Session-Type Based Reasoning in Separation Logic
Jonas Kastberg Hinrichsen, Jesper Bengtson, Robbert Krebbers
In POPL 2020: ACM SIGPLAN Symposium on Principles of Programming Languages
The Future is Ours: Prophecy Variables in Separation Logic
Ralf Jung, Rodolphe Lepigre, Gaurav Parthasarathy, Marianna Rapoport, Amin Timany, Derek Dreyer, Bart Jacobs
In POPL 2020: ACM SIGPLAN Symposium on Principles of Programming Languages
The High-Level Benefits of Low-Level Sandboxing
Michael Sammler, Deepak Garg, Derek Dreyer, Tadeusz Litak
In POPL 2020: ACM SIGPLAN Symposium on Principles of Programming Languages
Verifying Concurrent, Crash-Safe Systems with Perennial
Tej Chajed, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich
In SOSP 2019: ACM Symposium on Operating Systems Principles
Mechanized Relational Verification of Concurrent Programs with Continuations
Amin Timany, Lars Birkedal
In ICFP 2019: ACM SIGPLAN International Conference on Functional Programming
Specifying I/O using abstract nested hoare triples in separation logic
Willem Penninckx, Amin Timany, Bart Jacobs
In FTfJP '19: Workshop on Formal Techniques for Java-like Programs
Semi-Automated Reasoning About Non-Determinism in C Expressions
Dan Frumin, Léon Gondelman, Robbert Krebbers
In ESOP 2019: European Symposium on Programming
Time Credits and Time Receipts in Iris
Glen Mével, Jacques-Henri Jourdan, François Pottier
In ESOP 2019: European Symposium on Programming
Iron: Managing Obligations in Higher-Order Concurrent Separation Logic
Aleš Bizjak, Daniel Gratzer, Robbert Krebbers, Lars Birkedal
In POPL 2019: ACM SIGPLAN Symposium on Principles of Programming Languages
A Separation Logic for Concurrent Randomized Programs
Joseph Tassarotti, Robert Harper
In POPL 2019: ACM SIGPLAN Symposium on Principles of Programming Languages
Iris from the Ground Up: A Modular Foundation for Higher-Order Concurrent Separation Logic ("Iris 3.1")
Ralf Jung, Robbert Krebbers, Jacques-Henri Jourdan, Aleš Bizjak, Lars Birkedal, Derek Dreyer
Journal of Functional Programming (JFP), Volume 28, e20, November 2018
This is a significantly revised and expanded synthesis of the Iris 2.0 and 3.0 papers.
Recipient of 2023 Alonzo Church Award for Outstanding Contributions to Logic and Computation
MoSeL: A General, Extensible Modal Framework for Interactive Proofs in Separation Logic
Robbert Krebbers, Jacques-Henri Jourdan, Ralf Jung, Joseph Tassarotti, Jan-Oliver Kaiser, Amin Timany, Arthur Charguéraud, Derek Dreyer
In ICFP 2018: ACM SIGPLAN International Conference on Functional Programming
Mtac2: Typed Tactics for Backward Reasoning in Coq
Jan-Oliver Kaiser, Beta Ziliani, Robbert Krebbers, Yann Régis-Gianas, Derek Dreyer
In ICFP 2018: ACM SIGPLAN International Conference on Functional Programming
Section 5 contains a case study using the Iris Proof Mode.
ReLoC: A Mechanised Relational Logic for Fine-Grained Concurrency
Dan Frumin, Robbert Krebbers, Lars Birkedal
In LICS 2018: ACM/IEEE Symposium on Logic in Computer Science
RustBelt: Securing the Foundations of the Rust Programming Language
Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, Derek Dreyer
In POPL 2018: ACM SIGPLAN Symposium on Principles of Programming Languages
A Logical Relation for Monadic Encapsulation of State: Proving contextual equivalences in the presence of runST
Amin Timany, Léo Stefanesco, Morten Krogh-Jespersen, Lars Birkedal
In POPL 2018: ACM SIGPLAN Symposium on Principles of Programming Languages
On Models of Higher-Order Separation Logic
Aleš Bizjak, Lars Birkedal
In MFPS 2017: Mathematical Foundations of Programming Semantics
Robust and Compositional Verification of Object Capability Patterns
David Swasey, Deepak Garg, Derek Dreyer
In OOPSLA 2017: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Recipient of OOPSLA 2017 Distinguished Paper Award
Strong Logic for Weak Memory: Reasoning About Release-Acquire Consistency in Iris
Jan-Oliver Kaiser, Hoang-Hai Dang, Derek Dreyer, Ori Lahav, Viktor Vafeiadis
In ECOOP 2017: European Conference on Object-Oriented Programming
Recipient of ECOOP 2017 Distinguished Paper Award
A Higher-Order Logic for Concurrent Termination-Preserving Refinement
Joseph Tassarotti, Ralf Jung, Robert Harper
In ESOP 2017: European Symposium on Programming
The Essence of Higher-Order Concurrent Separation Logic ("Iris 3.0")
Robbert Krebbers, Ralf Jung, Aleš Bizjak, Jacques-Henri Jourdan, Derek Dreyer, Lars Birkedal
In ESOP 2017: European Symposium on Programming
Recipient of 2023 Alonzo Church Award for Outstanding Contributions to Logic and Computation
Interactive Proofs in Higher-Order Concurrent Separation Logic ("Iris Proof Mode")
Robbert Krebbers, Amin Timany, Lars Birkedal
In POPL 2017: ACM SIGPLAN Symposium on Principles of Programming Languages
A Relational Model of Types-and-Effects in Higher-Order Concurrent Separation Logic
Morten Krogh-Jespersen, Kasper Svendsen, Lars Birkedal
In POPL 2017: ACM SIGPLAN Symposium on Principles of Programming Languages
Higher-Order Ghost State ("Iris 2.0")
Ralf Jung, Robbert Krebbers, Lars Birkedal, Derek Dreyer
In ICFP 2016: ACM SIGPLAN International Conference on Functional Programming
Recipient of 2023 Alonzo Church Award for Outstanding Contributions to Logic and Computation
Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning ("Iris 1.0")
Ralf Jung, David Swasey, Filip Sieczkowski, Kasper Svendsen, Aaron Turon, Lars Birkedal, Derek Dreyer
In POPL 2015: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Recipient of 2023 Alonzo Church Award for Outstanding Contributions to Logic and Computation

PhD dissertations

Guarantees by Construction
Jules Jacobs
Radboud University Nijmegen, June 2024
Automated and Foundational Verification of Low-Level Programs
Michael Sammler
MPI-SWS and Saarland University, December 2023
Separation Logic for Concurrency and Persistency
Simon Friis Vindum
Aarhus University, December 2023
Syntax and semantics of modal type theory
Daniel Gratzer
Aarhus University, October 2023
Conflict-free Replicated Data Types have Abstract Data Types
Abel Nieto
Aarhus University, June 2023
Designing and Proving Robust Safety of Efficient Capability Machine Programs
Aina Linn Georges
Aarhus University, June 2023
Higher-Order Separation Logic for Distributed Systems and Security
Simon Oddershede Gregersen
Aarhus University, March 2023
Proof of Programs with Effect Handlers
Paulo Emílio de Vilhena
Université Paris Cité, December 2022
A Mechanized Program Logic for Concurrent Programs with the Weak Memory Model of Multicore OCaml
Glen Mével
Inria and Université Paris Cité, December 2022
Verifying a Concurrent, Crash-Safe File System with Sequential Reasoning
Tej Chajed
Massachusetts Institute of Technology, May 2022
Recipient of Honorable Mention for the 2022 ACM SIGOPS Dennis M. Ritchie Thesis Award
Sessions and Separation
Jonas Kastberg Hinrichsen
IT University of Copenhagen, March 2021
Concurrent Separation Logics for Safety, Refinement, and Security
Dan Frumin
Radboud University Nijmegen, March 2021
Understanding and Evolving the Rust Programming Language
Ralf Jung
MPI-SWS and Saarland University, August 2020
Recipient of Honorable Mention for the 2020 ACM Doctoral Dissertation Award
Recipient of 2021 ACM SIGPLAN John C. Reynolds Doctoral Dissertation Award
Recipient of 2021 ETAPS Doctoral Dissertation Award
Recipient of 2021 Otto Hahn Medal (Max Planck Society)
Recipient of 2021 Dr. Eduard Martin Prize (Saarland University)
Compositional Abstractions for Verifying Concurrent Data Structures
Siddharth Krishna
New York University, September 2019
Verifying Concurrent Randomized Algorithms
Joseph Tassarotti
Carnegie Mellon University, January 2019
Towards Modular Reasoning for Stateful and Concurrent Programs
Morten Krogh-Jespersen
Aarhus University, September 2018
Contributions in Programming Languages Theory
Amin Timany
KU Leuven, May 2018

Other material

Case studies, MSc theses, abstracts, talks:

Verification of the Blocking and Non-Blocking Michael-Scott Queue Algorithms
Mathias Pedersen
Master's thesis at Aarhus University supervised by Amin Timany, June 2024
Logical Foundations Of Language Interoperability Between OCaml and C
Johannes Hostert
Master's thesis at Saarland University supervised by Derek Dreyer, July 2023
Verifying a Barrier using Iris
Simcha van Collem
Bachelor's thesis at Radboud University Nijmegen supervised by Robbert Krebbers, March 2023
Mechanized Reasoning about a Capability Machine
Aina Linn Georges, Alix Trieu, Lars Birkedal
Extended Abstract for talk at PRISC 2020: Principles of Secure Compilation
Verifying a Concurrent Data-Structure from the Dartino Framework
Morten Krogh-Jespersen, Thomas Dinsdale-Young, Lars Birkedal
Formalizing Concurrent Stacks With Helping: A Case Study In Iris
Daniel Gratzer, Mathias Høier, Aleš Bizjak, Lars Birkedal
Verifying Hash Tables in Iris
Esben Glavind Clausen
Master's thesis at Aarhus University supervised by Lars Birkedal, June 2017
Logical Relations in Iris
Amin Timany, Robbert Krebbers, Lars Birkedal
At CoqPL 2017: The Third International Workshop on Coq for Programming Languages, Paris, France
Unifying Worlds and Resources
Ralf Jung, Derek Dreyer
At HOPE 2015: 4th ACM SIGPLAN Workshop on Higher-Order Programming with Effects, Vancouver, Canada

Main research groups involved

Aarhus University
Max Planck Institute for Software Systems
Radboud University

Grants

The Iris project has been supported by the following grants:

ModuRes

Modular Reasoning about Concurrent Higher-Order Imperative Programs
Card image

Grants from The Danish Council for Independent Research, Sapere Aude: DFF–Advanced Grant 2013 (more information)

RustBelt

Logical Foundations for the Future of Safe Systems Programming
Card image

2015 ERC Consolidator Grant (more information)

CPV

Center for Basic Research in Program Verification
The Velux Foundations

Villum Investigator grant (no. 25804) from The Villum Foundation from 2019-2025. (more information)