Program construction : calculating implementations from specifications - Backhouse, Roland (John Wiley and Sons, 2003)