Free product

We’ve already solved two universal problems! In this post, we will solve the third, which is not more complicated than the last problem. However, the next problem is pretty complicated and it will use what we’ll do here, so it’s important to understand this problem as good as possible. Ok, let’s not spend any more time and just dive in:

The problem

In this prolem, two groups are given – \color{blue}G and \color{red} H.

From those groups we can define homomorphisms \color{blue}\varphi and \color{red}\psi to some other group K.

But that’s not really a problem, right? The real problem is to find some universal group U with homomorphism:

i_G :\color{blue}G\color{black}\to U \\
i_H: \color{red}H\color{black}\to U

such that all the homomorphism to K goes “through it”.

That is, there exists a unique homomorphism L:U\to K such that:

\color{blue}\varphi\color{black}=L\circ i_G\\
\color{red}\psi\color{black}=L\circ i_H

I am not going to prove the uniqueness of U here, I’ve already proved uniqueness in the previous problems and the process is the same! (You can find a full proof here, not the same case, but you can easily apply this prove to this case)

It turns out that in order to solve this problem we need to define a new group – the free product:

Sets of Words

First, we need to define a set M that is the set of all the words that are made from elements from G and H. And what’s that exactly? such a “word” is just a finite sequence of elements from G and H (it can be empty…). For example, the following sequence:


(Where g_i\in G, h_i\in H) is an example of a word.

But dealing with words won’t give us anything, in order to make thing a bit more interesting we need to define an equivalence realtion on the set. We’ll define:

(---, g_1,g_2,---)\sim (---, g_1g_2,---) \ , \ g_1,g_2\in G\\
(---, h_1,h_2,---)\sim (---, h_1h_2,---) \ , \ h_1,h_2\in H

That is, if two elements from the same group are next to each other in the word – we can ‘reduce’ the word by replacing both elements with their product.

Moreover, we can reduce the identities:

(---,1_G,---)\sim(------) \\

We’ll denote the set of equivalence classes as G* H. The only thing left to do is to define an action on the set:

The action on the set

The most natural action to define on the set of words is the following:


We just “connect” the words. We can now easilly define a similar action on G*H:


This action is indeed well defined:

We need to shot that if [x_1]\sim [x_2] and [y_1]\sim [y_2] then [x_1]\circ [y_1]\sim [x_2]\circ [y_2].

But that’s not so complicated – Suppose that:

x_1=(a_1,\dots,a_k), y_1=(b_1,\dots,b_m)

So their product is:


Intuitively we can put an ‘imaginary bar’ :

(a_1,\dots,a_k\ |\ b_1,\dots,b_m)

and ‘split’ the words into two parts. In the left part we can do the required manipulation in order to bring it to the form of x_2 (this is possible since x_1\sim x_2), and similarly, do the required manipulation in order to bring right side to the form of y_2. Thus, the word after the manipulations is:

(x_2\ |\ y_2)

And this yields that x_1y_1\sim x_2y_2 as we wanted.

The proof for the associativity is done pretty much in the same way – try to prove it yourself!

The identity will be the class of the empty word – [()]. The inverse element of the class:


Will be the elements:


It’s not hard to see why (convince yourself! multiply those classes if you want and see what you get).

Note that if the groups are not trivial, then the action is not commutative, to see this we can just pick some g\in G and h\in H and get:


The group

Great, so we’ve found out that G* H is indeed a group! In fact, this group has a special name – it is called the free product of G and H.

Note that we can easily define natural homomorphisms:

i_G:G\to G*H\\
i_H:H\to G*H

How? Just send an element to the class of the word that is made from it:

i_G(g)=[(g)] \\

Those are indeed homomorphisms, for example:


Moreover, those homomorphism are in fact injective (those are monomorphisms):


Great, so we have a group and we have homomorphisms to it, the only thing left to check is that this group is indeed the solution for the universal problem:

Is that what we are looking for?

So, now the diagram looks like:

We just need to figure out who is L and why it is unique. Well, we know that it should satisfy:

\color{blue}\varphi\color{black}=L\circ i_G \\
\color{red}\psi\color{black}=L\circ i_H

So for every g\in G, h\in H is should satisfy:

\color{blue}\varphi\color{black}(g)=L\circ i_G(g)=L([(g)]) \\
\color{red}\psi\color{black}(h)=L\circ i_H(h)=L([(h)])

And that’s exactly how L is defined! (That also proves the uniqueness) For example, if the sequence is:



= L([(g_1)])L([(h_1)])L([(g_2)])L([(g_3)])=\color{blue}\varphi\color{black}(g_1)\color{red}\psi\color{black}(h_1)\color{blue}\varphi\color{black}(g_2)\color{blue}\varphi\color{black}(g_3)


I find the construction of the group pretty natural – think about it, the universal group recieves ‘data’ from two groups, it should know how to ‘handle it’.

When I first saw this problem I said to myself – why would it work if we just pick U to be the cartesian product G\times H? Well it doesn’t, If you try to use this group as a solution, you will get that L is not a homomorphism… Try it, it’s a really nice practice – think about who should be i_G,i_H and how L has to be defined.

Great, so we now solved three universal problems, three more to go! The next problem is the most complicated one! However, it is a really important one and it will allow us to compute fundamental groups like crazy!

Leave a Reply

%d bloggers like this: