The book’s second part contains a detailed survey of important methods in this field, such as VDM, and the methods due to Abadi & Lamport, Hehner, Lynch & Reynolds, Back’s refinement calculus, and Z. All these methods are carefully analysed, and shown either to be incomplete, with counterexamples to their application, or to be always applicable whenever data refinement holds. This Is shown by proving, for the first time, that all these methods can be described and analysed in terms of two simple notions: forward and backward simulation.
The book is self-contained, going from advanced undergraduate level and taking the reader to the state of the art in methods for proving simulation.