Lably
Skip to content

System F

Typed lambda calculus

  • 6 min read
  • 7 chapters

Related on Lably

Through Universal quantification, Logic and Dependent type

Whereas simply typed lambda calculus has variables ranging over terms, and binders for them, System F additionally has variables ranging over types, and binders for them. As an example, the fact that the identity function can have any type of the form A → A would be formalized in System F as the statement

⊢Λα.λxα.x:∀α.α→α

where α is a type variable. The upper-case Λ is traditionally used to denote type-level functions, as opposed to the lower-case λ which is used for value-level functions. (The superscripted α means that the bound variable x is of type α; the expression after the colon is the type of the lambda expression preceding it.)

As a term rewriting system, System F is strongly normalizing. However, type inference in System F (without explicit type annotations) is undecidable. Under the Curry–Howard isomorphism, System F corresponds to second-order propositional intuitionistic logic. System F can be seen as part of the lambda cube, together with even more expressive typed lambda calculi, including those with dependent types.

According to Girard, the "F" in System F was picked by chance.

Typing rules

The typing rules of System F are those of simply typed lambda calculus with the addition of the following:

where σ,τ are types, α is a type variable, and αtype in the context indicates that α is bound. The first rule is that of application, and the second is that of abstraction.

Sign in to keep reading

6 more chapters are free with a Lably account.

More in Computing and communication