NP-Hardness
Definition: A problem A is NP-hard if every problem in NP is reducible to it in polynomial time.
If an NP-hard problem has a polynomial time algorithm, then every problem in NP has a polynomial time algorithm.
To show a problem is NP-hard it suffices to show that some NP-hard problem is reducible to it. Why? Transitivity of polynomial time reduction.