How to prove it a structured approach - Velleman, Daniel J. (UK Cambridge, 2016)