FIRING RULES OR GUARDS
(1) Define for each UC a predicate (firing rule or guard) which is a function of the state of the computation
(2) The UC may execute whenever
(3) If F and S are "complete" for each UC a minimum schedule results
(4) if F and S are "optimistic" then the UC's must follow "commit" protocols to validate execution order to obtain a minimum schedule
Distributed databases - cost of assembly of "complete" S
Distributed/parallel simulations