Dear GAP Forum,
When playing around with the 'Blocks' and 'Operation' functions of GAP
I encountered the following problem:
gap> sl22 := SpecialLinearGroup ( 2, 2 );
SL(2,2)
gap> dom := Blocks ( sl22, Elements ( sl22 ), OnLeft );
[ [ [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ],
[ [ Z(2)^0, Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ] ],
[ [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ],
[ [ Z(2)^0, Z(2)^0 ], [ 0*Z(2), Z(2)^0 ] ] ],
[ [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ],
[ [ Z(2)^0, 0*Z(2) ], [ Z(2)^0, Z(2)^0 ] ] ] ]
gap> g := Operation ( sl22, dom, OnSets );
Error, List Element: <list>[4] must have a value at
prm[i] := pos[PositionSorted( set, opr( D[i], gen ) )] ... in
arg[1].operations.Operation( arg[1], arg[2], arg[3] ) called from
Operation( sl22, dom, OnSets ) called from
main loop
brk>
It seems that 'PositionSorted' could not find the image of a block
in the block list. This becomes obvious if one tries to do this
directly:
gap> List ( dom, x->PositionSorted ( dom, sl22.1*x ) ); [ 4, 4, 4 ]
I suppose the elements of the block list are sets (as one would
expect) but the images sl22.1*dom[i] are not sets, their elements are
ordered in a different way and therefore they are not found in the
list. If the 'Set' operator is supplied explicitly the above statement
works:
gap> List ( dom, x->PositionSorted ( dom, Set ( sl22.1*x ) ) ); [ 1, 3, 2 ] -- ------------------------------------------------------------------------ Martin Wursthorn Universit"at Stuttgart Tel. (+49 711) 685 5517 Mathematisches Inst. B Fax. (+49 711) 685 5322 3. Lehrstuhl ------------------------------------------------------------------------