Reference. Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning
Cite
Cited by (39)
Oblivious Probabilistic Outcome Logic: Verifying Probabilistic Programs with an Oblivious Adversary chen-2026-oblivious
Verifying Isolation Levels of Database Implementations for Free Using Separation Logic mathiasen-2026-verifying
Yarrow: Reconciling Effect Handlers and Region-Based Memory Management mathiasen-2026-yarrow
Contextual Refinement of Higher-Order Concurrent Probabilistic Programs li-2026-contextual
Mixtris: Mechanised Higher-Order Separation Logic for Mixed Choice Multiparty Message Passing hinrichsen-2026-mixtris
Lawyer: Modular Obligations-Based Liveness Reasoning in Higher-Order Impredicative Concurrent Separation Logic namakonov-2026-lawyer
An Axiomatic Basis for Computer Programming on Relaxed Hardware Architectures: The AxSL Logics liu-2026-an
Modular Specifications and Implementations of Random Samplers in Higher-Order Separation Logic marionneau-2026-modular
Probabilistic Concurrent Reasoning in Outcome Logic: Independence, Conditioning, and Invariants zilberstein-2026-probabilistic
Verifying Wait-Freedom for Concurrent Higher-Order Programs namakonov-2026-verifying
Reasoning about Weak Isolation Levels in Separation Logic alnormathiasen-2025-reasoning
Modular Reasoning about Error Bounds for Concurrent Probabilistic Programs li-2025-modular
The Nextgen Modality: A Modality for Non-Frame-Preserving Updates in Separation Logic vindum-2025-the
A Demonic Outcome Logic for Randomized Nondeterminism zilberstein-2025-a
Substructural Parametricity aberle-2025-substructural
A Logical Approach to Type Soundness timany-2024-a
Tachis: Higher-Order Separation Logic with Credits for Expected Costs haselwarter-2024-tachis
Error Credits: Resourceful Reasoning about Error Bounds for Higher-Order Probabilistic Programs aguirre-2024-error
Modular Denotational Semantics for Effects with Guarded Interaction Trees frumin-2024-modular
Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional Refinement timany-2024-trillium
Correctly Compiling Proofs About Programs Without Proving Compilers Correct seo-2024-correctly
Grove: A Separation-Logic Library for Verifying Distributed Systems sharmaGroveSeparationLogicLibrary2023
Leaf: Modularity for Temporary Sharing in Separation Logic hance-2023-leaf
Outcome Logic: A Unifying Foundation for Correctness and Incorrectness Reasoning zilberstein-2023-outcome
A Formal Logic for Formal Category Theory new_licata_2023
Modular Verification of State-Based CRDTs in Separation Logic nieto-2023-modular
Classifying topoi in synthetic guarded domain theory: the universal property of multi-clock guarded recursion palombi_sterling_2023
Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations gaher_etal_simuliris_2022
Today’s compilers employ a variety of non-trivial optimizations to achieve good performance. One key trick compilers use to justify transformations of concurrent programs is to assume that the source program has no data races: if it does, they cause the program to have undefined behavior (UB) and give the compiler free rein. However, verifying correctness of optimizations that exploit this assumption is a non-trivial problem. In particular, prior work either has not proven that such optimizations preserve program termination (particularly non-obvious when considering optimizations that move instructions out of loop bodies), or has treated all synchronization operations as external functions (losing the ability to reorder instructions around them).
In this work we present Simuliris, the first simulation technique to establish termination preservation (under a fair scheduler) for a range of concurrent program transformations that exploit UB in the source language. Simuliris is based on the idea of using ownership to reason modularly about the assumptions the compiler makes about programs with well-defined behavior. This brings the benefits of concurrent separation logics to the space of verifying program transformations: we can combine powerful reasoning techniques such as framing and coinduction to perform thread-local proofs of non-trivial concurrent program optimizations. Simuliris is built on a (non-step-indexed) variant of the Coq-based Iris framework, and is thus not tied to a particular language. In addition to demonstrating the effectiveness of Simuliris on standard compiler optimizations involving data race UB, we also instantiate it with Jung et al.’s Stacked Borrows semantics for Rust and generalize their proofs of interesting type-based aliasing optimizations to account for concurrency.
A cost-aware logical framework niu-2022-a
Transfinite Iris: resolving an existential dilemma of step-indexed separation logic spies-2021-transfinitex
Transfinite step-indexing for termination spies-2021-transfinite
ReLoC Reloaded: A Mechanized Relational Logic for Fine-Grained Concurrency and Logical Atomicity frumin_krebbers_birkedal_reloc_2021
First Steps in Synthetic Tait Computability: The Objective Metatheory of Cubical Type Theory sterling_2021
QED at Large: A Survey of Engineering of Formally Verified Software ringer-2019-qed
Iris from the ground up: A modular foundation for higher-order concurrent separation logic jung_etal_iris_ground_up_2018
A logical relation for monadic encapsulation of state: proving contextual equivalences in the presence of runST timany-2017-a
Interactive proofs in higher-order concurrent separation logic krebbers-2017-interactive
A Higher-Order Logic for Concurrent Termination-Preserving Refinement tassarotti_jung_harper_2017
Higher-order ghost state jung_higher-order_2016
Cites 38 works (1 here)
With notes (1)
Separation logic: A logic for shared mutable data structures reynolds_separation_2002
External (37)
- TaDA: A Logic for Time and Data Abstraction (2014)
- Communicating State Transition Systems for Fine-Grained Concurrent Resources (2014)
- Modular reasoning about concurrent higher-order imperative programs: a Coq tutorial (2014)
- Impredicative Concurrent Abstract Predicates (2014)
- Personal communication (B. Jacobs) (2014)
- Views: Compositional reasoning for concurrent programs (2013)
- Subjective auxiliary state for coarse-grained concurrency (2013)
- Modular verification of linearizability with non-fixed linearization points (2013)
- Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency (2013)
- Logical relations for fine-grained concurrency (2013)
- Fictional Separation Logic (2012)
- Superficially substructural types (2012)
- Step-indexed kripke models over recursive worlds (2011)
- Expressive modular fine-grained concurrency specification (2011)
- The essence of monotonic state (2011)
- Invariants, Modularity, and Rights (2010)
- Concurrent abstract predicates (2010)
- Reasoning about optimistic concurrency using a program logic for history (2010)
- State-dependent representation independence (2009)
- A Fresh Look at Separation Algebras and Share Accounting (2009)
- Local rely-guarantee reasoning (2009)
- Blaming the client: On data refinement in the presence of pointers (2009)
- On the relationship between concurrent separation logic and assume-guarantee reasoning (2007)
- Resources, concurrency, and local reasoning (2007)
- A marriage of rely/guarantee and separation logic (2007)
- Modular fine-grained concurrency verification (PhD thesis) (2007)
- A scalable lock-free stack algorithm (2004)
- Communicating and Mobile Systems: the π-Calculus (1999)
- Objects in the π-Calculus (1995)
- The existence of refinement mappings (1991)
- Linearizability: a correctness condition for concurrent objects (1990)
- Solving reflexive domain equations in a category of complete metric spaces (1989)
- Tentative steps toward a development method for interfering programs (1983)
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs (1979)
- Verifying properties of parallel programs (1976)
- Proving assertions about parallel programs (1975)
- Iris: Appendix and Coq development