\begin{figure*}[ht]
\fbox{\parbox{\textwidth}{
$\Sigma; \Gamma \rtyps{q}{q'} e : B$ \hspace{1.5em}
Given resource metric $M$, expression $e$ has annotated type $A$\\
\mbox{}\hspace{7.8em}under signature $\Sigma$ in context $\Gamma$.}}
\begin{center}
  \def \MathparLineskip {\lineskip=0.45cm}
  \begin{mathpar}
 \Rule{L:Var}
      {q = q' + \cVar }
      {\Sigma; x:B \rtyps{q}{q'} x:B}

 \Rule{L:App}
      {\funold[p/p']{A}{B} \in \Sigma(f)
      \\  q = p + \cApp{}
      }
      {\Sigma;x{:}A \rtyps{q}{p'}  \appS{f}{x} : B}

 \Rule{L:Let}
      {   \Sigma;\Gamma_1 \rtyps{p} {p'} e_1 : A
       \\ \Sigma;\Gamma_2,x{:}A \rtyps{p'}{q'} e_2 : B
       \\ q = p + \cLet{}
      }
      {\Sigma;\Gamma_1,\Gamma_2 \rtyps{q}{q'}  \letS{e_1}{x}{e_2} : B}

 \Rule{L:Bconst}
      { e \in \{\trueS,\falseS\}
      \\ q =  \cB + q'
      }
      {\Sigma;\Nil \rtyps{q}{q'} b : \boolT}

 \Rule{L:Cond}
      {   \Sigma;\Gamma \rtyps{q_1}{q'} e_t : B
       \\ \Sigma;\Gamma \rtyps{q_2}{q} e_f : B
       \\ q = \cCond1 + q_1
       \\ q = \cCond2 + q_2
      }
      {\Sigma; \Gamma,x:\boolT \rtyps{q}{q'} \ifS{x}{e_1}{e_2} : B}

 \Rule{L:Pair}
      { q = \cPair + q'}
      {\Sigma;x_1:A_1,x_2:A_2 \rtyps{q}{q'}  \pairS{x_1}{x_2} : A_1*A_2}

 \Rule{L:MatP}
    { \Sigma; \Gamma,x_1{:}A_1,x_2{:}A_2 \rtyps{p}{q'} e' : B
    \\ q = \cMatP + p
    }
    {\Sigma; \Gamma,x : A_1 * A_2 \rtyps{q}{q'} \matchPS{e}{x_1}{x_2}{e'} : B}

 \Rule{L:Nil}
      { q = \cNil + q'
      }
      {\Sigma;\Nil \rtyps{q}{q'}  \nilS : \li[p]{A}}

 \Rule{L:Cons}
      {
        q = \cCons + p + q'
      }
      {\Sigma;x_1 : A,x_2 : \li[p]{A}\rtyps{q}{q'} \consS{x_1}{x_2} : \li[p]{A}}

 \Rule{L:MatL}
      { \Sigma;\Gamma \rtyps{q_1}{q'} e_1 : B
       \\ \Sigma;\Gamma,x_1 : A,x_2 : \li[p]{A} \rtyps{q_2}{q'} e_2 : B
       \\ q = \cMatL1 + q_1
       \\ q + p = \cMatL2 + q_2
      }
      {\Sigma;\Gamma,x{:}\li[p]{A} \rtyps{q}{q'}
        \matchLS{x}{e_1}{x_1}{x_2}{e_2}
       : B}

 \Rule{L:Share}
      {\Sigma;\Gamma,x_1 : A_1,x_2 : A_2 \rtyps{q}{q'} e : B
            \\ A \share (A_1,A_2)
      }
      {\Sigma;\Gamma,x : A \rtyps{q}{q'} \shareS{x}{x_1}{x_2}{e} : B }

 \Rule{L:Supertype}
    {\Sigma;\Gamma,x{:}A \rtyps{q}{q'} e : B
    \\ A' \subtype A
    }
    {\Sigma;\Gamma,x{:}A' \rtyps{q}{q'} e : B}

  \Rule{L:Subtype}
  {\Sigma;\Gamma \rtyps{q}{q'} e : B 
  \\ B \subtype B'
  }
  {\Sigma;\Gamma \rtyps{q}{q'} e : B'}

  \Rule{L:Relax}
  {\Sigma;\Gamma \rtyps{p}{p'} e : B
 \\ q \geq p
 \\ q - p \geq q' - p'
  }
  {\Sigma;\Gamma \rtyps{q}{q'} e : B}

  \Rule{L:Weak}
  {\Sigma;\Gamma \rtyps{q}{q'} e : B
  }
  {\Sigma;\Gamma,x{:}A \rtyps{q}{q'} e : B}

  \end{mathpar}
\end{center}
  \caption{Linear resource-annotated type rules.}
  \label{fig:trulesLin}
\end{figure*}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "main"
%%% End:
