In general, not all functors preserve products. But my question is, is it at least true that all functors from Set to Set preserve products?

If not, does anyone know of a counterexample?

  • $\begingroup$ By "product", do you mean Cartesian product? $\endgroup$ Feb 27, 2019 at 17:18

2 Answers 2


There are a lot of counterexamples, actually.

For example, if $S$ is has more than two elements, then the functor that map every set to $S$ and every function to the identity of $S$ does not preserve products, since the two projections $S\times S\to S$ are not equal.

The functor $X\mapsto S\times X$ does not preserve products either, because the function $$S\times X\times Y\to S\times X\times S\times Y:(s,x,y)\mapsto (s,x,s,y)$$ is never surjective.


If you consider the powerset functor $\mathcal{P}$, which takes any $A$ to its powerset $\mathcal{P}A$, and any function $f : A \to B$ to the function $\mathcal{P}f : \mathcal{P}A \to \mathcal{P}B$, defined by the direct image, for $X\subset A$, $(\mathcal{P}f)(X) = f(X) \subset B$. This defines a functor from Set to Set.

Now you can check that this functor doesn't preserve products, since, for instance you have : $\mathcal{P}\{0\} = \{\emptyset,\{0\}\}$, so taking any non-empty finite set $A$, you have $\mathcal{P}(A\times\{0\}) = \mathcal{P}(A) \neq \mathcal{P}(A)\times\mathcal{P}(\{0\})$. You can check that they are indeed different by looking at their cardinal : $|\mathcal{P}(A)\times\mathcal{P}(\{0\})| = 2 |\mathcal{P}(A)| $


You must log in to answer this question.

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