The design of well-structured and correct programs - Alagić, Suad (Springer Verlag, 1978)