Sorry if the question title is confusing. Let me try to explain my question over an example. Please consider
gap> G := SmallGroup(24, 12);;
Without knowing that $G$ is $S_4$, can we define a new group which is $S_4$ but not equal to $G$. For example,
gap> H := SmallGroup(24, 12);;
gap> G = H;
false
gap> K := ShallowCopy(Group(GeneratorsOfGroup(G)));;
gap> K = G;
true
So I am trying to find a way to create a new group which has the same structure with $G$ without using SmallGroup. I used ShallowCopy to do that but I failed.
I want to do this, because if $S\leq G$, I cannot use the function IsConjugatorIsomorphism to see that whether a map is given by an element in S yet not in G. Since Parent(S) is $G$, it does not work. We can also use ConjugatorOfConjugatorIsomorphism to check that, but I would like to avoid doing this as I suspect there might be a simpler solution.
Edit. Another attempt that not helps me is below:
gap> S4 := SmallGroup(24, 12);;
gap> D8 := AllSubgroups(S4)[26];;
gap> StructureDescription(D8);
"D8"
gap> D8PermRep := Image(SmallerDegreePermutationRepresentation(
> Image(IsomorphismPermGroup(D8))));;
gap> center := Center(D8PermRep);
Group([ (1,3)(2,4) ])
gap> ConjugacyClassesSubgroups(D8PermRep);
[ Group( () )^G, Group( [ (2,4) ] )^G, Group( [ (1,3)(2,4) ] )^G,
Group( [ (1,2)(3,4) ] )^G, Group( [ (1,3), (2,4) ] )^G,
Group( [ (1,2)(3,4), (1,3)(2,4) ] )^G,
Group( [ (1,4,3,2), (1,3)(2,4) ] )^G,
Group( [ (1,3), (2,4), (1,2)(3,4) ] )^G ]
gap> C2 := ConjugacyClassesSubgroups(D8PermRep)[4][1];
Group([ (1,2)(3,4) ])
gap> IsConjugatorIsomorphism(AllIsomorphisms(center, C2)[1]);
true
gap> Parent(C2) = S4;
false
You can use
IsomorphismFpGroup(G)for this purpose.But note that
IsConjugatorIsomorphismwill always returnfalsefor such an isomorphism ifGis not an fp group (for an fp group, it will return the identity map, which trivially is a conjugator isomorphism)