Subtyping, recursion, and parametric polymorphism in kernel fun
Information and Computation
Subtyping recursion and parametric polymorphism in kernel fun
Information and Computation
Subtyping first-class polymorphic components
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Hi-index | 0.00 |
Abstract: F_\leq is a typed lambda-calculus with subtyping and bounded polymorphism. Typechecking for F_\leq is known to be undecidable, because the subtyping relation on types is undecidable. F_{\mu\leq} is an extension of F_\leq with recursive types. In this paper, we show how symbolic labelled transition system techniques from concurrency theory can be used to reason about subtyping for F_{\mu\leq}. We provide a symbolic labelled transition system for F_{\mu\leq} types, together with an an appropriate notion of simulation, which coincides with the existing coinductive definition of subtyping. We then provide a 'simulation up to' technique for proving subtyping, for which there is a simple model checking algorithm. The algorithm is more powerful than the usual one for F_\leq, for example it terminates on Ghelli's canonical example of nontermination.