Cubic Symmetry Cycle Representations

In responding to comments to a previous post it became of interest to represent cube states and cubic symmetry elements as facelet permutations in disjoint cycle form appropriate for GAP. I wrote a routine to dump facelet representations in disjoint cycle form and produced a table of the cubic symmetry group in cycle notation. It occured to me that this table might be of use to readers of this forum.

I number the cube facelets in the order they occur in the Singmaster-Reid identity configuration string:

     12 34 56 78 90 12 34 56 78 90 12 34 567 890 123 456 789 012 345 678
     UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR

The Up facelet of the Up-Front cubie is numbered 1 on through to the Right facelet of the Down-Back-Right cubie which is numbered 48. With this numbering the face turns are represented by the permutations:

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

And below are the representations for the 48 cubic group symmetry elements. The symmetries are designated with reference to a set of x, y, z coordinate axes originating at cube center with the x axis pointing Right, the y axis pointing Up, and the z axis pointing Front. The geometric transform of the coordinate axes is given first followed by the Schoenflies symbol for the transform. For example entry 15; z, y,-x C4y , designates a four fold ccw rotation about the y axis. This transform rotates the z axis onto the x axis and the neg x axis onto the z axis. Entry 5; -z, x,-y C3x'y'z , designates a three fold ccw rotation about the vector (-1,-1, 1 ) which rotates the neg z axis onto the x axis, the x axis onto the y axis and the neg y axis onto the z axis. The σh elements are planes of symmetry perpendicular to a four fold axis. The subscript gives the perpendicular axis. The σd elements are planes of symmetry which bisect the angle made by two four fold axes. The subscript gives the two axes bisected. The S elements are rotation-reflection elements. The axis of rotation is given as a subscript in the same manner as for the proper rotation elements. And i is the inversion element.

The Cubic Symmetry Group as Rubik's Cube Facelet Permutations

       m                                   Disjoint Cycle Representation
 1  x, y, z E  
 	 ( ) 
 2  x,-y,-z C2x  
	(1,13)(2,14)(3,11)(4,12)(5,9)(6,10)(7,15)(8,16)(17,21)(18,22)(19,23)(20,24)(25,46)
	(26,47)(27,48)(28,37)(29,38)(30,39)(31,40)(32,41)(33,42)(34,43)(35,44)(36,45) 
 3 -x, y,-z C2y  
 	(1,5)(2,6)(3,7)(4,8)(9,13)(10,14)(11,15)(12,16)(17,23)(18,24)(19,21)(20,22)(25,31)
 	(26,32)(27,33)(28,34)(29,35)(30,36)(37,43)(38,44)(39,45)(40,46)(41,47)(42,48) 
 4 -x,-y, z C2z  
 	(1,9)(2,10)(3,15)(4,16)(5,13)(6,14)(7,11)(8,12)(17,19)(18,20)(21,23)(22,24)(25,40)
 	(26,41)(27,42)(28,43)(29,44)(30,45)(31,46)(32,47)(33,48)(34,37)(35,38)(36,39) 
 5 -z, x,-y C3x'y'z  
 	(1,12,23)(2,11,24)(3,22,6)(4,21,5)(7,18,14)(8,17,13)(9,16,19)(10,15,20)(25,48,32)
 	(26,46,33)(27,47,31)(28,29,30)(34,38,45)(35,39,43)(36,37,44)(40,42,41) 
 6  y,-z,-x C23x'y'z 
 	(1,23,12)(2,24,11)(3,6,22)(4,5,21)(7,14,18)(8,13,17)(9,19,16)(10,20,15)(25,32,48)
 	(26,33,46)(27,31,47)(28,30,29)(34,45,38)(35,43,39)(36,44,37)(40,41,42) 
 7  z,-x,-y C3x'yz'  
 	(1,16,21)(2,15,22)(3,20,14)(4,19,13)(5,8,23)(6,7,24)(9,12,17)(10,11,18)(25,42,47)
 	(26,40,48)(27,41,46)(28,35,45)(29,36,43)(30,34,44)(31,33,32)(37,38,39) 
 8 -y,-z, x C23x'yz' 
 	(1,21,16)(2,22,15)(3,14,20)(4,13,19)(5,23,8)(6,24,7)(9,17,12)(10,18,11)(25,47,42)
 	(26,48,40)(27,46,41)(28,45,35)(29,43,36)(30,44,34)(31,32,33)(37,39,38) 
 9 -z,-x, y C3xy'z'  
 	(1,8,19)(2,7,20)(3,24,10)(4,23,9)(5,16,17)(6,15,18)(11,22,14)(12,21,13)(25,33,41)
 	(26,31,42)(27,32,40)(28,44,39)(29,45,37)(30,43,38)(34,35,36)(46,48,47) 
10 -y, z,-x C23xy'z' 
	(1,19,8)(2,20,7)(3,10,24)(4,9,23)(5,17,16)(6,18,15)(11,14,22)(12,13,21)(25,41,33)
	(26,42,31)(27,40,32)(28,39,44)(29,37,45)(30,38,43)(34,36,35)(46,47,48) 
11  z, x, y C3xyz  
	(1,4,17)(2,3,18)(5,12,19)(6,11,20)(7,22,10)(8,21,9)(13,16,23)(14,15,24)(25,27,26)
	(28,38,36)(29,39,34)(30,37,35)(31,48,41)(32,46,42)(33,47,40)(43,44,45) 
12  y, z, x C23xyz 
	(1,17,4)(2,18,3)(5,19,12)(6,20,11)(7,10,22)(8,9,21)(13,23,16)(14,24,15)(25,26,27)
	(28,36,38)(29,34,39)(30,35,37)(31,41,48)(32,42,46)(33,40,47)(43,45,44) 
13  x,-z, y C4x  
	(1,6,13,10)(2,5,14,9)(3,21,11,17)(4,22,12,18)(7,23,15,19)(8,24,16,20)(25,30,46,39)
	(26,28,47,37)(27,29,48,38)(31,45,40,36)(32,43,41,34)(33,44,42,35) 
14  x, z,-y C34x 
	(1,10,13,6)(2,9,14,5)(3,17,11,21)(4,18,12,22)(7,19,15,23)(8,20,16,24)(25,39,46,30)
	(26,37,47,28)(27,38,48,29)(31,36,40,45)(32,34,41,43)(33,35,42,44) 
15  z, y,-x C4y  
	(1,7,5,3)(2,8,6,4)(9,15,13,11)(10,16,14,12)(17,20,23,22)(18,19,24,21)(25,34,31,28)
	(26,35,32,29)(27,36,33,30)(37,40,43,46)(38,41,44,47)(39,42,45,48) 
16 -z, y, x C34y 
	(1,3,5,7)(2,4,6,8)(9,11,13,15)(10,12,14,16)(17,22,23,20)(18,21,24,19)(25,28,31,34)
	(26,29,32,35)(27,30,33,36)(37,46,43,40)(38,47,44,41)(39,48,45,42) 
17 -y, x, z C4z  
	(1,18,9,20)(2,17,10,19)(3,12,15,8)(4,11,16,7)(5,22,13,24)(6,21,14,23)(25,38,40,35)
	(26,39,41,36)(27,37,42,34)(28,48,43,33)(29,46,44,31)(30,47,45,32) 
18  y,-x, z C34z 
	(1,20,9,18)(2,19,10,17)(3,8,15,12)(4,7,16,11)(5,24,13,22)(6,23,14,21)(25,35,40,38)
	(26,36,41,39)(27,34,42,37)(28,33,43,48)(29,31,44,46)(30,32,45,47) 
19  y, x,-z C2xy  
	(1,22)(2,21)(3,4)(5,18)(6,17)(7,12)(8,11)(9,24)(10,23)(13,20)(14,19)(15,16)(25,29)
	(26,30)(27,28)(31,38)(32,39)(33,37)(34,48)(35,46)(36,47)(40,44)(41,45)(42,43) 
20 -y,-x,-z C2xy'  
	(1,24)(2,23)(3,16)(4,15)(5,20)(6,19)(7,8)(9,22)(10,21)(11,12)(13,18)(14,17)(25,44)
	(26,45)(27,43)(28,42)(29,40)(30,41)(31,35)(32,36)(33,34)(37,48)(38,46)(39,47) 
21  z,-y, x C2xz  
	(1,11)(2,12)(3,9)(4,10)(5,15)(6,16)(7,13)(8,14)(17,18)(19,22)(20,21)(23,24)(25,37)
	(26,38)(27,39)(28,40)(29,41)(30,42)(31,43)(32,44)(33,45)(34,46)(35,47)(36,48) 
22 -z,-y,-x C2xz'  
	(1,15)(2,16)(3,13)(4,14)(5,11)(6,12)(7,9)(8,10)(17,24)(18,23)(19,20)(21,22)(25,43)
	(26,44)(27,45)(28,46)(29,47)(30,48)(31,37)(32,38)(33,39)(34,40)(35,41)(36,42) 
23 -x, z, y C2yz  
	(1,2)(3,19)(4,20)(5,10)(6,9)(7,17)(8,18)(11,23)(12,24)(13,14)(15,21)(16,22)(25,36)
	(26,34)(27,35)(28,41)(29,42)(30,40)(31,39)(32,37)(33,38)(43,47)(44,48)(45,46) 
24 -x,-z,-y C2yz'  
	(1,14)(2,13)(3,23)(4,24)(5,6)(7,21)(8,22)(9,10)(11,19)(12,20)(15,17)(16,18)(25,45)
	(26,43)(27,44)(28,32)(29,33)(30,31)(34,47)(35,48)(36,46)(37,41)(38,42)(39,40) 
25  y, x, z σd_xy  
	(1,18)(2,17)(3,4)(5,22)(6,21)(7,12)(8,11)(9,20)(10,19)(13,24)(14,23)(15,16)(25,27)
	(28,29)(31,48)(32,47)(33,46)(34,38)(35,37)(36,39)(40,42)(43,44) 
26 -y,-x, z σd_xy'  
	(1,20)(2,19)(3,16)(4,15)(5,24)(6,23)(7,8)(9,18)(10,17)(11,12)(13,22)(14,21)(25,42)
	(26,41)(27,40)(28,44)(29,43)(30,45)(31,33)(34,35)(37,38)(46,48) 
27  z, y, x σd_xz  
	(1,3)(2,4)(5,7)(6,8)(9,11)(10,12)(13,15)(14,16)(17,18)(19,22)(20,21)(23,24)(26,27)
	(28,34)(29,36)(30,35)(32,33)(38,39)(40,46)(41,48)(42,47)(44,45) 
28 -z, y,-x σd_xz'  
	(1,7)(2,8)(3,5)(4,6)(9,15)(10,16)(11,13)(12,14)(17,24)(18,23)(19,20)(21,22)(25,31)
	(26,33)(27,32)(29,30)(35,36)(37,43)(38,45)(39,44)(41,42)(47,48) 
29  x, z, y σd_yz  
	(1,2)(3,17)(4,18)(5,10)(6,9)(7,19)(8,20)(11,21)(12,22)(13,14)(15,23)(16,24)(25,26)
	(28,39)(29,38)(30,37)(31,41)(32,40)(33,42)(34,36)(43,45)(46,47) 
30  x,-z,-y σd_yz'  
	(1,14)(2,13)(3,21)(4,22)(5,6)(7,23)(8,24)(9,10)(11,17)(12,18)(15,19)(16,20)(25,47)
	(26,46)(27,48)(28,30)(31,32)(34,45)(35,44)(36,43)(37,39)(40,41) 
31 -x,-z, y S4x  
	(1,6,13,10)(2,5,14,9)(3,23,11,19)(4,24,12,20)(7,21,15,17)(8,22,16,18)(25,32,46,41)
	(26,31,47,40)(27,33,48,42)(28,45,37,36)(29,44,38,35)(30,43,39,34) 
32 -x, z,-y S34x 
	(1,10,13,6)(2,9,14,5)(3,19,11,23)(4,20,12,24)(7,17,15,21)(8,18,16,22)(25,41,46,32)
	(26,40,47,31)(27,42,48,33)(28,36,37,45)(29,35,38,44)(30,34,39,43) 
33  z,-y,-x S4y  
	(1,15,5,11)(2,16,6,12)(3,9,7,13)(4,10,8,14)(17,20,23,22)(18,19,24,21)(25,40,31,46)
	(26,42,32,48)(27,41,33,47)(28,37,34,43)(29,39,35,45)(30,38,36,44) 
34 -z,-y, x S34y 
	(1,11,5,15)(2,12,6,16)(3,13,7,9)(4,14,8,10)(17,22,23,20)(18,21,24,19)(25,46,31,40)
	(26,48,32,42)(27,47,33,41)(28,43,34,37)(29,45,35,39)(30,44,36,38) 
35 -y, x,-z S4z  
	(1,22,9,24)(2,21,10,23)(3,12,15,8)(4,11,16,7)(5,18,13,20)(6,17,14,19)(25,48,40,33)
	(26,47,41,32)(27,46,42,31)(28,38,43,35)(29,37,44,34)(30,39,45,36) 
36  y,-x,-z S34z 
	(1,24,9,22)(2,23,10,21)(3,8,15,12)(4,7,16,11)(5,20,13,18)(6,19,14,17)(25,33,40,48)
	(26,32,41,47)(27,31,42,46)(28,35,43,38)(29,34,44,37)(30,36,45,39) 
37 -x,-y,-z i   
	(1,13)(2,14)(3,15)(4,16)(5,9)(6,10)(7,11)(8,12)(17,23)(18,24)(19,21)(20,22)(25,43)
	(26,45)(27,44)(28,40)(29,42)(30,41)(31,37)(32,39)(33,38)(34,46)(35,48)(36,47) 
38 -x, y, z σh_x  
	(3,7)(4,8)(11,15)(12,16)(17,19)(18,20)(21,23)(22,24)(25,34)(26,36)(27,35)(28,31)
	(29,33)(30,32)(37,40)(38,42)(39,41)(43,46)(44,48)(45,47) 
39  x,-y, z σh_y  
	(1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)(8,16)(25,37)(26,39)(27,38)(28,46)(29,48)
	(30,47)(31,43)(32,45)(33,44)(34,40)(35,42)(36,41) 
40  x, y,-z σh_z  
	(1,5)(2,6)(9,13)(10,14)(17,21)(18,22)(19,23)(20,24)(25,28)(26,30)(27,29)(31,34)
	(32,36)(33,35)(37,46)(38,48)(39,47)(40,43)(41,45)(42,44) 
41 -y, z, x S6x'y'z  
	(1,17,12,13,23,8)(2,18,11,14,24,7)(3,10,22,15,6,20)(4,9,21,16,5,19)(25,39,48,43,32,35)
	(26,38,46,45,33,34)(27,37,47,44,31,36)(28,41,29,40,30,42) 
42  z,-x, y S56x'y'z 
	(1,8,23,13,12,17)(2,7,24,14,11,18)(3,20,6,15,22,10)(4,19,5,16,21,9)(25,35,32,43,48,39)
	(26,34,33,45,46,38)(27,36,31,44,47,37)(28,42,30,40,29,41) 
43  y, z,-x S6x'yz'  
	(1,19,16,13,21,4)(2,20,15,14,22,3)(5,17,8,9,23,12)(6,18,7,10,24,11)(25,36,42,43,47,29)
	(26,35,40,45,48,28)(27,34,41,44,46,30)(31,39,33,37,32,38) 
44 -z, x, y S56x'yz' 
	(1,4,21,13,16,19)(2,3,22,14,15,20)(5,12,23,9,8,17)(6,11,24,10,7,18)(25,29,47,43,42,36)
	(26,28,48,45,40,35)(27,30,46,44,41,34)(31,38,32,37,33,39) 
45  y,-z, x S6xy'z'  
	(1,21,8,13,19,12)(2,22,7,14,20,11)(3,6,24,15,10,18)(4,5,23,16,9,17)(25,30,33,43,41,38)
	(26,29,31,45,42,37)(27,28,32,44,40,39)(34,47,35,46,36,48) 
46  z, x,-y S56xy'z' 
	(1,12,19,13,8,21)(2,11,20,14,7,22)(3,18,10,15,24,6)(4,17,9,16,23,5)(25,38,41,43,33,30)
	(26,37,42,45,31,29)(27,39,40,44,32,28)(34,48,36,46,35,47) 
47 -y,-z,-x S6xyz  
	(1,23,4,13,17,16)(2,24,3,14,18,15)(5,21,12,9,19,8)(6,22,11,10,20,7)(25,45,27,43,26,44)
	(28,47,38,40,36,33)(29,46,39,42,34,32)(30,48,37,41,35,31) 
48 -z,-x,-y S56xyz 
	(1,16,17,13,4,23)(2,15,18,14,3,24)(5,8,19,9,12,21)(6,7,20,10,11,22)(25,44,26,43,27,45)
	(28,33,36,40,38,47)(29,32,34,42,39,46)(30,31,35,41,37,48)

Comment viewing options

Select your preferred way to display the comments and click 'Save settings' to activate your changes.

More representations

Six facelets are missing, but when you do not move them, why should you add them? Well, I think you should move them in the 48 symmetries: your symmetries are only actions of real symmetries on the void cube. ;-)

I am programming something, but instead of facelets I use so called Permori coordinates. Permori(8,3) represents the corners, Permori(12,2) the edges, Permori(6,4,1) is used for the centers (the 1 means that there is no restriction on the total orientation), and Permori(3,2,1) represents the symmetries.

I think of using ten char[32] or something for the interface, most characters of them being ignored. See the clean cube below.

        _ _
      |U U U|
      |U U U|      Happy
  _ _ |U_U_U| _ _   _ _
|L L L|F F F|R R R|B B B|
|L L L|F F F|R R R|B B B|
|L_L_L|F_F_F|R_R_R|B_B_B|
      |D D D|
      |D D D|      Rubik
      |D_D_D|
Next, two char[8]'s or something will be used. The first will be "ULFRBD" by default (NULL) for the above cube and represent the standard colors of the centers up, left, front, right, back, down. The second will be "000000" by default (NULL) and represent the orientation of the centers up, left, front, right, back, down. The user can choose "relative to the cube frame", in which case symmetries do not affect center orientations, and "relative to the above layout, in which case only the trivial symmetry and the RL reflection symmetry do not affect center orientations.

Cube Group Representations

In representing the cube group as a facelet permutation, a 48 facelet representation is the most parsimonious. All states of the cube may be represented with just 48 facelets and the six center facelets are superfluous. Given this representation one must represent the symmetry operations in the same terms. Of course, if one is interested in rendering the cube in 3D one must represent the center cubies. Here one might be interested in applying whole cube rotations to the visual display and a 54 facelet representation for the symmetry operations may be useful.

There are as many ways to represent the cube group as one is clever enough to think up. A facelet permutation representation is perhaps the most straightforward and is readily implemented in GAP. There are other ways to represent a cube state which have certain advantages over a straight facelet representation. One way is that you refer to in which one lists which cubie is in each cubical together with an orientation. Certain cube properties such as position parity, corner cubie twist and edge cubie flip become more accessible. You can handle edge cubies and corner cubies separately, etc.

The low level cube representation I favor consists of a list of geometric transforms which will move each cubie from its home position to its present position and orientation. These geometric transforms as it turns out are the transforms comprising the cubic symmetry group. I represent the cubic symmetry group as a matrix group comprised of 3x3 transformation matrixes of the X,Y,Z coordinate axes. The positions of the cubies are each characterized by an X,Y,Z coordinate. I then construct a multiplication table for the cubic symmetry group and a table listing the effect of applying the symmetry elements to each cubical's coordinates. My representation then consists of a list of 20 cubic group elements, one for each cubie. The multiplication of two cube states then simply entails looking up values in the aforementioned tables.

With or Without Face Centers

(This is agreeing with B MacKenzie's comments, albeit in a slightly more long winded fashion than his.)

The question of whether to include the face centers in a model of the cube is a recurring topic of conversation.  It really doesn't matter whether we are talking about a facelet based model of the cube or some other model.  The issue of the face centers remains the same: is a model with face centers the same as a model without face centers?

A cube model without face centers has come to be known as a void cube.  With respect to void cubes, we can think of the corners only with or without face centers, we can think of the edges only with or without face centers, and we can think of corners and edges with or without face centers.

With respect to an actual, physical cube, a void cube is clearly very different than a cube that includes the face centers.  The face centers provide an explicit frame of reference for an actual, physical cube that makes it possible to determine if the corner and edge cubies are positioned correctly with respect to the face centers.  Absent the explicit frame of reference, it is possible for the edge and corner cubies to be positioned correctly with respect to each other without being able to determine if they are positioned correctly with respect to the absent face centers.  The net effect is that the cube space for an actual, physical void cube is 24 times smaller than is the cube space for an actual, physical cube that does include face centers.  That's because rotating a void cube via any of the 24 rotations of the cube results in a position that a rational person would normally consider to be equivalent to the position before effecting the rotation.

Well, the cube space for a void cube is 24 times smaller than is cube space for a cube with face centers for a corners only or an edges only cube.  But there is some trickiness associated with a void cube that includes both corners and edges.  When both corners and edges are included, it remains the case that rotating a void cube via any of the 24 rotations of the cube results in an equivalent position.  But because of parity considerations, only 12 of those 24 rotations correspond to positions that can actually be achieved with face turns on a non-void cube.

It is therefore counterintuitive that with respect to a mathematical model of the cube or a computer model of the cube (which are really the same thing), a void cube is really no different than a cube that includes face centers.  For example, if you create a 48 facelet model of the cube with GAP and if you also create a 54 facelet model of the cube with GAP, the resultant groups will be isomorphic.  Being isomorphic, the two groups will be exactly of the same order and the 54 facelet model will not be 24 times larger than the 48 facelet model.

Indeed, it's quite tricky to create a mathematical model of a void cube or a computer model of a void cube.  The problem is that the very act of creating the model produces an implicit frame of reference.  Given that the model implicitly includes a frame of reference, adding an explicit frame of reference by adding in the face centers does not contribute any additional information to the model.  And conversely, to convert a mathematical or computer model of an apparent void cube into a model that corresponds to an actual, physical void cube, something must be done to the model to eliminate the implicit frame of reference that's inherent in the model.

My favorite example for this issue is a 2x2x2 cube and the maneuver RL'.  A 2x2x2 cube may be thought of as a corners-only void cube.  The maneuver RL' is equivalent to a rotation of the whole 2x2x2 cube.  The maneuver RL' therefore results in the same position as you started with when applied to the 2x2x2 cube.  But consider a mathematical or computer model of the 2x2x2, and consider the maneuver RL' as applied to the Start position.  In a model where the cubie positions are stored separately from the cubie orientations, the Start position of the cubies would usually be stored as (1,2,3,4,5,6,7,8) (or possibly as (0,1,2,3,4,5,6,7) if you begin numbering the cubies at zero rather than at one).  The way I number the cubies, after the maneuver RL', the position of the cubies would be stored as (4,3,5,6,8,7,1,2), which clearly is not the same as (1,2,3,4,5,6,7,8) even though a graphical display of the (4,3,5,6,8,7,1,2) position looks just as solved as a graphical display of the (1,2,3,4,5,6,7,8) position except that the former is rotated 90 degrees with respect to the latter.  That's what I mean by an implicit frame of reference.  If we "look at the numbers", (1,2,3,4,5,6,7,8) and (4,3,5,6,8,7,1,2) look very different.  But if we look at a graphical display, the two positions look exactly the same except for being rotated with respect to each other.

Well formed Cube models

The point is well taken that in a well formed model of a cube puzzle the representation of a cube state should be unique. There shouldn't be more than one way to represent the same state of the cube. This is why in a model of the 3 x 3 x 3 cube one fixes the positions of the center cubies. Otherwise, the same cube state could be represented several ways depending on the orientation of the cube as a whole.

The problem of uniqueness of the representation crops up in the 2 x 2 x 2 cube. You get the same cube state by a R turn as you get with a L turn except that one gives the cube rotated 90° wrt the other. Likewise for the U/D pairs and the F/B pairs of turns. To restore uniqueness, and this is not original with me, one eliminates one of the redundant turns from each pair. Restricting the generators to turns of the RUF faces gives one a well behaved model of the puzzle. In this model the DLB cubie never moves and in effect takes the place of the missing center cubies. It provides the frame of reference against which the state of the cube is measured.

This is all well and good until one gets into symmetry reduction. For symmetry reduction one uses symmetries for which the set of generators is invariant. For turns of the RUF faces this restricts one to a C3v subgroup of the cubic group. Conjugations with the other 42 cubic group elements convert one or more of the generators to turns of the LDB faces. But turns of the LDB faces combined with a 90° whole cube rotation are equivalent to turns of the RUF faces. So the face turn set actually is invariant wrt conjugations with the full cubic group as long as one applies a whole cube rotation to restore the reference frame whenever a conjugation gives a turn in the out group. This makes conjugation of a turn sequence a bit complicated. Every time a conjugation gives a turn in the out group the frame of reference changes which changes the conjugator one must use for the subsequent turns. I haven't done it but I think putting together a sym reduced move table for the 2 x 2 x 2 fixed cubie model would be a real head scratcher.

As I have discussed elsewhere a well behaved 3 x 3 x 3 void cube model can be developed in the same way as for the 2 x 2 x 2 cube. You fix the DLB cubie in place and redefine the LDB face turns.

An Example

I'd like to to supplement the above with an example of symmetry conjugation in the 2 x 2 x 2 fixed cubie model.

The turn sequence R F when conjugated with the inversion symmetry transform becomes L' B' . On the 2 x 2 x 2 cube this is equivalent to R' U'. The two turn sequences give the same cube state. The first gives the state with the wrong orientation in the fixed cubie model and the second gives the state properly oriented. Note that the conversion of the ill-formed turn sequence to a proper turn sequence is not a simple matter of replacing L with R, D with U and B with F. There are whole cube rotations involved which have to be kept track of. When L' is converted to R' the cube is rotated 90° which changes the second turn from B' to U'.

The point of all this is that conjugation of a turn sequence with the full cubic group is well defined although a bit of pain to do. The two states R F and R' U' are symmetry conjugates of one another. Symmetry reduction hinges on the symmetry conjugate of an optimal turn sequence being an optimal turn sequence for the conjugate state. Thus it follows that one can use full cubic group symmetry reduction when doing calculations on the 2 x 2 x 2 cube as long as one takes care to rectify the frame of reference when forming symmetry conjugates.

void cube

You can make a void corner cube from a regular corner cube by symmetry reduction, having the 24 orthogonally even symmetries act by multiplication. Subsequently, you can do regular symmetry reduction, having all 48 symmetries act by conjugation (where orthogonally odd symmetries invert orientation). And indeed, you use a cube frame of reference here.

Parity

A point of clarification. What do you mean when you refer to "orthogonally even symmetries"? There are three distinct ways to assign parity to the cubic group elements. In Schoenflies crystallographic terms these correspond to the A2g, A1u, and A2u representations. In the context above I would take it that you mean the A1u type of parity which distinguishes pure rotation symmetries from mirrored symmetries. In other contexts I have taken it to mean either the A2g or A2u type of parity (they are the same in this context) which distinguish between odd and even position parity of the rotation elements. I am confused.

with odd I mean mirrored

I mean rotations with even symmetries and (screw-)reflections with odd symmetries. As opposed to even symmetries, odd symmetries have determinant -1 as orthogonal matrices. One can also look at the parity of the permutation of the centers, which gives another parity which was not meant here. Inverting/negating orientations only has effect with corners, since edges have only two orientations.

Cubic Group Parities

Well, I've learned something new. I was not aware of the relationship of these parities to the matrix determinants. I've looked into this matter a little. There are four homomorphic irreducible representations of the cubic symmetry group as square matrixes of order 3. Each is associated with a parity.

(My background is as a chemist and my exposure to symmetry groups was in that context. The labels used below are those used in physical chemistry, spectroscopy, etc.)

The T1g representation gives the action of the symmetry elements on rotations about the x,y,z axes. The determinants of this representation are uniformly 1 and transform in line with the A1g unitary group representation.

The T2g representation gives the action of the symmetry elements on the binary products xz , yz , xy. The determinants of this representation transform in line with A2g parity. Symmetries with even A2g parity are the elements of the Th subgroup of the cubic group.

The T1u representation is the one I have been using. It gives the actions of the symmetry elements on an x,y,z point and is useful for deriving permutation representations of the symmetries such as the facelet permutations above. The determinants of this representation transform in line with A1u mirror parity. Even A1u parity elements form the pure rotation subgroup of the cubic group.

The final representation, T2u, doesn't have a ready description of its action. The determinants of this representation transform in line with A2u parity. Even A2u parity elements are members of the Td subgroup of the cubic group. Td symmetry is the symmetry of a regular tetrahedron. Also the parity of permutation representations of the cubic group such as the permutation of the center cubies transform in line with A2u parity.

The list of symmetries given in the parent to this thread is sorted using these parities. Entries 1 through 24 have even A1u parity and are elements of the pure rotation cubic group. Entries 1 through 12 and 25 through 36 have even A2u parity and are elements of the Td symmetry group. Entries 1 through 12 and 37 through 48 have even A2g parity and are elements of the Th symmetry group.

there are exactly three parities

The symmetry group has the following three parities
  • orthogonal parity: whether the symmetry has determinant +1 or -1 as an orthogonal matrix,
  • center parity: whether the permutation of the six centers is even or odd,
  • axis parity: whether the permutation of the three axes is even or odd.
Indeed, the symmetries of the cube are generated by two elements, e.g. (FRBL) and (FU)(BD), and we can compute the three parities and the trivial map for both generators:
                  | (FRBL) | (FU)(BD) |
------------------+--------+----------+----------------------------------
trivial map       |  even  |   even   | A1g (also trivial)
orthogonal parity |  even  |   odd    | A1u (rotations are even)
center parity     |  odd   |   even   | A2u (tetrahedron of four corners)
axis parity       |  odd   |   odd    | A2g (no other possibility)
Any parity has the same table as one of the above four maps, and hence is one of the above three parities, for it is not trivial.

I do not exactly understand the T representations yet, sorry.

Parity

Lets get on the same page here. The two center cubie permutations, (FRBL) and (FU)(BD) are the actions on the points:

R = ( 1 , 0 , 0 ) , L = ( -1 , 0 , 0 ) , U = ( 0 , 1 , 0 ) , D = ( 0 , -1 , 0 ) , F = ( 0 , 0 , 1 ) , B = ( 0 , 0 , -1 )

produced by multiplying the points (column vectors) by the geometric transforms:

     c34y         σ_dyz
   x  y  z       x  y  z
x  0  0 -1    x  1  0  0
y  0  1  0    y  0  0  1
z  1  0  0    z  0  1  0

So there is a one to one mapping of the permutations to the matrixes. The group of matrixes produced from these two generators is the T1u representation of the cubic or Oh symmetry group. I would guess that this is what you are talking about when you refer to symmetries as orthogonal matrixes. In any event the dets of these matrixes are in line with your orthogonal parity.

A fact of which I was unaware prior to looking into this is that the O symmetry group (the pure rotation cubic group) and the Td symmetry group (the symmetry of a regular tetrahedron) are isomorphic. This isomorphism maps the dihedral mirror plane elements of the Td group to the dihedral two fold rotations of the O group. Also, the four fold improper rotations of Td map to the four fold proper rotations of O. If one swaps the matrixes of the T1u representation around in line with this isomorphism one gets the T2u representation. So the T1u and T2u representations are composed of the same set of matrixes. They're just assigned to different symmetry elements. The T2u representation is a perfectly isomorphic representation of cubic symmetry, it gives the same multiplication table of the elements and so forth. After this rearrangement of the matrixes, the matrix determinants now transform in line with A2u parity which equates to the parity of the symmetry permutations of the center cubies.

The T1g representation gives the actions of the symmetry elements on rotations about the x,y,z axis. Picture a top with its axis aligned with the x axis and spinning cw when viewed from the positive x direction. Rotate the top 90° ccw about the y axis and the top's axis is now on the z axis. Viewed from the pos. z axis the direction of rotation is ccw. In this manner one may compose matrixes describing the actions of the symmetry elements (the above tells you the Rz row of the matrix has a -1 in the Rx column for this transform). When this is done one finds that the matrixes for the rotation elements are exactly the same as for the T1u representation. The mirrored symmetry elements give the same matrixes as used for the rotation elements. For example, inversion symmetry has no effect on a rotation about an axis and the inversion operation is assigned the identity transform. Four fold improper rotation symmetries have the same effect as a four fold proper rotation and so forth. Thus, the T1g representation is not isomorphic with the cubic symmetry group but rather homomorphic. The dets of the matrixes of this representation are all 1, in line with A1g parity. The symmetry permutations of the corner positions of the cube transform in line with this parity. They are all even.

Now if one applies the O to Td isomorphism to the T1g representation, replacing the O matrixes with their Td counterparts, one gets the T2g representation. The dets of the matrixes now transform in line with A2g parity. I'm not sure what you mean by axis parity. The ready example which comes to mind for A2g parity are the symmetry permutations of the edge positions. The parity of these permutations transform in accord with A2g parity.

And you are quite right. No matter how you represent the symmetries, you can start with a four fold rotation and a dihedral plane of symmetry and generate the whole symmetry group. If you assign parity bits to the generators as you have done and carry them through you will assign the correct parities to the symmetry elements. Alternatively, you can look them up in the group character table.

Symmetry group

Your representation of the symmetry group is somewhat different from that of the cube, and you appear to be teaching geometry to the computer instead of just telling him what to do. You can embed the symmetry group in the permutation group of the six center facelets. I combine the six center facelets to three edge cubies of two facelets, namely edges RL, FB and UD. Next, the group of three edges without total orientation zero is the group of 48 that I need.

By describing the action by the symmetry coordinate for one single edge flip (UD <-> DU) and two edge interchanges (UD <-> RL and UD <-> FB), the computer can compute the rest. There is no need for lessons in geometry. The symmetries act on the cube Permori coordinates by conjugation, but in a skew manner, since odd symmetries, i.e. symmetries whose orthogonal matrix determinant is -1 (which is the case for the three generating symmetries above), invert the orientation.

Cubie based Cube Representation

The symmetry elements expressed in terms of my representation simply have the index of a particular geometric transform in each position. Assigning the index of 1 to a 180° rotation about the X axis, the cube symmetry is:

{ 1, 1, 1, 1, 1,1, 1, 1, 1, 1,1, 1, 1, 1, 1,1, 1, 1, 1, 1,1, 1, 1, 1, 1}

This indicates that all twenty cubies are to be rotated 180° about the X axis. The relationship between the cubic symmetry group represented as geometric transform matrixes and the symmetries of Rubik's cube is direct and transparent.

And cube states are represented in the same terms. A face turn applies a 90° rotation to that face. An U face turn is coded as:

{ 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0 }

where 0 represents the identity cubic group transform and 15 represents a 90° rotation about the Y axis.

"Teaching the computer geometry" as you put it only entails defining the x,y,z coordinates of the cubies ( UFR at [1,1,1] around to DBL at [-1,-1,-1] ) and implementing an algorithm for matrix multiplication. The 48 elements of cubic symmetry group may be generated by recursively forming products starting with a four fold rotation transform and a dihedral plane of symmetry:


   x  y  z        x  y  z
x  0  0  1     x  0  1  0
y  0  1  0     y  1  0  0
z -1  0  0     z  0  0  1

algebra versus geometry

I cannot say I really do understand my algebraic program. This might be since geometry is easier to understand, but on the other hand, algebra might be more powerful and therefore harder to understand.