How to identify a group as a primitive group?

102 Views Asked by At

I have a problem identifying a group as a primitive group by using the function PrimitiveIdentification. Here is my code.

gap> l:=List(
[ [ [ [ Z(23)^0, 0*Z(23) ], [ Z(23), Z(23)^11 ] ], [ [ Z(23)^17, Z(23)^7 ], [ Z(23)^19, Z(23)^6 ] ]
        , [ [ Z(23)^11, 0*Z(23) ], [ 0*Z(23), Z(23)^11 ] ],
      [ [ Z(23), 0*Z(23) ], [ 0*Z(23), Z(23) ] ], [ [ Z(23)^2, Z(23)^10 ], [ Z(23)^0, Z(23)^0 ] ],
      [ [ Z(23)^18, Z(23)^10 ], [ Z(23)^0, Z(23) ] ] ] ], x->Subgroup(GL(2,23),x));
[ Group([ [ [ Z(23)^0, 0*Z(23) ], [ Z(23), Z(23)^11 ] ], [ [ Z(23)^17, Z(23)^7 ], [ Z(23)^19, Z(23)^6 ] ],
      [ [ Z(23)^11, 0*Z(23) ], [ 0*Z(23), Z(23)^11 ] ], [ [ Z(23), 0*Z(23) ], [ 0*Z(23), Z(23) ] ],
      [ [ Z(23)^2, Z(23)^10 ], [ Z(23)^0, Z(23)^0 ] ], [ [ Z(23)^18, Z(23)^10 ], [ Z(23)^0, Z(23) ] ] ]) ]
gap> h:=l[1];;
gap> g:=SemidirectProduct(h,GF(23)^2);
<matrix group of size 186208 with 7 generators>
gap> IsPrimitiveSolvable(g);
true
gap> PrimitiveIdentification(g);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `PrimitiveIdentification' on 1 arguments at /opt/gap-v4.12.2/.libs/../lib/methsel2.g:249 called from
<function "HANDLE_METHOD_NOT_FOUND">( <arguments> )
 called from read-eval loop at *stdin*:372
type 'quit;' to quit to outer loop
brk>

So, in general, how to identify a group as a primitive group? Any explanation, references, suggestion and examples are appreciated.

1

There are 1 best solutions below

0
On

It is not clear from your description in which way you want to consider $g$ as a primitive permutation group. But whatever it is, it must be by the action on cosets of a maximal subgroup. There are 5 of those:

gap> maxsubs:=MaximalSubgroupClassReps(g);;
gap> Length(maxsubs);
5

However, only 1 of the leads to a faithful permutation representation of your starting group:

gap> acts:=List(maxsubs,m->FactorCosetAction(g,m));;
gap> Number(acts, IsInjective);
1

We can identify the resulting primtive group:

gap> iso:=First(acts,IsInjective);;
gap> g0:=Image(iso);
<permutation group of size 186208 with 7 generators>
gap> PrimitiveIdentification(g0);
53
gap> NrMovedPoints(g0);
529

This is just the same as we get from the coset action on the cosets of the group $h$ inside $g$; indeed we can also work directly from that:

gap> h0:=Image(Embedding(g,1));
<matrix group of size 352 with 6 generators>
gap> PrimitiveIdentification(Image(FactorCosetAction(g,h0)));
53