Abstract.
A theory of fairness which supports the specification and development of a wide variety of “fair” systems is developed. The definition of fairness presented is much more general than the standard forms of weak and strong fairness, allowing the uniform treatment of many different kinds of fairness within the same formalism, such as probabilistic behaviour, for example. The semantic definition of fairness consists of a safety condition on finite sequences of actions and a liveness or termination condition on the fair infinite sequences of actions. The definition of the predicate transformer of a fair action system permits the use of the existing framework for program development, including the existing definitions of refinement and data refinement, thus avoiding an ad hoc treatment of fairness. The theory includes results that support the modular development of fair action systems, like monotonicity, adding skips, and data refinement. The weakest precondition and the weakest errorfree precondition are unified, so that in particular a standard action system is a special case of a fair action system. The results are illustrated with the development from specification of an unreliable buffer.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received: 3 January 2000 / 17 November 2002
Rights and permissions
About this article
Cite this article
Wabenhorst, A. Stepwise development of fair distributed systems. Acta Informatica 39, 233–271 (2003). https://doi.org/10.1007/s00236-002-0103-6
Issue Date:
DOI: https://doi.org/10.1007/s00236-002-0103-6