\begin{frame}{Removal of Useless Variables}
\begin{block}{}
A variable $A$ is \emph{useless} for a context-free grammar
if there exists \alert{no} derivation of the form
\begin{talign}
S \; \Rightarrow^* \; uAv \; \Rightarrow^+ \; w \quad\quad \text{with $w \in T^*$.}
\end{talign}
\end{block}
\pause
\begin{goal}{}
Removing production rules that contain a useless variable from a grammar
does not change the generated language.
\end{goal}
\pause
\begin{exampleblock}{}
\vspace{-1ex}
\begin{talign}
S &\to aSb \mid BC \mid \lambda &
A &\to Sb &
B &\to a &
C &\to C
\end{talign}
Which variables are useless?
\begin{itemize}
\pause
\item $A$ because there is no derivation $S \Rightarrow^* uAv$
\pause
\item $C$ because there is no derivation $C \Rightarrow^* w$ with $w \in T^*$
\pause
\item $B$ because $B$ can be reached only together with $C$
\end{itemize}
\pause
The resulting grammar is \alert{$S \to aSb \mid \lambda$}.
\end{exampleblock}
\end{frame}