Computational complexity a modern approach - Arora, Sanjeev; Barak, Boaz (Cambridge University Press, 2009)