\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}