> < ^ Date: Tue, 05 Dec 1995 11:04:00 +0100 (MET)
> < ^ From: Heiko Theissen <heiko.theissen@math.rwth-aachen.de >
^ Subject: Re: Bug with perm group homomorphisms

Dear GAP-Forum,

half a year ago, Mitchell Trott reported an error in the permutation
group homomorphism package. 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 ), () );

Here,

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.

We must apologise for not having fixed this earlier, and perhaps once
more because even now we cannot offer you a simple fix that could be
described in the forum. Our correction of this error involved a
modification of the record which describes a permutation group
homomorphism and this led to changes in several places of the file
'permhomo.g'. The next patch of GAP-3.4 (patchlevel 3), which will be
released in the forseeable future, will contain the correction.

Sorry for any inconvenience, Heiko Thei{\ss}en


> < [top]