Function Repository Resource:

# FindGroupIsomorphism

Find up to a specified number of isomorphisms between two permutation groups

Contributed by: Daniel McDonald
 ResourceFunction["FindGroupIsomorphism"][g1,g2] finds an isomorphism between permutation groups g1 and g2. ResourceFunction["FindGroupIsomorphism"][g1,g2,n] finds up to n isomorphisms. ResourceFunction["FindGroupIsomorphism"][g1,g2,n,form] finds up to n isomorphisms, each having head form.

## Details and Options

The optional fourth argument form determines the format of each isomorphism returned.
The default value of form is List, which formats each isomorphism as a permutation list, where positive integer i being in position j indicates that the isomorphism sends the jth element of GroupElements[g1] to the ith element of GroupElements[g2].
If form has value Cycles, then each isomorphism is formatted as a disjoint cycle representation of its representative permutation list.
If form has value Association, then each isomorphism is formatted as an association whose key-value pairs are corresponding elements of g1 and g2 in the isomorphism.
ResourceFunction["FindGroupIsomorphism"] works on groups with head PermutationGroup, SymmetricGroup, AlternatingGroup, CyclicGroup, DihedralGroup or AbelianGroup.

## Examples

### Basic Examples (3)

Find an isomorphism between two groups:

 In[1]:=
 Out[1]=

Find three isomorphisms between two Abelian groups:

 In[2]:=
 Out[2]=

Find all automorphisms of the symmetric group of degree four:

 In[3]:=
 Out[3]=

### Applications (2)

Test if two groups are isomorphic by seeing if there is at least one isomorphism between them:

 In[4]:=

See that the following two groups are isomorphic:

 In[5]:=
 Out[5]=

See that the following two groups are not isomorphic:

 In[6]:=
 Out[6]=

Compute the automorphism group Aut(G) of a group G by finding all isomorphisms from that group to itself:

 In[7]:=

Find the automorphism group of the following group:

 In[8]:=
 Out[8]=

### Properties and Relations (3)

Format the isomorphism as a permutation list:

 In[9]:=
 Out[9]=

Format the isomorphism as a disjoint cycle representation of its representative permutation list:

 In[10]:=
 Out[10]=

This is equivalent to wrapping the permutation list representation of the isomorphism with PermutationCycles:

 In[11]:=
 Out[11]=

Format the isomorphism as an association:

 In[12]:=
 Out[12]=

This is equivalent to creating an association by threading the domain group elements to the permutation of the range group elements provided by the isomorphism:

 In[13]:=
 Out[13]=

Daniel McDonald

## Requirements

Wolfram Language 11.3 (March 2018) or above

## Version History

• 2.0.0 – 17 February 2020
• 1.0.0 – 06 March 2019