Bug SemiDirect Product Klein by Symm3 isnt isomorphic to Symm4
aidevnn opened this issue · 1 comments
aidevnn commented
Symmetric 4 group is isomorphic to Holomorph group of C2 x C2.
But the following code will output an invalid result.
var s4 = new Symm(4);
var V = Group.Generate("V", s4, s4[(1, 2), (3, 4)], s4[(1, 3), (2, 4)]);
var autV = Group.AutomorphismGroup(V);
DisplayGroup.AreIsomorphics(autV, new Symm(3));
var homs = Group.AllHomomorphisms(autV, autV);
var allSdp = homs.Select((theta, i) => Group.SemiDirectProd($"(V x: Aut[V])[{i}]", V, theta, autV)).ToList();
allSdp.ForEach(holV => DisplayGroup.AreIsomorphics(holV, s4));
output
Aut[V] IsIsomorphicTo S3 : True
...
(V x: Aut[V])[2] IsIsomorphicTo Symm4 : False
(V x: Aut[V])[3] IsIsomorphicTo Symm4 : False
...
aidevnn commented
The issue comes from an invalid automorphism composition order.
Now,
The following code gives the correct result.
var V = Product.Generate(new Cn(2), new Cn(2));
var autV = Group.AutomorphismGroup(V);
DisplayGroup.AreIsomorphics(autV, new Symm(3));
var sdp = Group.SemiDirectProd(V, autV);
DisplayGroup.AreIsomorphics(sdp, new Symm(4));
will output
Aut[C2 x C2] IsIsomorphicTo Symm3 : True
(C2 x C2) x: (Aut[C2 x C2]) IsIsomorphicTo Symm4 : True