Thank you for the answer ! Here is the code for generating Mathieu group preserving my set of octads from given Golay code. I did it using advices from Dmitrij, so I share this code with GAP forum as well. It works but I do not understand why :) I need to learn more about projective spaces over finite fields.
Regards, Marek # My set of octads is stored in <ioctads> variable e.g. [1,2,3,4,9,10,11,12] is in this set. # Function generating permutation from octad. Parameters description: # f - octad; trip - triple inside that octad # o21 - 21 octads containing that triple per_from_octad:=function(f, trip, o21) local res, res2, per; res:=Filtered(List(o21, x->Difference(x, Concatenation(f, trip))), y->Size(y)=2); Add(res, trip{[2,3]}); res2:=List(res, x->[x[2],x[1]]); # swap elements per:=MappingPermListList(Concatenation(res), Concatenation(res2)); # OK return per; end;; trip:=[22,23,24]; # take first triple ot:=Filtered(ioctads, o->IsSubset(o, trip)); # 21 octads containing triple <trip> fx:=Filtered(ioctads, o->(trip[1] in o) and not (trip[2] in o) and not (trip[3] in o));; # 120 gen:=List(fx{[1,5,9,12]}, x->per_from_octad(x, trip, ot)); # generate group with 40320 elements # it can be checked that generators of this group preserve octads. Of course I did some additional work to figure out that 1,5,9,12 elements generate this group. trip:=[1,2,3]; # second triple ot:=Filtered(ioctads, o->IsSubset(o, trip)); # 21 octads containing trip fx:=Filtered(ioctads, o->(trip[1] in o) and not (trip[2] in o) and not (trip[3] in o));; # 120 gen2:=List(fx{[30,31,33,37]}, x->per_from_octad(x, trip, ot)); # generate group with 40320 elements gm:=Concatenation(gen, gen2); # gm{[1..5]} generate M23, [1..6] generate M24 m:=Group(gm); # Mathieu group M24 with 244 823 040 which preserve my set of octads. On Mon, Dec 13, 2010 at 5:00 AM, Asst. Prof. Dmitrii (Dima) Pasechnik < d...@ntu.edu.sg> wrote: > Dear Marek, > > the crucial fact one can use is that the 21 octads containing a given > triple of points, > say, (1,2,3) > form the projective plane of order 4. > So, if you fix (1,2,3) and any two points, say, 4,5, in the projective > plane P on {4..24}, > you get a subgroup with 2 orbits on {6,24}, one of them, of length 3, > corresponding > to the unique line of P on 4 and 5. > So the points in this length 3 orbit, together with {1..5}, will form an > octad. > g:=MathieuGroup(24); > h:=Stabilizer(g,[1,2,3,4,5],OnTuples); > o:=Orbits(h,[6..24]); > o3:=Filtered(o,x->Length(x)=3)[1]; > octads:=Orbit(g,Union([1..5],o3),OnSets);; > > give you the octads. > > Conversely, if you have the set of octads, you can start by taking the > 21 octads containing {1,2,3}, and write down generators for its group > of automorphisms (e.g. by coordinatizing the > plane using homogeneous coordinates, a nice exercise in finite > geometry). Then do the same > for some other triple. Combining the resulting sets of generators will give > you > a generating set for M_{24}. > > Hope this helps, > Dmitrii > > > On 10 December 2010 21:24, Marek Mitros <ma...@mitros.org> wrote: > > Hi All, > > > > For some time I struggle to obtain Golay code from the Mathieu group and > > opposite - find Mathieu group which preserve given Golay code. I found > > solution in one way which I present below. It is quick. Does anybody know > > how to obtain Mathieu Group M24 generators for given Golay code ? > > > > Regards, > > Marek Mitros > > > _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum