Superposition Refinement of Parallel Algorithms

Abstract Superposition refinement enhances an algorithm by superposing one computation mechanism onto another mechanism, in a way that preserves the behavior of the original mechanism. Superposition seems to be particularly well suited to the development of parallel and distributed programs. An originally simple sequential algorithm can be extended with mechanisms that distribute control and state information to many processes, thus permitting efficient parallel execution of the algorithm. We will in this paper show how superposition of parallel algorithms is expressed in the refinement calculus. We illustrate the power of this method by a case study, showing how a distributed broadcasting algorithm is derived through a sequence of superposition refinements.