Skip to main content
    • Aa
    • Aa

Proofs for free: Parametricity for dependent types


Reynolds' abstraction theorem (Reynolds, J. C. (1983) Types, abstraction and parametric polymorphism, Inf. Process.83(1), 513–523) shows how a typing judgement in System F can be translated into a relational statement (in second-order predicate logic) about inhabitants of the type. We obtain a similar result for pure type systems (PTSs): for any PTS used as a programming language, there is a PTS that can be used as a logic for parametricity. Types in the source PTS are translated to relations (expressed as types) in the target. Similarly, values of a given type are translated to proofs that the values satisfy the relational interpretation. We extend the result to inductive families. We also show that the assumption that every term satisfies the parametricity condition generated by its type is consistent with the generated logic.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

M. Abadi , L. Cardelli & P. Curien (1993) Formal parametric polymorphism. In Proceedings of POPL'93 (Charleston, SC). New York: ACM, pp. 157170.

C. Böhm & A. Berarducci (1985) Automatic synthesis of typed lambda-programs on term algebras. Theor. Comp. Sci. 39 (2–3), 135154.

P. Dybjer (1994) Inductive families. Form. Asp. Comput. 6 (4), 440465.

C. Paulin-Mohring (1993) Inductive definitions in the system Coq – rules and properties. In Typed Lambda Calculi and Applications, M. Bezem & J. F. Groote (eds), Berlin, Germany: Springer pp. 328345.

P. Wadler (2007) The Girard–Reynolds isomorphism. Theor. Comp. Sci. 375 (1–3), 201226.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *