Mathematics of Program Construction by Roland C. Backhouse