System U
In mathematical logic, System U and System U− are pure type systems, i.e. special forms of a typed lambda calculus with an arbitrary number of sorts, axioms and rules (or dependencies between the sorts). They were both proved inconsistent by Jean-Yves Girard in 1972.[1] This result led to the realization that Martin-Löf's original 1971 type theory was inconsistent as it allowed the same "Type in Type" behaviour that Girard's paradox exploits.
Formal definition
System U is defined[2]:352 as a pure type system with
- three sorts ;
- two axioms ; and
- five rules .
System U− is defined the same with the exception of the rule.
The sorts and are conventionally called types and kinds, respectively; the sort doesn't have a specific name. The two axioms describe the containment of types in kinds () and kinds in (). The rules govern the dependencies between the sorts: says that terms may depend on terms (functions), allows terms to depend on types (polymorphism), allows types to depend on types (type operators), and so on.
Girard's paradox
The definitions of System U and U− allow the assignment of polymorphic kinds to generic constructors in analogy to polymorphic types of terms in classical polymorphic lambda calculi, such as System F. An example of such a generic constructor might be[2]:353 (where k denotes a kind variable)
- .
This mechanism is sufficient to construct a term with the type , which implies that every type is inhabited. By the Curry–Howard correspondence, this is equivalent to all logical propositions being provable, which makes the system inconsistent.
Girard's paradox is the type-theoretic analogue of Russell's paradox in set theory.
References
Further reading
- Barendregt, Henk (1992). "Lambda calculi with types". In S. Abramsky, D. Gabbay and T. Maibaum. Handbook of Logic in Computer Science. Oxford Science Publications. pp. 117–309.
- Coquand, Thierry (1986). "An analysis of Girard's paradox". Logic in Computer Science. IEEE Computer Society Press. pp. 227–236.