# Describing epimorphisms in Set-valued functor categories without using pointwise computation of colimits

Let $$\mathscr{A}$$ be a small category and consider the functor category $$[\mathscr{A}, \mathbf{Set}]$$.

Fact. The epimorphisms in $$[\mathscr{A}, \mathbf{Set}]$$ are precisely those natural transformations that are surjective in each component.

This fact can be proven by characterizing epimorphisms via pushouts, and then use that colimits in functor categories are computed pointwise.

Problem. Can we prove the above fact in a more explicit way, without relying on the pointwise computation of colimints in functor categories? (And possibly also without the characterization of epimorphisms via pushouts.)

This problem is part of Exercise 6.2.20 in Tom Leinster’s book Basic Category Theory. In this exercise, the reader is asked to describe monomorphisms and epimorphisms in $$[\mathscr{A}, \mathbf{Set}]$$ in two ways:

• By using their characterization via pullbacks, resp. pushouts, and the fact that (co)limits in functor categories are computed pointwise.

• Without this pointwise computation of (co)limits in functor categories.

It is straightforward to check that pointwise injective/surjective transformations are monomorphisms/epimorphisms in $$[\mathscr{A}, \mathbf{Set}]$$. One can also use Yoneda’s lemma to show that monomorphisms in $$[\mathscr{A}, \mathbf{Set}]$$ are pointwise injective. But I have not been able to solve the above problem so far.

I’ve also searched to solutions to the problem online, but have only found the following so far:

¹ More explicitly, both solutions use the Yoneda isomorphism $$\operatorname{Nat}(H^A, X) ≅ X(A)$$ to deal with monomorphisms. To adapt their arguments to epimorphhisms, we would need such an isomorphism for $$\operatorname{Nat}(X, H^A)$$. But dualizing the Yoneda lemma gives instead the isomorphism $$\operatorname{Nat}(H_A, X) ≅ X(A)$$.

Here is a fairly explicit proof which comes naturally out of topos theory, using the fact that $$[\mathscr{A}, \mathbf{Set}]$$ forms a topos. The basic idea here is that we want to generalize the following argument in $$\mathbf{Set}$$: Suppose $$f : X \to Y$$ is an epimorphism in $$\mathbf{Set}$$. Then consider the two maps $$\chi_{\operatorname{im}(f)} : Y \to \{ 0, 1 \}$$ where $$y\mapsto 1$$ if there is $$x\in X$$ with $$f(x) = y$$, and $$y\mapsto 0$$ otherwise; and the second map $$Y\to \{ 0, 1 \}$$ will be the constant map 1. It is easy to see that $$\chi_{\operatorname{im}(f)} \circ f = 1 \circ f$$, so $$\chi_{\operatorname{im}(f)} = 1$$, and from this it follows that $$f$$ is surjective.
To generalize this to $$[\mathscr{A}, \mathbf{Set}]$$, what we end up needing in place of $$\{ 0, 1 \}$$ is known as a subobject classifier $$\Omega$$. For this case, $$\Omega$$ is the functor where $$\Omega(A)$$ is the set of $$S \subseteq \bigsqcup_{B\in \mathscr{A}} \operatorname{Hom}(A, B)$$ such that whenever $$f \in \operatorname{Hom}(A, B)$$, $$g \in \operatorname{Hom}(B, C)$$, and $$f\in S$$, then $$g\circ f \in S$$. The operation of this functor on morphisms is: for $$f_0 \in \operatorname{Hom}(A, B)$$ and $$S \in \Omega(A)$$, $$\Omega_*(f_0)$$ maps $$S$$ to $$\{ f \in \operatorname{Hom}(B, C) \mid f \circ f_0 \in S \} \in \Omega(B)$$.
Now suppose we have a natural transformation $$\alpha : F \to G$$ which is an epimorphism in $$[\mathscr{A}, \mathbf{Set}]$$. Then we can consider two morphisms $$G \to \Omega$$. The first, which will be a generalization of $$\chi_{\operatorname{im}(\alpha)}$$, will map $$y \in G(A)$$ to $$\{ f \in \operatorname{Hom}(A, B) \mid \exists x \in F(B), \alpha_B(x) = G_*(f)(y) \} \in \Omega(A)$$. The second, which will be a generalization of the constant map 1, we will call $$\operatorname{true}$$ and it will send any $$y \in G(A)$$ to the full set $$\bigsqcup_{B\in \mathscr{A}} \operatorname{Hom}(A, B)$$.
It is straightforward to check that $$\Omega$$ is a functor; $$\chi_{\operatorname{im}(\alpha)}$$ and $$\operatorname{true}$$ are both natural transformations; and $$\chi_{\operatorname{im}(\alpha)} \circ \alpha = \operatorname{true} \circ \alpha$$. Therefore, since $$\alpha$$ is an epimorphism, $$\chi_{\operatorname{im}(\alpha)} = \operatorname{true}$$. It should also be straightforward to show using this that $$\alpha_A$$ is surjective for every $$A$$ (hint: use the special case that $$\operatorname{id}_A \in (\chi_{\operatorname{im}(f)})_A(y)$$ for every $$y \in G(A)$$).