75/162
\begin{frame}{From Acceptance with Empty Stack To Final States}
  \begin{goal}{}
    Every NPDA $M$ be transformed into NPDA $N$ such that
    \begin{itemize}
      \item it has \emph{a single final state} $F = \{\,q_f\,\}$, 
      \item \emph{final state is reached if and only if the stack is empty},
      \item $L_{\alert{\lambda}}(M) = L(N) = L_\lambda(N)$.
    \end{itemize}
  \end{goal}
  \pause
  
  \begin{block}{}
    We add fresh states $\{\,\alert{\widehat{q_0},q_f}\,\}$ to $Q$ and stack element $\alert{\hat{z}}$ to $\Gamma$.
    \begin{itemize}\setlength{\itemsep}{-0.5ex}
    \pause
      \item Add a transition $\widehat{q_0} \stackrel{\lambda[z/z\hat{z}]}{\longrightarrow} q_0$.\\
        (Intuition: $\hat{z}$ marks the bottom of the stack.)
    \pause
      \item Add transition $q \stackrel{\lambda[\hat{z}/\lambda]}{\longrightarrow} q_f$ for every state $q \in Q \setminus \{\, \widehat{q_0},q_f \,\}$.\\
        (Intuition: switch to final state $q_f$ when stack is empty.)
    \pause
      \item Define $\widehat{q_0}$ as starting state and $F = \{\, q_f \,\}$.
    \end{itemize}
  \end{block}
\end{frame}