Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

System U

From Wikipedia, the free encyclopedia

In type theory and mathematical logic, System U and System U are two closely related pure type systems (PTS), i.e. typed λ-calculi specified by a finite set of sorts (universes), axioms between sorts, and rules describing which kinds of dependent function spaces (Π-types) may be formed.[1]

System U is historically important because it is strong enough to express a form of "type-in-type"/impredicativity that leads to Girard's paradox. Girard proved System U inconsistent in 1972.[2] A later simplification due to Hurkens shows that even the restricted variant System U suffices for a paradox; for example, the Coq/Rocq standard library explicitly presents "Hurkens's paradox … for system U" as a derivation of false.[3][4]

These inconsistency results influenced the design of later type theories and proof assistants, which typically use a hierarchy of universes rather than a single universe containing itself.[5][6]

Background: pure type systems

[edit]

A pure type system is commonly presented as a triple consisting of:

  • a set of sorts (universe levels);
  • a set of axioms , written , specifying which sorts classify which other sorts; and
  • a set of product rules , describing when a dependent function type can be formed.[1]

Many PTSs (including System U and System U) use product rules of the schematic form

if and in context , then ,

so the sort of the Π-type is determined by the sort of its codomain.

Formal definition

[edit]

Following the presentation in standard references on the λ-cube and pure type systems,[7] System U and System U are specified by the following sorts, axioms, and Π-formation rules.

ComponentSystem USystem U
Sorts
Axioms
Product rules

Here is conventionally read as the sort of "types", as the sort of "kinds", and as a higher sort above (often left unnamed). The axioms say that types have sort and kinds have sort .

Informal reading of the rules

[edit]

The product rules can be read as permitted dependencies:

  • : terms may depend on terms (ordinary functions).
  • : terms may be polymorphic in types (type-parametric functions).
  • : types may depend on types (type operators / type constructors).
  • : kinds may depend on higher-level objects (higher-order kind formation).
  • The extra rule (present only in System U) additionally allows types (and hence terms) to depend on higher-level objects; System U omits this particular form of dependency.[7]

Inconsistency and Girard's paradox

[edit]

System U (and, in fact, System U as well) is inconsistent: one can construct a term inhabiting the type

,

which corresponds to false and therefore implies that every type is inhabited (and, via Curry–Howard correspondence, that every proposition is provable).[2][8][3]

Intuitively, the paradox becomes possible because the rules allow "polymorphism at the level of kinds", analogous to polymorphic terms in System F. For example, one can assign a polymorphic kind to a generic constructor such as:[7]

Hurkens later gave a shorter and more modular presentation of the paradox (commonly called Hurkens's paradox); the Coq/Rocq standard library explicitly treats it as a paradox for System U (deriving false from axioms expressing U-style impredicativity).[3][4]

Girard's paradox is often described as a type-theoretic analogue of the Burali-Forti paradox: collapsing universe levels allows one to represent a "totality" that must simultaneously be inside and strictly above itself, producing a contradiction.[8][5]

Historical context

[edit]

Girard's 1972 inconsistency result clarified that a sufficiently strong "type of all types" principle is incompatible with consistency.[2][5] This observation also affected early formulations of Martin-Löf type theory: Martin-Löf notes that an earlier, strongly impredicative axiom asserting a type of all types "had to be abandoned … after it was shown to lead to a contradiction by Jean Yves Girard".[6] Subsequent systems typically avoid this by stratifying universes (e.g. ) or by other restrictions on impredicativity.[5]

See also

[edit]

References

[edit]
  1. 1 2 Barendregt, Henk (April 1991). "Introduction to generalized type systems". Journal of Functional Programming. 1 (2): 125–154. doi:10.1017/S0956796800020025. hdl:2066/17240.
  2. 1 2 3 Girard, Jean-Yves (1972). Interprétation fonctionnelle et élimination des coupures de l'arithmétique d'ordre supérieur (PDF) (Thèse de doctorat d'État). Université Paris VII.
  3. 1 2 3 Hurkens, Antonius J. C. (1995). "A simplification of Girard's paradox". In Dezani-Ciancaglini, Mariangiola; Plotkin, Gordon (eds.). Typed Lambda Calculi and Applications (TLCA '95). Lecture Notes in Computer Science. Vol. 902. Springer. pp. 266–278. doi:10.1007/BFb0014058.
  4. 1 2 "Library Coq.Logic.Hurkens". Rocq/Coq Standard Library documentation. Retrieved 2026-03-01.
  5. 1 2 3 4 Zalta, Edward N. (ed.). "Type Theory (Spring 2025 Edition)". Stanford Encyclopedia of Philosophy. Retrieved 2026-03-01.
  6. 1 2 Per Martin-Löf (1972). "An Intuitionistic Theory of Types". Rocq Papers. Retrieved 2026-03-01.
  7. 1 2 3 Sørensen, Morten Heine; Urzyczyn, Paweł (2006). Lectures on the Curry–Howard Isomorphism. Elsevier. doi:10.1016/S0049-237X(06)80015-7. ISBN 978-0-444-52077-7.
  8. 1 2 Coquand, Thierry (June 1986). "An Analysis of Girard's Paradox". Proceedings of the First Annual IEEE Symposium on Logic in Computer Science (LICS 1986). Cambridge, MA, USA: IEEE Computer Society Press. pp. 227–236. Retrieved 2026-03-01.

Further reading

[edit]
  • Barendregt, Henk (1992). "Lambda calculi with types". In Abramsky, Samson; Gabbay, Dov M.; Maibaum, Thomas S. E. (eds.). Handbook of Logic in Computer Science. Vol. 2. Oxford University Press. pp. 117–309.
  • Howe, Douglas J. (1987). The Computational Behaviour of Girard's Paradox (Technical report). Cornell University, Computer Science Technical Reports. Retrieved 2026-03-01.