Substitution Rule
Eliminating Useless Productions
A variable could be useless for two (2) reasons:
It cannot be reached from the start symbol;
It cannot derive a terminal string.