compute the action and the orbits of a finite set If $X$ is a set of 183 points and if the group $S_4$ acts on $\{1,2,3,4\}$ and fixes the other points. How can compute the action and the orbits in GAP?
 A: To compute such orbits, call:
gap> Orbits(SymmetricGroup(4),[1..183]);
[ [ 1, 2, 3, 4 ], [ 5 ], [ 6 ], [ 7 ], [ 8 ], [ 9 ], [ 10 ], [ 11 ], [ 12 ], 
  [ 13 ], [ 14 ], [ 15 ], [ 16 ], [ 17 ], [ 18 ], [ 19 ], [ 20 ], [ 21 ], 
...
  [ 167 ], [ 168 ], [ 169 ], [ 170 ], [ 171 ], [ 172 ], [ 173 ], [ 174 ], 
  [ 175 ], [ 176 ], [ 177 ], [ 178 ], [ 179 ], [ 180 ], [ 181 ], [ 182 ], 
  [ 183 ] ]
gap> 

These are orbits with respect to $S_4$ acting on points, i.e. 1^(1,2)=2 etc. If you want to compute orbits with respect to another action, you have to describe it as explained e.g. here.
A: In general you need to specify how the groups should action on the domain to make such a question sensible, as there could be multiple actions. In this case it seems there is a unique answer, and the following constructs the orbits; in general more input information would be needed.
As we might want to get back to the projective space, lets start with vectors -- In GAP NormedVectors gives generators of the 1-dimensional subspaces and the action OnLines is the projective action. Lets start by creating the automorphism group of the projective space, $PGL_3(13)$:
gap> vecs:=NormedVectors(GF(13)^3);;Length(vecs);
183
gap> g:=GL(3,13);
GL(3,13)
gap> act:=ActionHomomorphism(g,vecs,OnLines,"surjective");
<action epimorphism>
gap> pg:=Image(act,g);
<permutation group with 2 generators>

Now we are looking for subgroups isomorphic to $S_4$. (This example is sufficiently well-behaved for this to succeed, but this is the hardest part of the calculation.)
gap> u:=IsomorphicSubgroups(pg,SymmetricGroup(4));;Length(u);
1
gap> u:=Image(u[1]);
<permutation group of size 24 with 2 generators>

In this case there is only one $S_4$ up to conjugacy. In general there could be several and a choice would have to be made.
Now we can form orbits and check there are 15:
gap> orb:=Orbits(u,[1..183]);
[ [ 1, 138, 110, 124, 20, 106, 24, 141, 14, 83, 46, ...
gap> Length(orb);
15

If you want the corresponding subspaces, the enumerator `vet' gives these, e.g. the first orbit contains 
gap> vecs[1];vecs[138];
[ 0*Z(13), 0*Z(13), Z(13)^0 ]
[ Z(13)^0, Z(13)^8, Z(13)^5 ]

