Subtyping Union Types [chapter]

Jérôme Vouillon
2004 Lecture Notes in Computer Science  
Subtyping of union types can be fairly complex due to interactions with function and pair types. Furthermore, this interaction turns out to depend on the calculus considered: for instance, a call-by-value calculus and a call-by-name calculus will have different possible subtyping rules. In order to abstract ourselves away from this dependence, we consider a fairly large family of calculi. We define types in a semantic fashion, as sets of terms. Then, a type can be a subtype of another type if
more » ... s denotation is included in the denotation of the other type. Using inference rules, we specify a subtyping relation which is both sound and complete with respect to the family of calculi. We expect this framework to allow the study of subtyping relations that only hold for some classes of calculi by restricting the family considered, and to allow the study of subtyping relations for richer type systems by enriching the family.
doi:10.1007/978-3-540-30124-0_32 fatcat:bt3rw5o2vbd7vowo6snxnegdae