# Wolfram Function Repository

Instant-use add-on functions for the Wolfram Language

Function Repository Resource:

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

Contributed by:
Daniel McDonald

ResourceFunction["FindGroupIsomorphism"][ finds an isomorphism between permutation groups | |

ResourceFunction["FindGroupIsomorphism"][ finds up to | |

ResourceFunction["FindGroupIsomorphism"][ finds up to |

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 *j*^{th} element of GroupElements[*g*_{1}] to the *i*^{th} element of GroupElements[*g*_{2}].

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 *g*_{1} and *g*_{2} in the isomorphism.

ResourceFunction["FindGroupIsomorphism"] works on groups with head PermutationGroup, SymmetricGroup, AlternatingGroup, CyclicGroup, DihedralGroup or AbelianGroup.

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

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

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

Wolfram Language 11.3 (March 2018) or above

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

This work is licensed under a Creative Commons Attribution 4.0 International License