cube := Group( ( 1, 3, 8, 6)( 2, 5, 7, 4)( 9,33,25,17)(10,34,26,18)(11,35,27,19), ( 9,11,16,14)(10,13,15,12)( 1,17,41,40)( 4,20,44,37)( 6,22,46,35), (17,19,24,22)(18,21,23,20)( 6,25,43,16)( 7,28,42,13)( 8,30,41,11), (25,27,32,30)(26,29,31,28)( 3,38,43,19)( 5,36,45,21)( 8,33,48,24), (33,35,40,38)(34,37,39,36)( 3, 9,46,32)( 2,12,47,29)( 1,14,48,27), (41,43,48,46)(42,45,47,44)(14,22,30,38)(15,23,31,39)(16,24,32,40) ); Size( cube ); Collected( Factors( Size( cube ) ) ); SizeScreen( [71, ] );; orbits := Orbits( cube, [1..48] ); cube1 := Action( cube, orbits[1] ); NrMovedPoints( cube1 ); Size( cube1 ); corners := Blocks( cube1, MovedPoints( cube1 ) ); blockhom1 := ActionHomomorphism( cube1, corners, OnSets ); cube1b := Image( blockhom1 ); Size( cube1b ); Factors( Size( Kernel( blockhom1 ) ) ); IsElementaryAbelian( Kernel( blockhom1 ) ); cmpl1 := Complementclasses( cube1, Kernel( blockhom1 ) ); cmpl1 := cmpl1[1];; Size( cmpl1 ); Size( Intersection( cmpl1, Kernel( blockhom1 ) ) ); ClosureGroup( cmpl1, Kernel( blockhom1 ) ) = cube1; IsBijective( RestrictedMapping( blockhom1, cmpl1 ) ); (1,7,22) in cube1; (1,7,22)(2,20,14) in cube1; cube2 := Action( cube, orbits[2] );; Size( cube2 ); edges := Blocks( cube2, MovedPoints( cube2 ) ); blockhom2 := ActionHomomorphism( cube2, edges, OnSets );; cube2b := Image( blockhom2 );; Size( cube2b ); Factors( Size( Kernel( blockhom2 ) ) ); IsElementaryAbelian( Kernel( blockhom2 ) ); cmpl2 := Complementclasses( cube2, Kernel( blockhom2 ) );; Length( cmpl2 ); (1,11) in cube2; (1,11)(2,17) in cube2; Size( cube ); Size( cube1 ) * Size( cube2 ); (17,19)(11,8)(6,25) in cube; (7,28)(18,21) in cube; (17,19)(11,8)(6,25)(7,28)(18,21) in cube; z := Centre( cube ); f := FreeGroup("t","l","f","r","e","b"); hom := GroupHomomorphismByImages( f, cube, GeneratorsOfGroup(f), GeneratorsOfGroup(cube) ); pre := PreImagesRepresentative( hom, z.1 ); Length( pre ); pre := PreImagesRepresentative( hom, (17,19)(11,8)(6,25)(7,28)(18,21) ); Length( pre ); r := Random( cube ); pre := PreImagesRepresentative( hom, r ); Length( pre ); im:=Image( hom, pre ); im=r; quit;