\fbox{$\elabsto{e}{e}{\tau}$} \begin{mathpar} \inferrule*[left=S-Var]{ \Gamma(x) = \tau }{ \elabsto{x}{x}{\tau} } \inferrule*[left=S-Int]{ n \in \ints }{ \elabsto{n}{n}{\tint} } \inferrule*[left=S-Lam]{ \elabsto{e}{e'}{\tau'} }{ \elabsto{\vlam{x}{e}}{\vlam{x}{e'}}{\tau \rightarrow \tau'} } \inferrule*[left=S-Arr]{ \elabsto{e_0}{e_0'}{\tint} \\ \ldots \\ \elabsto{e_{n-1}}{e_{n-1}'}{\tint} }{ \elabsto{\vectoren}{\vectorgen{e_0',\ldots,e_{n-1}'}}{\tarray} } \inferrule*[left=S-App]{ \elabsto{e_1}{e_1'}{\tau \rightarrow \tau'} \\ \elabsto{e_2}{e_2'}{\tau} }{ \elabsto{e_1~e_2}{e_1'~e_2'}{\tau'} } \inferrule*[left=S-Ref]{ \elabsto{e_1}{e_1'}{\tarray} \\ \elabsto{e_2}{e_2'}{\tint} }{ \elabsto{\aref{e_1}{e_2}}{\checkedref~e_1'~e_2'}{\tint} } \end{mathpar}