A model for formal parametric polymorphism: A per interpretation for system R
System R is an extension of system F that formalizes Reynolds' notion of relational parametricity. In system R, considerably more λ-terms can be proved equal than in system F: for example, the encoded weak products of F are strong products in R. Also, many “theorems for free” à la Wadler can be proved formally in R. In this paper we describe a semantics for system R. As a first step, we give a precise and general reconstruction of the per model of system F of Bainbridge et al., presenting it as a categorical model in the sense of Seely. Then we interpret system R in this model.
Unable to display preview. Download preview PDF.
- [ACC93]M. Abadi, L. Cardelli, and P.-L. Curien. Formal parametric polymorphism. In A Collection of Contributions in Honour of Corrado Böhm on the Occasion of his 70th Birthday, volume 121 of Thoretical Computer Science, pages 9–58, 1993. An early version appeared in the Proceedings of the 20th Ann. ACM Sump. on Principles of Programming Languages.Google Scholar
- [Bar84]H.P. Barendregt. The Lambda Calculus. Its Syntax and Semantics. Number 103 in Studies in Logic and the Foundations of Mathematics. North-Holland, 1984. Revised edition.Google Scholar
- [Gir72]J.-Y. Girard. Interprétation fonctionnelle et élimination des coupures dans l'arithmétique d'ordre supérieur. Thèse de Doctorat d'Etat, Université Paris VII, 1972.Google Scholar
- [Law69]F.W. Lawvere. Adjointness in foundations. Dialectica, 23(3–4):281–296, 1969.Google Scholar
- [Mit90]J.C. Mitchell. A type-inference approach to reduction properties and semantics of polymorphic expressions. In G. Huet, editor, Logical Foundations of Functional Programming, Reading, MA, USA, pages 195–212. Addison-Wesley, 1990.Google Scholar
- [PA93]G. Plotkin and M. Abadi. A logic for parametric polymorphism. In Proceedings of the International Conference on Typed Lambda Calculi and Applications, March 1993, Utrecht, NL, Number 664 in Lecture Notes in Computer Science, pages 361–375. Springer-Verlag, 1993.Google Scholar
- [Rey83]J.C. Reynolds. Types, abstraction and parametric polymorphism. In R.E.A. Mason, editor, INFORMATION PROCESSING '83, pages 513–523. Elsevier Science Publishers B.V.North-Holland, 1983.Google Scholar
- [See87]R.A.G. Seely. Categorical semantics for higher order polymorphic lambda calculus. The Journal of Symbolic Logic, 52(4):969–989, December 1987.Google Scholar
- [Str67]C. Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Programming Languages, Copenhagen, Denmark, Unpublished, August 1967.Google Scholar
- [Wad89]P. Wadler. Theorems for free! In Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 347–359. ACM press, 1989.Google Scholar