Object $C$ of category $\mathcal C$ is called compact if $$\mathrm{Hom} (X, \mathrm{colim} _I Y_i) \cong \mathrm{colim} _I \mathrm{Hom} (X, Y_i) $$ for every filtered colimit.

I want to prove that finite sets are compact in the category $\mathrm {\mathbf{Sets}}$ (the converse is also true as I know). Here is my attempt:

Every set $X=\{ x_j \}_{j\in J}$ can be described as a disjoint union $X\cong \sqcup _{j\in J} \{ * \}_j$. For finite sets this union is finite and hence commutes with filtered colimits.

For every set it is also true that $\mathrm{Hom} (\{ *\}, X) \cong X$.

Hence for every finite set $C=\{c_j\}_{j\in J}, |J|< \inf$

$$\mathrm{Hom} (C, \mathrm{colim}_i, Y_i)\cong \mathrm{Hom} (\sqcup_{j}\{ *\} , \mathrm{colim}_i, Y_i)\cong \prod_j \mathrm{Hom} (\{ *\}_j , \mathrm{colim}_i, Y_i) \cong \prod_j ( \mathrm{colim} _i Y_i)_j \overset{F(i, j)=Y_i}{\cong} \prod_j \mathrm{colim} _i F(i, j)\overset{\text{fin.lims comm. w. filt.colims}}{\cong}\mathrm{colim}_i \prod_j F(i, j)\cong \mathrm{colim} _i \mathrm{Hom} (\{ *\}_j, \prod F(i, j))\overset{\text{is it OK?}}{\cong}\mathrm{colim} _i \mathrm{Hom} (\sqcup_j \{ *\}_j, \prod F(i, j))\cong \mathrm{colim} _i \mathrm{Hom} (C, Y_i)$$

Upd: I think that is way better $$\mathrm{Hom} (C, \mathrm{colim}_i, Y_i)\cong \mathrm{Hom} (\sqcup_{j}\{ *\} , \mathrm{colim}_i, Y_i)\cong \prod_j \mathrm{Hom} (\{ *\}_j , \mathrm{colim}_i, Y_i) \cong \prod_j ( \mathrm{colim} _i Y_i)_j\cong\prod_j \mathrm{colim} _i \mathrm{Hom} (\{ *\}_j, Y_i) \overset{\text{fin.lims comm. w. filt.colims} }{\cong} \mathrm{colim}_i \prod_j \mathrm{Hom} (\{ *\}_j, Y_i)\cong \mathrm{colim}_i \mathrm{Hom} (\sqcup_j \{ *\}_j, Y_i)\cong\mathrm{colim}_i \mathrm{Hom} (C, Y_i). $$

Upd2: There is an obvious typo after "is it OK?": there should be no product, only coproduct. But it still doesn't work that way.

  • $\begingroup$ Sure, this is fine if you already know that finite limits commute with filtered colimits, but this is so closely related to the result you’re proving as to make the argument a bit vacuous. $\endgroup$ Oct 31, 2023 at 17:53
  • $\begingroup$ Why do you use \pmb for the name of the category of Sets? Isn't it unpleasant to look at? Instead of $\pmb{\mathrm{Sets}}$, you could use $\mathbf{Sets}$ (\mathbf) or $\mathsf{Sets}$ (\mathsf)... $\endgroup$ Oct 31, 2023 at 20:13
  • $\begingroup$ Also, on my screen the long chains of isomorphisms go over the side-bar and off the page. Better to use the align* environment. $\endgroup$ Oct 31, 2023 at 20:17
  • $\begingroup$ @AlexKruckman thanks for your advice. I don't have access to my desktop right now, so it's quite difficult to edit it, but I'll try next time or later if it is okay. $\endgroup$
    – Kubrick
    Oct 31, 2023 at 20:24

1 Answer 1


The idea of the proof is OK, but the execution is not (exactly where you write "is it OK").

But you can write down the proof in a more conceptual way. Prove the following:

  1. In any category, compact objects are closed under finite colimits. This essentially follows from the fact (*) you already cited: finite limits commute with filtered colimits in $\mathbf{Set}$.

  2. The terminal set $1$ is compact in $\mathbf{Set}$.

  3. Every finite set is a finite coproduct of copies of $1$.

The result follows immediately. Notice however that a direct proof is also perfectly possible using the explicit construction of the filtered colimit of sets, and I believe that the same argument is happening in the fact (*) you are already using,

  • $\begingroup$ Thanks for your answer. Proving (1) is basically the same as proving my statement. And now I think I see my mistake: I had to use isomorphism $Y_i\cong \mathrm{Hom} (\{ * \}_j, Y_i)$ before switching colimit and product and then there won't be any notational mess which led me to my mistake. I wonder if it is ok if I edit it in my post. $\endgroup$
    – Kubrick
    Oct 31, 2023 at 18:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .