> < ^ Date: Thu, 21 Dec 1995 12:57:34 +0000
> < ^ From: Chris Wensley <c.d.wensley@bangor.ac.uk >
^ Subject: CompositeMapping with identity source

The following log illustrates an irritation when composing mappings
where the first map is the inclusion of an identity subgroup.
This problem arises, for example, when writing a function to perform
some operation on all normal subgroups of a group G, so that the
identity subgroup needs to be treated as a special case.

gap> G := Group( (1,2,3) );;
gap> idmap := GroupHomomorphismByImages( G, G, [ (1,2,3) ], [ (1,2,3) ] );;
gap> idsubgp := Subgroup( G, [ () ] );;
gap> G.name := "G";;  idsubgp.name := "I";;
gap> incmap := GroupHomomorphismByImages( idsubgp, G, [ () ], [ () ] );
GroupHomomorphismByImages( I, G, [ () ], [ () ] )

gap> # expect composite (idmap)o(incmap) = incmap :-
gap> comp := CompositionMapping( idmap, incmap );
Error, Record: element 'orbit' must have an assigned value at
for <var> in [ 1 .. Length( hom2.orbit ) ] ... in
com.operations.CompositionMapping( arg[i], com ) called from
CompositionMapping( idmap, incmap ) called from
main loop
brk> quit;

gap> # can fix the problem by inserting missing fields in incmap :-
gap> incmap.orbit := [ 1 ];;
gap> incmap.transversal := [ () ];;
gap> incmap.stabilizer := rec( generators := [ ], identity := () );;
gap> comp := CompositionMapping( idmap, incmap );
GroupHomomorphismByImages( I, G, [ () ], [ () ] )

Should this be considered a bug, or are there good reasons not to
define .orbit, .transversal & .stabilizer in this case?
Sorry if this has been discussed previously.

Chris Wensley (mas023@bangor.ac.uk)


> < [top]