Replay #
This module defines minimal and maximal replays of a log, the minimum and maximum replay sets, and proves that the minimum (resp. maximum) replay set is the smallest (resp. largest) configuration compatible with a log, together with uniqueness of minimal and maximal replays and conditional existence lemmas: existence is established relative to a computation compatible with the log that reaches the corresponding replay set, not unconditionally.
Extract the configuration from a computation.
Equations
- EventStructures.Replay.conf es σ = σ.fst
Instances For
A computation is a minimal replay of a log if it's compatible (σ ⊨ l) and its configuration is a subset of all other compatible computations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A computation is a maximal replay of a log if it's compatible (σ ⊨ l) and all other compatible computations' configurations are subsets of it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The downset (or principal ideal) of an event e: all predecessors including e.
Instances For
The minimum replay set of a log l: union of all downsets of events in l.
Equations
- EventStructures.Replay.minReplaySet es l = ⋃ e ∈ l, EventStructures.Replay.downset es e
Instances For
The maximum replay set of a log l: the minimum replay set plus all events that are causally forced if any of their minimal conflicts (e₁ ## e₂) are in the log.
Equations
- EventStructures.Replay.maxReplaySet es l = EventStructures.Replay.minReplaySet es l ∪ {e : es.Event | ∀ (e₁ e₂ : es.Event), es.minimalConflict e₁ e₂ ∧ e₁ ≤ e → e₁ ∈ l}
Instances For
The downset is closed under taking predecessors.
The minimum replay set contains the log.
The minimum replay set is closed under predecessors.
The maximum replay set contains the minimum replay set.
If e is in l and x ≤ e, and l is conflict-free, then x is compatible with all events in l.
The minimum replay set is compatible with the log.
The minimum replay set is the smallest configuration compatible with a log. Any computation with configuration equal to minReplaySet is a minimal replay.
The maximum replay set is the largest configuration compatible with a log. Any computation with configuration equal to maxReplaySet is a maximal replay.
Any two minimal replays of a log have equal configurations. Since both are minimal, each configuration is a subset of the other by definition.
Any two maximal replays of a log have equal configurations. Since both are maximal, each configuration is a superset of the other by definition.
Conditional existence of the minimal replay: if some computation compatible with the log reaches the minimum replay set, then a minimal replay exists. This is a characterization lemma, not an unconditional existence theorem; minimality follows from minReplaySet_is_minimal_replay.
Conditional existence of the maximal replay: if some computation compatible with the log reaches the maximum replay set, then a maximal replay exists. This is a characterization lemma, not an unconditional existence theorem; maximality follows from maxReplaySet_is_maximal_replay.
Uniqueness of the minimal replay: any two minimal replays of a log reach the same configuration.
Uniqueness of the maximal replay: any two maximal replays of a log reach the same configuration.