#We find all primitive subgroups of $GL(6,2)$ with parameters $e=3$, $a=2$. Since $b=2$ divides $a$, we use item (i) of Lemma 5.5. We start with primitive #subgroups in $GL(3,4)$, and then produce primitive subgroups in $GL(24,2)$. #In the notations of Theorem 5.1, if $H$ is a primitive solvable subgroup, then it possesses a series #$$1 e:=3;; p:=2;; d:=24;; a:=8;; b:=2;; #First we generate the list of all primitive subgroups in $GL(3,4)$, using standart function of the package IRREDSOL gap> l0:=AllIrreducibleSolvableMatrixGroups(Degree, d/a, Field, GF(p^b), IsPrimitiveMatrixGroup, true);; #In this list we choose subgroups, whose order is divisible by $(p^b-1)*e*e=(2^2-1)*9$ gap> l1:=Filtered(l0,x-> (Order(x) mod ((p^b-1)*e*e)) = 0);; #In view of Lemma 5.4, we choose subgroups satisfying $\vert A/F\vert=24$ and collect these subgroups in the list l2. gap> l2:=Filtered(l1,x-> ((Order(x)/((p^b-1)*e*e) =24)));; Size(l2); 1 #Now we need to make an embedding of the primitive solvable subgroups of GL(3,2^2) into GL(24,2). We do it in two steps. First each $G\leq GL(3,2^2)$ we embed in #$GL(12,4)$ by taking $I_4\otimes G$, then we substitute each entry $g_{i,j}\in GF(2^2)$ of every $g\in G$ by a 2\times2-matrix over $GF(2)$ #First we produce generators of subgroups from the list l2 gap> gens:=[];; gap> for j in l2 do > Append(gens,[GeneratorsOfGroup(j)]);; > od; #Each matrix $g$ in gens we substitute by $I_4\otimes g$. gap> genss:=[];; gap> for i in [1..Size(gens)] do > genss[i]:=[]; > for j in gens[i] do > Append(genss[i],[KroneckerProduct(IdentityMat(4,Z(2)),j)]); > od; > od; #Now we produce generators of these subgroups in GL(24,2) by substituting each entry $g_{i,j}\in GF(2^2)$ of every $g\in G$ by a 2\times2-matrix over $GF(2)$ gap> bas2:= Basis(AsVectorSpace( GF(p),GF(p^2) ) );; gap> genS:=[];; gap> for i in [1..Size(genss)] do > genS[i]:=[];; > for j in genss[i] do > Append(genS[i],[BlownUpMat(bas2,j)]); > od; > od; #Now we produce $t,s\in GL(4,2^2)$, then $t\otimes I_e$, $s\otimes I_e$ in $GL(12,2^2)$, and then we produce generators of these subgroups in GL(24,2) by #substituting each entry $g_{i,j}\in GF(2^2)$ of every $g\in G$ by a 2\times2-matrix over $GF(2)$ gap> bas4:= Basis(AsVectorSpace( GF(p^2),GF(p^a) ) );; gap> t:=BlownUpMat(bas4,[[Z(p^a)]]);; gap> s:=RepresentativeAction(GL(4,p^b),t,t^(p^b));; Order(s); 4 gap> Ie:=IdentityMat(e,GF(2));; gap> t12:=KroneckerProduct(t,Ie);; gap> s12:=KroneckerProduct(s,Ie);; gap> td:=BlownUpMat(bas2,t12);; gap> sd:=BlownUpMat(bas2,s12);; #We element td and sd to generators genS gap> for i in genS do > Append(i,[td,sd]); > od; #In view of Lemma 5.5, every subgroup generated by the generating set obtained above is a subgroup of index dividing $2$ in primitive subgroup of $GL(24,2)$. #So we need to find the normalizer $N=N_{GL(24,2)}(F)$ having the structure $(F.Sp(2,3)).8$. In order to find it we need to generate an element xd of order 8 #such that xd normalizes F and $td^xd=td^p$. gap> Display(td); . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . 1 . . . . . 1 . . . . 1 . . . . . 1 1 . . . . 1 1 . . . . 1 1 . . . . . 1 . . . . . . . 1 . . . . . 1 . . . . . 1 . . . . 1 . . . . . 1 1 . . . . 1 1 . . . . 1 1 . . . . . 1 . . . . . . . 1 . . . . . 1 . . . . . 1 . . . . 1 . . . . . 1 1 . . . . 1 1 . . . . 1 1 . . . . . 1 #We see that t36 can be divided into 4\times 4 blocks, each block has structure I_3\otimes (2\times 2)-matrix. #We form 8\times 8 matrix out of these 2\times 2 matrices gap> z:=Z(2);; gap> t8:=[[0*z,0*z,z,0*z,0*z,0*z,0*z,0*z],[0*z,0*z,0*z,z,0*z,0*z,0*z,0*z],[0*z,0*z,0*z,0*z,z,0*z,0*z,0*z],[0*z,0*z,0*z,0*z,0*z,z,0*z,0*z],[0*z,0*z,0*z,0*z,0*z,0*z,z,0*z],[0*z,0*z,0*z,0*z,0*z,0*z,0*z,z],[0*z,z,0*z,z,0*z,z,z,0*z],[z,z,z,z,z,z,0*z,z]];; gap> Display(t8); . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . 1 . 1 . 1 1 . 1 1 1 1 1 1 . 1 gap> Order(t8); 255 #Now we find $x\in GL(8,2)$ such that t^x=t^2, and then construct xd by using this x, making the reverse procedure with respect to the procedure of obtaining t #out of td gap> x:=RepresentativeAction(GL(8,2),t8,t8^2);; gap> x1:=[[x[1][1],x[1][2]],[x[2][1],x[2][2]]];; gap> x2:=[[x[1][3],x[1][4]],[x[2][3],x[2][4]]];; gap> x3:=[[x[1][5],x[1][6]],[x[2][5],x[2][6]]];; gap> x4:=[[x[1][8],x[1][8]],[x[2][7],x[2][8]]];; gap> x5:=[[x[3][1],x[3][2]],[x[4][1],x[4][2]]];; gap> x6:=[[x[3][3],x[3][4]],[x[4][3],x[4][4]]];; gap> x7:=[[x[3][5],x[3][6]],[x[4][5],x[4][6]]];; gap> x8:=[[x[3][7],x[3][8]],[x[4][7],x[4][8]]];; gap> x9:=[[x[5][1],x[5][2]],[x[6][1],x[6][2]]];; gap> x10:=[[x[5][3],x[5][4]],[x[6][3],x[6][4]]];; gap> x11:=[[x[5][5],x[5][6]],[x[6][5],x[6][5]]];; gap> x12:=[[x[5][7],x[5][8]],[x[6][7],x[6][8]]];; gap> x13:=[[x[7][1],x[7][2]],[x[8][1],x[6][2]]];; gap> x14:=[[x[7][3],x[7][4]],[x[8][3],x[8][4]]];; gap> x15:=[[x[7][5],x[7][6]],[x[8][5],x[8][6]]];; gap> x16:=[[x[7][7],x[7][7]],[x[8][7],x[8][8]]];; gap> I3:=IdentityMat(3,Z(2));; gap> x013:=KroneckerProduct(I3,x1);; gap> x023:=KroneckerProduct(I3,x2);; gap> x033:=KroneckerProduct(I3,x3);; gap> x043:=KroneckerProduct(I3,x4);; gap> x053:=KroneckerProduct(I3,x5);; gap> x063:=KroneckerProduct(I3,x6);; gap> x073:=KroneckerProduct(I3,x7);; gap> x083:=KroneckerProduct(I3,x8);; gap> x093:=KroneckerProduct(I3,x9);; gap> x103:=KroneckerProduct(I3,x10);; gap> x113:=KroneckerProduct(I3,x11);; gap> x123:=KroneckerProduct(I3,x12);; gap> x133:=KroneckerProduct(I3,x13);; gap> x143:=KroneckerProduct(I3,x14);; gap> x153:=KroneckerProduct(I3,x15);; gap> x163:=KroneckerProduct(I3,x16);; gap> xd:=[]; gap> for i in [1..6] do > xd[i]:=Concatenation(x013[i],x023[i],x033[i],x043[i]);; > od; gap> for i in [1..6] do > xd[i+6]:=Concatenation(x053[i],x063[i],x073[i],x083[i]);; > od; gap> for i in [1..6] do > xd[i+12]:=Concatenation(x093[i],x103[i],x113[i],x123[i]);; > od; gap> for i in [1..6] do > xd[i+18]:=Concatenation(x133[i],x143[i],x153[i],x163[i]);; > od; gap> Display(xd); 1 . . . . . . . . . . . . 1 . . . . . . . . . . 1 1 . . . . . . . . . . 1 . . . . . . . . . . . . . 1 . . . . . . . . . . . . 1 . . . . . . . . . . 1 1 . . . . . . . . . . 1 . . . . . . . . . . . . . 1 . . . . . . . . . . . . 1 . . . . . . . . . . 1 1 . . . . . . . . . . 1 . . . . . . . 1 1 . . . . 1 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . 1 . . . . . 1 . . . . . . . 1 1 . . . . 1 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . 1 . . . . . 1 . . . . . . . 1 1 . . . . 1 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . 1 . . . . . 1 . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . 1 gap> td^xd=td^2; true gap> xd^2=sd; true #We check, that xd normalizes the subgroup generated by genS[1] gap> L:=Subgroup(GL(24,2),genS[1]);; L^xd=L; true #We choose vector v and check that the subgroup H generated by genS[1] and xd acts regualrly on v^H, i.e. |H|=|v^H|, so Corollary 2.5 can be applied gap> z:=Z(2);; v:=[z,0*z,z,z,0*z,z,z,z,0*z,z,z,0*z,z,0*z,z,z,z,z,0*z,0*z,z,z,0*z,z];; gap> Append(genS[1],[xd]);; gap> H:=Subgroup(GL(24,2),genS[1]);; gap> n:=Size(H);; m:=Size(v^H);; n/m; 1