In GAP let $G_0$ be the Rubik's Cube Group defined by the six moves

U := (1,3,8,6)(2,5,7,4)(9,33,25,17)(10,34,26,18)(11,35,27,19);
L := (9,11,16,14)(10,13,15,12)(1,17,41,40)(4,20,44,37)(6,22,46,35);
F := (17,19,24,22)(18,21,23,20)(6,25,43,16)(7,28,42,13)(8,30,41,11);
R := (25,27,32,30)(26,29,31,28)(3,38,43,19)(5,36,45,21)(8,33,48,24);
B := (33,35,40,38)(34,37,39,36)(3,9,46,32)(2,12,47,29)(1,14,48,27);
D := (41,43,48,46)(42,45,47,44)(14,22,30,38)(15,23,31,39)(16,24,32,40);
G0 := Group([U, L, F, R, B, D]);

Then define the subgroups, see Thistlethwaite's Algorithm

G1 := Subgroup(G0, [L,   R,   F,   B,   U^2, D^2]); 
G2 := Subgroup(G0, [L,   R,   F^2, B^2, U^2, D^2]);
G3 := Subgroup(G0, [L^2, R^2, F^2, B^2, U^2, D^2]);

I try to define quotient groups with GAP, but unfortunately I get the following error:

FactorGroup(G2, G3);
Error, <N> must be a normal subgroup of <G> at /proc/cygdrive/C/gap-4.11.0/lib/grp.gi:2569 called from
<function "FactorGroup">( <arguments> )
 called from read-eval loop at *stdin*:13
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue

I do not understand this error since

IsNormal(G3, G2);

tells me that $G_3$ is indeed normal in $G_2$. What is wrong with my code?

  • $\begingroup$ that's not what IsNormal means - it returns true if G3 is contained in the normalizer of G2. $\endgroup$ Mar 1, 2021 at 21:21
  • $\begingroup$ It might be useful to note here that the general convention in GAP for arguments of a function is that the larger objects come before the smaller one. So the paremeters are always in the order supergroup, subgroup $\endgroup$
    – ahulpke
    Mar 1, 2021 at 23:11

1 Answer 1


Thistlethwaite's algorithm uses coset spaces, not factor groups. The groups aren't normal. The function is IsNormal(G, H), i.e. the bigger group goes first, but you're plugging in the smaller group first. As GroupProps notes, "Note that if the order of the group and the subgroup are interchanged, GAP will not detect an error and will return true, because any subgroup of a group normalizes the whole group."


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .