An event structure with binary conflict.
- Event : Type u_1
- poEvent : PartialOrder self.Event
Instances For
Equations
- es.instPartialOrderEvent = es.poEvent
Consistency relation: two events are consistent if they are not in conflict.
Equations
- es.consistent e₁ e₂ = ¬es.conflict e₁ e₂
Instances For
Consistency is reflexive.
Consistency is symmetric.
Concurrency relation: two events are concurrent if they are consistent and causally independent.
Equations
- es.concurrent e₁ e₂ = (es.consistent e₁ e₂ ∧ ¬e₁ ≤ e₂ ∧ ¬e₂ ≤ e₁)
Instances For
Concurrency is irreflexive.
Concurrency is symmetric.
Minimal conflict relation: (e₁, e₂) is a minimal conflicting pair if they conflict and there is no proper reduction of either that still produces a conflict. Formally: e₁ # e₂ and for all e₁' ≤ e₁, e₂' ≤ e₂, if e₁' # e₂' then e₁' = e₁ ∧ e₂' = e₂
Equations
Instances For
Minimal conflict is symmetric.
If (e₁, e₂) is a minimal conflict, then e₁ and e₂ conflict.
If (e₁, e₂) is a minimal conflict and e₁' ≤ e₁, e₂' ≤ e₂ with e₁' ## e₂', then e₁' = e₁ and e₂' = e₂.
Decidability data for an event structure: decidable equality on events and decidable strict order. Together these yield decidable causality.
- decEq : DecidableEq es.Event
- decLt : DecidableRel fun (x1 x2 : es.Event) => x1 < x2