paper: rename inference rules to match coq definitions
This commit is contained in:
parent
4323e7d09f
commit
9c17e9e642
1 changed files with 33 additions and 22 deletions
|
@ -387,30 +387,30 @@ Transitive closure over \(\rightarrow_\text{distribute}\), \(\rightarrow_\text{c
|
||||||
|
|
||||||
\begin{mathpar}
|
\begin{mathpar}
|
||||||
|
|
||||||
\inferrule[E-Refl]{
|
\inferrule[T-Eq-Refl]{
|
||||||
\metavariable{\tau} \in \nonterm{T}
|
\metavariable{\tau} \in \nonterm{T}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau} \equiv \metavariable{\tau}
|
\metavariable{\tau} \equiv \metavariable{\tau}
|
||||||
}\and
|
}\and
|
||||||
\inferrule[E-Trans]{
|
\inferrule[T-Eq-Trans]{
|
||||||
\metavariable{\tau_1} \equiv \metavariable{\tau_2}\\
|
\metavariable{\tau_1} \equiv \metavariable{\tau_2}\\
|
||||||
\metavariable{\tau_2} \equiv \metavariable{\tau_3}
|
\metavariable{\tau_2} \equiv \metavariable{\tau_3}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau_1} \equiv \metavariable{\tau_3}
|
\metavariable{\tau_1} \equiv \metavariable{\tau_3}
|
||||||
}
|
}
|
||||||
|
|
||||||
\inferrule[E-Rename]{
|
\inferrule[T-Eq-Alpha]{
|
||||||
\metavariable{\tau_1} \rightarrow_\alpha \metavariable{\tau_2}
|
\metavariable{\tau_1} \rightarrow_\alpha \metavariable{\tau_2}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
||||||
}
|
}
|
||||||
|
|
||||||
\inferrule[E-Distribute]{
|
\inferrule[T-Eq-Distribute]{
|
||||||
\metavariable{\tau_1} \rightarrow_\text{distribute} \metavariable{\tau_2}
|
\metavariable{\tau_1} \rightarrow_\text{distribute} \metavariable{\tau_2}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
||||||
}\and
|
}\and
|
||||||
\inferrule[E-Condense]{
|
\inferrule[T-Eq-Condense]{
|
||||||
\metavariable{\tau_1} \rightarrow_\text{condense} \metavariable{\tau_2}
|
\metavariable{\tau_1} \rightarrow_\text{condense} \metavariable{\tau_2}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
||||||
|
@ -425,7 +425,7 @@ See \hyperref[coq:type-equiv]{equiv.v:\ref{coq:type-equiv}}.
|
||||||
\begin{lemma}[Symmetry of \(\equiv\)]
|
\begin{lemma}[Symmetry of \(\equiv\)]
|
||||||
|
|
||||||
\begin{mathpar}
|
\begin{mathpar}
|
||||||
\inferrule[E-Symm]{
|
\inferrule[T-Eq-Symm]{
|
||||||
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
\metavariable{\tau_1} \equiv \metavariable{\tau_2}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau_2} \equiv \metavariable{\tau_1}
|
\metavariable{\tau_2} \equiv \metavariable{\tau_1}
|
||||||
|
@ -450,17 +450,24 @@ PNF reached by exhaustive application of \(\rightarrow_\text{condense}\).
|
||||||
|
|
||||||
\subsubsection{Subtype Relations}
|
\subsubsection{Subtype Relations}
|
||||||
|
|
||||||
We define two relations: first the syntatic subtype relation \(\leq\) and second the semantic subtype relation \(\precsim\).
|
We define two relations: first the representation subtype relation \(\leq\) and second the transformation subtype relation \(\precsim\).
|
||||||
|
|
||||||
\begin{definition}[Syntactic Subtype (\(\tau_1\leq\tau_2\))]
|
\begin{definition}[Representation Subtype (\(\tau_1\leq\tau_2\))]
|
||||||
\begin{mathpar}
|
\begin{mathpar}
|
||||||
\inferrule[S-Refl]{
|
\inferrule[TSubRepr-Refl]{
|
||||||
\metavariable{\tau} \equiv \metavariable{\tau'}
|
\metavariable{\tau} \equiv \metavariable{\tau'}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau} \leq \metavariable{\tau'}
|
\metavariable{\tau} \leq \metavariable{\tau'}
|
||||||
}
|
}
|
||||||
|
|
||||||
\inferrule[S-Syntactic]{
|
\inferrule[TSubRepr-Trans]{
|
||||||
|
\metavariable{\sigma} \leq \metavariable{\tau}\\
|
||||||
|
\metavariable{\tau} \leq \metavariable{\nu}
|
||||||
|
}{
|
||||||
|
\metavariable{\sigma} \leq \metavariable{\nu}
|
||||||
|
}
|
||||||
|
|
||||||
|
\inferrule[TSubRepr-Ladder]{
|
||||||
\metavariable{\sigma} \leq \metavariable{\tau}
|
\metavariable{\sigma} \leq \metavariable{\tau}
|
||||||
}{
|
}{
|
||||||
\metavariable{\sigma'} \typeterminal{\sim} \metavariable{\sigma} \leq \metavariable{\tau}
|
\metavariable{\sigma'} \typeterminal{\sim} \metavariable{\sigma} \leq \metavariable{\tau}
|
||||||
|
@ -468,40 +475,44 @@ We define two relations: first the syntatic subtype relation \(\leq\) and second
|
||||||
\end{mathpar}
|
\end{mathpar}
|
||||||
\end{definition}
|
\end{definition}
|
||||||
|
|
||||||
\begin{definition}[Semantic Subtype (\(\tau_1\precsim\tau_2\))]
|
\begin{definition}[Transformation Subtype (\(\tau_1\precsim\tau_2\))]
|
||||||
\begin{mathpar}
|
\begin{mathpar}
|
||||||
|
\inferrule[TSub-Refl]{
|
||||||
\inferrule[S-Refl]{
|
|
||||||
\metavariable{\tau} \equiv \metavariable{\tau'}
|
\metavariable{\tau} \equiv \metavariable{\tau'}
|
||||||
}{
|
}{
|
||||||
\metavariable{\tau} \precsim \metavariable{\tau'}
|
\metavariable{\tau} \precsim \metavariable{\tau'}
|
||||||
|
}\and
|
||||||
|
\inferrule[TSub-Trans]{
|
||||||
|
\metavariable{\sigma} \precsim \metavariable{\tau}\\
|
||||||
|
\metavariable{\tau} \precsim \metavariable{\nu}
|
||||||
|
}{
|
||||||
|
\metavariable{\sigma} \precsim \metavariable{\nu}
|
||||||
}
|
}
|
||||||
|
|
||||||
\inferrule[S-Syntactic]{
|
\\
|
||||||
|
|
||||||
|
\inferrule[TSub-Ladder]{
|
||||||
\metavariable{\sigma} \precsim \metavariable{\tau}
|
\metavariable{\sigma} \precsim \metavariable{\tau}
|
||||||
}{
|
}{
|
||||||
\metavariable{\sigma'} \typeterminal{\sim} \metavariable{\sigma} \precsim \metavariable{\tau}
|
\metavariable{\sigma'} \typeterminal{\sim} \metavariable{\sigma} \precsim \metavariable{\tau}
|
||||||
}
|
}\and
|
||||||
|
\inferrule[TSub-Morph]{
|
||||||
\inferrule[S-Semantic]{
|
|
||||||
\metavariable{\sigma} \equiv \metavariable{\tau}
|
\metavariable{\sigma} \equiv \metavariable{\tau}
|
||||||
}{
|
}{
|
||||||
\metavariable{\sigma} \typeterminal{\sim} \metavariable{\sigma'} \precsim \metavariable{\tau} \typeterminal{\sim} \metavariable{\tau'}
|
\metavariable{\sigma} \typeterminal{\sim} \metavariable{\sigma'} \precsim \metavariable{\tau} \typeterminal{\sim} \metavariable{\tau'}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
\end{mathpar}
|
\end{mathpar}
|
||||||
\end{definition}
|
\end{definition}
|
||||||
|
|
||||||
|
|
||||||
\begin{example}[Syntactic \& Semantic Subtypes]$\\$
|
\begin{example}[Representation \& Transformation Subtypes]$\\$
|
||||||
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item \typeterminal{ <Digit 10> \(\sim\) Char \( \quad \leq \quad \) Char }\\
|
\item \typeterminal{ <Digit 10> \(\sim\) Char \( \quad \leq \quad \) Char }\\
|
||||||
.. is a \emph{syntactic subtype}, because the representation of \typeterminal{<Digit 10>} is \emph{embedded} into \typeterminal{Char}.\\
|
.. is a \emph{representation subtype}, because the representation of \typeterminal{<Digit 10>} is \emph{embedded} into \typeterminal{Char}.\\
|
||||||
|
|
||||||
\item \typeterminal{ <Digit 10> \(\sim\) Char \( \quad \precsim \quad \) <Digit 10> \(\sim\) machine.UInt64}\\
|
\item \typeterminal{ <Digit 10> \(\sim\) Char \( \quad \precsim \quad \) <Digit 10> \(\sim\) machine.UInt64}\\
|
||||||
.. is a \emph{semantic subtype}, because the \typeterminal{Char} based representation can be transformed into a representation based on \typeterminal{machine.UInt64},
|
.. is a \emph{transformation subtype}, because the \typeterminal{Char} based representation can be transformed into a representation based on \typeterminal{machine.UInt64},
|
||||||
while preserving its semantics.
|
while preserving its semantics.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{example}
|
\end{example}
|
||||||
|
|
Loading…
Reference in a new issue