9/162
\begin{frame}{Pushdown Automata}
  Next to the input alphabet $\Sigma$, there is now a \emph{stack alphabet} $\Gamma$.
  \medskip
  
  \begin{block}{}
    A \emph{stack} is a finite sequence of elements from $\Gamma$:
    \begin{center}
      \vspace{-1ex}
      \begin{tikzpicture}[default,nodes={rectangle},n/.style={draw,minimum width=6mm,minimum height=4mm,fill=cblue!20},label/.style={scale=0.8}]
        \node (a) [n] at (0mm,0mm) {$a$};
        \node (b) [n] at (.5mm,4mm) {$b$};
        \node (c) [n] at (0mm,8mm) {$c$};
        \node (d) [n] at (.5mm,12mm) {$d$};
        \draw [<-] ($(d)+(-1mm,2mm)$) to[bend left=-40] node [left,label,pos=0.3,xshift=-1mm] {add} ++(-5mm,5mm);
        \draw [->] ($(d)+(1mm,2mm)$) to[bend left=40] node [right,label,pos=0.3,xshift=1mm] {remove} ++(5mm,5mm);
        
        \mpause[1]{\node [align=left] at (5cm,.8cm) {We write \emph{stacks as words}\\[.5ex]\hspace{2cm}dcba\\[.5ex]with the \emph{top-element on the left}.};}
      \end{tikzpicture}
      \vspace{-1.5ex}
    \end{center}
    \emph{Elements added or removed only on the top of the stack.}
  \end{block}
  \pause\pause\medskip
  
  \begin{goal}{}
    A transition reads the topmost element of the stack
    \begin{talign}
      \delta : Q \times (\Sigma \cup \{ \lambda \}) \times \alert{\Gamma} \to 2^{Q \times \alert{\Gamma^*}}
    \end{talign}
    and exchanges it with zero or more new elements.
    \pause\medskip
    
    The nondeterministic choice $\delta(q,\alpha,b)$ must always be \alert{finite}!
  \end{goal}
  \bigskip
\end{frame}