> < ^ From:

< ^ Subject:

Claude Quitte wrote in his e-mail message of 1995/11/18

Here a problem with the function "PreImagesRepresentatives" wich

returns "false" instead of an antecedent (which exists !)....definition of PGL2Fq and K ommited...

K_Left_Cosets := LeftCosets(PGL2Fq, K) ;

Operation_Of_PGL2Fq_On_K_Left_Cosets := Operation(

PGL2Fq, K_Left_Cosets, OnLeft) ;

perm := OperationHomomorphism(

PGL2Fq, Operation_Of_PGL2Fq_On_K_Left_Cosets) ;

The problem is that 'PGL2Fq' does *not* operate on the left cosets via

'OnLeft' (because 'OnLeft(OnLeft(<cos>,<g1>),<g2>) = <g2>*<g1>*<cos>',

which is different from '<g1>*<g2>*<cos> = OnLeft(<cos>,<g1>*<g2>)').

Note that 'Operation' does not check whether one really has an operation,

because this is too expensive in general.

We will probably rename 'OnLeft' to something like 'OnLeftAntiOperation'

and add the following function 'OnLeftInverse' in a future release.

OnLeftInverse := function ( pnt, g ) return g^-1 * pnt; end;

If you really want to find an element of 'PGL2Fq' that permutes the left

cosets of 'K' in a prescribed way by multiplication from the left (in

this example exchanging the first and fourth coset), you should use

Operation_Of_PGL2Fq_On_K_Left_Cosets := Operation(

PGL2Fq, K_Left_Cosets, OnLeftInverse) ;

perm := OperationHomomorphism(

PGL2Fq, Operation_Of_PGL2Fq_On_K_Left_Cosets) ;

and then you must take the inverse of the preimage of course

gap> PreImagesRepresentative(perm, (1,4,2)) ^-1 ; FactorGroupElement( C, [ [ Z(5)^2, Z(5)^0 ], [ Z(5)^2, 0*Z(5) ] ] ) gap> PreImagesRepresentative(perm, (1,4)) ^-1 ; FactorGroupElement( C, [ [ Z(5)^0, Z(5)^0 ], [ Z(5), Z(5)^2 ] ] )

Alternatively you could use right cosets instead of left cosets and

'OnRight' instead of 'OnLeft'. (GAP calculates left cosets by computing

right cosets and inverting representatives anyway).

As a final hint, if you plan to do a lot of computations with a matrix

group or even a factor group of a matrix group like PGL_2(F_q), it is

advisable to replace this group by an isomorphic permutation group

together with an isomorphism back to the matrix group. For example, take

the action of GL_2(5) on lines (i.e., projective points).

gap> G := GL( 2, 5 ); GL(2,5) gap> v := [1,0] * GF(5).one; [ Z(5)^0, 0*Z(5) ] gap> orb := Orbit( G, v, OnLines );; gap> P := Operation( G, orb, OnLines ); Group( (2,3,5,6), (1,2,4)(3,6,5) ) gap> hom := OperationHomomorphism( G, P ); OperationHomomorphism( GL(2,5), Group( (2,3,5,6), (1,2,4)(3,6,5) ) ) gap> Kernel( hom ); Subgroup( GL(2,5), [ [ [ Z(5), 0*Z(5) ], [ 0*Z(5), Z(5) ] ] ] )

Now you can use the homomorphism functions to convert between matrices in

GL_2(5) and permutations in the permutation group isomorphic to PGL_2(5).

Hope this helps,

Martin.

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

> < [top]