Move Crunch
This commit is contained in:
parent
eab6907624
commit
3398cccd96
56
unify.tex
56
unify.tex
@ -574,6 +574,34 @@ Their upper and lower bounds are fresh type variables.
|
||||
\end{array}
|
||||
\end{array}
|
||||
$
|
||||
\\\\
|
||||
\rulename{Crunch}
|
||||
& $\begin{array}[c]{@{}ll}
|
||||
\begin{array}[c]{l}
|
||||
\wildcardEnv \vdash C \cup \, \set{ \tv{a} \doteq \wctype{\Delta', \set{\overline{\wildcard{X}{\type{U}}{\type{L}}}}}{C}{\ol{S}} } \\
|
||||
\hline
|
||||
\vspace*{-0.4cm}\\
|
||||
\wildcardEnv \vdash
|
||||
C \cup \set{ \tv{a} \doteq \wctype{\Delta'}{C}{[\ol{U}/\ol{X}]\ol{S}}}
|
||||
\end{array}
|
||||
&\begin{array}[c]{l}
|
||||
\ol{U} = \ol{L}
|
||||
\end{array}
|
||||
\end{array}$
|
||||
\\\\
|
||||
\rulename{Crunch}
|
||||
& $\begin{array}[c]{@{}ll}
|
||||
\begin{array}[c]{l}
|
||||
\wildcardEnv \vdash C \cup \, \set{ \tv{a} \lessdot \wctype{\Delta', \set{\overline{\wildcard{X}{\type{U}}{\type{L}}}}}{C}{\ol{S}} } \\
|
||||
\hline
|
||||
\vspace*{-0.4cm}\\
|
||||
\wildcardEnv \vdash
|
||||
C \cup \set{ \tv{a} \lessdot \wctype{\Delta'}{C}{[\ol{U}/\ol{X}]\ol{S}}}
|
||||
\end{array}
|
||||
&\begin{array}[c]{l}
|
||||
\ol{U} = \ol{L}
|
||||
\end{array}
|
||||
\end{array}$
|
||||
\end{tabular}}
|
||||
\end{center}
|
||||
\caption{Constraint reduce rules}\label{fig:reduce-rules}
|
||||
@ -1148,34 +1176,6 @@ C \cup \set{ \tv{a} \doteq \bot }
|
||||
%\text{length}( \overline{\tv{a} \lessdot \type{T}} ) > 1
|
||||
\end{array}
|
||||
\end{array}$
|
||||
\\\\
|
||||
\rulename{Crunch}
|
||||
& $\begin{array}[c]{@{}ll}
|
||||
\begin{array}[c]{l}
|
||||
\wildcardEnv \vdash C \cup \, \set{ \tv{a} \doteq \wctype{\Delta', \set{\overline{\wildcard{X}{\type{U}}{\type{L}}}}}{C}{\ol{S}} } \\
|
||||
\hline
|
||||
\vspace*{-0.4cm}\\
|
||||
\wildcardEnv \vdash
|
||||
C \cup \set{ \tv{a} \doteq \wctype{\Delta'}{C}{[\ol{U}/\ol{X}]\ol{S}}}
|
||||
\end{array}
|
||||
&\begin{array}[c]{l}
|
||||
\ol{U} = \ol{L}
|
||||
\end{array}
|
||||
\end{array}$
|
||||
\\\\
|
||||
\rulename{Crunch}
|
||||
& $\begin{array}[c]{@{}ll}
|
||||
\begin{array}[c]{l}
|
||||
\wildcardEnv \vdash C \cup \, \set{ \tv{a} \lessdot \wctype{\Delta', \set{\overline{\wildcard{X}{\type{U}}{\type{L}}}}}{C}{\ol{S}} } \\
|
||||
\hline
|
||||
\vspace*{-0.4cm}\\
|
||||
\wildcardEnv \vdash
|
||||
C \cup \set{ \tv{a} \lessdot \wctype{\Delta'}{C}{[\ol{U}/\ol{X}]\ol{S}}}
|
||||
\end{array}
|
||||
&\begin{array}[c]{l}
|
||||
\ol{U} = \ol{L}
|
||||
\end{array}
|
||||
\end{array}$
|
||||
% \\\\ % The force rule is unnecessary because every type placeholder has an upper bound Object (a <. Object) The match rule eliminates those wildcards
|
||||
% \rulename{Force} &$
|
||||
% \begin{array}[c]{@{}ll}
|
||||
|
Loading…
Reference in New Issue
Block a user