> < ^ Date: Fri, 07 Apr 1995 11:58:00 +0100 (WET)
> < ^ From: Thomas Breuer <Thomas.Breuer@Math.RWTH-Aachen.DE >
< ^ Subject: Re: permutations from MappingByFunction

Dear Forum,

Dima Pasechnik wrote

I came across a necessity to convert a mapping defined by
MappingByFunction into a permutation. Is there any GAP-function to do

My particular example arises when I want to define the group
$G=P\Gamma L(n,q)$
in its action on the points of projective space $PG(n,q)$.
It is straightforward to get $PGL(n,q)$ and the extra mapping
f (Frobenius automorphism) needed to generate $G$.
However f is given as MappingByFunction and I don't see a regular
way to convert f into a permutation.

Here is one way to solve this problem.

gap> # We act on the lines of a two-dimensional space over GF(4).
gap> elms:= NormedVectors( GF(4)^2 );
[ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ], [ Z(2)^0, Z(2)^0 ],
  [ Z(2)^0, Z(2^2) ], [ Z(2)^0, Z(2^2)^2 ] ]
gap> # Get the general linear group.
gap> g:= GL(2,4);
gap> # Define the Frobenius automorphism, acting on lines.
gap> normedfrob2:= MappingByFunction( elms, elms,
>                     x -> NormedVector( List( x, y -> y^2 ) ) );;
gap> # Compute the permutations induced by the generators of GL(2,4).
gap> p1:= Permutation( g.1, elms, OnLines );
gap> p2:= Permutation( g.2, elms, OnLines );
gap> # Compute the permutation induced by the Frobenius automorphism.
gap> p3:= GroupElementsOps.Permutation( normedfrob2, elms, OnPoints );
gap> # We have constructed a permutation representation of
gap> # the group is P\GammaL(2,4).
gap> Group( p3, p2, p1 );
Group( (4,5), (3,5,4), (1,2,3) )

Maybe in a forthcoming version of GAP 'Permutation' will also work for
computing the permutation action of mappings (that are bijections).
For the moment the method sketched above should suffice.

Kind regards
Thomas Breuer

> < [top]