Category Theory for Programmers Chapter 12: Limits and Colimits
Challenges
-
How would you describe a pushout in the category of C++ classes?
C++ classes as a category where morphisms connect subclasses to superclasses, eg, in java we have,
class A {} class B extends A {} class C extends A {}
which would represent the span $B \leftarrow A \to C$.
The pushout would be a class $P$ and arrows $B \to P \leftarrow C$, such that for any other $Q$ and arrows $B \to Q \leftarrow C$, there exists an arrow $P \to Q$.
Specifically, it would look something like
class P extends B, C {}
And so any other class $Q$ that also extends both $B$ and $C$, we would have that $P \to Q$, or that
class Q extends P {}
. -
Show that the limit of the identity functor
Id :: C -> C
is the initial object.Reminder: initial objects are an object $i$ such for every $x$ in $C$, there exists exactly one morphism $i \to x$.
To find the limit of the identity functor, we need to construct cones, so a functor $\Delta_c$ just maps any object $a \in C$ to $c$, and thus natural transformation from $\Delta_c \to Id$ looks like an initial object.
If we can find such a $c$, we need to show that it is initial. In the comments it was hinted that what is unique is the morphism from any cone to the limiting cone.
-
Subsets of a given set form a category. A morphism in that category is defined to be an arrow connecting two sets if the first is the subset of the second. What is a pullback of two sets in such a category? What’s a pushout? What are the initial and terminal objects?
$A \to B$ means $A \subset B$.
A pullback of two morphisms $X \to Z \leftarrow Y$ is an object $P$ and morphisms $X \leftarrow P \to Y$ such that for any other object $Q$ and morphisms $X \leftarrow Q \to Y$, we have there exists a unique morphism, the mediating morphism, such that $Q \to P$.
Translating $\to$ to $\subset$ gives the following: A pullback of two sets, $X, Y$ such that both are subsets of $Z$, is a set $P$ such that $P$ is a subset of both $X$ and $Y$. For any other set $Q$ that is a subset of $X$ and $Y$, we have that $Q$ is a subset of $P$. So we have that the pullback of $X$ and $Y$ is the intersection of $X$ and $Y$.
The pushout of would be the union of $X$ and $Y$. So any other set $Q$ that $X$ and $Y$ are both subsets of, $P$ would also be a subset.
The initial object would be the empty set and the terminal object would be the union of all sets.
-
Can you guess what a coequalizer is?
Creates a categorical equivalence relation between outputs of two morphisms. The equalizer reduces inputs so the results are the same.
-
Show that, in a category with a terminal object, a pullback towards the terminal object is a product.
The terminal object has an arrow from each object, so the object we pullback towards has a sort of “global” presence.
-
Similarly, show that a pushout from an initial object (if one exists) is the coproduct.
Similarly, every object has an arrow from the initial object.