Hostname: page-component-6766d58669-fx4k7 Total loading time: 0 Render date: 2026-05-15T09:17:04.935Z Has data issue: false hasContentIssue false

Parametricity, type equality, and higher-order polymorphism

Published online by Cambridge University Press:  15 April 2010

DIMITRIOS VYTINIOTIS
Affiliation:
Microsoft Research Cambridge, 7 JJ Thomson Avenue, Cambridge CB3 0FBUK (e-mail: dimitris@microsoft.com)
STEPHANIE WEIRICH
Affiliation:
University of Pennsylvania, Department of Computer and Information Science, Levine Hall, 3330 Walnut St., Philadelphia PA 19104–6389, USA (e-mail: sweirich@cis.upenn.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Propositions that express type equality are a frequent ingredient of modern functional programming – they can encode generic functions, dynamic types, and GADTs. Via the Curry–Howard correspondence, these propositions are ordinary types inhabited by proof terms, computed using runtime type representations. In this paper we show that two examples of type equality propositions actually do reflect type equality; they are only inhabited when their arguments are equal and their proofs are unique (up to equivalence.) We show this result in the context of a strongly normalizing language with higher-order polymorphism and primitive recursion over runtime-type representations by proving Reynolds's abstraction theorem. We then use this theorem to derive “free” theorems about equality types.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2010
Submit a response

Discussions

No Discussions have been published for this article.