PRL Seminars
Foundations for the Implementation of Higher-Order Subtyping
Abstract
We show how to implement a calculus with higher-order subtyping and
subkinding by replacing uses of implicit subsumption with explicit coercions.
To ensure this can be done, a polymorphic function is adjusted to take, as an
additional argument, a proof that its type constructor argument has the desired
kind. This technique is formalized as a type-directed translation from a
calculus of higher-order subtyping to a subtyping-free calculus. This
translation generalizes an existing result for second-order subtyping calculi
(such as F-sub).
We also discuss two interpretations of subtyping, one that views it as
type inclusion and another that views it as the existence of a well-behaved
coercion, and we show, by a type-theoretic construction, that our translation is
the minimum consequence of shifting from the inclusion interpretation to the
coercion-existence interpretation. This construction shows that the translation
is the natural one, and it also provides a framework for extending the
translation to richer type systems. Finally, we show how the two
interpretations can be reconciled in a common semantics. It is then easy to
show the coherence of the translation relative to that semantics.
|