The compiler runs through a static simulation of the program at compile time. A static simulation state captures a conservative approximation of the corresponding dynamic simulation state as follows:
We modify the functions from the dynamic simulation as follows:
We define the operator for , , and as follows:
We define a function , where and are sets of tuples . We assume the existence of a similar function for .
Finally, we extend the state transition function to static states. The definition of ensures that the set of sensitized events, currently waiting events and delayed events are a superset of the corresponding event sets in dynamic simulation. We define by , where
if , then
Let in
if and , then
Let
in
if and , then
The static simulation of an event graph is a sequence of states, , where