Since a category is really a bunch of abstract objects and arrows between them, we can reverse them by duality.

Let C be a category. The

opposite categoryC^{op}is the category such that:

- Ob(C
^{op}) = Ob(C);- for any objects X, Y, Mor(X, Y) in C
^{op}is Mor(Y, X) in C.

Hence in *Grp*^{op}, a morphism *G* → *H* is actually a group homomorphism *H* → *G*. With this concept, we see that a contravariant functor *F* : *C* → *D* is precisely the same as a covariant functor *F* : *C*^{op} → *D* or *F* : *C* →* D*^{op}.

Now, what would a product in *Grp*^{op} look like? Let’s call this the **coproduct** of groups *G* and *H*. Unwinding the definition, we get:

Let G, H be groups. The coproduct G*H is a group T, together with group homomorphisms i

_{1}: G → T, i_{2}: H → T such that:

- for any group S with homomorphisms j
_{1}: G → S, j_{2}: H → S there is a unique f : T → S such that fi_{1}= j_{1}, fi_{2}= j_{2}.

In the case of groups, we also call it the **free product** of *G* and *H*. Its definition is as follows: take the set *T *of all strings of the following form:

, where .

Define the product operation on *T* by concatenation and simplification, e.g.:

(*g*_{1}*h*_{1}*g*_{2}*h*_{2}) * (*g _{3}h_{3}*) = (

*g*

_{1}

*h*

_{1}

*g*

_{2}

*h*

_{2}

*g*

_{3}

*h*

_{3}), (

*g*

_{1}

*h*

_{1}

*g*

_{2}

*h*

_{2}) * (

*eh*

_{2}

^{-1}

*g*) = (

_{4}h_{4}*g*

_{1}

*h*

_{1}(

*g*

_{2}

*g*

_{4})

*h*

_{4}).

The homomorphisms *i*_{1} : *G* → *T* and *i*_{2} : *H* → *T* are defined by taking *g* to (*ge _{H}*) and

*h*to (

*e*) respectively. It follows that for any group homomorphisms

_{G}h*j*

_{1}:

*G*→

*S*and

*j*

_{2}:

*H*→

*S*the resulting

*f*is uniquely defined by:

Exercise : compute the coproducts in the categories Ab and Set. Don’t worry: these are much simpler.

–

Finally, we look at particularly simple objects in the category *C*.

In category C, an

initial objectis an object X such that for any object Y, there is a unique morphism X → Y. Aterminal objectis an object Y such that for any object X, there is a unique morphism X → Y.

For example, in *Set*, the empty set is an initial object, while the singleton set is a terminal object. In both *Grp* and *Ab*, the trivial group 1 is both initial and terminal. It is easy to show that any two initial or two terminal objects are isomorphic.

In what follows, we shall interpret universal properties as initial / terminal objects in the category of appropriate diagrams.

To fix ideas, consider a set *X* and the free group *F*(*X*) on *X*. We know that:

Mor* _{Set}*(

*X*,

*H*) = Mor

*(*

_{Grp}*F*(

*X*),

*H*) for any group

*H*,

Let’s fix *X* and consider the category *C*(*X*) as follows:

- an object of
*C*(*X*) is a arbitrary function*φ*:*X*→*G*, where*G*is some group; - a morphism from (
*φ*:*X*→*G*) to (*ψ*:*X*→*H*) is a*group homomorphism f*:*G*→*H*such that*f*=*φ**ψ*.

*Beware!!* Till now, we’re used to categories whose underlying objects are sets of some form; this is indeed the case for *Set*, *Grp* and *Ab*. The reader may take some time to get accustomed to the fact that an object of *C*(*X*) is *not* a set, but some function. Furthermore, a morphism between two such functions is a group homomorphism which makes the diagram commute.

Now consider an *initial object* in this category. This comprises of a group *F* and a function *i* : *X* → *F*, such that for any object *φ* : *X* → *G* there is a unique homomorphism *f* :* F* → *G* such that *fi* = *φ*. Thus, **the initial object in this category is the free group on X**.

–

Let’s briefly look at one more example: the group product *G* × *H*. We consider the category in which:

- an object is a triplet (
*P*,*σ*_{1},*σ*_{2}), where*P*is a group,*σ*_{1}:*P*→*G*and*σ*_{2}:*P*→*H*are group homomorphisms; - a morphism (
*P*,*σ*_{1},*σ*_{2}) → (*Q*,*ρ*_{1},*ρ*_{2}) is a group homomorphism*f*:*P*→*Q*such that*ρ*_{1}*f*=*σ*_{1 }and*ρ*_{2}*f*=*σ*_{2}.

Note that an object in this category comprises of a group and pair of morphisms. Now a *terminal object* in this category is a *P* with *π*_{1} : *P* → *G* and *π*_{2} : *P* → *H* such that for any other triplet (*Q*, *ρ*_{1}, *ρ*_{2}), there is a unique *f* : *Q* → *P* such that *π*_{1}*f* = *ρ*_{1} and *π*_{2}*f* = *ρ*_{2}. But this is precisely the universal property of the product.

Thus, **the terminal object in this category is the product of G and H**.

Exercise : for each of the other universal properties, try to construct a suitable category C such that the object with the universal property is precisely an initial / terminal object in C.