January 1996, 53pp.
This paper presents a theory of fairness within the framework of Dijkstra's weakest preconditions and Back's action systems. It is general enough to deal with all kinds of fairness, not just strong and weak fairness. A definition of fairness and refinement to deal with non-terminating programs is also obtained. For terminating and non-terminating programs with and without fairness, theorems about program development such as monotonicity are derived and illustrated by means of examples, principally the readers-writers problem.