\section{Well-formed Expressions} \label{sec:wellformedness} { \renewcommand{\Ref}{\primi{Ref}{}} \newcommand{\Val}{\primi{Val}{}} \newcommand{\Void}{\primi{Void}{}} \newcommand{\Weak}{\primi{Weak}{}} \renewcommand{\withenv}[2]{{#2}\,:\,{#1}} \begin{comment} \withenv{\Ref}{\llang{ref $\;x$}} & \withenv{\Val}{x}& \withenv{\Void}{\llang{ignore $\;x$}} & x \in \mathscr X\\ & \withenv{\Val}{z}& \withenv{\Void}{\llang{ignore $\;z$}} & z \in \mathbb N \\ & \trule{\withenv{\Val}{l},\quad\withenv{\Val}{r}} {\withenv{\Val}{l\oplus r}} & \trule{\withenv{\Val}{l},\quad\withenv{\Val}{r}} {\withenv{\Void}{\llang{ignore $\;l\oplus r$}}} & \\ & & \withenv{\Void}{\llang{skip}} & \\ & \trule{\withenv{\Ref}{l},\quad\withenv{\Val}{r}} {\withenv{\Val}{\llang{$l\;$ := $\; r$}}} & \trule{\withenv{\Ref}{l},\quad\withenv{\Val}{r}} {\withenv{\Void}{\llang{ignore ($l\;$ := $\; r$})}} & \\ & & \withenv{\Void}{\llang{read ($x$)}} & \\ & & \trule{\withenv{\Val}{e}}{\withenv{\Void}{\llang{write ($e$)}}} & \\[2mm] \trule{\withenv{\Void}{s_1},\quad\withenv{a}{s_2}}{\withenv{a}{\llang{$s_1\;$;$\;s_2$}}}& \trule{\withenv{\Val}{e},\quad\withenv{a}{s_1},\quad\withenv{a}{s_2}}{\withenv{a}{\llang{if $\;e\;$ then $\;s_1\;$ else $\;s_2$}}}& \trule{\withenv{\Val}{e},\quad\withenv{\Void}{s}}{\withenv{\Void}{\llang{while $\;e\;$ do $\;s$}}}& \\[2mm] & \trule{\withenv{\Val}{e},\quad\withenv{\Void}{s}}{\withenv{\Void}{\llang{repeat $\;s\;$ until $\;e$}}} & & \end{comment} \renewcommand{\arraystretch}{3} \[ \begin{array}{cc} \trule{x \in \mathscr X}{\withenv{\Weak}{x}} & \trule{z \in \mathbb N }{\withenv{\Weak}{z}}\\ \trule{\withenv{\Val}{l},\quad\withenv{\Val}{r}} {\withenv{\Weak}{l\oplus r}} & \withenv{\Weak}{\llang{skip; $\;\bot$}} \\ \trule{\withenv{\Ref}{l},\quad\withenv{\Val}{r}} {\withenv{\Weak}{\llang{$l\;$ := $\; r$}}} & \withenv{\Weak}{\llang{read ($x$); $\;\bot$}} \\ \trule{\withenv{\Val}{e}}{\withenv{\Weak}{\llang{write ($e$); $\;\bot$}}} & \trule{\withenv{\Val}{e},\quad\withenv{\Void}{s}}{\withenv{\Weak}{\llang{while $\;e\;$ do $\;s\;$ od; $\;\bot$}}} \\ \trule{\withenv{\Val}{e},\quad\withenv{\Void}{s}}{\withenv{\Weak}{\llang{(repeat $\;s\;$ until $\;e$); $\;\bot$ }}} & \end{array} \] }