Unifying Theories of Programming - Bowen (Springer International Publishing, 2017)