\documentclass[12pt,titlepage]{article} \usepackage{amsmath} \usepackage{mathrsfs} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} \usepackage{mathtools} \usepackage{graphicx} \usepackage{color} \usepackage{ucs} \usepackage[utf8x]{inputenc} \usepackage{xparse} \usepackage{hyperref} %----Macros---------- % % Unresolved issues: % % \righttoleftarrow % \lefttorightarrow % % \color{} with HTML colorspec % \bgcolor % \array with options (without options, it's equivalent to the matrix environment) % Of the standard HTML named colors, white, black, red, green, blue and yellow % are predefined in the color package. Here are the rest. \definecolor{aqua}{rgb}{0, 1.0, 1.0} \definecolor{fuschia}{rgb}{1.0, 0, 1.0} \definecolor{gray}{rgb}{0.502, 0.502, 0.502} \definecolor{lime}{rgb}{0, 1.0, 0} \definecolor{maroon}{rgb}{0.502, 0, 0} \definecolor{navy}{rgb}{0, 0, 0.502} \definecolor{olive}{rgb}{0.502, 0.502, 0} \definecolor{purple}{rgb}{0.502, 0, 0.502} \definecolor{silver}{rgb}{0.753, 0.753, 0.753} \definecolor{teal}{rgb}{0, 0.502, 0.502} % Because of conflicts, \space and \mathop are converted to % \itexspace and \operatorname during preprocessing. % itex: \space{ht}{dp}{wd} % % Height and baseline depth measurements are in units of tenths of an ex while % the width is measured in tenths of an em. \makeatletter \newdimen\itex@wd% \newdimen\itex@dp% \newdimen\itex@thd% \def\itexspace#1#2#3{\itex@wd=#3em% \itex@wd=0.1\itex@wd% \itex@dp=#2ex% \itex@dp=0.1\itex@dp% \itex@thd=#1ex% \itex@thd=0.1\itex@thd% \advance\itex@thd\the\itex@dp% \makebox[\the\itex@wd]{\rule[-\the\itex@dp]{0cm}{\the\itex@thd}}} \makeatother % \tensor and \multiscript \makeatletter \newif\if@sup \newtoks\@sups \def\append@sup#1{\edef\act{\noexpand\@sups={\the\@sups #1}}\act}% \def\reset@sup{\@supfalse\@sups={}}% \def\mk@scripts#1#2{\if #2/ \if@sup ^{\the\@sups}\fi \else% \ifx #1_ \if@sup ^{\the\@sups}\reset@sup \fi {}_{#2}% \else \append@sup#2 \@suptrue \fi% \expandafter\mk@scripts\fi} \def\tensor#1#2{\reset@sup#1\mk@scripts#2_/} \def\multiscripts#1#2#3{\reset@sup{}\mk@scripts#1_/#2% \reset@sup\mk@scripts#3_/} \makeatother % \slash \makeatletter \newbox\slashbox \setbox\slashbox=\hbox{$/$} \def\itex@pslash#1{\setbox\@tempboxa=\hbox{$#1$} \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa \copy\slashbox \kern-\@tempdima \box\@tempboxa} \def\slash{\protect\itex@pslash} \makeatother % math-mode versions of \rlap, etc % from Alexander Perlis, "A complement to \smash, \llap, and lap" % http://math.arizona.edu/~aprl/publications/mathclap/ \def\clap#1{\hbox to 0pt{\hss#1\hss}} \def\mathllap{\mathpalette\mathllapinternal} \def\mathrlap{\mathpalette\mathrlapinternal} \def\mathclap{\mathpalette\mathclapinternal} \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}} \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}} % Renames \sqrt as \oldsqrt and redefine root to result in \sqrt[#1]{#2} \let\oldroot\root \def\root#1#2{\oldroot #1 \of{#2}} \renewcommand{\sqrt}[2][]{\oldroot #1 \of{#2}} % Manually declare the txfonts symbolsC font \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n} \DeclareFontSubstitution{U}{txsyc}{m}{n} % Manually declare the stmaryrd font \DeclareSymbolFont{stmry}{U}{stmry}{m}{n} \SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n} % Manually declare the MnSymbolE font \DeclareFontFamily{OMX}{MnSymbolE}{} \DeclareSymbolFont{mnomx}{OMX}{MnSymbolE}{m}{n} \SetSymbolFont{mnomx}{bold}{OMX}{MnSymbolE}{b}{n} \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{ <-6> MnSymbolE5 <6-7> MnSymbolE6 <7-8> MnSymbolE7 <8-9> MnSymbolE8 <9-10> MnSymbolE9 <10-12> MnSymbolE10 <12-> MnSymbolE12}{} % Declare specific arrows from txfonts without loading the full package \makeatletter \def\re@DeclareMathSymbol#1#2#3#4{% \let#1=\undefined \DeclareMathSymbol{#1}{#2}{#3}{#4}} \re@DeclareMathSymbol{\neArrow}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\neArr}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\seArrow}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\seArr}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\nwArrow}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\nwArr}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\swArrow}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\swArr}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\nequiv}{\mathrel}{symbolsC}{46} \re@DeclareMathSymbol{\Perp}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\Vbar}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\sslash}{\mathrel}{stmry}{12} \re@DeclareMathSymbol{\bigsqcap}{\mathop}{stmry}{"64} \re@DeclareMathSymbol{\biginterleave}{\mathop}{stmry}{"6} \re@DeclareMathSymbol{\invamp}{\mathrel}{symbolsC}{77} \re@DeclareMathSymbol{\parr}{\mathrel}{symbolsC}{77} \makeatother % \llangle, \rrangle, \lmoustache and \rmoustache from MnSymbolE \makeatletter \def\Decl@Mn@Delim#1#2#3#4{% \if\relax\noexpand#1% \let#1\undefined \fi \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}} \def\Decl@Mn@Open#1#2#3{\Decl@Mn@Delim{#1}{\mathopen}{#2}{#3}} \def\Decl@Mn@Close#1#2#3{\Decl@Mn@Delim{#1}{\mathclose}{#2}{#3}} \Decl@Mn@Open{\llangle}{mnomx}{'164} \Decl@Mn@Close{\rrangle}{mnomx}{'171} \Decl@Mn@Open{\lmoustache}{mnomx}{'245} \Decl@Mn@Close{\rmoustache}{mnomx}{'244} \makeatother % Widecheck \makeatletter \DeclareRobustCommand\widecheck[1]{{\mathpalette\@widecheck{#1}}} \def\@widecheck#1#2{% \setbox\z@\hbox{\m@th$#1#2$}% \setbox\tw@\hbox{\m@th$#1% \widehat{% \vrule\@width\z@\@height\ht\z@ \vrule\@height\z@\@width\wd\z@}$}% \dp\tw@-\ht\z@ \@tempdima\ht\z@ \advance\@tempdima2\ht\tw@ \divide\@tempdima\thr@@ \setbox\tw@\hbox{% \raise\@tempdima\hbox{\scalebox{1}[-1]{\lower\@tempdima\box \tw@}}}% {\ooalign{\box\tw@ \cr \box\z@}}} \makeatother % \mathraisebox{voffset}[height][depth]{something} \makeatletter \NewDocumentCommand\mathraisebox{moom}{% \IfNoValueTF{#2}{\def\@temp##1##2{\raisebox{#1}{$\m@th##1##2$}}}{% \IfNoValueTF{#3}{\def\@temp##1##2{\raisebox{#1}[#2]{$\m@th##1##2$}}% }{\def\@temp##1##2{\raisebox{#1}[#2][#3]{$\m@th##1##2$}}}}% \mathpalette\@temp{#4}} \makeatletter % udots (taken from yhmath) \makeatletter \def\udots{\mathinner{\mkern2mu\raise\p@\hbox{.} \mkern2mu\raise4\p@\hbox{.}\mkern1mu \raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}} \makeatother %% Fix array \newcommand{\itexarray}[1]{\begin{matrix}#1\end{matrix}} %% \itexnum is a noop \newcommand{\itexnum}[1]{#1} %% Renaming existing commands \newcommand{\underoverset}[3]{\underset{#1}{\overset{#2}{#3}}} \newcommand{\widevec}{\overrightarrow} \newcommand{\darr}{\downarrow} \newcommand{\nearr}{\nearrow} \newcommand{\nwarr}{\nwarrow} \newcommand{\searr}{\searrow} \newcommand{\swarr}{\swarrow} \newcommand{\curvearrowbotright}{\curvearrowright} \newcommand{\uparr}{\uparrow} \newcommand{\downuparrow}{\updownarrow} \newcommand{\duparr}{\updownarrow} \newcommand{\updarr}{\updownarrow} \newcommand{\gt}{>} \newcommand{\lt}{<} \newcommand{\map}{\mapsto} \newcommand{\embedsin}{\hookrightarrow} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Zeta}{Z} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Upsi}{\Upsilon} \newcommand{\omicron}{o} \newcommand{\lang}{\langle} \newcommand{\rang}{\rangle} \newcommand{\Union}{\bigcup} \newcommand{\Intersection}{\bigcap} \newcommand{\Oplus}{\bigoplus} \newcommand{\Otimes}{\bigotimes} \newcommand{\Wedge}{\bigwedge} \newcommand{\Vee}{\bigvee} \newcommand{\coproduct}{\coprod} \newcommand{\product}{\prod} \newcommand{\closure}{\overline} \newcommand{\integral}{\int} \newcommand{\doubleintegral}{\iint} \newcommand{\tripleintegral}{\iiint} \newcommand{\quadrupleintegral}{\iiiint} \newcommand{\conint}{\oint} \newcommand{\contourintegral}{\oint} \newcommand{\infinity}{\infty} \newcommand{\bottom}{\bot} \newcommand{\minusb}{\boxminus} \newcommand{\plusb}{\boxplus} \newcommand{\timesb}{\boxtimes} \newcommand{\intersection}{\cap} \newcommand{\union}{\cup} \newcommand{\Del}{\nabla} \newcommand{\odash}{\circleddash} \newcommand{\negspace}{\!} \newcommand{\widebar}{\overline} \newcommand{\textsize}{\normalsize} \renewcommand{\scriptsize}{\scriptstyle} \newcommand{\scriptscriptsize}{\scriptscriptstyle} \newcommand{\mathfr}{\mathfrak} \newcommand{\statusline}[2]{#2} \newcommand{\tooltip}[2]{#2} \newcommand{\toggle}[2]{#2} % Theorem Environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{prop}{Proposition} \newtheorem{cor}{Corollary} \newtheorem*{utheorem}{Theorem} \newtheorem*{ulemma}{Lemma} \newtheorem*{uprop}{Proposition} \newtheorem*{ucor}{Corollary} \theoremstyle{definition} \newtheorem{defn}{Definition} \newtheorem{example}{Example} \newtheorem*{udefn}{Definition} \newtheorem*{uexample}{Example} \theoremstyle{remark} \newtheorem{remark}{Remark} \newtheorem{note}{Note} \newtheorem*{uremark}{Remark} \newtheorem*{unote}{Note} %------------------------------------------------------------------- \begin{document} %------------------------------------------------------------------- \section*{limits and colimits by example} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{limits_and_colimits}{}\paragraph*{{Limits and colimits}}\label{limits_and_colimits} [[!include infinity-limits - contents]] This entry lists and discusses examples and special types of the [[universal constructions]] called \emph{[[limits]]} and \emph{[[colimits]]}. It starts with very elementary and simple examples and eventually passes to more sophisticated ones. For examples of the other kinds of [[universal constructions]] see \begin{itemize}% \item \emph{[[examples of adjoint functors]]} \item \emph{[[examples of Kan extensions]]} \end{itemize} \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{limcoliminset}{Limits and colimits of sets}\dotfill \pageref*{limcoliminset} \linebreak \noindent\hyperlink{limits}{Limits}\dotfill \pageref*{limits} \linebreak \noindent\hyperlink{terminal_object}{Terminal object}\dotfill \pageref*{terminal_object} \linebreak \noindent\hyperlink{product}{Product}\dotfill \pageref*{product} \linebreak \noindent\hyperlink{equalizer}{Equalizer}\dotfill \pageref*{equalizer} \linebreak \noindent\hyperlink{pullback}{Pullback}\dotfill \pageref*{pullback} \linebreak \noindent\hyperlink{general_limits}{General limits}\dotfill \pageref*{general_limits} \linebreak \noindent\hyperlink{colimits}{Colimits}\dotfill \pageref*{colimits} \linebreak \noindent\hyperlink{initial_object}{Initial object}\dotfill \pageref*{initial_object} \linebreak \noindent\hyperlink{coproduct}{Coproduct}\dotfill \pageref*{coproduct} \linebreak \noindent\hyperlink{coequalizer}{Coequalizer}\dotfill \pageref*{coequalizer} \linebreak \noindent\hyperlink{pushout}{Pushout}\dotfill \pageref*{pushout} \linebreak \noindent\hyperlink{general_colimits}{General colimits}\dotfill \pageref*{general_colimits} \linebreak \noindent\hyperlink{OfTopologicalSpaces}{Limits and colimits of topological spaces}\dotfill \pageref*{OfTopologicalSpaces} \linebreak \noindent\hyperlink{limits_and_colimits_in_a_preordered_set}{Limits and colimits in a preordered set}\dotfill \pageref*{limits_and_colimits_in_a_preordered_set} \linebreak \noindent\hyperlink{limits_and_colimits_in_functor_categories}{Limits and colimits in functor categories}\dotfill \pageref*{limits_and_colimits_in_functor_categories} \linebreak \noindent\hyperlink{examplesoflimits}{Examples of limits}\dotfill \pageref*{examplesoflimits} \linebreak \noindent\hyperlink{limitssimplediagrams}{Simple diagrams}\dotfill \pageref*{limitssimplediagrams} \linebreak \noindent\hyperlink{filteredlimits}{Filtered limits}\dotfill \pageref*{filteredlimits} \linebreak \noindent\hyperlink{limitsintermsofotherops}{In terms of other operations}\dotfill \pageref*{limitsintermsofotherops} \linebreak \noindent\hyperlink{limitsinpresheafcat}{Limits in presheaf categories}\dotfill \pageref*{limitsinpresheafcat} \linebreak \noindent\hyperlink{limitsinundercat}{Limits in under-categories}\dotfill \pageref*{limitsinundercat} \linebreak \noindent\hyperlink{further_resources}{Further resources}\dotfill \pageref*{further_resources} \linebreak \noindent\hyperlink{discussion}{Discussion}\dotfill \pageref*{discussion} \linebreak \hypertarget{limcoliminset}{}\subsection*{{Limits and colimits of sets}}\label{limcoliminset} In the [[category]] [[Set]] of [[sets]], the concepts of [[limits]] and [[colimits]] reduce to the familiar operations of \begin{itemize}% \item [[cartesian product]] of sets; \item [[disjoint union]] of sets; \item [[subsets]] defined by [[equations]] \item [[quotient sets]] of [[equivalence relations]]. \end{itemize} \hypertarget{limits}{}\subsubsection*{{Limits}}\label{limits} \hypertarget{terminal_object}{}\paragraph*{{Terminal object}}\label{terminal_object} The [[terminal object]] is the limit of the empty functor $F: \emptyset \to Set$. So a [[terminal object]] of $Set$ is a set $X$ such that there is a unqiue function from any set to $X$. This is given by any [[singleton]] set $\{a\}$, where the unique function $Y \to \{a\}$ from any set $Y$ is the function that sends every element in $Y$ to $a$. \hypertarget{product}{}\paragraph*{{Product}}\label{product} Given two sets $A, B$, the categorical [[product]] is the limit of the diagram (with no non-trivial maps) \begin{displaymath} \itexarray{ A & B }. \end{displaymath} This is given by the usual product of sets, which can be constructed as the set of [[Kuratowski pairs]] \begin{displaymath} A \times B = \{ \{\{a\}, \{a, b\}\}: a \in A, b \in B\}. \end{displaymath} We tend to write $(a, b)$ instead of $\{\{a\}, \{a, b\}\}$. The projection maps $\pi_1: A \times B \to A$ and $\pi_2: A \times B \to B$ are given by \begin{displaymath} \pi_1(a, b) = a, \pi_2(a, b) = b. \end{displaymath} To see this satisfies the universal property of products, given any pair of maps $f: X \to A$ and $g: X \to B$, we obtain a map $(f, g): X \to A \times B$ given by \begin{displaymath} (f, g)(x) = (f(x), g(x)). \end{displaymath} More generally, given a (possibility infinite) collection of sets $\{A_\alpha\}_{\alpha \in I}$, the product of the discrete diagram consisting of these sets is the usual product $\prod_{\alpha \in I} A_\alpha$. This can be constructed as \begin{displaymath} \prod_{\alpha \in I} A_\alpha = \left\{f: I \to \bigcup_{\alpha \in I} A_\alpha \mid f(\alpha) \in A_\alpha\;\text{ for all }\;\alpha \in I\right\}. \end{displaymath} \hypertarget{equalizer}{}\paragraph*{{Equalizer}}\label{equalizer} Given a pair of functions $f, g: X \to Y$, the [[equalizer]] is the limit of the diagram \begin{displaymath} \itexarray{ X & \underset{g}{\overset{f}{\rightrightarrows}} & Y }. \end{displaymath} The limit is given by a map $e: A \to X$ such that given any $a: B \to X$, it factors through $e$ if and only if $f \circ a = g \circ a$. In other words, $a$ factors through $e$ if and only if $\im a \subseteq \{x \in X: f(x) = g(x)\}$. Thus the limit of the diagram is given by \begin{displaymath} A = \{x \in X: f(x) = g(x)\}, \end{displaymath} and the map $e: A \to X$ is given by the inclusion. \hypertarget{pullback}{}\paragraph*{{Pullback}}\label{pullback} Given two maps $f: A \to C$ and $g: B \to C$, the [[pullback]] is the limit of the diagram \begin{displaymath} \itexarray{ & & A\\ & & \downarrow^\mathrlap{f}\\ B & \underset{g}{\to} & C }. \end{displaymath} This limit is given by \begin{displaymath} \{(a, b) \in A \times B: f(a) = g(b)\}, \end{displaymath} with the maps to $A$ and $B$ given by the projections. While the definition of a pullback is symmetric in $f$ and $g$, it is usually convenient to think of this as pulling back $f$ along $g$ (or the other way round). This has more natural interpretations in certain special cases. If $g: B \to C$ is the inclusion of a subset (ie. is a [[monomorphism]]), then the pullback of $f$ along $g$ is given by \begin{displaymath} \{a \in A: f(a) \in B\}. \end{displaymath} So this is given by restricting $f$ to the elements that are mapped into $B$. Further, if $f: A \to C$ is \emph{also} the inclusion fo a subset, so that $A$ and $B$ are both subobjects of $C$, then the above formula tells us that the pullback is simply the intersection of the two subsets. Alternatively, we can view the map $f: A \to C$ as a collection of sets indexed by elements of $C$, where the set indexed by $c \in C$ is given by $A_c = f^{-1}(c)$. Under this interpretation, pulling $f$ back along $g$ gives a collection of sets indexed by elements of $B$, where the set indexed by $b \in B$ is given b $A_{g(b)}$. \hypertarget{general_limits}{}\paragraph*{{General limits}}\label{general_limits} Given a general [[Set]]-valued functor $F : D \to Set$, if the limit $lim F$ exists, then by definition, for any set $A$, a function $f: A \to lim F$ is equivalent to a compatible family of maps $f_d: A \to F(d)$ for each $d \in Obj(d)$. In particular, since an element of a set $X$ bijects with maps $1 \to X$ from the singleton $1 = \{\emptyset\}$, we have \begin{displaymath} lim F \cong Set (1, lim F) \cong [D, Set](const_1, F), \end{displaymath} where $const_1$ is the functor that constantly takes the value $1$. Thus the limit is given by the set of [[natural transformations]] from $const_1$ to $F$. More concretely, a compatible family of maps $1 \to F(d)$ is given by an element $s_d \in F(d)$ for each $d \in Obj(d)$, satisfying the appropriate compatibility conditions. Thus, the limit can be realized as a subset of the product $\prod_{d \in Obj(d)} F(d)$ of all objects: \begin{displaymath} lim F = \left\{ (s_d)_d \in \prod_d F(d) | \forall (d \stackrel{f}{\to} d') : F(f)(s_{d}) = s_{d'} \right\}. \end{displaymath} \hypertarget{colimits}{}\subsubsection*{{Colimits}}\label{colimits} \hypertarget{initial_object}{}\paragraph*{{Initial object}}\label{initial_object} The [[initial object]] in $Set$ is a set $X$ such that there is a unique map from $X$ to any other set. This is given by the empty set $\emptyset$. \hypertarget{coproduct}{}\paragraph*{{Coproduct}}\label{coproduct} (\ldots{}) \hypertarget{coequalizer}{}\paragraph*{{Coequalizer}}\label{coequalizer} (\ldots{}) \hypertarget{pushout}{}\paragraph*{{Pushout}}\label{pushout} (\ldots{}) \hypertarget{general_colimits}{}\paragraph*{{General colimits}}\label{general_colimits} The colimit over a [[nLab:Set|Set]]-valued functor $F : D \to Set$ is a quotient set of the disjoint union $\coprod_{d \in Obj(D)} D(d)$: \begin{displaymath} colim F \simeq \left(\coprod_{d\in D} F(d)\right)/_\sim \,, \end{displaymath} where the equivalence relation $\sim$ is that which is \emph{generated} by \begin{displaymath} ((x \in F(d)) \sim (x' \in F(d')))\quad if \quad (\exists (f : d \to d') with F(f)(x) = x') \,. \end{displaymath} If $D$ is a [[filtered category]] then the resulting equivalence relation can be described as follows: \begin{displaymath} ((x \in F(d)) \sim (x' \in F(d')))\quad iff \quad (\exists d'', (f : d \to d''), (g: d' \to d'') with F(f)(x) = F(g)(x')) \,. \end{displaymath} (If $D$ is not filtered, then this description doesn't yield an equivalence relation.) \hypertarget{OfTopologicalSpaces}{}\subsection*{{Limits and colimits of topological spaces}}\label{OfTopologicalSpaces} We discuss limits and colimits in the category [[Top]] of [[topological spaces]]. $\,$ [[!include universal constructions of topological spaces -- table]] $\,$ \begin{defn} \label{InitialAndFinalTopologies}\hypertarget{InitialAndFinalTopologies}{} Let $\{X_i = (S_i,\tau_i) \in Top\}_{i \in I}$ be a [[class]] of [[topological spaces]], and let $S \in Set$ be a bare [[set]]. Then \begin{itemize}% \item For $\{S \stackrel{f_i}{\to} S_i \}_{i \in I}$ a set of [[functions]] out of $S$, the \emph{[[initial topology]]} $\tau_{initial}(\{f_i\}_{i \in I})$ is the topology on $S$ with the [[minimum]] collection of [[open subsets]] such that all $f_i \colon (S,\tau_{initial}(\{f_i\}_{i \in I}))\to X_i$ are [[continuous function|continuous]]. \item For $\{S_i \stackrel{f_i}{\to} S\}_{i \in I}$ a set of [[functions]] into $S$, the \emph{[[final topology]]} $\tau_{final}(\{f_i\}_{i \in I})$ is the topology on $S$ with the [[maximum]] collection of [[open subsets]] such that all $f_i \colon X_i \to (S,\tau_{final}(\{f_i\}_{i \in I}))$ are [[continuous function|continuous]]. \end{itemize} \end{defn} \begin{example} \label{TopologicalSubspace}\hypertarget{TopologicalSubspace}{} For $X$ a single topological space, and $\iota_S \colon S \hookrightarrow U(X)$ a subset of its underlying set, then the initial topology $\tau_{intial}(\iota_S)$, def. \ref{InitialAndFinalTopologies}, is the [[subspace topology]], making \begin{displaymath} \iota_S \;\colon\; (S, \tau_{initial}(\iota_S)) \hookrightarrow X \end{displaymath} a [[topological subspace]] inclusion. \end{example} \begin{example} \label{QuotientTopology}\hypertarget{QuotientTopology}{} Conversely, for $p_S \colon U(X) \longrightarrow S$ an [[epimorphism]], then the final topology $\tau_{final}(p_S)$ on $S$ is the \emph{[[quotient topology]]}. \end{example} \begin{prop} \label{DescriptionOfLimitsAndColimitsInTop}\hypertarget{DescriptionOfLimitsAndColimitsInTop}{} Let $I$ be a [[small category]] and let $X_\bullet \colon I \longrightarrow Top$ be an $I$-[[diagram]] in [[Top]] (a [[functor]] from $I$ to $Top$), with components denoted $X_i = (S_i, \tau_i)$, where $S_i \in Set$ and $\tau_i$ a topology on $S_i$. Then: \begin{enumerate}% \item The [[limit]] of $X_\bullet$ exists and is given by [[generalized the|the]] topological space whose underlying set is [[generalized the|the]] limit in [[Set]] of the underlying sets in the diagram, and whose topology is the [[initial topology]], def. \ref{InitialAndFinalTopologies}, for the functions $p_i$ which are the limiting [[cone]] components: \begin{displaymath} \itexarray{ && \underset{\longleftarrow}{\lim}_{i \in I} S_i \\ & {}^{\mathllap{p_i}}\swarrow && \searrow^{\mathrlap{p_j}} \\ S_i && \underset{}{\longrightarrow} && S_j } \,. \end{displaymath} Hence \begin{displaymath} \underset{\longleftarrow}{\lim}_{i \in I} X_i \simeq \left(\underset{\longleftarrow}{\lim}_{i \in I} S_i,\; \tau_{initial}(\{p_i\}_{i \in I})\right) \end{displaymath} \item The [[colimit]] of $X_\bullet$ exists and is the topological space whose underlying set is the colimit in [[Set]] of the underlying diagram of sets, and whose topology is the [[final topology]], def. \ref{InitialAndFinalTopologies} for the component maps $\iota_i$ of the colimiting [[cocone]] \begin{displaymath} \itexarray{ S_i && \longrightarrow && S_j \\ & {}_{\mathllap{\iota_i}}\searrow && \swarrow_{\mathrlap{\iota_j}} \\ && \underset{\longrightarrow}{\lim}_{i \in I} S_i } \,. \end{displaymath} Hence \begin{displaymath} \underset{\longrightarrow}{\lim}_{i \in I} X_i \simeq \left(\underset{\longrightarrow}{\lim}_{i \in I} S_i,\; \tau_{final}(\{\iota_i\}_{i \in I})\right) \end{displaymath} \end{enumerate} \end{prop} (e.g. \hyperlink{Bourbaki71}{Bourbaki 71, section I.4}) \begin{proof} The required [[universal property]] of $\left(\underset{\longleftarrow}{\lim}_{i \in I} S_i,\; \tau_{initial}(\{p_i\}_{i \in I})\right)$ is immediate: for \begin{displaymath} \itexarray{ && (S,\tau) \\ & {}^{\mathllap{f_i}}\swarrow && \searrow^{\mathrlap{f_j}} \\ X_i && \underset{}{\longrightarrow} && X_i } \end{displaymath} any [[cone]] over the diagram, then by construction there is a unique function of underlying sets $S \longrightarrow \underset{\longleftarrow}{\lim}_{i \in I} S_i$ making the required diagrams commute, and so all that is required is that this unique function is always [[continuous function|continuous]]. But this is precisely what the initial topology ensures. The case of the colimit is [[formal dual|formally dual]]. \end{proof} \begin{example} \label{PointTopologicalSpaceAsEmptyLimit}\hypertarget{PointTopologicalSpaceAsEmptyLimit}{} The limit over the empty diagram in $Top$ is the [[point]] $\ast$ with its unique topology. \end{example} \begin{example} \label{DisjointUnionOfTopologicalSpacesIsCoproduct}\hypertarget{DisjointUnionOfTopologicalSpacesIsCoproduct}{} For $\{X_i\}_{i \in I}$ a set of topological spaces, their [[coproduct]] $\underset{i \in I}{\sqcup} X_i \in Top$ is their \emph{[[disjoint union]]}. \end{example} In particular: \begin{example} \label{DiscreteTopologicalSpaceAsCoproduct}\hypertarget{DiscreteTopologicalSpaceAsCoproduct}{} For $S \in Set$, the $S$-indexed [[coproduct]] of the point, $\underset{s \in S}{\coprod}\ast$, is the set $S$ itself equipped with the [[final topology]], hence is the [[discrete topological space]] on $S$. \end{example} \begin{example} \label{ProductTopologicalSpace}\hypertarget{ProductTopologicalSpace}{} For $\{X_i\}_{i \in I}$ a set of topological spaces, their [[product]] $\underset{i \in I}{\prod} X_i \in Top$ is the [[Cartesian product]] of the underlying sets equipped with the \emph{[[product topology]]}, also called the \emph{[[Tychonoff product]]}. In the case that $S$ is a [[finite set]], such as for binary product spaces $X \times Y$, then a [[basis for a topology|sub-basis]] for the product topology is given by the [[Cartesian products]] of the open subsets of (a basis for) each factor space. \end{example} \begin{example} \label{EqualizerInTop}\hypertarget{EqualizerInTop}{} The [[equalizer]] of two [[continuous functions]] $f, g \colon X \stackrel{\longrightarrow}{\longrightarrow} Y$ in $Top$ is the equalizer of the underlying functions of sets \begin{displaymath} eq(f,g) \hookrightarrow S_X \stackrel{\overset{f}{\longrightarrow}}{\underset{g}{\longrightarrow}} S_Y \end{displaymath} (hence the largets subset of $S_X$ on which both functions coincide) and equipped with the [[subspace topology]], example \ref{TopologicalSubspace}. \end{example} \begin{example} \label{CoequalizerInTop}\hypertarget{CoequalizerInTop}{} The [[coequalizer]] of two [[continuous functions]] $f, g \colon X \stackrel{\longrightarrow}{\longrightarrow} Y$ in $Top$ is the coequalizer of the underlying functions of sets \begin{displaymath} S_X \stackrel{\overset{f}{\longrightarrow}}{\underset{g}{\longrightarrow}} S_Y \longrightarrow coeq(f,g) \end{displaymath} (hence the [[quotient set]] by the [[equivalence relation]] generated by $f(x) \sim g(x)$ for all $x \in X$) and equipped with the [[quotient topology]], example \ref{QuotientTopology}. \end{example} \begin{example} \label{PushoutInTop}\hypertarget{PushoutInTop}{} For \begin{displaymath} \itexarray{ A &\overset{g}{\longrightarrow}& Y \\ {}^{\mathllap{f}}\downarrow \\ X } \end{displaymath} two [[continuous functions]] out of the same [[domain]], then the [[colimit]] under this diagram is also called the \emph{[[pushout]]}, denoted \begin{displaymath} \itexarray{ A &\overset{g}{\longrightarrow}& Y \\ {}^{\mathllap{f}}\downarrow && \downarrow^{\mathrlap{g_\ast f}} \\ X &\longrightarrow& X \sqcup_A Y \,. } \,. \end{displaymath} (Here $g_\ast f$ is also called the pushout of $f$, or the \emph{[[base change|cobase change]]} of $f$ along $g$.) If $g$ is an inclusion, one also write $X \cup_f Y$ and calls this the \emph{[[attaching space]]}. By example \ref{CoequalizerInTop} the [[pushout]]/[[attaching space]] is the [[quotient topological space]] \begin{displaymath} X \sqcup_A Y \simeq (X\sqcup Y)/\sim \end{displaymath} of the [[disjoint union]] of $X$ and $Y$ subject to the [[equivalence relation]] which identifies a point in $X$ with a point in $Y$ if they have the same pre-image in $A$. (graphics from \hyperlink{AguilarGitlerPrieto02}{Aguilar-Gitler-Prieto 02}) \end{example} \begin{example} \label{TopologicalnSphereIsPushoutOfBoundaryOfnBallInclusionAlongItself}\hypertarget{TopologicalnSphereIsPushoutOfBoundaryOfnBallInclusionAlongItself}{} As an important special case of example \ref{PushoutInTop}, let \begin{displaymath} i_n \colon S^{n-1}\longrightarrow D^n \end{displaymath} be the canonical inclusion of the standard [[n-sphere|(n-1)-sphere]] as the [[boundary]] of the standard [[n-disk]] (both regarded as [[topological spaces]] with their [[subspace topology]] as subspaces of the [[Cartesian space]] $\mathbb{R}^n$). Then the colimit in [[Top]] under the diagram, i.e. the [[pushout]] of $i_n$ along itself, \begin{displaymath} \left\{ D^n \overset{i_n}{\longleftarrow} S^{n-1} \overset{i_n}{\longrightarrow} D^n \right\} \,, \end{displaymath} is the [[n-sphere]] $S^n$: \begin{displaymath} \itexarray{ S^{n-1} &\overset{i_n}{\longrightarrow}& D^n \\ {}^{\mathllap{i_n}}\downarrow &(po)& \downarrow \\ D^n &\longrightarrow& S^n } \,. \end{displaymath} (graphics from Ueno-Shiga-Morita 95) \end{example} W \hypertarget{limits_and_colimits_in_a_preordered_set}{}\subsection*{{Limits and colimits in a preordered set}}\label{limits_and_colimits_in_a_preordered_set} (..) \hypertarget{limits_and_colimits_in_functor_categories}{}\subsection*{{Limits and colimits in functor categories}}\label{limits_and_colimits_in_functor_categories} (..) \hypertarget{examplesoflimits}{}\subsection*{{Examples of limits}}\label{examplesoflimits} In the following examples, $D$ is a [[small category]], $C$ is any category and the limit is taken over a functor $F : D^{op} \to C$. \hypertarget{limitssimplediagrams}{}\subsubsection*{{Simple diagrams}}\label{limitssimplediagrams} \begin{itemize}% \item the limit of the empty diagram $D = \emptyset$ in $C$ is, if it exists [[nLab:generalized the|the]] [[nLab:terminal object|terminal object]]; \item if $D$ is a [[nLab:discrete category|discrete category]], i.e. a category with only identity morphisms, then a diagram $F : D \to C$ is just a collection $c_i$ of objects of $C$. Its limit is the [[nLab:product|product]] $\prod_i c_i$ of these. \item if $D = \{a \stackrel{\to}{\to} b\}$ then $lim F$ is the [[nLab:equalizer|equalizer]] of the two morphisms $F(b) \to F(a)$. \item if $D$ has an [[nLab:terminal object|terminal object]] $I$ (so that $I$ is an [[nLab:initial object|initial object]] in $D^{op}$), then the limit of any $F : D^{op} \to C$ is $F(I)$. \end{itemize} \hypertarget{filteredlimits}{}\subsubsection*{{Filtered limits}}\label{filteredlimits} \begin{itemize}% \item if $D$ is a [[nLab:poset|poset]], then the limit over $D^{op}$ is the supremum over the $F(d)$ with respect to $(F(d) \leq F(d')) \Leftrightarrow (F(d) \stackrel{F(\leq)}{\leftarrow} F(d'))$; \item the generalization of this is where the term ``limit'' for categorical limit (probably) originates from: for $D$ a [[nLab:filtered category|filtered category]], hence $D^{op}$ a cofiltered category, one may think of $(d \stackrel{f}{\to} d') \mapsto (F(d) \stackrel{F(f)}{\leftarrow} F(d')$ as witnessing that $F(d')$ is ``larger than'' $F(d)$ in some sense, and $lim F$ is then the ``largest'' of all these objects, the limiting object. This interpretation is perhaps more evident for filtered [[nLab:colimit|colimits]], where the codomain category $C$ is thought of as being the [[nLab:opposite category|opposite]] $C = E^{op}$. See the motivation at [[nLab:ind-object|ind-object]]. \end{itemize} \hypertarget{limitsintermsofotherops}{}\subsubsection*{{In terms of other operations}}\label{limitsintermsofotherops} If products and equalizers exist in $C$, then limit of $F : D^{op} \to C$ can be exhibited as a [[nLab:subobject|subobject]] of the [[nLab:product|product]] of the $F(d)$, namely the [[nLab:equalizer|equalizer]] of \begin{displaymath} \prod_{d \in Obj(D)} F(d) \stackrel{\langle F(f) \circ p_{F(t(f))} \rangle_{f \in Mor(D)} }{\to} \prod_{f \in Mor(D)} F(s(f)) \end{displaymath} and \begin{displaymath} \prod_{d \in Obj(D)} F(d) \stackrel{\langle p_{F(s(f))} \rangle_{f \in Mor(D)} }{\to} \prod_{f \in Mor(D)} F(s(f)) \,. \end{displaymath} See the explicit formula for the limit in [[nLab:Set|Set]] in terms of a subset of a product set. In particular therefore, a category has all limits already if it has all products and equalizers. \hypertarget{limitsinpresheafcat}{}\subsubsection*{{Limits in presheaf categories}}\label{limitsinpresheafcat} Consider limits of functors $F : D^{op} \to PSh(C)$ with values in the [[category of presheaves]] over a [[category]] $C$. \begin{prop} \label{LimitsOfPresheaves}\hypertarget{LimitsOfPresheaves}{} \textbf{([[limits of presheaves are computed objectwise]])} Limits of presheaves are computed objectwise: \begin{displaymath} lim F : c \mapsto lim F(-)(c) \end{displaymath} Here on the right the limit is over the functor $F(-)(c) : D^{op} \to Set$. Similarly for colimits \end{prop} Similarly [[colimit]]s of presheaves are computed objectwise. \begin{prop} \label{}\hypertarget{}{} The [[Yoneda embedding]] $Y : C \to PSh(C)$ commutes with small limits: Let $F : D^{op} \to C$, then we have \begin{displaymath} Y(lim F) \simeq lim (Y\circ F) \end{displaymath} if $lim F$ exists. \end{prop} \textbf{Warning} The Yoneda embedding does \emph{not} in general preserve colimits. \hypertarget{limitsinundercat}{}\subsubsection*{{Limits in under-categories}}\label{limitsinundercat} Limits in [[under category|under categories]] are a special case of limits in [[comma category|comma categories]]. These are explained elsewhere. It may still be useful to spell out some details for the special case of under-categories. This is what the following does. \begin{prop} \label{}\hypertarget{}{} Limits in an [[under category]] are computed as limits in the underlying category. Precisely: let $C$ be a [[category]], $t \in C$ an [[object]], and $t/C$ the corresponding [[under category]], and $p : t/C \to C$ the obvious projection. Let $F : D \to t/C$ be any [[functor]]. Then, if it exists, the [[limit]] over $p \circ F$ in $C$ is the image under $p$ of the limit over $F$: \begin{displaymath} p(\lim F) \simeq \lim (p F) \end{displaymath} and $\lim F$ is uniquely characterized by $\lim (p F)$. \end{prop} \begin{proof} Over a morphism $\gamma : d \to d'$ in $D$ the limiting cone over $p F$ (which exists by assumption) looks like \begin{displaymath} \itexarray{ && \lim p F \\ & \swarrow && \searrow \\ p F(d) &&\stackrel{p F(\gamma)}{\to}&& p F(d') } \end{displaymath} By the universal property of the limit this has a unique lift to a cone in the [[under category]] $t/C$ over $F$: \begin{displaymath} \itexarray{ && t \\ & \swarrow &\downarrow & \searrow \\ && \lim p F \\ \downarrow & \swarrow && \searrow & \downarrow \\ p F(d) &&\stackrel{p F(\gamma)}{\to}&& p F(d') } \end{displaymath} It therefore remains to show that this is indeed a limiting cone over $F$. Again, this is immediate from the universal property of the limit in $C$. For let $t \to Q$ be another cone over $F$ in $t/C$, then $Q$ is another cone over $p F$ in $C$ and we get in $C$ a universal morphism $Q \to \lim p F$ \begin{displaymath} \itexarray{ && t \\ & \swarrow & \downarrow & \searrow \\ && Q \\ \downarrow & \swarrow &\downarrow & \searrow & \downarrow \\ && \lim p F \\ \downarrow & \swarrow && \searrow & \downarrow \\ p F(d) &&\stackrel{p F(\gamma)}{\to}&& p F(d') } \end{displaymath} A glance at the diagram above shows that the composite $t \to Q \to \lim p F$ constitutes a morphism of cones in $C$ into the limiting cone over $p F$. Hence it must equal our morphism $t \to \lim p F$, by the universal property of $\lim p F$, and hence the above diagram does commute as indicated. This shows that the morphism $Q \to \lim p F$ which was the unique one giving a cone morphism on $C$ does lift to a cone morphism in $t/C$, which is then necessarily unique, too. This demonstrates the required universal property of $t \to \lim p F$ and thus identifies it with $\lim F$. \end{proof} \begin{itemize}% \item Remark: One often says ``$p$ reflects limits'' to express the conclusion of this proposition. A conceptual way to consider this result is by appeal to a more general one: if $U: A \to C$ is [[monadic functor|monadic]] (i.e., has a left adjoint $F$ such that the canonical comparison functor $A \to (U F)-Alg$ is an equivalence), then $U$ both reflects and preserves limits. In the present case, the projection $p: A = t/C \to C$ is monadic, is essentially the category of algebras for the monad $T(-) = t + (-)$, at least if $C$ admits binary coproducts. (Added later: the proof is even simpler: if $U: A \to C$ is the underlying functor for the category of algebras of an \emph{endofunctor} on $C$ (as opposed to algebras of a monad), then $U$ reflects and preserves limits; then apply this to the endofunctor $T$ above.) \end{itemize} \hypertarget{further_resources}{}\subsection*{{Further resources}}\label{further_resources} Pedagogical vidoes that explain limits and colimits are at \begin{itemize}% \item [[The Catsters]], \href{http://www.youtube.com/watch?v=g47V6qxKQNU}{General Limits and Colimits} \end{itemize} A web-based program that generates componentwise illustrations of simple [[limit]]s and [[colimit]]s in [[Set]] is developed at \begin{itemize}% \item J. Paine, \href{http://www.j-paine.org/cgi-bin/webcats/webcats.php}{Category Theory Demonstrations} \end{itemize} More on the inner workings of this program is at [[Paine on a Category Theory Demonstrations program]] \hypertarget{discussion}{}\subsection*{{Discussion}}\label{discussion} \begin{quote}% the following discussion originated from an earler version of this entry \end{quote} [[Todd Trimble]]: So far, this is a really good article. However, I would not say in this last line ``if either limit exists'', because small limits on the right certainly exist always since $Set$ is complete; instead, ``if $lim F$ exists''. [[Urs Schreiber|Urs]]: thanks, Todd, I have changed the above now accordingly. Please don't hesitate to correct and/or improve things you see as needed. By the way, I am not completely happy with this entry as yet. It was originally motivated from the desire to \emph{explain} in small steps the computation of limits and colimits to those readers unfamiliar with it. Currently this here mostly just lists results, where maybe we would eventually want to include also pedagocial proofs. The material below ``explanation for programmers'' goes more in that pedagogical direction, though I'd think eventually it would be good to also have the kind of pedestrian explanation given there but without (at first) its realization in Python! :-) \begin{quote}% an earlier version of this entry, which contained the material now branched off at [[Paine on a Category Theory Demonstrations program]], led to the following discussion \end{quote} [[Urs Schreiber]]: sorry to say this, but I am not so happy with the following material here at this particular entry. This entry here is supposed to explain limits and colimits. Originally I thought that the computer program described below should be \emph{used} here to \emph{help explain} limits and colimits. For instance by using its graphical output for illustration purposes. But instead the material below explains how to \emph{write that program} . That may be of interest, too, but here at this entry it seems a bit of a distraction. Could we move the following material to its seperate entry? \emph{Toby}: I would agree that the material on how to write the program would work well in a separate entry, say [[programming coproducts]]. On the other hand, you definitely want to keep the first two lines here; they do just what you want and could be expanded on here. \end{document}