> < ^ From:

^ Subject:

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]