Computational Complexity : a modern approach - Arora, Sanjeev, 1968- (Cambridge University Press, 2009)