> < ^ Date: Mon, 04 May 1992 21:23:19 +0200
> < ^ From: Martin Schoenert <martin.schoenert@math.rwth-aachen.de >
< ^ Subject: Re: [Bug in 'OperationHomomorphism']

Thomas Breuer writes in his e-mail of 4-May-92:

I think I found a bug in GAP. What I tried is to work a little with
a matrix group, namely a representation of the group 'A5 x 2' as
group of symmetries of a regular icosahedron. (The session is
documented below.) The point 'p' is one of the corners of the
icosahedron, and 'orb' contains all corners. The block system 'bl'
has pairs of opposite corners as blocks, and 'op' is the permutation
group corresponding to the action on 'bl'. Up to this moment all
works well, but if I try to construct the homomorphism GAP runs into
a break loop. What is wrong here?

```gap> b:= - E(5)^2 - E(5)^3;;
gap> mat1:= [ [ 0, 1, 0 ],
>             [ 0, 0, 1 ],
>             [ 1, 0, 0 ] ];;
gap> mat2:= 1/2 * [ [ b-1,   1,  -b ],
>                   [  -1,   b, b-1 ],
>                   [   b, b-1,   1 ] ];;
gap> g:= Group( mat1, mat2, - IdentityMat( 3 ) );;
gap> p:= [ 0, b, 1 ];
[ 0, -E(5)^2-E(5)^3, 1 ]
gap> orb:= Set( Orbit( g, p ) );;
gap> bl:= Blocks( g, orb );;
gap> op:= Operation( g, bl, OnSets );
Group( (1,5,3)(2,6,4), (1,2,6,3,5) )
gap> OperationHomomorphism( g, op );
Error, List assignment: <index> must be a positive int at
hom.reps[k] := i ... in
PermGroupOps.BlocksHomomorphism( G, P ) called from
P.operations.OperationHomomorphism( G, P ) called from
OperationHomomorphism( g, op1 ) called from
main loop
```

The problem was that 'OperationHomomorphism' dispatched to the wrong
function, namely 'op.operations.OperationHomomorphism' (the permutation
group function for 'OperationHomomorphism') instead of
'g.operations.OperationsHomomorphism' (the generic function).

This will be fixed in the next upgrade (which I plan to release at the
end of this week).

The immediate workaround is to do the dispatching itself, e.g., call
'g.operations.OperationHomomorphism( g, op )' directy.

This upgrade will also fix a bug in 'MatGroupOps.Intersection', which
made it impossible to compute the kernel of the homomorphism, even if one
constructed it as described above.

Martin.

--
Martin Sch"onert, Martin.Schoenert@Math.RWTH-Aachen.DE, +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany

> < [top]