24/191
\begin{frame}[fragile]{Simple Core Language (Syntax)}
  \begin{goal}{}
    Boolean expressions:   
    \begin{talign}
      \aboolexp \;\; {::=} \;\;
         \booltrue
           \;\mid\;
         \boolfalse
           \;\mid\;
         (\boolnot{\aboolexp})
           \;\mid\;
         (\booland{\aboolexp}{\aboolexp})
           \;\mid\;
         (\boolor{\aboolexp}{\aboolexp})          
           \;\mid\;
         (\aexp < \aexp)
    \end{talign}
  \end{goal}
  \pause
  
  \begin{exampleblock}{}
    \begin{itemize}
      \item
        $\boolfalse$\pause{}
      \item
        $x < 0$\pause{}
      \item    
        $(y * y < x)$\pause{}
      \item
        $\boolor{{(x < 0)}}{(\boolnot{(x+1 < 0)})}$\pause{}
    \end{itemize}
  \end{exampleblock} 
  
  \begin{block}{Abbreviations}
    \begin{itemize}
      \item
        $\boolequalto{\aexpi{1}}{\aexpi{2}}$ 
          $\;$ is short for: $\;$ 
        $\booland{\boolnot{(\aexpi{1} < \aexpi{2})}}{\boolnot{(\aexpi{2} < \aexpi{1})}}$
        \pause{}
        
      \item
        $\boolnotequalto{\aexpi{1}}{\aexpi{2}}$ 
          $\;$ is short for: $\;$
        $\boolnot{(\boolequalto{\aexpi{1}}{\aexpi{2}})}$   
      
    \end{itemize}
  \end{block}\pause{}  
  
  \begin{alertblock}{Binding priorities}
    same as for logical operators in predicate logic
  \end{alertblock}
  \vspace{10cm}
\end{frame}