> < ^ Date: Fri, 22 Dec 1995 13:41:00 +0100 (MET)
> < ^ From: Heiko Theissen <heiko.theissen@math.rwth-aachen.de >
^ Subject: An old error in new clothes

Dear GAP forum,

Chris Wensley has reported an error which occurs when one composes two
permutation group homomorphisms one of which has trivial source. The
reason for this bug is the same as the one explained in the answer to
Mitchell Trott, see below:

[excerpt from message that appeared in the GAP-forum earlier this year]

... This error occurs when the inverse homomorphism of a homomorphism
to the trivial group is constructed. Mitchell Trott constructed

G := Group( (1,2) );
hom := GroupHomomorphismByImages( G,G,G.generators,[G.identity] );

after which 'hom.generators' is '[ (1,2) ]' and 'hom.genimages' is '[
() ]'. Now Mitchell Trott calculated

PreImagesRepresentative( hom, () );

which GAP translates into

ImagesRepresentative( InverseMapping( hom ), () );


inv := InverseMapping( hom );

is constructed by interchanging source and range as well as generators
and genimages, i.e., 'inv.generators' is '[ () ]' and 'inv.genimages'
is '[ (1,2) ]'. To find an 'ImagesRepresentative' under a permutation
group homomorphism like 'inv', GAP calculates a stabiliser chain based
on 'inv.generators'. Since these generate the trivial group, an empty
stabiliser chain is constructed. But when 'ImagesRepresentative' steps
down the stabiliser chain of 'inv', it uses the test

while stb.generators <> [  ]  do ...

to determine the end of the chain, and since 'inv.generators' is '[ ()
]', not '[ ]', the while-loop is executed although no stabiliser chain
is present. This leads to the error.

[end of excerpt]

This bug has in the meantime been fixed and the fix will be released
with the next patch. The fix was so complicated, however, that we
cannot give a simple few-lines correction here. The only way of
getting around this current bug seems to be the insertion of the
``missing fields'' that Chris Wensley has proposed.

(In case you are interested: There are good reasons for not storing
trivial orbits in a stabiliser chain. In our fix of the problem we
have introduced a different method of storing trivial images, as they
appear for the inclusion map.)

Sorry for any inconvenience,

Heiko Thei{\ss}en

> < [top]