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

