The Girard-Reynolds Isomorphism

  • Philip Wadler
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2215)


The second-order polymorphic lambda calculus, F2, was independently discovered by Girard and Reynolds. Girard additionally proved a representation theorem: every function on natural numbers that can be proved total in second-order intuitionistic propositional logic, P2, can be represented in F2. Reynolds additionally proved an abstraction theorem: for a suitable notion of logical relation, every term in F2 takes related arguments into related results. We observe that the essence of Girard’s result is a projection from P2 into F2, and that the essence of Reynolds’s result is an embeddingof F2 into P2, and that the Reynolds embeddingfollo wed by the Girard projection is the identity. The Girard projection discards all first-order quantifiers, so it seems unreasonable to expect that the Girard projection followed by the Reynolds embeddingshould also be the identity. However, we show that in the presence of Reynolds’s parametricity property that this is indeed the case, for propositions correspondingto inductive definitions of naturals, products, sums, and fixpoint types.


Intuitionistic Logic Identity Relation Combinatory Logic Elimination Rule Predicate Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ACC93]
    M. Abadi, L. Cardelli, and P.-L. Curien, Formal Parametric Polymorphism, Theoretical Computer Science 121(1-2):9–58, December 1993. (Part of A Collection of Contributions in Honour of Corrado Boehm on the Occasion of his 70th Birthday.) Also appeared as SRC Research Report 109.zbMATHCrossRefMathSciNetGoogle Scholar
  2. [Bar91]
    H. Barendregt, Introduction to generalized types systems, Journal of Functional Programming, 1(2):125–154, April 1991.zbMATHMathSciNetGoogle Scholar
  3. [BFSS90]
    E. S. Bainbridge, P. J. Freyd, A. Scedrov, and P. J. Scott, Functorial polymorphism, in G. Huet, editor, Logical Foundations of Functional Programming, pp. 315–330, Addison-Wesley, 1990.Google Scholar
  4. [BB85]
    C. Böhm and A. Berarducci, Automatic synthesis of typed Λ-programs on term algebras, Theoretical Computer Science 39(2-3):135–154, August 1985.zbMATHCrossRefMathSciNetGoogle Scholar
  5. [BC88]
    V. Breazu-Tannen and T. Coquand, Extensional models for polymorphism, Theoretical Computer Science, 59:85–114, 1988.CrossRefMathSciNetzbMATHGoogle Scholar
  6. [CF58]
    H. B. Curry and R. Feys, Combinatory Logic, North Holland, 1958.Google Scholar
  7. [CH88]
    T. Coquand and G. Huet, The calculus of constructions, Information and Computation, 76:95–120, 1988.CrossRefMathSciNetzbMATHGoogle Scholar
  8. [Con86]
    R. Constable, et al., Implementing mathematics with the Nuprl proof development system, Prentice-Hall, 1986.Google Scholar
  9. [deB70]
    N. G. de Bruijn, The mathematical language of AUTOMATH, its usage and some of its extensions, Proceedings of the Symposium on Automatic Demonstration, LNCS 125, Springer-Verlag, 1970.CrossRefGoogle Scholar
  10. [DM82]
    L. Damas and R. Milner, Principal type schemes for functional programs, 9’th Annual Symposium on Principles of Programming Languages, Albuquerque, N.M., January 1982.Google Scholar
  11. [Fre79]
    Gottlob Frege. Begriffsschrift, a formula language, modeled upon that of arithmetic, for pure thought (1879). In Jan van Heijenoort, editor, FromFrege to Godel: A Source Book in Mathematical Logic, 1879-1931. Harvard University Press, 1967.Google Scholar
  12. [Gir72]
    J.-Y. Girard, Interprétation functionelle et élimination des coupures dans l’arithmétique d’ordre supérieure, Ph.D. thesis, Université Paris VII, 1972.Google Scholar
  13. [GLT89]
    J.-Y. Girard, Y. Lafont, and P. Taylor, Proofs and Types, Cambridge University Press, 1989.Google Scholar
  14. [Has94]
    R. Hasegawa, Categorical data types in parametric polymorphism, Mathematical Structures in Computer Science, 4:71–109, (1994).zbMATHMathSciNetCrossRefGoogle Scholar
  15. [Hin69]
    R. Hindley, The principal type scheme of an object in combinatory logic, Trans. Am. Math. Soc., 146:29–60, December 1969.zbMATHCrossRefMathSciNetGoogle Scholar
  16. [How80]
    W. A. Howard, The formulae-as-types notion of construction, in J. P. Seldin and J. R. Hindley, editors, To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism, Academic Press, 1980. (The original version was circulated privately in 1969.)Google Scholar
  17. [KP90]
    J.-L. Krivine and M. Parigot, Programming with proofs, J. Inf. Process. Cybern. (EIK), 26(3): 149–167, 1990. (Revised version of a lecture presented at the 6’th International Symposium on Computation Theory, (SCT’ 87), Wednisch-Rietz, GDR, 30 November-4 December 1987.zbMATHMathSciNetGoogle Scholar
  18. [Lei83]
    D. Leivant, Reasoning about functional programs and complexity classes associated with type disciplines, 24’th Symposium on Foundations of Computer Science, Washington D.C., IEEE, 460–469.Google Scholar
  19. [Lei90]
    D. Leivant, Contractingpro ofs to programs, in P. Odifreddi, editor, Logic and Computer Science, Academic Press, 1990.Google Scholar
  20. [Mai91]
    H. Mairson, Outline of a proof theory of parametricity, in J. Hughes, editor, 5’th International Conference on Functional Programming Languages and Computer Architecture, Springer-Verlag LNCS 523, Cambridge, Massachusetts, August 1991.Google Scholar
  21. [Mar82]
    P. Martin-Lof, Constructive mathematics and computer programming, 6’th International Congress for Logic, Methodology, and Philosophy of Science, North Holland, pp. 153–175, 1982.Google Scholar
  22. [Mil78]
    R. Milner, A theory of type polymorphism in programming, Journal of Computers and Systems Science, 17:348–375, 1978.zbMATHCrossRefMathSciNetGoogle Scholar
  23. [Mog86]
    E. Moggi, Communication to the Types electronic forum, 10 February 1986.Google Scholar
  24. [MR91]
    Q. Ma and J. C. Reynolds, Types, abstraction, and parametric polymorphism, part 2, in S. Brookes et al. editors, Mathematical Foundations of Programming Semantics, Springer Verlag LNCS, 1991.Google Scholar
  25. [Pit87]
    A. M. Pitts, Polymorphism Is Set Theoretic, Constructively, in D. H. Pitt and A. Poign’e and D. E. Rydeheard, editors, Category Theory and Computer Science, pages 12–39, Edinburgh 1987.Google Scholar
  26. [Pit89]
    A. M. Pitts, Non-trivial power types can’t be subtypes of polymorphic types, in 4th Annual Symposium on Logic in Computer Science, pages 6–13, IEEE Computer Society Press, Washington 1989.Google Scholar
  27. [Pit98]
    A. M. Pitts, Parametric polymorphism and operational equivalence, technical report 453, Cambridge University Computer Laboratory, 1998.Google Scholar
  28. [PA93]
    G. Plotkin and M. Abadi, A logic for parametric polymorphism, in M. Bezem and J. F. Groote, editors, Typed Lambda Calculi and Applications, LNCS 664, Springer-Verlag, pp. 361–375, March 1993.CrossRefGoogle Scholar
  29. [PAC94]
    G. Plotkin, M. Abadi, and L. Cardelli, Subtypingand parametricity, 9’th Annual Symposium on Logic in Computer Science, pp. 310–319, July 1994.Google Scholar
  30. [Rey74]
    J. C. Reynolds, Towards a theory of type structure, in B. Robinet, editor, Colloque sur la Programmation, LNCS 19, Springer-Verlag.Google Scholar
  31. [Rey83]
    J. C. Reynolds, Types, abstraction, and parametric polymorphism, in R. E. A. Mason, editor, Information Processing 83, pp. 513–523, North-Holland, Amsterdam, 1983.Google Scholar
  32. [Rey84]
    J. C. Reynolds, Polymorphism is not set theoretic, in Kahn, MacQueen, and Plotkin, editors, Semantics of Data Types, Sophia-Antipolis, France, pp. 145–156, LNCS 173, Springer-Verlag, 1984.Google Scholar
  33. [Rey90]
    J. C. Reynolds, Introduction to Part II: Polymorphic Lambda Calculus, in G. Huet, editor, Logical Foundations of Functional Programming, Addison-Wesley, 1990.Google Scholar
  34. [RP90]
    J. C. Reynolds and G. D. Plotkin, On Functors Expressible in the polymorphic typed lambda calculus, in G. Huet, editor, Logical Foundations of Functional Programming, pp. 127–152, Addison-Wesley, 1990.Google Scholar
  35. [Str67]
    C. Strachey, Fundamental concepts in programming languages, Lecture notes, International Summer School in Computer Programming, Copenhagen, August 1967. Reprinted in Higher-Order and Symbolic Computation 13(1/2):11–49, May 2000.zbMATHCrossRefGoogle Scholar
  36. [Tak98]
    Izumi Takeuiti, An axiomatic system of parametricity, Fundamenta Informaticae, 33:397–432, IOS Press, 1998.MathSciNetGoogle Scholar
  37. [Wad89]
    P. Wadler, Theorems for free!, 4’th International Conference on Functional Programming Languages and Computer Architecture, ACM Press, London, September 1989.Google Scholar
  38. [Wad91]
    P. Wadler, Recursive types for free!, manuscript, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Philip Wadler

There are no affiliations available

Personalised recommendations