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 ------------------------------------------------------------------------