LARA

Type Rules for Statements and Expressions

Type Rule for Method Calls

Method calls are just function applications:

\begin{equation*}
\frac{\Gamma \vdash e_1 : T_1, \ldots, e_n : T_n, m : T_1 \times \ldots \times T_n \to T}
     {\Gamma \vdash m(e_1,\ldots,e_n) : T}
\end{equation*}

Type Rule for Assignment

Type Rule for If Statement

Type Rule for Conditional Expression

Type Rule for While Statement