Concurrency Theory: Lecture 8, 13 February 2018 ----------------------------------------------- ES = (E, <=, #) - E is a set of events - <= is a partial order - # is the conflict relation, inherited via <=: e # e' and e' <= e'' implies e # e" - Concurrency relation - e co e' if not (e <= e' or e' <= e or e # e') - Configuration C is a set of events, describes a computation - Set of events that have "happened till now" - C is downward closed: e in C and e' <= e implies e' in C as well - C is conflict free: only compatible events can happen together - Configurations correspond to traces - Configurations ordered by inclusion are isomorphic to traces ordered by trace extension - Algebraic characterization - Prime configuration: c is prime if whenever c is included in the union of a set of configurations C, c is included in some c' in C - Prime configurations are those of the form downarrow(e), for each event e in E - Configurations ordered by inclusion form a prime algebraic coherent complete partial order - Prime configurations form an event structure - Events are the prime configurations - <= is given by inclusion of configurations - c # c' if c and c' do not have a common upper bound in the original event structure - The configuration space of this event structure is isomorphic to the one we started with - Hence these event structures are called "prime" event structures - Difficult to generalize to non-safe nets: - Parallel switch: t or t' can trigger t" - Configurations are not prime algebraic coherent cpo ---------------------------------------------------------------------- Unfoldings and complete prefixes: Cut - Maximal pairwise concurrent set of places Extension of C - All transitions in the unfolding not in C but compatible with C - Isomorphic to the unfolding of the net with Min = Mark(C) Lemma: If Mark(C) = Mark(C'), extension of C is isomoprhic to extenion of C' Complete prefix - Prefix of unfolding containing all reachable markings and an occurrence of each fireable transition - For a safe net, only bounded number of reachable markings, so finite complete prefix exists. How to find it efficiently? Local configuration - Downarrow(e) for event e = {e' | e' <= e} Intuition: - If Mark(Downarrow(e)) = Mark(Downarrow(e')) for event e' added earlier, no need to expand below e - e is a "cutoff" event Example in the paper shows that this has to be done carefully. To fix the example, McMillan requires size of Downnarrow(e') to be strictly less than size of Downarrow(e) Generalize this to adequate order << on configurations 1. << is well founded 2. C proper subset of C' implies C << C' 3. Preserved by extensions: C << C' impliex C+E << C'+Iso(E) for every extension E of C Note that McMillan's size order is an adequate order Modified unfolding algorithm: - At each step of expansion, choose next event to be minimal wrt adequate order - After adding an event, check and mark it if it is a cutoff event - Never expand "below" a cutoff event Theorem: This algorithm builds a finite complete prefix Claim 1: The unfolding is finite Define depth of a transition and argue that the set of elements upto depth k is finite Claim 2: Every reachable marking is represented Go backwards via cutoff events and appeal to well-foundedness of << Claim 3: Every fireable transition is represented Proof similar to that of Claim 2 Why go beyond McMillan's size order? - Example that requires exponential size unfolding to represent n reachable markings Extend McMillan's order: if sizes equal, compare by lexicographic order of Parikh vector (see paper for details) - Fixes the earlier example - Still a partial order: other bad examples exist Ideal to find an adequate total order - One does exist for 1-safe nets - Unclear how to find such a total order for bounded but not - 1-safe nets ======================================================================