An event structure with binary conflict; events carry
labels in Label. The finite causes axiom is not assumed.
- Event : Type u_2
- poEvent : PartialOrder self.Event
- label : self.Event → Label
Instances For
@[instance_reducible]
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.
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.
e₁ and e₂ are in minimal conflict when they conflict and no pair of
events below them does.
Equations
Instances For
Minimal conflict is symmetric.
theorem
PES.minimalConflict_conflict
{L : Type u_1}
(es : PES L)
{e₁ e₂ : es.Event}
(h : es.minimalConflict e₁ e₂)
:
es.conflict e₁ e₂
If (e₁, e₂) are in minimal conflict, then e₁ and e₂ conflict.
Decidable equality on events and a decidable strict order.
- decEq : DecidableEq es.Event
- decLt : DecidableRel fun (x1 x2 : es.Event) => x1 < x2