system F

E588093

System F is a polymorphically typed lambda calculus that extends the simply typed lambda calculus with universal quantification over types, forming a foundational system for studying parametric polymorphism in programming languages and type theory.

All labels observed (1)

Label Occurrences
system F canonical 1

How this entity was disambiguated

Statements (47)

Predicate Object
instanceOf formal system
polymorphically typed lambda calculus
typed lambda calculus
canEncode Church encodings of data structures
algebraic data types
existential types
product types
sum types
extends simply typed lambda calculus
formalizes parametric polymorphism
hasAlternativeName polymorphic lambda calculus
second-order lambda calculus
hasCorrespondenceWith second-order intuitionistic logic
hasFeature impredicative polymorphism
type abstraction
type application
type variables
hasJudgmentForm Γ ⊢ t : τ
hasKindOfPolymorphism parametric polymorphism
hasProperty Church–Rosser property
confluent reduction
strong normalization
subject reduction
type safety
hasQuantificationLevel second-order
hasRestriction no general algorithm for type inference
hasTermLanguage lambda terms with type abstraction and application
hasTypeSystem second-order type system
hasTypicalNotation ∀α. τ for universal type quantification
influenced Girard–Reynolds polymorphism in programming languages
Hindley–Milner type system
System Fω
linked to: System F
isBasisFor design of polymorphic type systems
isMoreExpressiveThan simply typed lambda calculus
isSubsetOf Calculus of Constructions (in terms of expressiveness hierarchy)
isUndecidable typability problem
type inhabitation problem
relatedTo Curry–Howard correspondence
requires explicit type annotations for full type checking
supports universal quantification over types
usedFor studying polymorphism in programming languages
studying type abstraction
usedIn programming language theory
type theory
wasIndependentlyIntroducedBy John C. Reynolds
wasIntroducedBy Jean-Yves Girard
wasIntroducedInYear 1972

How these facts were elicited

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.

Scott encoding relatedTo system F