LogTo("cycles.log"); #################################################################### # # # This is a GAP program to check the two pairs of examples # # (discovered by Eamonn O'Brien) of non-isomorphic groups which # # give rise to the same sets of cycle partitions. # # # # GAP will run with this file as input, but only the last command # # produces any output. To see the whole thing, copy the # # non-comment lines to the GAP prompt. # # # # If you are running GAP under LINUX, you can issue the command # # gap < cycles.txt # # (where cycles.txt is the name of this file) # # and you will produce a log file cycles.log which will contain # # all of this file with the output in the appropriate place! # # I don't know how to do this with other operating systems. # # The options # # gap cycles.txt # # or # # Read("cycles.txt"); # while GAP is running # # will NOT work. # # # #################################################################### # # First we construct the cycle partition of a permutation as a set # of sets - we have to remove the special order of its elements # using the function Set. Also, Cycles takes as its second argument # the number of points being permuted. # setcyc:=function(p,n) return Set(List(Cycles(p,n), x -> Set(x))); end; # # Now gather all these cycle partitions into a set. # setcycs:=function(G) return Set(List(AsList(G), x -> setcyc(x,[1..LargestMovedPoint(G)]))); end; # # Here are the first pair of groups: # G1:=Group( [ ( 1, 9, 4,11, 2,10, 3,12)( 5,15, 7,13, 6,16, 8,14), ( 1, 5, 3, 7, 2, 6, 4, 8)( 9,13,11,15,10,14,12,16), ( 1, 4, 2, 3)( 5, 8, 6, 7)( 9,11,10,12)(13,15,14,16), ( 1, 4, 2, 3)( 5, 7, 6, 8)( 9,11,10,12)(13,16,14,15), ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12)(13,15,14,16), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14)(15,16) ] ); C1:=setcycs(G1); # G2:=Group( [ ( 1, 9, 3,11, 2,10, 4,12)( 5,15, 7,14, 6,16, 8,13), ( 1, 5, 4, 8, 2, 6, 3, 7)( 9,13,11,15,10,14,12,16), ( 5, 6)( 7, 8)(13,14)(15,16), ( 1, 4, 2, 3)( 5, 8, 6, 7)( 9,11,10,12) (13,15,14,16), ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12)(13,15,14,16), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14)(15,16) ] ); C2:=setcycs(G2); # # Now we check that G1 and G2 are not isomorphic but have the same set # of cycles. # IsomorphismGroups(G1,G2); # should return "fail" C1=C2; # should return "true" # # Now the other pair of groups: same calculations. # G3:=Group([ (1, 12, 4, 10, 2, 11, 3, 9)(5, 15, 7, 14, 6, 16, 8, 13), (1, 5)(2, 6)(3, 7)(4, 8)(9, 13)(10, 14)(11, 15)(12, 16), (1, 3, 2, 4)(5, 7, 6, 8)(9, 11, 10, 12)(13, 15, 14, 16), (9, 10)(11, 12)(13, 14)(15, 16), (1, 4, 2, 3)(5, 7, 6, 8)(9, 12, 10, 11)(13, 15, 14, 16), (1, 2)(3, 4)(5, 6)(7, 8)(9, 10)(11, 12)(13, 14)(15, 16)]); C3:=setcycs(G3); # G4:=Group([ (1, 12, 4, 10, 2, 11, 3, 9)(5, 16, 8, 14, 6, 15, 7, 13), (1, 5)(2, 6)(3, 7)(4, 8)(9, 13)(10, 14)(11, 15)(12, 16), (5, 6)(7, 8)(13, 14)(15, 16), (9, 10)(11, 12)(13, 14)(15, 16), (1, 4, 2, 3)(5, 8, 6, 7)(9, 12, 10, 11)(13, 16, 14, 15), (1, 2)(3, 4)(5, 6)(7, 8)(9, 10)(11, 12)(13, 14)(15, 16)]); C4:=setcycs(G4); # IsomorphismGroups(G3,G4); C3=C4; # # Finally test that the four groups are really distinct # IsomorphismGroups(G1,G3); IsomorphismGroups(G1,G4); IsomorphismGroups(G2,G3); IsomorphismGroups(G2,G4); # LogTo();