In his message, Ottokar Kulendik intended to write (but some technical error
dropped the content):
I think I have discovered a bug in the function 'SubdirectProduct()': the
call of 'Projection()' fails like in the following example:# example from the GAP manual entry 'Subdirect Product' # computing a subdirect product gap> s3 := Group( (1,2,3), (1,2) );; gap> c3 := Subgroup( s3, [ (1,2,3) ] );; gap> x1 := Operation( s3, Cosets( s3, c3 ), OnRight );; gap> h1 := OperationHomomorphism( s3, x1 );; gap> d8 := Group( (1,2,3,4), (2,4) );; gap> c4 := Subgroup( d8, [ (1,2,3,4) ] );; gap> x2 := Operation( d8, Cosets( d8, c4 ), OnRight );; gap> h2 := OperationHomomorphism( d8, x2 );; gap> s := SubdirectProduct( s3, d8, h1, h2 ); Group( (1,2,3), (1,2)(5,7), (4,5,6,7) ) # now trying to use a projection on an arbitrary element of s gap> x := Random(s); (1,3)(4,6) gap> projection := Projection(s, s3, 1); Projection( Group( (1,2,3), (1,2)(5,7), (4,5,6,7) ), Group( (1,2,3), (1,2) ), 1 ) gap> x in projection.source; true gap> x^projection; Error, Record: element 'news' must have an assigned value at img := RestrictedPerm( elm, prj.source.news[prj.component] ) ^ (prj.source.perms[prj.component] ^ (-1 * 1)) ... in rgt.operations.ImageElm( rgt, lft ) called from <rec1> ^ <rec2> called from main loop brk>
I am a new GAP user and reader of the forum, so I don't know whether this is
an already known bug.
No, it is not known, but it is a bug, introduced because the subdirect
product is again a permutation group and tries to be clever by using the
projection routines also used for direct products of permutation groups.
However, SudirectProduct forgets to copy some necessary components:
Is it okay to copy the entries 'projection.source.news'
and 'projection.source.perms' from the direct product projection?
Exactly this is needed. This is fixed in GAP 3.4.
Sorry for the inconvenience,