Dear GAP Forum,
Mathias Kratzer wrote
in Chapter 35, Section 5 the GAP4-manual says:
> * ConjugatorAutomorphism( G, g ) O
>
> creates for g in the same Family as the elements of G
> the automorphism of G defined by h |--> h^{elm} for all h\in G .
~~~~~~~~~~~~~~~~~~~~~
Reading these lines I guess that 'ConjugatorAutomorphism' was imple-
mented to sort of generalize the function 'InnerAutomorphism': The
latter one only provides access to automorphisms of a group G which
are induced by elements of G; by means of the first one you can also
construct "conjugations" by elements of e. g. a supergroup of G.Of course, the mapping h |--> h^g, for g \in S, S a supergroup of G,
is an automorphism of G if and only if G is invariant under conjuga-
tion by g.
Surprisingly, the manual does not keep its readers aware of this fact
at all, and --- confer the example below --- 'ConjugatorAutomorphism'
does not even give you a warning let alone an error message, when you
try to induce an automorphism from an element which violates the
invariance condition stated above:gap> G := Group( [ (1,2,3,4) ] ); Group([ (1,2,3,4) ]) gap> phi := ConjugatorAutomorphism( G, (1,2) ); ^(1,2) gap> eltsG := Elements( G ); [ (), (1,2,3,4), (1,3)(2,4), (1,4,3,2) ] gap> List(eltsG, elt -> elt^phi); [ (), (1,3,4,2), (1,4)(2,3), (1,2,4,3) ] gap> IsConjugatorAutomorphism(phi); true gap>Would the function 'ConjugatorAutomorphism' not better be called 'Con-
jugatorISOmorphism'? Or is there anything I've just misunderstood?
Indeed GAP does currently not check whether the second argument <g> of
`ConjugatorAutomorphism' normalizes the first argument <G>.
This causes the following problem.
gap> G:= Group( [ (1,2,3,4) ] );; gap> phi:= ConjugatorAutomorphism( G, (1,2) ); ^(1,2) gap> Source( phi ); Group([ (1,2,3,4) ]) gap> Range( phi ); Group([ (1,2,3,4) ])
So the mapping `phi' erroneously assumes that it maps `G' to `G'.
This bug will be fixed in the next version of GAP,
in the sense that `ConjugatorAutomorphism' will check
that the mapping to be constructed is in fact an automorphism.
Additionally, a new function `ConjugatorIsomorphism' will be
introduced which deals with the general case.
(And `ConjugatorAutomorphismNC' will allow one to omit the check.)
Thanks for the bug report and the hint to introduce the
more general function.
Kind regards,
Thomas