System F
E807603
System F is a polymorphic lambda calculus that extends simple type systems with universal quantification over types, forming a foundational framework for studying typed functional programming and type theory.
Statements (50)
| Predicate | Object |
|---|---|
| instanceOf |
formal system
ⓘ
polymorphic lambda calculus ⓘ type theory ⓘ typed lambda calculus ⓘ |
| alsoKnownAs |
Girard–Reynolds polymorphic lambda calculus
NERFINISHED
ⓘ
polymorphic lambda calculus NERFINISHED ⓘ second-order lambda calculus NERFINISHED ⓘ |
| basedOn | lambda calculus NERFINISHED ⓘ |
| correspondsTo | second-order intuitionistic logic ⓘ |
| decidabilityOfTyping | undecidable in general ⓘ |
| expressivePower | can encode many data types and control structures ⓘ |
| extends | simply typed lambda calculus ⓘ |
| feature |
impredicative polymorphism
ⓘ
parametric polymorphism ⓘ type abstraction ⓘ type application ⓘ universal quantification over types ⓘ |
| frameworkFor |
studying parametricity
ⓘ
studying polymorphism ⓘ studying type abstraction ⓘ |
| generalizes | monomorphic type systems ⓘ |
| hasProperty |
confluence of beta-reduction
ⓘ
strong normalization (for well-typed terms) ⓘ subject reduction ⓘ type safety ⓘ |
| hasSemantics |
denotational semantics in categorical models
ⓘ
proof-theoretic semantics via natural deduction ⓘ |
| hasTypeConstructor | universal type (forall type) ⓘ |
| influenced |
Calculus of Constructions
NERFINISHED
ⓘ
GHC Haskell type system extensions ⓘ Hindley–Milner type system NERFINISHED ⓘ ML-style polymorphism theory ⓘ System Fω NERFINISHED ⓘ |
| introducedBy |
Jean-Yves Girard
NERFINISHED
ⓘ
John C. Reynolds NERFINISHED ⓘ |
| logicalOrder | second-order ⓘ |
| publicationYear | 1972 ⓘ |
| quantifiesOver | types ⓘ |
| relatedSystem |
Calculus of Constructions
NERFINISHED
ⓘ
System Fω NERFINISHED ⓘ |
| relatedTo | Curry–Howard correspondence NERFINISHED ⓘ |
| supports |
Church encodings of data structures
ⓘ
encoding of algebraic data types ⓘ higher-order functions ⓘ polymorphic functions ⓘ |
| usedIn |
programming language semantics
ⓘ
proof assistants design ⓘ proof theory ⓘ type theory research ⓘ typed functional programming ⓘ |
Referenced by (2)
Full triples — surface form annotated when it differs from this entity's canonical label.