We want to take two complex numbers (each represented by 2x2 tables) and create a 4 dimentional object (represented by a 4x4 table).
So we start with a complex number represented by the following table,
| a | b | |
| a | a | b |
| b | b | -a |
Then we add a second table also representing a complex number:
| c | d | |
| c | c | d |
| d | d | -c |
So how do we combine them? One way would be to put the two tables together as follows:
| a | b | c | d | |
| a | a | b | ||
| b | b | -a | ||
| c | c | d | ||
| d | d | -c |
But the information that we have so far does not tell us how the two complex numbers interact. We know that any multiplcation involving the real part will commute and two imaginary values anticommute as follows:
ij =k=-ji
So using the notation on this page, we get:
ac = ca
ad = da
bc = cb
bd = -db
So we can fill in the table as follows:
| a | b | c | d | |
| a | a | b | ac | ad |
| b | b | -a | bc | bd |
| c | ac | bc | c | d |
| d | ad | -bd | d | -c |
This table is not very useful and it is not a group (it is not closed and there is no identity element).
What we really want to do is combine the complex numbers so that the elements of the first complex number are themselves complex numbers. To do this, instead of using the original elements a, b, c and d we need to use the products ac, bc, ad and bd since:
(a + b)*(c + d) = ac + bc + ad + bd
Which gives a table as follows:
| ac | bc | ad | bd | |
| ac | ||||
| bc | ||||
| ad | ||||
| bd |
In order to fill in the etries for this table we can multiply out the terms as follows, to simplify the terms we swap the middle two setting the sign according to whether they commute or anti-commute:
acac = aacc = ac
acbc = abcc = bc
acad = aacd = ad
acbd = abcd = bd
bcac = bacc = bc
bcbc = bbcc = -ac
bcad = bacd = bd
bcbd = bbcd = -ad
adac = aadc = ad
adbc = -abdc = -bd
adad = aadd = -ac
adbd = -abdd = bc
bdac = badc = bd
bdbc = -bbdc = ac
bdad = badd = -bc
bdbd = -bbdd = -ac
Putting these terms into the table gives:
| ac | bc | ad | bd | |
| ac | ac | bc | ad | bd |
| bc | bc | -ac | bd | -ad |
| ad | ad | -bd | -ac | bc |
| bd | bd | ad | -bc | -ac |
This table is equivalent to the quaternion multiplication table which is what we want.
Now we can derive the result for complex numbers we can try the same with dual numbers

