Theory of CP violation