Basic Examples 
(5)
 

Embed
CyclicGroup
[2] in
CyclicGroup
[4] via
(12)↦(13)(24)
:
In[22]:=
ϕ=
[◼]
GroupHomomorphism
[CyclicGroup[2],CyclicGroup[4],{Cycles[{{1,3},{2,4}}]}]
Out[22]=
[◼]
GroupHomomorphism

Domain: CyclicGroup[2]
Codomain: CyclicGroup[4]

Click on + to reveal more information about the homomorphism. For example,
ϕ
is injective but not surjective. Obtain the underlying mapping:
In[23]:=
Normal[ϕ]
Out[23]=
Cycles[{}]Cycles[{}],Cycles[{{1,2}}]Cycles[{{1,3},{2,4}}]
_________________________________________________________________________________________________________________
Retrieve the domain or co-domain of a homomorphism:
In[24]:=
ϕ["Domain"]
Out[24]=
CyclicGroup[2]
In[25]:=
ϕ["CoDomain"]
Out[25]=
CyclicGroup[4]
_________________________________________________________________________________________________________________
Find the kernel of this homomorphism, indeed the kernel is singleton thus
ϕ
is an embedding:
In[26]:=
ϕ["Kernel"]
Out[26]=
PermutationGroup[{}]
This is the trivial group:
In[27]:=
GroupElements[%]
Out[27]=
{Cycles[{}]}
Find the image group:
In[28]:=
ϕ["Image"]
Out[28]=
PermutationGroup[{Cycles[{{1,3},{2,4}}]}]
_________________________________________________________________________________________________________________
Try to specify an invalid homomorphism:
In[29]:=
[◼]
GroupHomomorphism
[CyclicGroup[2],CyclicGroup[3],<|Cycles[{{1,2}}]->Cycles[{{1,2,3}}]|>]
GroupHomomorphism
::vgen
:Images {Cycles[{{1,2,3}}]} do not specify a valid group homomorphism.
​
Out[29]=
$Failed
_________________________________________________________________________________________________________________
The package efficiently works with large groups. For example, here is the identity homomorphism from
SymmetricGroup
[10] to itself:
In[30]:=
id=AbsoluteTiming@
[◼]
GroupHomomorphism
[SymmetricGroup[20],SymmetricGroup[20],GroupGenerators[SymmetricGroup[20]]]
Out[30]=
0.0028744,
[◼]
GroupHomomorphism

Domain: SymmetricGroup[20]
Codomain: SymmetricGroup[20]

Its image and kernel groups:
In[31]:=
AbsoluteTiming@id[[2]]["Image"]
Out[31]=
{0.0000263,PermutationGroup[{Cycles[{{1,2}}],Cycles[{{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}}]}]}
In[32]:=
AbsoluteTiming@id[[2]]["Kernel"]
Out[32]=
{0.217765,PermutationGroup[{}]}

Scope 
(2)
 


Applications 
(3)
 


Properties and Relations 
(4)
 


Possible Issues 
(3)
 
