Semantic Techniques in Quantum Computation by Simon Gay