A problem is in NP if there exists a polynomial-time algorithm to verify a certificate for the problem.
A problem is NP-complete if it is NP, and every other problem in NP can be reduced to it in polynomial time.
If every instance of known NP-complete problem, A, can be reduced to an instance of another problem, B, such that:
then B is NP-complete. Remember, A and B are decision problems.
Two things to prove:
Algorithm A for some problem, PA, in NP runs in polynomial time on input x and certificate y, and produces a yes/no answer.
Can go from SAT to 3-CNF SAT