SizeScreen([61, ]);; x:=Indeterminate(GF(2)); x.name:="x";; f:=x^23-1; Factors(f); f:=First(Factors(f),i->Degree(i)>1); SizeScreen([72, ]);; RequirePackage("guava"); cod:=GeneratorPolCode(f,23,GF(2)); IsPerfectCode(cod); ext:=ExtendedCode(cod); SizeScreen([61, ]);; WeightDistribution(ext); m24:=AutomorphismGroup(ext); m24.name:="m24";; Size(m24); m22a:=Stabilizer(m24,[23,24],OnSets); m22a:=Operation(m22a,[1..22]); s:=SylowSubgroup(m22a,2);; a:=AgGroup(s); n:=Filtered(NormalSubgroups(a), i->Size(i)=16 and IsElementaryAbelian(i)); n:=List(n,i->Image(a.bijection,i));; u:=First(n,i->IsRegular(i,PermGroupOps.MovedPoints(i)));; un:=Normalizer(m22a,u);; mop:=Operation(m22a,RightCosets(m22a,un),OnRight);; ophom:=OperationHomomorphism(m22a,mop);; dp:=DirectProduct(m22a,mop);; emb1:=Embedding(m22a,dp,1);; emb2:=Embedding(mop,dp,2);; diag:=List(m22a.generators, i->Image(emb1,i)*Image(emb2,Image(ophom,i)));; diag:=Group(diag,());; diag.name:="M22.2-diag";; SizeScreen([67, ]);; RequirePackage("grape"); SizeScreen([61, ]);; gamma:=NullGraph(diag,100); AddEdgeOrbit(gamma,[1,100]);AddEdgeOrbit(gamma,[100,1]); hexad:=First(Orbits(un,[1..22]),i->Length(i)=6); hexad:=Set(hexad); for i in hexad do AddEdgeOrbit(gamma,[i,23]); AddEdgeOrbit(gamma,[23,i]); od; Adjacency(gamma,23); stab:=Stabilizer(diag,23);; storbrep:=List(Orbits(stab,[23..99]),i->i[1]); reps:=List(storbrep,i->RepresentativeOperation(diag,23,i)); repi:=List(reps,i->Intersection(hexad,OnSets(hexad,i))); pos:=First([1..3],i->Length(repi[i])=0); AddEdgeOrbit(gamma,[23,storbrep[pos]]); AddEdgeOrbit(gamma,[storbrep[pos],23]); IsSimpleGraph(gamma); Adjacency(gamma,23); IsDistanceRegular(gamma); aug:=AutGroupGraph(gamma);; Size(aug); DisplayCompositionSeries(aug); quit;