Boolean logic treats disjunction and conjunction symmetrically and algebraically. The corresponding operations for computation are respectively nondeterminism (choice) and concurrency. Petri nets treat these symmetrically but not algebraically, while event structures treat them algebraically but not symmetrically. Here we achieve both via the notion of an event space as a poset with all nonempty joins representing concurrence and a top representing the unreachable event. The symmetry is with the dual notion of state space, a poset with all nonempty meets representing choice and a bottom representing the start state. The algebra is that of a parallel programming language expanded to the language of full linear logic, Girard’s axiomatization of which is satisfied by the event space interpretation of this language. Event spaces resemble finite dimensional vector spaces in distinguishing tensor product from direct product and in being isomorphic to their double dual, but differ from ...
Vaughan R. Pratt