Typability and type checking in system F are equivalent and undecidable

Research output: Contribution to journalArticlepeer-review

98 Citations (Scopus)


Girard and Reynolds independently invented System F (a.k.a. the second-order polymorphically typed lambda calculus) to handle problems in logic and computer programming language design, respectively. Viewing F in the Curry style, which associates types with untyped lambda terms, raises the questions of typability and type checking. Typability asks for a term whether there exists some type it can be given. Type checking asks, for a particular term and type, whether the term can be given that type. The decidability of these problems has been settled for restrictions and extensions of F and related systems and complexity lower-bounds have been determined for typability in F, but this report is the first to resolve whether these problems are decidable for System F. This report proves that type checking in F is undecidable, by a reduction from semi-unification, and that typability in F is undecidable, by a reduction from type checking. Because there is an easy reduction from typability to type checking, the two problems are equivalent. The reduction from type checking to typability uses a novel method of constructing lambda terms that simulate arbitrarily chosen type environments. All of the results also hold for the ?I-calculus. © 1999 Published by Elsevier Science B.V. All rights reserved.

Original languageEnglish
Pages (from-to)111-156
Number of pages46
JournalAnnals of Pure and Applied Logic
Issue number1-3
Publication statusPublished - 30 Jun 1999


  • Lambda calculus
  • Semi-unification
  • System f
  • Typability
  • Type checking
  • Type inference


Dive into the research topics of 'Typability and type checking in system F are equivalent and undecidable'. Together they form a unique fingerprint.

Cite this