Documentation

EventStructures.Family.Log

Logs #

A log records the choice points of a computation. Compatibility is parametric in the incompatibility relation R.

def Log.compatibleWithLog {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) (σ : Computations F) (l : Set F.Event) :

A computation is compatible with a log l when l is contained in it, its events are compatible with l, and every incompatible event it performs is in l.

Equations
Instances For
    theorem Log.compatibleWithLog_log_subset {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) {σ : Computations F} {l : Set F.Event} (h : compatibleWithLog F R σ l) :
    lσ.fst
    theorem Log.compatibleWithLog_consistent {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) {σ : Computations F} {l : Set F.Event} (h : compatibleWithLog F R σ l) {e e' : F.Event} (he : e σ.fst) (he' : e' l) :
    ¬R e e'
    theorem Log.compatibleWithLog_conflict_in_log {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) {σ : Computations F} {l : Set F.Event} (h : compatibleWithLog F R σ l) {e e' : F.Event} (he : e σ.fst) (hconf : R e e') :
    e l
    def Log.CompatibleComputations {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) (l : Set F.Event) :
    Type u_2

    Computations compatible with a given log.

    Equations
    Instances For
      def Log.CompatibleComputations.val {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) {l : Set F.Event} (σ : CompatibleComputations F R l) :

      The underlying computation.

      Equations
      Instances For
        theorem Log.CompatibleComputations.compatible {L : Type u_1} (F : ConfFamily L) (R : F.EventF.EventProp) {l : Set F.Event} (σ : CompatibleComputations F R l) :
        compatibleWithLog F R (val F R σ) l

        The compatibility proof.

        def Log.labelLog {L : Type u_1} (F : ConfFamily L) (l : Set F.Event) :
        Set L

        The label image of a log.

        Equations
        Instances For
          theorem Log.label_mem_labelLog {L : Type u_1} (F : ConfFamily L) {l : Set F.Event} {e : F.Event} (h : e l) :