A method of program refinement. - Grundy, Jim (1993)