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