> < ^ From:

< ^ Subject:

Dear GAP-Forum,

Georg Schmidt wrote:

> this is probably a stupid question, but I'm only a poor engineer

> without any strong mathematical background hardly understanding

> what I am doing with group theory...

This is a perfectly fine question. What you need is hidden inside the

function that creates PGL, to get the correspondence you have to create the

action of GL on lines by hand:

Lets take for example PGL(2,9) (but of course other `q' work the same.

First create GL(2,9): gap> q:=9; 9 gap> g:=GL(2,q); GL(2,9)

Next create the permutation domain. This is the set of all lines. GAP can

represent these by normed (first nonzero component is 1) vectors and since

we know that GL acts transitively on these we can construct them from one

vector:

gap> vec1:=[1,0]*Z(q)^0; [ Z(3)^0, 0*Z(3) ] gap> orb:=Orbit(g,vec1,OnLines);; gap> Length(orb); 10

Now we create PGL as the permutation action on this orbit (if you look at

the code which creates PGL internally this is also what it does):

gap> act:=ActionHomomorphism(g,orb,OnLines); <action homomorphism> gap> pgl:=Image(act); Group([ (2,3,5,7,10,9,6,8), (1,2,4)(3,6,9)(5,8,7) ])

Now we have PGL, but we also have the homomorphism `act' that can be used to

translate between matrices and permutations.

Just note that the homomorphism is not injective, so you will have to use

`PreImagesRepresentative' to get a matrix from a permutation

gap> a:=(1,10)(2,7)(3,4)(5,9); (1,10)(2,7)(3,4)(5,9) gap> a in pgl; true gap> PreImagesRepresentative(act,a); [ [ Z(3^2)^2, Z(3^2)^2 ], [ Z(3^2)^3, Z(3^2)^6 ] ]

while `Image' will work for matrices:

gap> Image(act,mat); (1,2,10,4)(5,9,6,8)

I hope this helps,

Alexander Hulpke

-- Colorado State University, Department of Mathematics,

Weber Building, Fort Collins, CO 80523, USA

email: hulpke@math.colostate.edu, Phone: ++1-970-4914288

http://www.math.colostate.edu/~hulpke

> < [top]