A theory and practice of program development - Andrews, Derek (Formal approaches to computing and information technology, 1997)