Claim Under the assumptions above, if there is an algorithm for checking a problem then there is an algorithm for solving the problem. Before going on, you should think a bit about how to do this. For this claim the assumption that the solution of each instance is unique is not necessary; but both of the others are. If you had a program that checks whether a proposed solution to an instance of a problem is correct and another that systematically generates every instance of the problem along with every possible solution, how could you use them (as subroutines) to build a program that, when given an instance, was guaranteed to ?nd a correct solution to that problem under the assumption that such a solution always exists?