Reference. An Equational Axiomatization of Dynamic Threads via Algebraic Effects: Presheaves on Finite Relations, Labelled Posets, and Parameterized Algebraic Theories
We use the theory of algebraic effects to give a complete equational axiomatization for dynamic threads. Our method is based on parameterized algebraic theories, which give a concrete syntax for strong monads on functor categories, and are a convenient framework for names and binding. Our programs are built from the key primitives ‘fork’ and ‘wait’. ‘Fork’ creates a child thread and passes its name (thread ID) to the parent thread. ‘Wait’ allows us to wait for given child threads to finish. We provide a parameterized algebraic theory built from fork and wait, together with basic atomic actions and laws such as associativity of ‘fork’. Our equational axiomatization is complete in two senses. First, for closed expressions, it completely captures equality of labelled posets (pomsets), an established model of concurrency: model complete. Second, any two open expressions are provably equal if they are equal under all closing substitutions: syntactically complete. The benefit of algebraic effects is that the semantic analysis can focus on the algebraic operations of fork and wait. We then extend the analysis to a simple concurrent programming language by giving operational and denotational semantics. The denotational semantics is built using the methods of parameterized algebraic theories and we show that it is sound, adequate, and fully abstract at first order for labelled-poset observations.
Cite
Cites 50 works (5 here)
With notes (5)
Two-sorted algebraic decompositions of Brookes’s shared-state denotational semantics dvir-2025-two
We define a two sorted equational theory of algebraic effects that models concurrent shared state with preemptive interleaving, recovering Brookes’s seminal 1996 trace-based model precisely. The decomposition allows us to analyse Brookes’s model algebraically in terms of separate but interacting components. The multiple sorts partition terms into layers. We use two sorts: a “hold” sort for layers that disallow interleaving of environment memory accesses, analogous to holding a global lock on the memory; and a “cede” sort for the opposite. The algebraic signature comprises of independent interlocking components: two new operators that switch between these sorts, delimiting the atomic layers, thought of as acquiring and releasing the global lock; non-deterministic choice; and state-accessing operators. The axioms similarly divide cleanly: the delimiters behave as a closure pair; all operators are strict, and distribute over non-empty non-deterministic choice; and non-deterministic global state obeys Plotkin and Power’s presentation of global state. Our representation theorem expresses the free algebras over a two-sorted family of variables as sets of traces with suitable closure conditions. When the held sort has no variables, we recover Brookes’s trace semantics. We define several other single-and two-sorted theories to elucidate the connection to Brookes’s model via translation embeddings and equivalences.
A Denotational Approach to Release/Acquire Concurrency dvir-2024-a
We present a compositional denotational semantics for a functional language with first-class parallel composition and shared-memory operations whose operational semantics follows the Release/Acquire weak memory model (RA). The semantics is formulated in Moggi’s monadic approach, and is based on Brookes-style traces. To do so we adapt Brookes’s traces to Kang et al.’s view-based machine for RA, and supplement Brookes’s mumble and stutter closure operations with additional operations, specific to RA. The latter provides a more nuanced understanding of traces that uncouples them from operational interrupted executions. We show that our denotational semantics is adequate and use it to validate various program transformations of interest. This is the first work to put weak memory models on the same footing as many other programming effects in Moggi’s standard monadic approach.
Iris from the ground up: A modular foundation for higher-order concurrent separation logic jung_etal_iris_ground_up_2018
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.
Handlers in action kammar-2013-handlers
Nominal Sets: Names and Symmetry in Computer Science pitts_nominal_sets
External (45)
- Adequacy for Algebraic Effects Revisited (2025)
- IEEE Standard for Information Technology—Portable Operating System Interface (POSIX) Base Specifications, Issue 8 (2024)
- A Robust Theory of Series Parallel Graphs (2023)
- Continuing WebAssembly with Effect Handlers (2023)
- A separation logic for effect handlers (2021)
- Posets with interfaces as a model for concurrency (2021)
- Retrofitting effect handlers onto OCaml (2021)
- Props in Network Theory (2017)
- The Calculus of Signal Flow Diagrams I: Linear relations on streams (2017)
- Effect-dependent transformations for concurrent programs (2015)
- Algebraic Effects, Linearity, and Quantum Programming Languages (2015)
- Presenting Finite Posets (2014)
- Handling Algebraic Effects (2013)
- An Algebraic Presentation of Predicate Logic - (Extended Abstract) (2013)
- Instances of Computational Effects: An Algebraic Perspective (2013)
- The Algebra of Directed Acyclic Graphs (2013)
- The laws of programming unify process calculi (2012)
- Brookes Is Relaxed, Almost! (2012)
- Concurrency and the Algebraic Theory of Effects - (Abstract) (2012)
- Concurrent Kleene Algebra and its Foundations (2011)
- A separation logic for refining concurrent objects (2011)
- A Model of Cooperative Threads (2010)
- On CSP and the Algebraic Theory of Effects (2010)
- Free-algebra models for the π -calculus (2008)
- Combining effects: Sum and tensor (2006)
- Operads and PROPs (2006)
- Modelling environments in call-by-value programming languages (2003)
- Algebraic Operations and Generic Effects (2003)
- Notions of Computation Determine Monads (2002)
- Handbook of Process Algebra (2001)
- Adequacy for Algebraic Effects (2001)
- The Pi-Calculus: A Theory of Mobile Processes (2001)
- Teams can see pomsets (1997)
- The rely-guarantee method for verifying shared variable concurrent programs (1997)
- Full Abstraction for a Shared-Variable Parallel Language (1996)
- CCS, locations and asynchronous transition systems (1992)
- Notions of Computation and Monads (1991)
- Communication and concurrency (1989)
- The Equational Theory of Pomsets (1988)
- Type Algebras, Functor Categories, and Block Structure (1986)
- Modeling concurrency with partial orders (1986)
- Series-parallel graphs: A logical approach (1983)
- Petri Nets, Event Structures and Domains, Part I (1981)
- Intensional interpretations of functionals of finite type I (1967)
- Sur les correspondances multivoques des ensembles