Mathematics Of Program Construction by Olaf Burkart