next up previous
Next: Case Study: A Digital Up: Non-Atomic Refinement Previous: Non-Atomic Refinement


Bibliographical Notes

Ideas on refining the atomicity of actions go back to Lipton [147]. Such atomicity refinement has also been studied in TLA by Lamport and Schneider [140] and Cohen and Lamport [52].

Within the action systems formalism [13,12] there has also been considerable work on this subject. Ralph Back's initial work is described in [10] and [11]. This has been extended by Sere and Walden [176] (for action systems with procedures) and Büchi and Sekerinski [42] (for concurrent object oriented action systems).

Non-atomic refinement has been studied extensively in the context of process algebras, usually under the term action refinement [4,203,98]. De Bakker and de Vink in [57] provide a survey. There has also been work in a Petri net setting [38]. The issue in a process algebra is the use of an interleaving model of concurrency, which is incompatible with action refinement. In particular, if $ (a\Vert b)$ is expanded as $ (a;b) + (b;a)$ then an action refinement of $ b$ into $ (b_1 ; b_2)$ breaks the requirement that semantic equivalences should be congruences with respect to refinement.

However, in Z (and Object-Z) there are no such constraints because there are no global behavioural constructors such as $ \Vert$ in a process algebra. In fact, although there is a $ \Vert$ primitive in Object-Z as we shall see later, this is a schema calculus operator which builds a single new operation rather than defining a temporal constraint over existing behaviours.

The issue of non-atomic refinement in a state-based language was raised in [210], and the results in this chapter were first formulated in [64].


next up previous
Next: Case Study: A Digital Up: Non-Atomic Refinement Previous: Non-Atomic Refinement
E.A.Boiten 2002-11-22