Under consideration for publication in Formal Aspects of Computing Retrenchment and Promotion in Z Richard Banach 1 , Michael Poppleton 2 , Czeslaw Jeske 1 and Susan Stepney 3 1 Department of Computer Science, University of Manchester, Manchester M13 9PL, UK, {banach,cj}@cs.man.ac.uk, 2 School of Electronics and Computer Science, University of Southampton, Highfield, Southampton SO17 1BJ, UK, mrp@ecs.soton.ac.uk, 3 Department of Computer Science, University of York, Heslington, York YO10 5DD , susan.stepney@cs.york.ac.uk Abstract. Promotion, a familiar data structuring mechanism in Z, is reviewed. Retrenchment, a generalization of classical data refinement, is reviewed and presented in Z. A theory of the promotion of retrenchments in Z is devel- oped, which supports a variety of requirements scenarios and demonstrates that promotion is also a useful tool in the requirements engineering toolkit of retrenchment. This amplifies its utility in the pure refinement arena, when refine- ment and retrenchment are made to interwork. A simple case study of promoted retrenchment is presented to illustrate the theory. Keywords: Formal Specification, Mondex, Promotion, Refinement, Retrenchment. 1. Introduction In Z, promotion [WD96, DB01, Lup91] is a specification mechanism that enables a succinct description of structured states and their operations. A specification of an individual system component is given, and separately, the specifi- cation of a module containing a collection of instances of that component is also given. Any module-level operation concerning only one contained component, is then defined in terms of the component-level operation, in a generic manner. Thus, under the constraint of no dependency on other components, the component-level specification simply factors through the module level. Many application domains require the hierarchic structuring of collections of components within containers, for example a bank account (in the context of the bank, which contains many such accounts), or an aircraft (in the context of the air traffic control model containing many aircraft). Moreover this structuring concept is part of the object- oriented philosophy. Promotion has been used in real industrial applications, e.g. the Mondex purse [SCW00], and a version has been defined in the B Language [ABDM00]. Correspondence and offprint requests to: Richard Banach, School of Computer Science, University of Manchester, Oxford Road, Manchester, M13 9PL, U.K. email: banach@cs.man.ac.uk