Given an event structure, E, a trace is just a list of events
A trace tr defines an ordering of the events in it. We also call the list indices of
tr, the members of ||tr||, times and we say that event tr[k] occured at
time k.
The message in event x was delivered at time k if
If the message in event x was delivered at some location earlier than any delivery
of the message in event y at that same location, then
Here is a simple lemma about this relation that we will need later.
proof: If a somewhere delivered before b then there is a time k and a location,
p = (loc
tr[k]) such that the message in event a was delivered to location p at time k
but no delivery of the message in event b to location p has occured
before time k. If a delivery of the message in event c to location p has
occured before time k, then c somewhere delivered before b. If not, then
a somewhere delivered before c. This case split is decidable, so the conclusion
follows