Documentation

EventStructures.Prime.Replay

Replay for a prime event structure #

The least/greatest replay sets are built from the causal order and minimal conflict.

def Replay.downset {L : Type u_1} (es : PES L) (e : es.Event) :

The downset (or principal ideal) of an event e: all predecessors including e.

Equations
Instances For
    def Replay.minReplaySet {L : Type u_1} (es : PES L) (l : Set es.Event) :

    The minimum replay set of a log l: union of all downsets of events in l.

    Equations
    Instances For
      def Replay.maxReplaySet {L : Type u_1} (es : PES L) (l : Set es.Event) :

      The maximum replay set of a log l: the minimum replay set together with the events forced by a minimal conflict in l.

      Equations
      Instances For
        theorem Replay.downset_closed {L : Type u_1} (es : PES L) {e x y : es.Event} (hxy : x y) (hy : y downset es e) :
        x downset es e

        The downset is closed under taking predecessors.

        theorem Replay.minReplaySet_contains_log {L : Type u_1} (es : PES L) {l : Set es.Event} :
        lminReplaySet es l

        The minimum replay set contains the log.

        theorem Replay.minReplaySet_closed {L : Type u_1} (es : PES L) {l : Set es.Event} {x y : es.Event} (hy : y x) (hx : x minReplaySet es l) :

        The minimum replay set is closed under predecessors.

        theorem Replay.minReplaySet_subset_maxReplaySet {L : Type u_1} (es : PES L) {l : Set es.Event} :

        The maximum replay set contains the minimum replay set.

        theorem Replay.downset_compatible_with_log {L : Type u_1} (es : PES L) {l : Set es.Event} {e x : es.Event} (he : e l) (hxe : x e) (hl_conflict_free : ∀ {e₁ e₂ : es.Event}, e₁ le₂ l¬es.conflict e₁ e₂) (e' : es.Event) :
        e' l¬es.conflict x e'

        Below an event of a conflict-free log, every event is compatible with the log.

        theorem Replay.minReplaySet_compatible_with_log {L : Type u_1} (es : PES L) {l : Set es.Event} (hl_conflict_free : ∀ {e₁ e₂ : es.Event}, e₁ le₂ l¬es.conflict e₁ e₂) (x : es.Event) :
        x minReplaySet es lel, ¬es.conflict x e

        The minimum replay set is compatible with the log.

        theorem Replay.minReplaySet_is_minimal_replay {L : Type u_1} (es : PES L) {l : Set es.Event} {σ : Computations es.toFamily} (h_conf : (conf es.toFamily σ) = minReplaySet es l) (h_compat : es.compatibleWithLog σ l) :

        A computation reaching minReplaySet is a minimal replay.

        theorem Replay.maxReplaySet_is_maximal_replay {L : Type u_1} (es : PES L) {l : Set es.Event} {σ : Computations es.toFamily} (h_conf : (conf es.toFamily σ) = maxReplaySet es l) (h_compat : es.compatibleWithLog σ l) :

        A computation reaching maxReplaySet is a maximal replay.

        theorem Replay.minReplay_exists {L : Type u_1} (es : PES L) (l : Set es.Event) (hexists : ∃ (σ : Computations es.toFamily), (conf es.toFamily σ) = minReplaySet es l es.compatibleWithLog σ l) :

        The least replay exists when some compatible computation reaches minReplaySet.

        theorem Replay.maxReplay_exists {L : Type u_1} (es : PES L) (l : Set es.Event) (hexists : ∃ (σ : Computations es.toFamily), (conf es.toFamily σ) = maxReplaySet es l es.compatibleWithLog σ l) :

        A greatest replay exists once some compatible computation reaches maxReplaySet.

        theorem Replay.downset_isConf {L : Type u_1} (es : PES L) (e : es.Event) :
        isConf es (downset es e)

        The downset is a configuration.

        theorem Replay.hist_eq_downset {L : Type u_1} (es : PES L) {c : Set es.Event} (hc : isConf es c) {x : es.Event} (hx : x c) :

        Inside a configuration, the history of an event is its downset.

        theorem Replay.replaySet_eq_minReplaySet {L : Type u_1} (es : PES L) {c l : Set es.Event} (hc : isConf es c) (hlc : lc) :

        Hence the general least replay set agrees with the prime one.