The Mondex Electronic Purse is an outstanding example of industrial scale formal refinement, and was the first verification to achieve ITSEC level E6 certification. A formal abstract model and a formal concrete model were developed, and a formal refinement was hand-proved between them. Nevertheless, certain requirements issues were set beyond the scope of the formal development, or handled in an unnatural manner. The retrenchment Tower Pattern is used to address one such issue in detail: the use of a hash function rather than a total injective function when clearing the highly constrained purse logs. A retrenchment is constructed from the lowest level model to a model using a hash, and is then lifted to create two refinement developments, working at different levels of detail, and connected via retrenchments. The tower development is appropriately validated, vindicating the design used.
@inproceedings(SS-ISOLA06, author = "Richard Banach and Czeslaw Jeske and Michael Poppleton and Susan Stepney", title = "Retrenching the Purse: hashing injective CLEAR codes, and security properties", crossref = "ISOLA06" ) @proceedings(ISOLA06, title = "ISOLA06, Cyprus, November 2006", booktitle = "ISOLA06, Cyprus, November 2006", publisher = "IEEE", year = 2006 )