Polynomial-time reductions and transformations