SPLS @ St Andrews
Feb 11, 2026
\[ \require{mathtools} \newcommand{\downset}[1]{\mathop{\downarrow}#1} \newcommand{\upset}[1]{\mathop{\uparrow}#1} \newcommand{\confl}[0]{\mathrel{\mathsf{\#}}} \newcommand{\minconfl}[0]{\mathrel{\mathsf{\#}_{m}}} \newcommand{\conc}[0]{\mathrel{\bowtie}} \newcommand{\shuf}[0]{\mathrel{\mathsf{shuffle}}} \newcommand{\Conf}[0]{\mathsf{Conf}} \newcommand{\enables}[0]{\mathrel{\vdash}} \newcommand{\ind}[0]{\conc} \newcommand{\rollback}[2]{\rho_{#1}(#2)} \newcommand{\minrepl}[1]{\mathsf{\varphi}(#1)} \newcommand{\maxrepl}[1]{\mathsf{\Phi}(#1)} \newcommand{\lts}[1]{\overset{#1}{\longrightarrow}} \newcommand{\flts}[1]{\overset{#1}{\longrightarrow}_{f}} \newcommand{\blts}[1]{\overset{#1}{\longrightarrow}_{b}} \newcommand{\alog}[1]{\mathop{\ell\mathcal{og}}(#1)} \newcommand{\Comp}[0]{\mathsf{Comp}} \newcommand{\blank}[0]{{(-)}} \]
Puzzle: \(\shuf : L(A) \times L(A) \to P(L(A))\), what is its universal property?
An event structure is a:
Two events are concurrent if they are not causally related and not in conflict: \[ e_1 \conc e_2 \iff \neg(e_1 \leq e_2 \lor e_2 \leq e_1 \lor e_1 \confl e_2) \]
This is a prime event structure with binary conflict.
A (finite) configuration of \((E, \leq, \confl)\) is a subset \(C \subseteq E\) that is:
The set of all configurations is denoted \(\Conf(E)\), and is ordered by inclusion.
We say \(C \enables e\), or \(C\) enables \(e\), if:
\[ E = \{a, b, c\}, \quad {\leq} = \{(a, c), (b, c), (a, a), (b, b), (c, c)\}, \quad {\confl} = \{(b, c), (c, b)\} \]
The initial configuration is \(\emptyset\).
If \(C \enables e\):
An LTS is a \(P(L \times \blank)\)-coalgebra.
A revLTS is a \(P((L + L) \times \blank)\)-coalgebra.
Two transitions are independent, \((C \lts{e_1} C_1) \ind (C \lts{e_2} C_2)\), if \(e_1 \conc e_2\).
There is an adjunction between event structures and revLTSs with independence.
A path between \(C_1\) and \(C_2\) is either:
Configurations and paths form the free category \(F(E)\) on the labelled graph generated by the event structure.
The independence relation on transitions generates a relation on paths:
\(p \approx p\),
if \(e_1 \conc e_2\), then \(p \cdot e_1 \cdot e_2 \cdot q \approx q \cdot e_2 \cdot e_1 \cdot p\).
Configurations and paths form the quotient category of \(F(E)\) by this equivalence relation.
Mazurkiewicz trace monoid or free “partially commutative” monoid
Given a configuration \(C\) and an event \(e \in C\), the rollback \(\rollback{C}{e}\) is:
Rollback satisfies the following properties:
To replay a computation starting at a configuration, we pick a causally-consistent log.
\(e_1\) is in minimal conflict with \(e_2\), denoted \(e_1 \minconfl e_2\), if:
A log of a configuration \(C\) is \(\alog{C} = \{e \in C \mid \exists e' \not\in C, e \minconfl e'\}\).
A computation \(\sigma\) is compatible with a log \(l\) if:
The set of computations compatible with a log \(l\) is \(\Comp(l)\).
\(\Comp(l)\) has a:
These determine two Galois connections between logs and computations.