CINXE.COM
category of classes in nLab
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> category of classes in nLab </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="robots" content="noindex,nofollow" /> <style type="text/css"> h1#pageName, div.info, .newWikiWord a, a.existingWikiWord, .newWikiWord a:hover, [actiontype="toggle"]:hover, #TextileHelp h3 { color: #226622; } </style> <link href="/stylesheets/instiki.css?1676280126" media="all" rel="stylesheet" type="text/css" /> <style type="text/css"><!--/*--><![CDATA[/*><!--*/ .toc ul {margin: 0; padding: 0;} .toc ul ul {margin: 0; padding: 0 0 0 10px;} .toc li > p {margin: 0} .toc ul li {list-style-type: none; position: relative;} .toc div {border-top:1px dotted #ccc;} .rightHandSide h2 {font-size: 1.5em;color:#008B26} table.plaintable { border-collapse:collapse; margin-left:30px; border:0; } .plaintable td {border:1px solid #000; padding: 3px;} .plaintable th {padding: 3px;} .plaintable caption { font-weight: bold; font-size:1.1em; text-align:center; margin-left:30px; } /* Query boxes for questioning and answering mechanism */ div.query{ background: #f6fff3; border: solid #ce9; border-width: 2px 1px; padding: 0 1em; margin: 0 1em; max-height: 20em; overflow: auto; } /* Standout boxes for putting important text */ div.standout{ background: #fff1f1; border: solid black; border-width: 2px 1px; padding: 0 1em; margin: 0 1em; overflow: auto; } /* Icon for links to n-category arXiv documents (commented out for now i.e. disabled) a[href*="http://arxiv.org/"] { background-image: url(../files/arXiv_icon.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 22px; } */ /* Icon for links to n-category cafe posts (disabled) a[href*="http://golem.ph.utexas.edu/category"] { background-image: url(../files/n-cafe_5.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ /* Icon for links to pdf files (disabled) a[href$=".pdf"] { background-image: url(../files/pdficon_small.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ /* Icon for links to pages, etc. -inside- pdf files (disabled) a[href*=".pdf#"] { background-image: url(../files/pdf_entry.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ a.existingWikiWord { color: #226622; } a.existingWikiWord:visited { color: #226622; } a.existingWikiWord[title] { border: 0px; color: #aa0505; text-decoration: none; } a.existingWikiWord[title]:visited { border: 0px; color: #551111; text-decoration: none; } a[href^="http://"] { border: 0px; color: #003399; } a[href^="http://"]:visited { border: 0px; color: #330066; } a[href^="https://"] { border: 0px; color: #003399; } a[href^="https://"]:visited { border: 0px; color: #330066; } div.dropDown .hide { display: none; } div.dropDown:hover .hide { display:block; } div.clickDown .hide { display: none; } div.clickDown:focus { outline:none; } div.clickDown:focus .hide, div.clickDown:hover .hide { display: block; } div.clickDown .clickToReveal, div.clickDown:focus .clickToHide { display:block; } div.clickDown:focus .clickToReveal, div.clickDown .clickToHide { display:none; } div.clickDown .clickToReveal:after { content: "A(Hover to reveal, click to "hold")"; font-size: 60%; } div.clickDown .clickToHide:after { content: "A(Click to hide)"; font-size: 60%; } div.clickDown .clickToHide, div.clickDown .clickToReveal { white-space: pre-wrap; } .un_theorem, .num_theorem, .un_lemma, .num_lemma, .un_prop, .num_prop, .un_cor, .num_cor, .un_defn, .num_defn, .un_example, .num_example, .un_note, .num_note, .un_remark, .num_remark { margin-left: 1em; } span.theorem_label { margin-left: -1em; } .proof span.theorem_label { margin-left: 0em; } :target { background-color: #BBBBBB; border-radius: 5pt; } /*]]>*/--></style> <script src="/javascripts/prototype.js?1660229990" type="text/javascript"></script> <script src="/javascripts/effects.js?1660229990" type="text/javascript"></script> <script src="/javascripts/dragdrop.js?1660229990" type="text/javascript"></script> <script src="/javascripts/controls.js?1660229990" type="text/javascript"></script> <script src="/javascripts/application.js?1660229990" type="text/javascript"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- function updateSize(elt, w, h) { // adjust to the size of the user's browser area. // w and h are the original, unadjusted, width and height per row/column var parentheight = document.viewport.getHeight(); var parentwidth = $('Container').getWidth(); elt.writeAttribute({'cols': Math.floor(parentwidth/w) - 1, 'rows': Math.floor(parentheight/h) - 2 }); elt.setStyle({Width: parentwidth, Height: parentheight}); } function resizeableTextarea() { //make the textarea resize to fit available space $$('textarea#content').each( function(textarea) { var w = textarea.getWidth()/textarea.getAttribute('cols'); var h = textarea.getStyle('lineHeight').replace(/(\d*)px/, "$1"); Event.observe(window, 'resize', function(){ updateSize(textarea, w, h) }); updateSize(textarea, w, h); Form.Element.focus(textarea); }); } window.onload = function (){ resizeableTextarea(); } //--><!]]> </script> </head> <body> <div id="Container"> <textarea id='content' readonly=' readonly' rows='24' cols='60' >\tableofcontents ## Definition The [[category]] of [[classes]] has [[classes]] as objects and maps of classes as morphisms. In the [[Zermelo-Fraenkel set theory]], a [[class]] is a [[proposition]] $P$ with a designated [[free variable]] $x$. We interpret $P(x)$ as saying that $x$ belongs to the class $P$. We also write $x\in P$, while understanding that $P$ is not a set, but $x$ is. For example, any [[set]] $A$ is a [[class]], whose proposition is $a\in A$ and the designated [[free variable]] is $a$. The proposition $a=a$ defines the [[class]] of all sets, which does not arise via the above construction from any [[set]]. ## Relations and maps Given two classes $A$ and $B$, we can form their [[product]] $A\times B$ as the class $A\times B$ such that $P(x)$ means $x=(a,b)$ for some $a\in A$ and $b\in B$, where $(a,b)$ denotes the usual [[ordered pair]] constructed in [[Zermelo-Fraenkel set theory]] as $(a,b)=\{\{a\},\{a,b\}\}$ or $(a,b)=\{\{\emptyset,a\},\{b\}\}$ or $(a,b)=\{\{\{\emptyset\},a\},\{b\}\}$. If $P(x)$ implies $Q(x)$, we say that $P$ is a subclass of $Q$. A [[relation]] from $A$ to $B$ is a subclass of $A\times B$. A [[map]] $f$ from $A$ to $B$ is a relation $R$ from $A$ to $B$ such that for any $a\in A$ there is a unique $b\in B$ such that $R(a,b)$. In this case we write $f(a)$ for this unique $b$, so $f(a)=b$ means $R(a,b)$. [[maps|Maps]] of [[classes]] can be composed in the usual manner, which produces a [[category]]. Here a category is understood in the sense of a [[first-order logic]] with two sorts (objects and morphisms), but at no point we attempt to consider all [[classes]] as a single unified whole. A [[family]] $f$ of [[classes]] indexed by a class $I$ is a [[map]] of classes $f\colon T\to I$. The [[class]] indexed by $i\in I$ is the [[preimage]] $f^*\{i\}$. Such families can be pulled back along maps of classes $J\to I$ and pushed forward along maps $I\to J$. We can now define [[large categories]] as having a [[class]] of objects, a [[class]] of morphisms, together with [[composition]] and [[identities]] satisfying the usual axioms. The [[category]] of [[classes]] considered above is not a [[large category]] in this sense. We do not require [[large categories]] to be [[locally small]]. ## Diagrams Suppose $I$ is a [[large category]]. An $I$-indexed [[diagram]] of classes is defined as follows. First, we have an $I$-indexed family of classes $f\colon T\to I$. Secondly, we have a transition map $$tr\colon\{(t,h)\mid t\in T, h\in Mor(I), f(t)=dom(h)\}\to T,$$ which is a map of classes such that $f(tr(t,h))=codom(h)$. (The [[domain]] of $tr$ is a [[class]] because $t$ and $h$ are [[sets]].) Finally, the transition map satisfies the usual axioms expected from a functor. For any [[large category]] $I$ and a class $C$ we can define the [[constant diagram]] indexed by $I$ with value $C$. We take $T=I\times C$ with $f\colon T\to I$ being the [[projection map]]. The transition map sends $(t,h)\mapsto t$. ## Limits and colimits as adjoint functors For any [[large category]] $I$ we have a [[constant diagram]] functor that sends a [[class]] $C$ to the [[constant diagram]] on $C$. We can talk about left and right [[adjoint functors]] to this functor in the sense of a [[first-order logic]] with two sorts (objects and morphisms), augmented with symbols for the functor, its adjoint, together with [[unit]] and [[counit]] maps that satisfy the [[triangle identities]]. ## Limits The category of [[classes]] admits all [[small limits]]. First, it admits [[equalizers]]: the equalizer of $f,g\colon A\to B$ is the subclass $E$ of $A$ defined by $E(e)=(e\in A \wedge f(e)=g(e))$. Secondly, it admits [[small products]]: the [[small product]] of an $I$-indexed family of classes $f\colon T\to I$, where $I$ is an arbitrary [[set]] (considered as a [[class]] when used with $f$) can be constructed as the class $P$ such that $p\in P$ if $p$ is a [[map of sets]] whose [[domain]] is $I$ and for all $i\in I$ we have $p(i)\in T$ and $f(p(i))=i$. (Observe that $P$ is indeed a class.) Finally, it admits all [[small limits]] because the usual reduction of [[small limits]] to [[equalizers]] of [[small products]] continues to work provided that we adhere to the above convention on the definition of families of classes. ## Colimits The [[category]] of classes admits all [[colimits]] indexed by arbitrary [[large categories]] $I$, i.e., large colimits. First, the standard reduction of $I$-indexed [[colimits]] to a [[coequalizer]] of a pair of arrows between [[coproducts]] indexed by $Mor(I)$ and $Ob(I)$ still works in this context since class-indexed families of classes can be pulled back along source and target maps $Mor(I)\to Ob(I)$. Secondly, class-indexed [[coproducts]] of [[classes]] can be computed simply by taking the total class $T$ of the corresponding class-indexed family $f\colon T\to I$ of classes. Thirdly, [[coequalizers]] of [[classes]] exist by [[Scott's trick]]. Observe that given a pair of arrows $f,g:X\to Y$ between classes, we can define an [[equivalence relation]] on $Y$ by saying that $y~y'$ if there is a map $h:[0,n]\to Y$ such that $h(0)=y$, $h(n)=y'$ and for any $i\in[0,n)$ there is $x\in X$ such that $h(i)=f(x)$ and $h(i+1)=g(x)$ or $h(i)=g(x)$ and $h(i+1)=f(x)$. The quotient of $Y$ by this equivalence relation exists by [[Scott's trick]] and is precisely the desired coequalizer. ## Other categorical properties The category of classes is a [[regular category]]: the obvious notion of [[image factorization]] is stable under [[pullbacks]]. It is also a [[Barr-exact category]]: every [[equivalence relation]] $R$ on a class $C$ is induced by the [[quotient map]] $C\to C/R$. It is also an [[infinitary extensive category]], where “infinitary” means “class-indexed”. Indeed, [[pullbacks]] of [[coproduct]] injections along arbitrary maps of classes exist and class-indexed [[coproducts]] are [[disjoint coproducts|disjoint]] and stable under [[pullback]]. It is also [[well-pointed category|well-pointed]]: for every two maps between classes $f,g:X\rightarrow Y$ and every element $x\in X$, if $f(x) = g(y)$, then $f = g$, and the category of classes is not the [[terminal category]]. It likewise has all objects corresponding to [[large cardinal]]s, most notably a [[natural numbers object]]. Otherwise, the category of finite sets [[FinSet]] is vacuously a category of classes, as the notions of 'finitary' and 'class-indexed'/'infinitary' coincide. As such, the category of classes is a well-pointed infinitary [[Heyting category|Heyting]] or [[Boolean category|Boolean]] [[pretopos]], depending upon the external logic used, with a natural numbers object and other large cardinals, and where “infinitary” is used in the rather strong sense of “class-indexed”. The category of classes is not [[cartesian closed]] or [[locally cartesian closed]] and does not have [[power objects]]. Indeed, the class of all sets $S$ does not have a [[power object]], or, equivalently, there is no [[internal hom]] $Hom(S,\{0,1\})$. ## Category with class structure The category of [[classes]] is a primordial example of a [[category with class structure]]. Its open maps are precisely those maps of classes $f\colon T\to I$ such that $f^*\{i\}$ is a [[set]] for each $i\in I$. Small maps coincide with open maps. The powerclass of a class $C$ is the class of all sets $A$ such that $A$ is a subclass of $C$. The universal class is the class of all sets. ## Related notions * [[class]] * [[type of classes]] * [[proper class]] * [[large category]] * [[category with class structure]] * [[algebraic set theory]] [[!redirects categories of classes]] [[!redirects Class]]</textarea> </div> <!-- Container --> </body> </html>