Reference. The logic of bunched implications
Cite
Cited by (19)
Probabilistic Concurrent Reasoning in Outcome Logic: Independence, Conditioning, and Invariants zilberstein-2026-probabilistic
Day algebras robinson_wrigley_2026
Substructural Parametricity aberle-2025-substructural
Separated and Shared Effects in Higher-Order Languages amorim_hsu_independent
Idempotent Resources in Separation Logic: The Heart of core in Iris gratzer-2025-idempotent
Outcome Logic: A Unifying Foundation for Correctness and Incorrectness Reasoning zilberstein-2023-outcome
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 Framework for Substructural Type Systems wood-2022-a
Transfinite Iris: resolving an existential dilemma of step-indexed separation logic spies-2021-transfinitex
Recovering purity with comonads and capabilities choudhury-2020-recovering
Iris from the ground up: A modular foundation for higher-order concurrent separation logic jung_etal_iris_ground_up_2018
Integrating Linear and Dependent Types krishnaswami_integrating_2015
Functors are type refinement systems mellies_zeilberger_2015
The standard reading of type theory through the lens of category theory is based on the idea of viewing a type system as a category of well-typed terms. We propose a basic revision of this reading: rather than interpreting type systems as categories, we describe them as functors from a category of typing derivations to a category of underlying terms. Then, turning this around, we explain how in fact any functor gives rise to a generalized type system, with an abstract notion of typing judgment, typing derivations and typing rules. This leads to a purely categorical reformulation of various natural classes of type systems as natural classes of functors.
The main purpose of this paper is to describe the general framework (which can also be seen as providing a categorical analysis of refinement types), and to present a few applications. As a larger case study, we revisit Reynolds’ paper on “The Meaning of Types” (2000), showing how the paper’s main results may be reconstructed along these lines.
From categorical logic to facebook engineering ohearn_fromCat2015
BI-hyperdoctrines, higher-order separation logic, and abstraction biering-2007-bi
Relational separation logic yang_relational_separation_2007
BI Hyperdoctrines and Higher-Order Separation Logic biering_birkedal_torpsmith_2005
Separation logic: A logic for shared mutable data structures reynolds_separation_2002
BI as an assertion language for mutable data structures ishtiaq_ohearn_bi_2001
Cites 42 works (2 here)
With notes (2)
Introduction to Higher-Order Categorical Logic lambek_scott_1986
External (40)
- Syntactic control of interference revisited (1999)
- Resource interpretations, bunched implications and the alpha-lambda-calculus (1999)
- A relevant analysis of natural deduction (1998)
- The semantics and proof theory of the logic of bunched implications, I: Propositional BI (1998)
- The semantics and proof theory of the logic of bunched implications, II: Predicate BI (1998)
- Logic programming with bunched implications (extended abstract) (1998)
- Dual intuitionistic linear logic (1997)
- Algol-like Languages (1997)
- Concurrent constraint programming and mixed non-commutative linear logic (1997)
- Programming in Lygon: an overview (1996)
- A mixed linear and non-linear logic: proofs, terms and models (1995)
- Mathematical Foundations of Programming Semantics, Eleventh Annual Conference (1995)
- Logic programming in a fragment of intuitionistic linear logic (1994)
- A uniform proof-theoretic investigation of linear logic programming (1994)
- Computational interpretations of linear logic (1993)
- Life in the undistributed middle (1993)
- A historical introduction to substructural logics (1993)
- On the unity of logic (1993)
- Type theory and recursion (1993)
- Tutorial on Linear Logic (1993)
- First order linear logic in symmetric monoidal closed categories (1992)
- Entailment: the Logic of Relevance and Necessity, volume II (1992)
- Uniform proofs as a foundation for logic programming (1991)
- Structural frameworks, substructural logics and the role of elimination inferences (1991)
- A logical analysis of modules in logic programming (1989)
- The linear abstract machine (1988)
- Relevant Logic: A Philosophical Examination of Inference (1987)
- Relevant logic and entailment (1986)
- Display logic (1982)
- On the meanings of the logical constants and the justifications of the logical laws (1982)
- The essence of Algol (1981)
- Syntactic control of interference (1978)
- A structure for Plans and Behaviour (1977)
- Entailment: the Logic of Relevance and Necessity, volume I (1975)
- An embedding theorem for closed categories (1974)
- Semantics for relevant logics (1972)
- On closed categories of functors (1970)
- Semantical analysis of intuitionistic logic I (1965)
- Conseqution formulation of positive R with co-tenability and t
- Kripke resource models of a dependently-typed, bunched lambda-calculus