System F
System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus, a mechanism of universal quantification over types. System F formalizes parametric polymorphism in programming languages, thus forming a theoretical basis for languages such as Haskell and ML. It was discovered independently by logician Jean-Yves Girard (1972) and computer scientist John C. Reynolds.
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
:
∀
α
.
α
→
α
{\displaystyle \vdash \Lambda \alpha .\lambda x^{\alpha }.x:\forall \alpha .\alpha \to \alpha }
where
α
{\displaystyle \alpha }
is a type variable. The upper-case
Λ
{\displaystyle \Lambda }
is traditionally used to denote type-level functions, as opposed to the lower-case
λ
{\displaystyle \lambda }
which is used for value-level functions. (The superscripted
α
{\displaystyle \alpha }
means that the bound variable x is of type
α
{\displaystyle \alpha }
; 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.
Soul On Soul
- 2011-11-19T00:00:00.000000Z
Solstice
- 2010-06-10T00:00:00.000000Z
Champions
- 2010-06-07T00:00:00.000000Z
Needlejuice
- 2010-05-20T00:00:00.000000Z
Elevate
- 2010-05-13T00:00:00.000000Z
Lost In Motion
- 2010-05-06T00:00:00.000000Z
Cry
- 2000-07-01T00:00:00.000000Z
Exhale
- 2000-01-01T00:00:00.000000Z
Cry
- 2024-09-20T00:00:00.000000Z
Cry
- 2024-09-20T00:00:00.000000Z
Insolation
- 2011-11-19T00:00:00.000000Z
Pegasus
- 2011-11-19T00:00:00.000000Z
Q-rious
- 2011-11-19T00:00:00.000000Z
Similar Artists