Types and Programming Languages
|
| < Free Open Study > |
|
31.3 Properties
Proofs of fundamental properties of
For example, in the context Г = X<:Top, F<:λY.Y, the statement Г ⊢ F X <: X is provable as follows (ignoring kinding):
Moreover, note that we cannot get around this interaction simply by reducing all type expressions to their normal forms, since the expression F A is not a redex—it only becomes one when, during subtype checking, the variable F is promoted to its upper bound λY.Y. The solution is to normalize type expressions once at the beginning of the subtype check and then re-normalize as necessary during the promotion operation.
|
| < Free Open Study > |
|