Towards an object-oriented refinement calculus - Jamie Barry Nathan Shield (2004)