Formal definition of NP-completeness and polynomial-time reductions to prove additional languages are NP-complete once one NP-complete language has been established.
See All 27 Episodes of "Theory of Computation - Fall 2011"