1## 2LoadPackage("orb"); 3LoadPackage("io"); 4LoadPackage("cvec"); 5LoadPackage("atlasrep"); 6LoadPackage("chop"); 7LoadPackage("genss"); 8 9## 10gens := AtlasGenerators([ "B", [ "BG1-f2r4370B0.m1", "BG1-f2r4370B0.m2" ], 1, 2 ]).generators; 11bgens := List(gens,CMat); 12slpbtoe := AtlasStraightLineProgram([ "B", "BG1-max1W1", 1 ]).program;; 13egens := ResultOfStraightLineProgram(slpbtoe,bgens); 14 15## 16x := egens[1]-egens[1]^0;; 17nsx := NullspaceMat(x); 18y := nsx * (egens[2]-egens[2]^0);; 19nsy := NullspaceMat(y); 20v := nsy[1]*nsx; 21 22## 23SetInfoLevel(InfoChop,2); 24m := Module(egens); 25r := Chop(m); 26i := Position(List(r.db,Dimension),78);; 27egens78 := GeneratorsWithMemory(RepresentingMatrices(r.db[i])); 28 29## 30o := Orb(egens78,StripMemory(egens78[1])^0,OnRight,rec(schreier := true, 31 lookingfor := function(o,x) return Order(x)=22; end)); 32Enumerate(o); 33word := TraceSchreierTreeForward(o,PositionOfFound(o)); 34g2a := Product(egens78{word})^11; 35o := Orb(egens78,StripMemory(egens78[1])^0,OnRight,rec(schreier := true, 36 lookingfor := function(o,x) return Order(x)=13; end)); 37Enumerate(o); 38word := TraceSchreierTreeForward(o,PositionOfFound(o)); 39b := Product(egens78{word}); 40 41## 42pr := ProductReplacer(egens78,rec(maxdepth := 150)); 43i := 0;; 44repeat 45 i := i + 1; 46 x := Next(pr); 47 a := g2a^x; 48until IsOne((a*b)^11) and IsOne(((a*b)^4*b*a*b*(a*b*b)^2)^12) and 49 IsOne((a*b^2)^21) and IsOne(Comm(a,b)^3) and 50 IsOne(Comm(a,b^2)^3) and IsOne(Comm(a,b^3)^3) and 51 IsOne(Comm(a,b^4)^2) and IsOne(Comm(a,b^5)^3) and 52 IsOne(Comm(a,b*a*b^2)^3) and IsOne(Comm(a,b^-1*a*b^-2)^2) and 53 IsOne(Comm(a,b*a*b^5)^2) and IsOne(Comm(a,b^2*a*b^5)^2); 54i; 55 56## 57S := StabilizerChain(Group(a,b),rec(TryShortOrbit := 30, 58 OrbitLengthLimit := 5000)); 59Size(S)=Size(CharacterTable("Fi22")); 60p := Group(ActionOnOrbit(S!.orb,[a,b]));; 61DisplayCompositionSeries(p); 62 63## 64SetInfoLevel(InfoSLP,2); 65slpetofi22 := SLPOfElms([a,b]); 66Length(LinesOfStraightLineProgram(slpetofi22)); 67SlotUsagePattern(slpetofi22);; 68fgens := ResultOfStraightLineProgram(slpetofi22,egens); 69a := fgens[1];; 70b := fgens[2];; 71IsOne(b^13); 72IsOne((a*b)^11); 73IsOne((a*b^2)^21); 74 75## 76slpfi22tom12 := AtlasStraightLineProgram([ "Fi22", "F22G1-max14W1", 1 ]).program;; 77slpm12tol211 := AtlasStraightLineProgram([ "M12", "M12G1-max5W1", 1 ]).program;; 78mgens := ResultOfStraightLineProgram(slpfi22tom12,fgens); 79lgens := ResultOfStraightLineProgram(slpm12tol211,mgens); 80m := Module(mgens);; 81r := Chop(m);; 82rad := RadicalSeries(m,r.db); 83 84## 85i := Position(List(rad.db,Dimension),32);; 86mgens32 := RepresentingMatrices(rad.db[i]); 87OrbitStatisticOnVectorSpace(mgens32,95040,30); 88 89## 90bgens := List(bgens,x->rad.basis*x*rad.ibasis);; 91egens := List(egens,x->rad.basis*x*rad.ibasis);; 92fgens := List(fgens,x->rad.basis*x*rad.ibasis);; 93mgens := List(mgens,x->rad.basis*x*rad.ibasis);; 94lgens := List(lgens,x->rad.basis*x*rad.ibasis);; 95j := Position(rad.isotypes[1],i);; 96l := rad.cfposs[1][j];; 97Append(l,Difference([1..4370],l)); 98bgens := List(bgens,x->ORB_PermuteBasisVectors(x,l));; 99egens := List(egens,x->ORB_PermuteBasisVectors(x,l));; 100fgens := List(fgens,x->ORB_PermuteBasisVectors(x,l));; 101mgens := List(mgens,x->ORB_PermuteBasisVectors(x,l));; 102lgens := List(lgens,x->ORB_PermuteBasisVectors(x,l));; 103 104## 105lgens32 := List(lgens,x->ExtractSubMatrix(x,[1..32],[1..32])); 106m := Module(lgens32);; 107r := Chop(m); 108soc := SocleSeries(m,r.db); 109i := Position(List(soc.db,x->[Dimension(x),DegreeOfSplittingField(x)]), 110 [10,1]);; 111j := Position(soc.isotypes[1],i);; 112l := Concatenation(soc.cfposs[1]{[j,j+1]});; 113lgens32 := List(lgens32,x->soc.basis*x*soc.ibasis); 114lgens20 := List(lgens32,x->ExtractSubMatrix(x,l,l)); 115OrbitStatisticOnVectorSpace(lgens20,660,30); 116 117## 118t := ORB_EmbedBaseChangeTopLeft(soc.basis,4370); 119ti := ORB_EmbedBaseChangeTopLeft(soc.ibasis,4370); 120bgens := List(bgens,x->t*x*ti);; 121egens := List(egens,x->t*x*ti);; 122fgens := List(fgens,x->t*x*ti);; 123mgens := List(mgens,x->t*x*ti);; 124lgens := List(lgens,x->t*x*ti);; 125Append(l,Difference([1..4370],l)); 126bgens := List(bgens,x->ORB_PermuteBasisVectors(x,l));; 127egens := List(egens,x->ORB_PermuteBasisVectors(x,l));; 128fgens := List(fgens,x->ORB_PermuteBasisVectors(x,l));; 129mgens := List(mgens,x->ORB_PermuteBasisVectors(x,l));; 130lgens := List(lgens,x->ORB_PermuteBasisVectors(x,l));; 131 132## 133x := egens[1]-egens[1]^0;; 134nsx := NullspaceMat(x);; 135y := nsx * (egens[2]-egens[2]^0);; 136nsy := NullspaceMat(y);; 137v := nsy[1]*nsx;; 138 139## 140mgens32 := List(mgens,x->ExtractSubMatrix(x,[1..32],[1..32])); 141S := StabilizerChain(Group(mgens32),rec(TryShortOrbit := 10)); 142p := Group(ActionOnOrbit(S!.orb,mgens32)); 143i := SmallerDegreePermutationRepresentation(p);; 144pp := Group(List(GeneratorsOfGroup(p),x->ImageElm(i,x))); 145m12 := MathieuGroup(12);; 146i := IsomorphismGroups(pp,m12);; 147mpermgens := List(GeneratorsOfGroup(pp),x->ImageElm(i,x)); 148lpermgens := ResultOfStraightLineProgram(slpm12tol211,mpermgens); 149 150## 151f := IO_File("data.gp","w");; 152IO_Pickle(f,"seed");; 153IO_Pickle(f,v);; 154IO_Pickle(f,"generators");; 155IO_Pickle(f,bgens);; 156IO_Pickle(f,egens);; 157IO_Pickle(f,fgens);; 158IO_Pickle(f,mgens);; 159IO_Pickle(f,lgens);; 160IO_Pickle(f,"permutations");; 161IO_Pickle(f,mpermgens);; 162IO_Pickle(f,lpermgens);; 163IO_Close(f);; 164