Soundness method call
This commit is contained in:
parent
05b6b84e1e
commit
ba4b78b57b
@ -76,7 +76,7 @@ So $\sigma(\ol{\tv{r}}) = \ol{T} = \ol{\wcNtype{\Delta}{N}}$ and $\sigma(\tv{r})
|
|||||||
\Delta, \Delta', \overline{\Delta} \vdash \ol{S} <: [\ol{S}/\ol{X}]\ol{U'} \\
|
\Delta, \Delta', \overline{\Delta} \vdash \ol{S} <: [\ol{S}/\ol{X}]\ol{U'} \\
|
||||||
\Delta, \Delta', \overline{\Delta} \vdash \ol{S} \ \ok \\
|
\Delta, \Delta', \overline{\Delta} \vdash \ol{S} \ \ok \\
|
||||||
\label{sp:4}
|
\label{sp:4}
|
||||||
\Delta, \Delta' \vdash \ol{T} <: \ol{\wcNtype{\Delta}{N}} \\
|
\Delta, \Delta' \vdash \ol{T} <: \ol{\wcNtype{\Delta}{N}}
|
||||||
\end{gather}
|
\end{gather}
|
||||||
\ref{sp:1} is guaranteed by the constraints $\ol{r} \lessdot \ol{T}$.
|
\ref{sp:1} is guaranteed by the constraints $\ol{r} \lessdot \ol{T}$.
|
||||||
$\ol{\tv{r}} \lessdot \ol{T}$ says that there is a $\Delta'$ with
|
$\ol{\tv{r}} \lessdot \ol{T}$ says that there is a $\Delta'$ with
|
||||||
@ -84,8 +84,13 @@ So $\sigma(\ol{\tv{r}}) = \ol{T} = \ol{\wcNtype{\Delta}{N}}$ and $\sigma(\tv{r})
|
|||||||
|
|
||||||
If $\overline{\sigma(\tv{r}) = \wcNtype{\Delta}{N}}$
|
If $\overline{\sigma(\tv{r}) = \wcNtype{\Delta}{N}}$
|
||||||
then \ref{sp:1} due to lemma \ref{lemma:unifyCC}.
|
then \ref{sp:1} due to lemma \ref{lemma:unifyCC}.
|
||||||
\ref{sp:4} is not using $\ol{\Delta}$.
|
Let $\sigma(\ol{\tv{r}}) = \ol{T} = \ol{\wcNtype{\Delta}{N}}$, then
|
||||||
$\sigma(\ol{\tv{r}}) = \ol{T} = \ol{\wcNtype{\Delta}{N}}$
|
\ref{sp:4} by lemma \ref{lemma:unifySoundness} and \ref{lemma:tvsNoFV}.
|
||||||
|
The environments $\overline{\Delta}$ are not needed,
|
||||||
|
because none of the variables in $\text{dom}(\overline{\Delta})$ are used in $\ol{T}$ or $\Delta, \Delta'$.
|
||||||
|
|
||||||
|
\ref{sp:3}
|
||||||
|
%TODO: S is not in \sigma. They are generated by a local type inference algorithm
|
||||||
|
|
||||||
Method calls generate multiple constraints that share the same wildcard placeholders ($\ol{\wtv{a}}$, $\ol{\wtv{b}}$).
|
Method calls generate multiple constraints that share the same wildcard placeholders ($\ol{\wtv{a}}$, $\ol{\wtv{b}}$).
|
||||||
%TODO: show that only those wildcards in the parameters and receiver type are used ($\ol{\Delta}$)
|
%TODO: show that only those wildcards in the parameters and receiver type are used ($\ol{\Delta}$)
|
||||||
@ -106,9 +111,6 @@ Method calls generate multiple constraints that share the same wildcard placehol
|
|||||||
% then they are all contained in $\Delta, \Delta', \overline{Delta}$, which makes S ok true! (does it?)
|
% then they are all contained in $\Delta, \Delta', \overline{Delta}$, which makes S ok true! (does it?)
|
||||||
% and due to r <. T, the judgements N <: [S/X]U and T_r <: \Delta.N are true!
|
% and due to r <. T, the judgements N <: [S/X]U and T_r <: \Delta.N are true!
|
||||||
|
|
||||||
%TODO for Unify:
|
|
||||||
We have to make sure, that wildcards are correctly saved in the Wildcard environment
|
|
||||||
|
|
||||||
% If $\ol{\tv{r}} \lessdot \ol{T}$ how can we say that \Delta' only uses
|
% If $\ol{\tv{r}} \lessdot \ol{T}$ how can we say that \Delta' only uses
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user