Article · Wikipedia archive · Last revised Aug 13, 2026

Product category

In the mathematical field of category theory, the product of two categories C and D, denoted C × D and called a product category, is an extension of the concept of the Cartesian product of two sets. Product categories are used to define bifunctors and multifunctors.

Last revised
Aug 13, 2026
Read time
≈ 7 min
Length
1,519 w
Citations
8
Source

In the mathematical field of category theory, the product of two categories C and D, denoted C × D and called a product category, is an extension of the concept of the Cartesian product of two sets. Product categories are used to define bifunctors and multifunctors.1

Definition

The product category C × D has:

  • as objects:
    pairs of objects (A, B), where A is an object of C and B of D;
  • as arrows from (A1, B1) to (A2, B2):
    pairs of arrows (f, g), where f : A1A2 is an arrow of C and g : B1B2 is an arrow of D;
  • as composition, component-wise composition from the contributing categories:
    (f2, g2) o (f1, g1) = (f2 o f1, g2 o g1);
  • as identities, pairs of identities from the contributing categories:
    1(A, B) = (1A, 1B).

A product of a family of categories is defined exactly the same way.

Universal property

Just like for sets, a product of a family of categories is characterized by the following universal property. Given categories C i {\displaystyle C_{i}} indexed by a set I {\displaystyle I} , P = C i , p j : P C j , j I {\displaystyle P=\prod C_{i},p_{j}:P\to C_{j},j\in I} satisfy:

given a family of functors f i : D C i {\displaystyle f_{i}:D\to C_{i}} , there exists a unique functor f : D P {\displaystyle f:D\to P} such that f j = p j f {\displaystyle f_{j}=p_{j}\circ f} for each j I {\displaystyle j\in I} .

Put in another way, a product of a family of small categories is exactly the categorical product of them in the category of small categories C a t {\displaystyle {\mathsf {Cat}}} . Thus, for example, F c t ( A , i B i ) i F c t ( A , B i ) {\displaystyle \textstyle {\mathsf {Fct}}(A,\prod _{i}B_{i})\simeq \prod _{i}{\mathsf {Fct}}(A,B_{i})}

where F c t {\displaystyle {\mathsf {Fct}}} denotes a functor category.2

Functoriality

Given two functors f : C D , g : C D {\displaystyle f:C\to D,g:C'\to D'} , the product f × g : C × C D × D {\displaystyle f\times g:C\times C'\to D\times D'} is defined component-wise; that is, ( f × g ) ( x , x ) = ( f ( x ) , g ( x ) ) {\displaystyle (f\times g)(x,x')=(f(x),g(x'))} for a pair of objects or morphisms x , x {\displaystyle x,x'} .3 (This product may also be characterized by the universal property similar to that for categories.) This way, we get the functor

× : C a t × C a t C a t . {\displaystyle \times :{\mathsf {Cat}}\times {\mathsf {Cat}}\to {\mathsf {Cat}}.}

It satisfies the tensor-hom adjunction in the sense

Hom C a t ( A × B , C ) Hom C a t ( A , F c t ( B , C ) ) {\displaystyle \operatorname {Hom} _{\mathsf {Cat}}(A\times B,C)\simeq \operatorname {Hom} _{\mathsf {Cat}}(A,{\mathsf {Fct}}(B,C))}

where F c t {\displaystyle {\mathsf {Fct}}} denotes a functor category.4

Example: C × 2

Let f , g : C D {\displaystyle f,g:C\to D} be functors. Suppose there is a natural transformation φ : f g {\displaystyle \varphi :f\to g} . Then φ {\displaystyle \varphi } determines the functor

h : C × 2 _ D {\displaystyle h:C\times {\underline {2}}\to D}

such that

h ( , 0 ) = f , h ( , 1 ) = g {\displaystyle h(\cdot ,0)=f,\,h(\cdot ,1)=g} ,

where 2 _ = { 0 , 1 } {\displaystyle {\underline {2}}=\{0,1\}} is the category with two objects and the non-identity morphism : 0 1 {\displaystyle \rightsquigarrow :0\to 1} .3 Intuitively, h is a non-invertible homotopy from f {\displaystyle f} to g {\displaystyle g} . Indeed, define h {\displaystyle h} by, for x : a b {\displaystyle x:a\to b} in C {\displaystyle C} ,

h ( x , id 0 ) = f ( x ) , h ( x , id 1 ) = g ( x ) , h ( x , ) = g ( x ) φ a = φ b f ( x ) . {\displaystyle h(x,\operatorname {id} _{0})=f(x),\,h(x,\operatorname {id} _{1})=g(x),\,h(x,\rightsquigarrow )=g(x)\circ \varphi _{a}=\varphi _{b}\circ f(x).}

Conversely, given h : C × 2 _ D {\displaystyle h:C\times {\underline {2}}\to D} , we get f , g , φ {\displaystyle f,g,\varphi } by f = h ( , 0 ) , g = h ( , 1 ) {\displaystyle f=h(\cdot ,0),\,g=h(\cdot ,1)} and φ a = h ( id a , ) {\displaystyle \varphi _{a}=h(\operatorname {id} _{a},\rightsquigarrow )} .5

Bifunctor

A functor whose domain is a product category is called a bifunctor. A bifunctor can be defined in each variable separately in the following sense:

Proposition6 Each bifunctor

F : A × B C {\displaystyle F:A\times B\to C}

determines the families of the functors, for objects a {\displaystyle a} in A {\displaystyle A} and b {\displaystyle b} in B {\displaystyle B} ,

F b : A C , F a : B C {\displaystyle F_{b}:A\to C,\,F_{a}:B\to C}

given by

F b a = F ( a , b ) {\displaystyle F_{b}a=F(a,b)} and F b f = F ( f , id b ) {\displaystyle F_{b}f=F(f,\operatorname {id} _{b})}

for f : a a {\displaystyle f:a\to a'} and similarly for F a {\displaystyle F_{a}} . They commute in the sense:

F a g F b f = F b f F a g {\displaystyle F_{a'}g\circ F_{b}f=F_{b'}f\circ F_{a}g} .

Conversely, given families of functors F b , F a {\displaystyle F_{b},F_{a}} as above, if they commute, they define the bifunctor F : A × B C {\displaystyle F:A\times B\to C} by

F ( f , g ) = F b f F a g {\displaystyle F(f,g)=F_{b'}f\circ F_{a}g} .

For example, consider ( a , b ) Hom ( a , b ) : C o p × C S e t {\displaystyle (a,b)\mapsto \operatorname {Hom} (a,b):C^{op}\times C\to {\mathsf {Set}}} . For each fixed b {\displaystyle b} in B {\displaystyle B} , we have the functor

Hom ( , b ) : C o p S e t {\displaystyle \operatorname {Hom} (-,b):C^{op}\to {\mathsf {Set}}}

by pullback; i.e., f : a a {\displaystyle f:a\to a'} goes to the function

f : Hom ( a , b ) Hom ( a , b ) {\displaystyle f^{*}:\operatorname {Hom} (a',b)\to \operatorname {Hom} (a,b)}

defined by f g = g f {\displaystyle f^{*}g=g\circ f} . On the other hand, Hom ( a , ) : C S e t {\displaystyle \operatorname {Hom} (a,-):C\to {\mathsf {Set}}} is defined by pushforward; i.e., f f = f {\displaystyle f\mapsto f_{*}=f\circ -} . Clearly, these two functors commute (the associativity of composition) and so, by the proposition, we get the functor called the Hom functor

Hom ( , ) : C o p × C S e t , {\displaystyle \operatorname {Hom} (-,-):C^{op}\times C\to {\mathsf {Set}},}

which is explicitly given as: ( f , g ) ( h g h f ) . {\displaystyle (f,g)\mapsto (h\mapsto g\circ h\circ f).}

There is a similar result for natural transformations between bifunctors:

Proposition7 Let F , G : A , B C {\displaystyle F,G:A,B\to C} be bifunctors and

α = { α a , b : F ( a , b ) G ( a , b ) a Ob ( A ) , b Ob ( B ) } {\displaystyle \alpha =\{\alpha _{a,b}:F(a,b)\to G(a,b)\mid a\in \operatorname {Ob} (A),b\in \operatorname {Ob} (B)\}}

a family of morphisms. Then α : F G {\displaystyle \alpha :F\to G} is a natural transformation if and only if it is natural in the first variable and the second variable separately; i.e., for each object b {\displaystyle b} in B {\displaystyle B} ,

α , b : F ( , b ) G ( , b ) {\displaystyle \alpha _{-,b}:F(-,b)\to G(-,b)}

is a natural transformation and similarly in the second variable.

References

References

  1. Mac Lane 1978, p. 37.
  2. Mac Lane 1978, Ch. II., § 5., Exercise 2.
  3. Mac Lane 1978, Ch. II., § 3.
  4. Mac Lane 1978, Ch. II., § 5., Exercise 1.
  5. Mac Lane 1978, Ch. II., § 4., Exercise 8.
  6. Mac Lane 1978, Ch. II., § 3., Proposition 1.
  7. Mac Lane 1978, Ch. II., § 3., Proposition 2.