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 – and .

From those groups we can define homomorphisms and to some other group .

But that’s not really a problem, right? The real problem is to find some **universal** group 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 goes “through it”.

That is, there exists a **unique** homomorphism 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 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 that is the set of all the **words** that are made from elements from and . And what’s that exactly? such a “word” is just a **finite** sequence of elements from and (it can be empty…). For example, the following sequence:

(g_1,h_1,g_2,g_3,h_2,h_3,h_4,g_4)

(Where ) 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(------) \\ (---,1_H,---)\sim(------)

We’ll denote the set of equivalence classes as . 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:

(---,x_1)\circ(x_2,---)=(---,x_1,x_2,---)

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

[(---,x_1)]\circ[(x_2,---)]=[(---,x_1,x_2,---)]

This action is indeed well defined:

We need to shot that if and then .

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:

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

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 (this is possible since ), and similarly, do the required manipulation in order to bring right side to the form of . Thus, the word after the manipulations is:

(x_2\ |\ y_2)

And this yields that 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:

[(x_1,\dots,x_m)]

Will be the elements:

[(x_m^{-1},\dots,x_1^{-1})]

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 and and get:

[(g)][(h)]=[(g,h)]\neq[(h,g)]=[(h)][(g)]

### The group

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

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)] \\ i_G(h)=[(h)]

Those are indeed homomorphisms, for example:

i_G(g_1g_2)=[(g_1g_2)]=[(g_1,g_2)]=[(g_1)][(g_2)]=i_G(g_1)i_g(g_2)

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

i_G(1_G)=[(1_G)]=[()]=1_{G*H}

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 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 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 is defined! (That also proves the uniqueness) For example, if the sequence is:

[(g_1,h_1,g_2,g_3)]

Then:

L([(g_1,h_1,g_2,g_3)])=L([(g_1)][(h_1)][(g_2)][(g_3)])

= 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)

## Summary

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 to be the cartesian product ? Well it doesn’t, If you try to use this group as a solution, you will get that is not a homomorphism… Try it, it’s a really nice practice – think about who should be and how 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!