Abstract

When reasoning about parallel programs we would like to combine fixed-point laws for unrolling recursion with expansion laws for parallel composition. Algebraic manipulation using this combination is dangerous, because of the need to stay faithful to the assumption that parallel processes are executed fairly. We give an example of a finite-state parallel system in which the combination of fixed-point laws with a Milner-style expansion law causes a mismatch with fair parallel composition. Similar difficulties are well known in the literature, and it is traditional to conclude that the problem is caused by the unbounded non-determinism and inherent lack of continuity associated with fairness. Rather than laying the blame on fairness, we propose a new form of fair expansion for processes. Every finite-state process has a fair expansion, describing its behavior when run for an arbitrary finite number of steps. We show that fair expansion interacts smoothly with recursion and with parallel composition. We provide a fair expansion rule for obtaining a valid expansion for a parallel system from fair expansions for its components. We establish a theorem on the recursive characterization of parallel compositions of recursive processes, in what amounts to a fair parallel generalization of Bekic's theorem concerning simultaneous recursive definitions. We also discuss how to incorporate local variables.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call