[GAP Forum] Octads for Mathieu group

Asst. Prof. Dmitrii (Dima) Pasechnik dima at ntu.edu.sg
Mon Dec 13 04:00:06 GMT 2010


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 <marek at 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
>
>
> #--------------------------------------------------------------------------------------------------------
> m:=MathieuGroup(24);
> stab:=Stabilizer(m, [1,2,3,4,5], OnTuples);
> n0:=First([6..24], x->Size(Orbit(stab,x))=3);   # find 3-element orbit
> # now we have first octad
> o1:=Concatenation([1..5], Orbit(stab, n0));
> rs:=GlobalRandomSource;
> rand:=function(n) return Random(rs, [1..n]); end;;
> gen:=GeneratorsOfGroup(m);  # 3 generators of order 23,5,2
> octads:=[o1];   count:=0;
> while Size(octads)<759  and count <20000 do
>   # generate random element
>   rl:=List([1..10], n->rand(3));
>   g:=Product(gen{rl});
>   # find image of the octad
>   im:=OnSets(o1, g);
>   if not (im in octads) then
>      Add(octads, im);
>   fi;
>   count:=count+1;
>   if count mod 1000 = 0 then Print(Size(octads), " octads found; counter=",
> count,"\n"); fi;
> od;
> # now we have ready 759 octads. Verify result whether intersections of
> octads are 0,2,4
> Set(List(octads, x->Size(Intersection(octads[1], x))))= [0,2,4,8];
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
>



--
Dmitrii Pasechnik
-----
DISCLAIMER: Any text following this sentence does not constitute a
part of this message, and was added automatically during transmission.

CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you.

Towards A Sustainable Earth: Print Only When Necessary



More information about the Forum mailing list