Formal Development of Programs and Proofs - Dijkstra, Edsger W (Addison-Wesley Publishing Company, 1990)