# 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 ${\displaystyle \{\ast ,\square ,\triangle \}}$;
• two axioms ${\displaystyle \{\ast :\square ,\square :\triangle \}}$; and
• five rules ${\displaystyle \{(\ast ,\ast ),(\square ,\ast ),(\square ,\square ),(\triangle ,\ast ),(\triangle ,\square )\}}$.

System U is defined the same with the exception of the ${\displaystyle (\triangle ,\ast )}$ rule.

The sorts ${\displaystyle \ast }$ and ${\displaystyle \square }$ are conventionally called “Type” and “Kind”, respectively; the sort ${\displaystyle \triangle }$ doesn't have a specific name. The two axioms describe the containment of types in kinds (${\displaystyle \ast :\square }$) and kinds in ${\displaystyle \triangle }$ (${\displaystyle \square :\triangle }$). Intuitively, the sorts describe a hierarchy in the nature of the terms.

1. All values have a type, such as a base type (e.g. ${\displaystyle b:\mathrm {Bool} }$ is read as “b is a boolean”) or a (dependent) function type (e.g. ${\displaystyle f:\mathrm {Nat} \to \mathrm {Bool} }$ is read as “f is a function from natural numbers to booleans”).
2. ${\displaystyle \ast }$ is the sort of all such types (${\displaystyle t:\ast }$ is read as “t is a type”). From ${\displaystyle \ast }$ we can build more terms, such as ${\displaystyle \ast \to \ast }$ which is the kind of unary type-level operators (e.g. ${\displaystyle \mathrm {List} :\ast \to \ast }$ is read as “List is a function from types to types”, that is, a polymorphic type). The rules restrict how we can form new kinds.
3. ${\displaystyle \square }$ is the sort of all such kinds (${\displaystyle k:\square }$ is read as “k is a kind”). Similarly we can build related terms, according to what the rules allow.
4. ${\displaystyle \triangle }$ is the sort of all such terms.

The rules govern the dependencies between the sorts: ${\displaystyle (\ast ,\ast )}$ says that values may depend on values (functions), ${\displaystyle (\square ,\ast )}$ allows values to depend on types (polymorphism), ${\displaystyle (\square ,\square )}$ allows types to depend on types (type operators), and so on.

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)

${\displaystyle \lambda k^{\square }\lambda \alpha ^{k\to k}\lambda \beta ^{k}\!.\alpha (\alpha \beta )\;:\;\Pi k:\square ((k\to k)\to k\to k)}$.

This mechanism is sufficient to construct a term with the type ${\displaystyle (\forall p:\ast ,p)=\bot }$, 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

1. ^ Girard, Jean-Yves (1972). "Interprétation fonctionnelle et Élimination des coupures de l'arithmétique d'ordre supérieur" (PDF). Cite journal requires |journal= (help)
2. ^ a b Sørensen, Morten Heine; Urzyczyn, Paweł (2006). "Pure type systems and the lambda cube". Lectures on the Curry–Howard isomorphism. Elsevier. ISBN 0-444-52077-5.