//load "/home/michler/PermutationConstituents.mag"; //load "D:/magmadoc/PermutationConstituents.mag"; //SetLibraryRoot("/home/michler/Magma2r11p8/libs/"); G:=ATLASGroup("J1"); prk:=PermRepKeys(G); str:=""; for p in [1..5] do grp:=PermutationGroup(prk[p]); subg:=Stabilizer(grp,1); ChiefFactors(subg); time mat:=PermutationConstituents(grp,subg); tmp:="J_1&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; end for; G:=ATLASGroup("HS"); prk:=PermRepKeys(G); str:=""; for p in [1..6] do grp:=PermutationGroup(prk[p]); subg:=Stabilizer(grp,1); ChiefFactors(subg); time mat:=PermutationConstituents(grp,subg); tmp:="J_1&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; end for; nam:="J2"; G:=ATLASGroup(nam); prk:=PermRepKeys(G); str:=""; for p in [1..#prk] do grp:=PermutationGroup(prk[p]); subg:=Stabilizer(grp,1); ChiefFactors(subg); time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}_2&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; end for; str; nam:="McL"; G:=ATLASGroup(nam); prk:=PermRepKeys(G); str:=""; for p in [1..4] do grp:=PermutationGroup(prk[p]); subg:=Stabilizer(grp,1); ChiefFactors(subg); time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}_2&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; end for; str; uu:=ATLASGroupNames(); for nam in uu do G:=ATLASGroup(nam); prk:=PermRepKeys(G); str:=""; for p in prk do if Degree(p) lt 10000 then grp:=PermutationGroup(p); subg:=Stabilizer(grp,1); ChiefFactors(subg); time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; end if; end for; str; end for; nam:="Tra(20,546)"; grp:=TransitiveGroup(20,546); maxt:=MaximalSubgroups(grp); subg:=maxt[1]`subgroup; time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; nam:="Per(122)"; DB:=PerfectGroupDatabase(); T:=Group(DB,122); H:=sub; ca:=CosetAction(T,H); grp:=ca(T); subg:=ca(H); time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; nam:="AS(98)"; DB:=AlmostSimpleGroupDatabase(); T:=GroupData(DB,98); grp:=T`permrep; maxt:=MaximalSubgroups(grp); subg:=maxt[1]`subgroup; time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; nam:="Pri(625,345)"; grp:=PrimitiveGroup(625,345); maxt:=MaximalSubgroups(grp); subg:=maxt[1]`subgroup; time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; nam:="AS(198)"; DB:=AlmostSimpleGroupDatabase(); T:=GroupData(DB,198); grp:=T`permrep; maxt:=MaximalSubgroups(grp); subg:=maxt[3]`subgroup; time mat:=PermutationConstituents(grp,subg); tmp:="{\\rm " cat nam cat "}&" cat Sprint(#subg) cat "&" cat Sprint(Degree(grp)) cat "&" cat Sprint(#mat) cat "&" cat "\\\\\\hline" cat "\n"; str cat:=tmp; /////////////////////////////////////////////////////////////////////// //we prove that the structure constants are preserved under //(i,j,k)->(j',i',k'), where dcr[i]^-1\in orbs[i] and these are the only //elements of C_2 wr Sym(3) with such property //////////////////////////////////////////////////////////////////////// grp:=PrimitiveGroup(125,34); maxt:=MaximalSubgroups(grp); subg:=maxt[1]`subgroup; ca:=CosetAction(grp,subg); G1:=ca(grp); base := Base( G1 ); if base[1] ne 1 then ChangeBase( ~G1,[1] ); base := Base( G1 ); end if; Gf,fG:=FPGroupStrong(G1); H1:=ca(subg); orbset:=Orbits(H1); orbs:=[Sort([x:x in o]):o in orbset]; minreps:=[Min(x):x in orbs]; dcr:=[]; for m in minreps do b,x:=IsConjugate(G1,1,m); dcr:=Append(dcr,x@@fG); end for; ndcr:=#dcr; Hf,fH:=FPGroupStrong(H1); invo:=Sym(#orbs)![dcd[1^fG(dcr[j]^-1)]:j in [1..#dcr]]; pp:=function(i,j,k) return #(orbset[i] meet orbset[j^invo]^fG(dcr[k])); end function; F:=Rationals(); R:=MatrixAlgebra(F,ndcr); GenIntersectionMatrix:=function(j) return R![pp(i,j,k):i,k in [1..ndcr]]; end function; V:=RSpace(F,ndcr); b:=Basis(V); Dlis:=[R!1]; D:=sub; VD:=sub; poslis:=[2..ndcr]; repeat bvd:=Basis(VD); poslis:=[i:i in poslis|not b[i] in VD]; minpos:=Minimum(poslis); Dlis:=Append(Dlis,R!GenIntersectionMatrix(minpos)); D:=sub; VD:=sub; dim:=Dimension(VD); dim; until dim eq ndcr; bd:=Basis(D); Orbs:=Orbits(H1); C:=CartesianPower([1..#Orbs],3); B:=CartesianPower([0..1],3); inv:=Sym(#Orbs)![Position(Orbs,(1^fG(d)^-1)^H1):d in dcr]; SS:=Sym(3); [:e in B,ss in SS|&and[bd[l[1^ss]^(inv^e[1]),l[2^ss]^(inv^e[2]), l[3^ss]^(inv^e[3])] eq bd[l[1],l[2],l[3]]:l in C]];