> < ^ Date: Mon, 19 Aug 2002 10:31:00 -0600 (MDT)
> < ^ From: Alexander Hulpke <hulpke@math.colostate.edu >
< ^ Subject: Re: Question about PGL

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;
gap> g:=GL(2,q);

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

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

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);
gap> a in pgl;
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);

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

> < [top]