### How to find if any problem is P, NP, NP-complete, NP-hard or Undecidable?

In this post we will learn how to find if any problem is P, NP, NP-complete, NP-hard or undecidable.  We will follow the below two theorems to understand which type of a problem is.

#### Theorem - 1: When a given Hard Problem (NPC, NPH and Undecidable Problems) is reduced to an unknown problem in polynomial time, then unknown problem also becomes Hard.

Case - 1 When NPC(NP-Complete) problem is reduced to unknown problem, unknown problem becomes NPH(NP-Hard).
Case - 2 When NPH(NP-Hard) problem is reduced to unknown problem, unknown problem becomes NPH(NP-Hard).
Case - 3 When undecidable problem is reduced to unknown problem, unknown problem becomes also becomes undecidable. Remember that Hard problems needs to be converted for this theorem but not the other way.

#### Theorem - 2: When an unknown problem is reduced to an Easy problem(P or NP) in polynomial time, then unknown problem also becomes easy.

Case - 1 When an unknown problem is reduced to a P type problem, unknown problem also becomes P.
Case - 2 When an unknown problem is reduced to a NP type problem, unknown problem also becomes NP. Remember that unknown problems needs to be converted for this theorem to work but not the other way.
QUESTION
For problems X and Y, Y is NP-complete and X reduces to Y in polynomial time. Which of the following is TRUE?
a) If X can be solved in polynomial time, then so can Y.
b) X is NP Complete
c) X is NP Hard
d) X is NP but not necessarily NP complete.