An efficient class and object encoding
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A typed text retrieval query language for XML documents
Journal of the American Society for Information Science and Technology - XML
A Theory of Second-Order Trees
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Numbering matters: first-order canonical forms for second-order recursive types
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Subtyping, recursion, and parametric polymorphism in kernel fun
Information and Computation
Theoretical Computer Science - Clifford lectures and the mathematical foundations of programming semantics
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
Subtyping for f-bounded quantifiers and equirecursive types
Logic and Program Semantics
Hi-index | 0.00 |
The problem of defining and checking a subtype relation between recursive types was studied by Amadio and Cardelli (ACM TOPLAS'93) for a first order type system, but for second order systems, which combine subtyping and parametric polymorphism, only negative results are known (Ghelli, TLCA'93).This paper studies the problem of subtype checking for recursive types in system kernel Fun, a typed lambda-calculus with subtyping and bounded second order polymorphism.Along the lines of Amadio-Cardelli, we study the definition of a subtype relation over kernel Fun recursive types, and then we present a subtyping algorithm which is sound and complete with respect to this relation. We show that the natural extension of the techniques introduced by Amadio and Cardelli to compare first order recursive types gives a non complete algorithm. We prove the completeness and correctness of a different algorithm, which also admits an efficient implementation.