> < ^ Date: Thu, 16 Dec 1999 09:22:40 +0100 (CET)
> < ^ From: Thomas Breuer <Thomas.Breuer@Math.RWTH-Aachen.DE >
< ^ Subject: Re: ConjugatorAutomorphism

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) );
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);

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) );
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,

> < [top]