Subtyping recursive types
- 1 September 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 15 (4) , 575-631
- https://doi.org/10.1145/155183.155231
Abstract
We investigate the interactions of subtyping and recursive types, in a simply typed λ-calculus. The two fundamental questions here are whether two (recursive)types are in the subtype relation and whether a term has a type. To address the first question, we relate various definitions of type equivalence and subtyping that are induced by a model, an ordering on infinite trees, an algorithm, and a set of type rules. We show soundness and completeness among the rules, the algorithm, and the tree semantics. We also prove soundness and a restricted form of completeness for the model. To address the second question, we show that to every pair of types in the subtype relation we can associate a term whose denotation is the uniquely determined coercion map between the two types. Moreover, we derive an algorithm that, when given a term with implicit coercions, can infer its least type whenever possible.Keywords
This publication has 15 references indexed in Scilit:
- Inheritance as implicit coercionInformation and Computation, 1991
- Type inference with recursive types: Syntax and semanticsInformation and Computation, 1991
- Recursion over realizability structuresInformation and Computation, 1991
- A modest model of records, inheritance, and bounded quantificationInformation and Computation, 1990
- A semantics of multiple inheritanceInformation and Computation, 1988
- An ideal model for recursive polymorphic typesInformation and Control, 1986
- On understanding types, data abstraction, and polymorphismACM Computing Surveys, 1985
- A complete inference system for a class of regular behavioursJournal of Computer and System Sciences, 1984
- Fundamental properties of infinite treesTheoretical Computer Science, 1983
- Two Complete Axiom Systems for the Algebra of Regular EventsJournal of the ACM, 1966