A logic for correct program development - Bates, Joseph L. (1981)