On Isomorphism of "Functional" Intersection and Union Types

Mario Coppo
(Università di Torino)
Mariangiola Dezani-Ciancaglini
(Università di Torino)
Ines Margaria
(Università di Torino)
Maddalena Zacchi
(Università di Torino)

Type isomorphism is useful for retrieving library components, since a function in a library can have a type different from, but isomorphic to, the one expected by the user. Moreover type isomorphism gives for free the coercion required to include the function in the user program with the right type. The present paper faces the problem of type isomorphism in a system with intersection and union types. In the presence of intersection and union, isomorphism is not a congruence and cannot be characterised in an equational way. A characterisation can still be given, quite complicated by the interference between functional and non functional types. This drawback is faced in the paper by interpreting each atomic type as the set of functions mapping any argument into the interpretation of the type itself. This choice has been suggested by the initial projection of Scott's inverse limit lambda-model. The main result of this paper is a condition assuring type isomorphism, based on an isomorphism preserving reduction.

In Jakob Rehof: Proceedings Seventh Workshop on Intersection Types and Related Systems (ITRS 2014), Vienna, Austria, 18 July 2014, Electronic Proceedings in Theoretical Computer Science 177, pp. 53–64.
Published: 17th March 2015.

ArXived at: https://dx.doi.org/10.4204/EPTCS.177.5 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org