Documentation

EventStructures.General.Basic

General event structures #

Consistency is n-ary and causality is disjunctive.

structure GES (Label : Type u_1) :
Type (max u_1 (u_2 + 1))

Events, an n-ary consistency predicate, and an enabling relation.

Instances For
    def GES.secApprox {L : Type u_1} (G : GES L) (x : Set G.Event) :
    Set G.Event

    Events of x secured in at most n steps.

    Equations
    Instances For
      theorem GES.secApprox_subset {L : Type u_1} {G : GES L} {x : Set G.Event} (n : ) :
      G.secApprox x nx
      theorem GES.secApprox_succ {L : Type u_1} {G : GES L} {x : Set G.Event} (n : ) :
      G.secApprox x nG.secApprox x (n + 1)
      theorem GES.secApprox_mono {L : Type u_1} {G : GES L} {x : Set G.Event} {m n : } (h : m n) :
      G.secApprox x mG.secApprox x n
      theorem GES.secApprox_mono_set {L : Type u_1} {G : GES L} {x y : Set G.Event} (hxy : xy) (n : ) :
      G.secApprox x nG.secApprox y n

      Securedness only ever grows with the ambient set.

      def GES.Consistent {L : Type u_1} (G : GES L) (s : Set G.Event) :

      Every finite subset is consistent.

      Equations
      Instances For
        def GES.isConf {L : Type u_1} (G : GES L) (x : Set G.Event) :

        Consistent, and every event secured inside it.

        Equations
        Instances For
          noncomputable def GES.rank {L : Type u_1} (G : GES L) (x : Set G.Event) (e : G.Event) :

          The least number of steps securing e in x.

          Equations
          Instances For
            theorem GES.rank_mem {L : Type u_1} {G : GES L} {x : Set G.Event} {e : G.Event} (h : ∃ (n : ), e G.secApprox x n) :
            e G.secApprox x (G.rank x e)
            theorem GES.rank_le {L : Type u_1} {G : GES L} {x : Set G.Event} {e : G.Event} {n : } (h : e G.secApprox x n) :
            G.rank x e n
            theorem GES.exists_bound {L : Type u_1} {G : GES L} {x : Set G.Event} {X : Finset G.Event} (h : gX, ∃ (n : ), g G.secApprox x n) :
            ∃ (N : ), XG.secApprox x N

            A finite set of secured events is secured uniformly.

            theorem GES.exists_enabling {L : Type u_1} {G : GES L} {x : Set G.Event} (hx : G.isConf x) {e : G.Event} (he : e x) :
            ∃ (Y : Finset G.Event), G.enable Y e Yx

            Every event of a configuration has an enabling set inside it.

            theorem GES.isConf_empty {L : Type u_1} (G : GES L) :

            The empty set is a configuration.

            theorem GES.isConf_secured {L : Type u_1} (G : GES L) {x y : Set G.Event} (hx : G.isConf x) (hy : G.isConf y) (hsub : yx) (hfin : (x \ y).Finite) (hne : x y) :
            ex \ y, G.isConf (x \ {e})

            An event of the gap of greatest rank can be removed.

            theorem GES.isConf_rank_lt {L : Type u_1} (G : GES L) {c : Set G.Event} (hc : G.isConf c) {x : G.Event} (hx : x c) :
            G.isConf ({z : G.Event | z c G.rank c z < G.rank c x} {x})

            The events of c of rank strictly below that of x, together with x, form a configuration.

            def GES.pmapSet {L : Type u_1} {L' : Type u_2} {G : GES L} {H : GES L'} (φ : G.EventOption H.Event) (c : Set G.Event) :

            The image of a set under a partial map on events.

            Equations
            Instances For
              theorem GES.subset_pmapSet {L : Type u_1} {L' : Type u_2} {G : GES L} {H : GES L'} {φ : G.EventOption H.Event} {c : Set G.Event} {u : G.Event} {x : H.Event} (hu : u c) (hx : φ u = some x) :
              x pmapSet φ c
              theorem GES.pmapSet_mono {L : Type u_1} {L' : Type u_2} {G : GES L} {H : GES L'} {φ : G.EventOption H.Event} {c d : Set G.Event} (h : cd) :
              pmapSet φ cpmapSet φ d
              theorem GES.isConf_pmap {L : Type u_1} {L' : Type u_2} {G : GES L} {H : GES L'} (φ : G.EventOption H.Event) (hcon : ∀ {c : Set G.Event}, G.Consistent cH.Consistent (pmapSet φ c)) (hen : ∀ {X : Finset G.Event} {u : G.Event} {x : H.Event}, G.enable X uφ u = some x∃ (Y : Finset H.Event), (∀ yY, y pmapSet φ X) H.enable Y x) {c : Set G.Event} (hc : G.isConf c) :
              H.isConf (pmapSet φ c)

              Configurations transfer along a partial map that carries enabling sets to enabling sets.

              theorem GES.isConf_insert_pmap {L : Type u_1} {L' : Type u_2} {G : GES L} {H : GES L'} (φ : G.EventOption H.Event) {c : Set G.Event} {u : G.Event} {x : H.Event} (hc : G.isConf c) ( : φ u = some x) (hcon : G.Consistent (c {u})) (hback : ∀ (Y : Finset H.Event), (∀ yY, y pmapSet φ c)H.enable Y x∃ (X : Finset G.Event), Xc G.enable X u) (hx : H.isConf (pmapSet φ c {x})) :
              G.isConf (c {u})

              Conversely, an event whose image is enabled extends a configuration, provided enabling sets pull back.

              def GES.toFamily {L : Type u_1} (G : GES L) :

              The configuration family of a general event structure.

              Equations
              Instances For
                @[simp]
                theorem GES.toFamily_Event {L : Type u_1} (G : GES L) :
                @[simp]
                theorem GES.toFamily_Config {L : Type u_1} (G : GES L) :