"Source: Text/Group/GrpPerm.text";
"Line: 5047";
"Date: Wed Mar 24 09:34:33 2021";
"Main: Thu May 25 10:02:38 2023";
// original file: Text/Group/GrpPerm.text, line: 5047
// Example: H64E29 ()
print "Example: H64E29";
ei := GetEchoInput();
SetEchoInput(true);
G := sub<Sym(48) |
    (1,3,8,6)(2,5,7,4)(9,48,15,12)(10,47,16,13)(11,46,17,14),
    (6,15,35,26)(7,22,34,19)(8,30,33,11)(12,14,29,27)(13,21,28,20),
    (1,12,33,41)(4,20,36,44)(6,27,38,46)(9,11,26,24)(10,19,25,18),
    (1,24,40,17)(2,18,39,23)(3,9,38,32)(41,43,48,46)(42,45,47,44),
    (3,43,35,14)(5,45,37,21)(8,48,40,29)(15,17,32,30)(16,23,31,22),
    (24,27,30,43)(25,28,31,42)(26,29,32,41)(33,35,40,38)(34,37,39,36) >;
O1 := Orbits(G);
O1;
f1, Im1, Ker1 := OrbitAction(G, O1[1]);
FactoredOrder(Im1);
IsPrimitive(Im1);
assert not $1;
P1 := MinimalPartition(Im1);
#P1;
assert $1 eq 8;
f2, Im2, Ker2 := BlocksAction(Im1, P1);
FactoredOrder(Im2);
IsPrimitive(Im2);
assert $1;
IsSymmetric(Im2);
assert $1;
FactoredOrder(Ker2);
IsElementaryAbelian(Ker2);
assert $1;
f3, Im3, Ker3 := OrbitAction(Ker1, O1[2]);
IsTransitive(Im3);
assert $1;
FactoredOrder(Im3);
FactoredOrder(Ker3);
IsPrimitive(Im3);
assert not $1;
P := MinimalPartition(Im3);
f4, Im4, Ker4 := BlocksAction(Im3, P);
Im4;
IsPrimitive(Im4);
assert $1;
IsAlternating(Im4);
assert $1;
FactoredOrder(Ker4);
IsElementaryAbelian(Ker4);
assert $1;
SetEchoInput(ei);
