Data Refinement in a Categorical Setting - Hoare, C (1987)