Proof verification and the hardness of approximation problems | Synapse