Back to Search Start Over

The Duality of Classical Intersection and Union Types.

Authors :
Downen, Paul
Ariola, Zena M.
Ghilezan, Silvia
Altenkirch, Thorsten
Schubert, Aleksy
Source :
Fundamenta Informaticae. 2019, Vol. 170 Issue 1-3, p39-92. 54p.
Publication Year :
2019

Abstract

For a long time, intersection types have been admired for their surprising ability to complete the simply typed lambda calculus. Intersection types are an example of an implicit typing feature which can describe program behavior without manifesting itself within the syntax of a program. Dual to intersections, union types are another implicit typing feature which extends the completeness property of intersection types in the lambda calculus to full-fledged programming languages. However, the formalization of union types can easily break other desirable meta-theoretical properties of the type system. But why should unions be troublesome when their dual, intersections, are not? We look at the issues surrounding the design of type systems for both intersection and union types through the lens of duality by formalizing them within the symmetric language of the classical sequent calculus. In order to formulate type systems which have all of our properties of interest—soundness, completeness, and type safety—we also look at the impact of evaluation strategy on typing. As a result, we present two dual type systems—one for call-by-value and one for call-by-name evaluation—which have all three properties. We also consider the possibility of classical non-deterministic evaluation, for which there is a choice between two different systems depending on which properties are desired: a full type system which is complete, and a simplified type system which is sound and type safe. [ABSTRACT FROM AUTHOR]

Details

Language :
English
ISSN :
01692968
Volume :
170
Issue :
1-3
Database :
Academic Search Index
Journal :
Fundamenta Informaticae
Publication Type :
Academic Journal
Accession number :
139251497
Full Text :
https://doi.org/10.3233/FI-2019-1855