---- > [!definition] Definition. ([[equalizer]]) > > Let $\mathsf{I}$ be an 'indexing [[category]]' with two objects $\boldsymbol 1$ and $\boldsymbol 2$ and morphisms that look like this (the self-morphisms are identity): > > ```tikz > \usepackage{tikz-cd} > \usepackage{amsmath} > \begin{document} > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAB12AjCBqOAJ4BbHg2AAmAL4hJpdJlz5CKAIzkqtRizadR-YaIAEKmRphQA5vCKgAZgCcIQpGRA4ISNSC4wwUJADMrvTMrIgc7IxoABZ0MnIgDk4u1O6e1D5+SAC0QdQh2uG6MDhx1Ax0PgwACgp4BGz2WBbROPF2js6Irmnd5RAQaETiAOxktoxwMBoVVbXY9cogTS1tsh3JiF69XgwDQygAnGQ49iwzlTA1dUpsDDC2axSSQA > \begin{tikzcd} > \boldsymbol{2} \arrow[r, "\alpha", bend left] \arrow[r, "\beta"', bend right] \arrow[loop, distance=2em, in=215, out=145] & \boldsymbol 1 \arrow[loop, distance=2em, in=325, out=35] > \end{tikzcd} > \end{document} > ``` > > > Let $\mathsf{C}$ by any [[category]]. A [[covariant functor|functor]] ([[diagram]]) $\mathscr{K}:\mathsf{I} \to \mathsf{C}$ amounts to the choice of two objects $A_{1}=\mathscr{K}(\boldsymbol 1)$, $A_{2}=\mathscr{K}(\boldsymbol 2)$ in $\mathsf{C}$ and two 'parallel' morphisms from $A_{2}$ to $A_{1}$. [[categorical limit|Limits]] of such functors are called **equalizers**. [[categorical colimit|Colimits]] are called [[coequalizer|coequalizers]]. Coequalizers are the abstract way to discuss [[quotient set|quotients]] in various categories. Speaking loosely here because I think it is clearer, but could easily make precise. Write the diagram like ($X=A_{2}, Y=A_{1}$) ```tikz \usepackage{tikz-cd} \usepackage{amsmath} \usepackage{amsfonts} \usepackage[mathscr]{euscript} \usepackage{tikzit} \usetikzlibrary{shapes.geometric} \begin{document} % TiKZ style file generated by TikZiT. You may edit this file manually, % but some things (e.g. comments) may be overwritten. To be readable in % TikZiT, the only non-comment lines must be of the form: % \tikzstyle{NAME}=[PROPERTY LIST] % Node styles \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle] \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle] \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle] \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt] \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt] \tikzstyle{noborder}=[fill=none, draw=none, shape=circle] \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle] % Edge styles \tikzstyle{new edge style 0}=[-] %% paste tikzpicture here % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAA0QBfU9TXfIRQBGclVqMWbAJrdxMKAHN4RUADMAThAC2SMiBwQkokHAAWWNTiQBaYT3VbdifYePVzl64nsUuQA \begin{tikzcd} X \arrow[r, shift left] \arrow[r, shift right] & Y \end{tikzcd} %% end paste \end{document} ``` A colimit of the [[diagram]] is an object of $C$ of $\mathsf{C}$, together with morphisms $\lambda:X \to C$, $\pi:Y \to C$ and [[universal property]] like ```tikz \usepackage{tikz-cd} \usepackage{amsmath} \usepackage{amsfonts} \usepackage[mathscr]{euscript} \usepackage{tikzit} \usetikzlibrary{shapes.geometric} \begin{document} % TiKZ style file generated by TikZiT. You may edit this file manually, % but some things (e.g. comments) may be overwritten. To be readable in % TikZiT, the only non-comment lines must be of the form: % \tikzstyle{NAME}=[PROPERTY LIST] % Node styles \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle] \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle] \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle] \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt] \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt] \tikzstyle{noborder}=[fill=none, draw=none, shape=circle] \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle] % Edge styles \tikzstyle{new edge style 0}=[-] %% paste tikzpicture here % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAA0QBfU9TXfIRQBGclVqMWbAJrdeIDNjwEiAJjHV6zVohAAtOXyWCio4eK1TdAYW7iYUAObwioAGYAnCAFskZEDgQSKIgcAAWWG44SAC0IZY6IG6GSV6+iP6BwdThkdGI8ZKJjiDUDHQARjAMAAr8ykIgHliOYdE87mnZAUGI6hLabAA6Q95MKZ4+ftRZfdRVYFBIACwAnJpFw0Pl3hVQdBNdBTO9AMwbg7ojaFiHUxknSOcg5VW19Sa6za3RF1YgIzA4w6qXuz1m-QYWDAiX24QcpQG-xGMAAHlg4Dg4AACACE2JGEBoMA8UJhwBGYy42MRr2qdWMKi+LTadi4QA \begin{tikzcd} X \arrow[r, "f", shift left] \arrow[r, "g"', shift right] \arrow[rr, "\lambda", bend left=49] \arrow[rd, "\nu"'] & Y \arrow[r, "\mu"] \arrow[d, "\pi"] & Z \\ & C \arrow[ru, "\exists ! \overline{\mu} "', dashed] & \end{tikzcd} %% end paste \end{document} ``` Commutativity makes the data of $\lambda=\pi \circ f$ and $\nu=\mu \circ g$ are redundant. So we can equivalently view the coequalizer definition as an object $C$ and morphism $\pi:Y \to C$ satisfying the universal property ```tikz \usepackage{tikz-cd} \usepackage{amsmath} \usepackage{amsfonts} \usepackage[mathscr]{euscript} \usepackage{tikzit} \usetikzlibrary{shapes.geometric} \begin{document} % TiKZ style file generated by TikZiT. You may edit this file manually, % but some things (e.g. comments) may be overwritten. To be readable in % TikZiT, the only non-comment lines must be of the form: % \tikzstyle{NAME}=[PROPERTY LIST] % Node styles \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle] \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle] \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle] \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt] \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt] \tikzstyle{noborder}=[fill=none, draw=none, shape=circle] \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle] % Edge styles \tikzstyle{new edge style 0}=[-] %% paste tikzpicture here % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAA0QBfU9TXfIRQBGclVqMWbAJrdeIDNjwEio4ePrNWiEAGE5fJYKIAmMdU1SdALW7iYUAObwioAGYAnCAFskZEDgQSKIgcAAWWG44SAC0IZbaIG4GSV6+iP6BwdThkdGI8ZKJjiDUDHQARjAMAAr8ykIgHliOYdE87mnZAUGIZhJabAA6Q2hYpSDlVbX1xjrNre3ynj7dWYgAzBZFw0PeTCkr6f3rWwNWICMwAB5YcDhwAIQABCMQNDAeDFhgMMAj+y4Eym1TqRhU8xabWBP0SUDo4Qcdi4QA \begin{tikzcd} X \arrow[r, "f", shift left] \arrow[r, "g"', shift right] & Y \arrow[d, "\pi"'] \arrow[r, "\mu"] & Z \\ & C \arrow[ru, "\exists! \overline{\mu}"', dashed] & \end{tikzcd} %% end paste \end{document} ``` In other words, a coequalizer is precisely $\pi:Y \to C$ such that - $\pi \circ f=\pi \circ g$ - $\pi$ is universal wrt this property: any $\mu:Y \to Z$ satisfying $\mu \circ f=\mu \circ g$ factors through $C$ as $\mu=\overline{\mu} \circ \pi$ for some unique $\overline{\mu}$ In this case the diagram ```tikz \usepackage{tikz-cd} \usepackage{amsmath} \usepackage{amsfonts} \usepackage[mathscr]{euscript} \usepackage{tikzit} \usetikzlibrary{shapes.geometric} \begin{document} % TiKZ style file generated by TikZiT. You may edit this file manually, % but some things (e.g. comments) may be overwritten. To be readable in % TikZiT, the only non-comment lines must be of the form: % \tikzstyle{NAME}=[PROPERTY LIST] % Node styles \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle] \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle] \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle] \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt] \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt] \tikzstyle{noborder}=[fill=none, draw=none, shape=circle] \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle] % Edge styles \tikzstyle{new edge style 0}=[-] %% paste tikzpicture here % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAA0QBfU9TXfIRQBGclVqMWbAJrdeIDNjwEio4ePrNWiEAGFu4mFADm8IqABmAJwgBbJGRA4ISUSDgALLBZxIAtG6aUjoWcpY29ohuzkgATNRB2iAAOsloWCDUDHQARjAMAAr8ykIgVljGHr484XYO1DFR1J7evk0SWmzGmSDZeYXFgmzlldUUXEA \begin{tikzcd} X \arrow[r, "f", shift left] \arrow[r, "g"', shift right] & Y \arrow[d, "\pi"'] \\ & C \end{tikzcd} %% end paste \end{document} ``` is called a **coequalizer diagram**. > [!basicexample] Example. (Quotient sets) > The coequalizer of a diagram > > ```tikz > \usepackage{tikz-cd} > \usepackage{amsmath} > \usepackage{amsfonts} > \usepackage[mathscr]{euscript} > \usepackage{tikzit} > \usetikzlibrary{shapes.geometric} > > \begin{document} > % TiKZ style file generated by TikZiT. You may edit this file manually, > % but some things (e.g. comments) may be overwritten. To be readable in > % TikZiT, the only non-comment lines must be of the form: > % \tikzstyle{NAME}=[PROPERTY LIST] > > % Node styles > \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle] > \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle] > \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle] > \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt] > \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt] > \tikzstyle{noborder}=[fill=none, draw=none, shape=circle] > \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle] > > % Edge styles > \tikzstyle{new edge style 0}=[-] > > > > > %% paste tikzpicture here > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAA0QBfU9TXfIRQBGclVqMWbAJrdxMKAHN4RUADMAThAC2SMiBwQkokHAAWWNTiQBaE-WatEINd14utuxPsPHq5y2tEe0knEEUQagY6ACMYBgAFfjwCNg0sRTNrLgouIA > \begin{tikzcd} > X \arrow[r, "f", shift left] \arrow[r, "g"', shift right] & Y > \end{tikzcd} > %% end paste > > \end{document} > ``` > > > in $\mathsf{Set}$ is the [[quotient set]] $Y \xrightarrow{\pi}\frac{Y}{\langle f(x) \sim g(x) \rangle}$. Indeed, quotienting by this [[equivalence relation]] assures $\pi \circ f=\pi \circ g$, and if $h:Y \to Z$ also satisfies $h \circ f=h \circ g$ then the [[universal property of quotient sets]] factors $h$ through the quotient as required. > > > > [!basicexample] Example of the Example. (Orbits) > > Consider in particular an [[group action|action]] $\alpha:G \times X \to X$ of a [[group]] $G$ on a set $X$, $\alpha(g,x)=g \cdot x$. Recall the notation $X / G$ for the quotient of $X$ by the [[equivalence relation]] $\{ x \sim x' \iff g \cdot x = x' \text{ for some } g \in G \}$, where. Observe that this equivalence relation identifies $x \sim x'$ iff the [[orbit|orbits]] of $x$ and $x'$ coincide. Then, by the $\mathsf{Set}$ construction above, $X / G$ is precisely the coequalizer of > > > > ```tikz > > \usepackage{tikz-cd} > > \usepackage{amsmath} > > \usepackage{amsfonts} > > \usepackage[mathscr]{euscript} > > \usepackage{tikzit} > > \usetikzlibrary{shapes.geometric} > > > > \begin{document} > > % TiKZ style file generated by TikZiT. You may edit this file manually, > > % but some things (e.g. comments) may be overwritten. To be readable in > > % TikZiT, the only non-comment lines must be of the form: > > % \tikzstyle{NAME}=[PROPERTY LIST] > > > > % Node styles > > \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle] > > \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle] > > \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle] > > \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt] > > \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt] > > \tikzstyle{noborder}=[fill=none, draw=none, shape=circle] > > \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle] > > > > % Edge styles > > \tikzstyle{new edge style 0}=[-] > > > > > > > > > > %% paste tikzpicture here > > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAHEACAHW7wFt4nABogAvqXSZc+QigCM5KrUYs2oscphQA5vCKgAZgCcI-JGRA4ISRSDgALLIZxIAtHfrNWiEL0ZoDnTikiAmZhbU1rbUjs6uiHYMdABGMAwACtJ4BGzGWDoOrtRear7y4hRiQA > > \begin{tikzcd} > > G \times X \arrow[r, "\alpha", shift left] \arrow[r, "\varepsilon"', shift right] & X > > \end{tikzcd} > > %% end paste > > > > \end{document} > > ``` > > where $\varepsilon$ denotes the trivial action $g \cdot x= x$ (i.e., the coordinate projection onto $X$). We can use this as an element-free way to *define* the notion of "quotienting by a group action" in other categories; [[group theory in cartesian monoidal categories|see here]]. > > > [!basicexample] Equalizer example. > > Assume $\mathsf{C}=R\text{-}\mathsf{Mod}$ is the [[category]] of $R$-[[module|modules]] for some [[ring]] $R$; let $\varphi:A_{2} \to A_{1}$ be a [[linear map|homomorphism]], and choose $\mathscr{K}$ so $\mathscr{K}(\alpha)=\varphi$ and $\mathscr{K}(\beta)$ is the zero morphism. We claim the equalizer $\lim\limits_{{\longleftarrow}} \mathscr{K}$ is exactly the [[categorical kernel|kernel]] of $\varphi$. Indeed, if we take $\lambda_{\boldsymbol 2}$ to be the [[inclusion map]] $\iota: \ker \varphi \to A_{2}$ and $\lambda_{\boldsymbol 1}$ to be the zero map then the first defining bullet in [[categorical limit]] is, by construction and the definition of kernel of a module homomorphism, satisfied: > > ```tikz > \usepackage{tikz-cd} > \usepackage{amsmath} > \begin{document} > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAEEB9AJhAF9S6TLnyEUARnJVajFmy7j+gkBmx4CRMuOn1mrRCAA6hnDAAeOYAGsYAJwAEfY-VtoAFln7SYUAObwiUAAzWwgAWyRuahwIJDIZPTZjfBw6EGoGOgAjGAYABWF1MRBbLF83HCVg0IjEeJikSQS5A2c6Vw8qkBDwyOjYxCbdFqNDF3cse2MAYyxbaanDFLSM7NyCtVE2UvLKvgo+IA > \begin{tikzcd} > A_2 \arrow[r, "\varphi"] & A_1 \\ > \text{ker }\varphi \arrow[u, "\iota"'] \arrow[ru, "\varphi \circ \iota = 0"'] & > \end{tikzcd} > \end{document} > ``` > Now assume $K$ is another object, endowed with morphisms $\mu_{\boldsymbol 1}$ and $\mu_{\boldsymbol 2}$ also satisfying that bullet's requirements. Commutativity enforces that $\mu_{\boldsymbol 2}=0$: > ```tikz > \usepackage{tikz-cd} > \usepackage{amsmath} > \usepackage[mathscr]{euscript} > \begin{document} > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZARgBoAGAXVJADcBDAGwFcYkQBpEAX1PU1z5CKcqWLU6TVuwCCAfQBMPPiAzY8BIgrESGLNohDziPCTCgBzeEVAAzAE4QAtklEgcEJGUn72AHT8nZjkAgCMIRig4AE8ncMZgYm4QGkZ6UJhGAAUBDWEQeywLAAscZTtHF0Q3DyRtH2lDAKC5YDCIqNj44AVuZN4K5y8aWsR6vUaQZvocYrgAY3tgDm4ACjCYHHoASgBechSQNIzs3KF2QpKy7kpuIA > \begin{tikzcd} > & K \arrow[ld, "\mu_\boldsymbol{1}"'] \arrow[rd, "\mu_{\boldsymbol{2}}"] & \\ > A_2 \arrow[rr, "\mathscr{K}(\beta)=0"'] & & A_1 > \end{tikzcd} > \end{document} > ``` > > whence $K$ fits perfectly into the diagram for the universal property of kernels: > > ```tikz > \usepackage{tikz-cd} > \usepackage{amsmath} > \begin{document} > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAGkQBfU9TXfIRQBGclVqMWbAIIB9AEzdeIDNjwEi8sdXrNWiEHOFK+awUVHDxuqQYA6dnDAAeOYAGsYAJwAEXB-ReaAAWWNziMFAA5vBEoABmXhAAtkhkIDgQSADMOpL6IA4uWHA4cD4AhD4OEDTeDFhgMMAOyUyyDgBGEAxQcACeyd0MwPJcXCDUDHSdMAwACvzqQiBeWFHBOJMgDU1sUHRwwZEmIIkpadSZSKISemyt7V09fYPDoxM8CUmpiLfXiC0d1shTsgRCYS+Zx+lwyWUB1FmYCgOXSNgKxFO51+uThNzy93sdnwODo22mswWS3MBjWGy2XAoXCAA > \begin{tikzcd} > K \arrow[rd, "\exists ! \overline{\mu_\boldsymbol{2}}"', dashed] \arrow[r, "\mu_\boldsymbol{2}"] \arrow[rr, "0", bend left] & A_2 \arrow[r, "\varphi"] & A_1 \\ > & \text{ker }\varphi \arrow[u, "\iota"'] & > \end{tikzcd} > \end{document} > ``` > > ---- #### ---- #### References > [!backlink] > ```dataview > TABLE rows.file.link as "Further Reading" > FROM [[]] > FLATTEN file.tags as Tag > WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom" > GROUP BY Tag > ``` > [!frontlink] > ```dataview > TABLE rows.file.link as "Further Reading" > FROM outgoing([[]]) > FLATTEN file.tags as Tag > WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom" > GROUP BY Tag > ```