Predicate Calculus and Program Semantics by Carel S. Scholten & Edsger W. Dijkstra