Evolution of a Computer Application

4e. Finding Isomorphisms

All of the groups in Almquist's list have different distributions for the orders of elements until we get to his groups of order 12. Here we find, for the first time, two groups in his list that have the same number of elements of each order.

Gnum
Gord
#elements of each order
25
12
" 1  1  2  2  2  4"
24
12
" 1  1  2  6  2  0"
22
12
" 1  3  2  0  6  0"
20
12
" 1  3  8  0  0  0"
21
12
" 1  3  8  0  0  0"

Groups #20 and #21 are, therefore, the first groups in the original set that could be isomorphic. To show that they are isomorphic, we need to display an isomorphism between them. A first attempt at displaying an isomorphism is to create a mechanism for showing what happens to a table under a mapping of elements.  We imagine a mapping X that sends the letters A, B, C, … to the same letters in a permuted order.

CREATE 'XG  20 ALLOT   \ This will contain the images of A,B,C,…

: XG   ( ele - xele )  \  given ele this displays the image xele        ID - 'XG + C@ ;
: XG'  ( xele - ele )     \  this finds the inverse image of a letter       GLIMITS DO I XG OVER =          IF DROP I LEAVE THEN LOOP ;
: XG*  ( x1 x2 - x3 )  \ Multiply in image group       XG' SWAP XG' SWAP G* XG  ;
: >XG   ( follow by string in letters )        \  this allows input of the mapping       BL WORD COUNT 'XG SWAP CMOVE ;
: RTABLE  ( n -- )  \  This prints the table of the image group       >GROUP   CR       2 SPACES  GLIMITS DO  ." __"  LOOP  CR       GLIMITS DO   I .ELE ." |"          GLIMITS DO  J I XG* .ELE LOOP CR              LOOP CR ;
>XG ACBD

This applies map A to A, B to C, C to B, D to D

5 TABLE
  ________
A |A B C D
B |B C D A
C |C D A B
D |D A B C

Original table for group 5

 _A_C_B_D
A|A C B D
C|C B D A
B|B D A C
D|D A C B

Intermediate table obtained by interchanging B and C wherever they occur.

5 RTABLE
  ________
A |A B C D
B |B A D C
C |C D B A
D |D C A B

Final table obtained by rearranging rows and columns

We have applied the isomorphism X and obtained the resulting table.  Can we apply an isomorphism like this to Group #20 and transform its table to that of Group #21?

There are 12! = 479,001,600 candidates for X. However, if X is an isomorphism from group 20 to group 21, it must send A to A, it must send an element of order k to an element of order k, and it must send a product in the first group to the product of the images in the second group. (In fact, the map is determined by what it does to the generators -- but we do not yet have tools to determine the generators.)

20 orders
Group number 20 of Order 12
    1 elements of order  1:   A
    3 elements of order  2:   D I K
    8 elements of order  3:   B C E F
                              G H J L
    0 elements of order  4:
    0 elements of order  6:
    0 elements of order 12:
21 orders
Group number 21 of Order 12
    1 elements of order  1:   A
    3 elements of order  2:   E I K
    8 elements of order  3:   B C D F
                              G H J L
    0 elements of order  4:
    0 elements of order  6:
    0 elements of order 12:

 

20 table
  ________________________
A |A B C D E F G H I J K L
B |B C A E F D H I G K L J
C |C A B F D E I G H L J K
D |D G J A L H B F K C I E
E |E H K B J I C D L A G F
F |F I L C K G A E J B H D
G |G J D L H A F K B I E C
H |H K E J I B D L C G F A
I |I L F K G C E J A H D B
J |J D G H A L K B F E C I
K |K E H I B J L C D F A G
L |L F I G C K J A E D B H
21 table
  ________________________
A |A B C D E F G H I J K L
B |B C A E F D H I G K L J
C |C A B F D E I G H L J K
D |D I L G C K A F J B H E
E |E G J H A L B D K C I F
F |F H K I B J C E L A G D
G |G J E A L H D K B I F C
H |H K F B J I E L C G D A
I |I L D C K G F J A H E B
J |J E G L H A K B D F C I
K |K F H J I B L C E D A G
L |L D I K G C J A F E B H

If we map B to B, then we must map C to C, since C is B*B in both groups.  D must get mapped to an element of order 2.  Let’s try D to E. B*D is F in Group 20, B*E is F in group 21 so we should map F to F.  Continue working in this fashion.

   >XG ABCEFDGHIJKL
20 RTABLE
A |A B C D E F G H I J K L
B |B C A E F D H I G K L J
C |C A B F D E I G H L J K
D |D I L G C K A F J B H E
E |E G J H A L B D K C I F
F |F H K I B J C E L A G D
G |G J E A L H D K B I F C
H |H K F B J I E L C G D A
I |I L D C K G F J A H E B
J |J E G L H A K B D F C I
K |K F H J I B L C E D A G
L |L D I K G C J A F E B H

This can be seen to be the same as the table for group 21.  We have, therefore, shown that groups 20 and 21 are isomorphic by displaying an isomorphism between them.

The ISOMORPHISM command in Groups32 developed from this idea.  It is much more sophisticated:  It allows the user to experiment with images of elements (undoing trials if they do not seem to work), automatically computes and fills in all consequences of a partial mapping, checks for inconsistencies, etc.