# [GAP Forum] Octads for Mathieu group

Marek Mitros marek at mitros.org
Wed Dec 15 08:30:59 GMT 2010

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
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
local res, res2, per;
res:=Filtered(List(o21, x->Difference(x, Concatenation(f, trip))),
y->Size(y)=2);
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
<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
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

On Mon, Dec 13, 2010 at 5:00 AM, Asst. Prof. Dmitrii (Dima) Pasechnik <
dima at 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
> 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];
>
>
> 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
> >
>