Recursive Types Are not Conservative over F

F≤ is a type system used to study the integration of inclusion and parametric polymorphism. F≤ does not include a notion of recursive types, but extensions of F≤ with recursive types are widely used as a basis for foundational studies about the type systems of functional and object-oriented languages. In this paper we show that adding recursive types results in a non conservative extension of the system. This means that the algorithm for F≤ subtyping (the kernel of the algorithm for F≤ typing) is no longer complete for the extended system, even when it is applied only to judgements where no recursive type appears, and that most of the proofs of known properties of F≤ do not hold for the extended system; this is the case, for example, for Pierce's proof of undecidability of F≤. However, we prove that this non conservativity is limited to a very special class of subtyping judgements, the “diverging judgements” introduced in [Ghe]. This last result implies that the extension of F≤ with recursive types could be still useful for practical purposes.

[1]  Benjamin C. Pierce,et al.  Bounded Quantification is Undecidable , 1994, Inf. Comput..

[2]  Luca Cardelli,et al.  Subtyping recursive types , 1991, POPL '91.

[3]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..

[4]  Kim B. Bruce,et al.  A Modest Model of Records, Inheritance and Bounded Quantification , 1990, Inf. Comput..

[5]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1994, Inf. Comput..

[6]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[7]  Luca Cardelli,et al.  A semantic basis for quest , 1990, Journal of Functional Programming.

[8]  Giorgio Ghelli,et al.  Coherence of Subsumption , 1990, CAAP.