home *** CD-ROM | disk | FTP | other *** search
/ Math Solutions 1995 October / Math_Solutions_CD-ROM_Walnut_Creek_October_1995.iso / pc / mac / discrete / doc / paramaps.tex < prev    next >
Encoding:
Text File  |  1993-05-05  |  48.5 KB  |  1,095 lines

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. %%
  3. %A  paramaps.g                  GAP documentation               Thomas Breuer
  4. %%
  5. %A  @(#)$Id: paramaps.tex,v 3.7 1993/02/19 10:48:42 gap Exp $
  6. %%
  7. %Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
  8. %%
  9. %H  $Log: paramaps.tex,v $
  10. %H  Revision 3.7  1993/02/19  10:48:42  gap
  11. %H  adjustments in line length and spelling
  12. %H
  13. %H  Revision 3.6  1993/02/18  14:48:13  felsch
  14. %H  long line adjusted
  15. %H
  16. %H  Revision 3.5  1993/02/15  15:57:37  felsch
  17. %H  examples fixed
  18. %H
  19. %H  Revision 3.3  1992/02/13  15:05:56  sam
  20. %H  renamed 'MatrixAutomorphisms' to 'MatAutomorphisms'
  21. %H
  22. %H  Revision 3.2  1992/01/21  17:13:50  sam
  23. %H  added description of 'CheckPermChar',
  24. %H  changed 'InitFusion' and examples appropriately
  25. %H
  26. %H  Revision 3.1  1991/12/27  16:46:58  sam
  27. %H  initial revision under RCS
  28. %H
  29. %%
  30. \Chapter{Maps and Parametrized Maps}\index{maps}\index{parametrized maps}
  31.  
  32. In this chapter, first the data structure of (parametrized) maps is
  33. introduced (see "More about Maps and Parametrized Maps").
  34. Then a description of several functions which mainly deal with parametrized
  35. maps follows; these are
  36.  
  37. basic operations with paramaps (see "CompositionMaps", "InverseMap",
  38. "Indirected", "ProjectionMap", "Parametrized", "ContainedMaps",
  39. "UpdateMap", "CommutativeDiagram", "TransferDiagram"),
  40.  
  41. functions which inform about ambiguity with respect to a paramap
  42. (see "Indeterminateness", "PrintAmbiguity"),
  43.  
  44. functions used for the construction of powermaps and subgroup
  45. fusions (see "Powermap", "SubgroupFusions" and their subroutines
  46. "InitPowermap", "Congruences", "ConsiderKernels",
  47. "ConsiderSmallerPowermaps", "PowermapsAllowedBySymmetrisations",
  48. "InitFusion", "CheckPermChar", "CheckFixedPoints", "TestConsistencyMaps",
  49. "ConsiderTableAutomorphisms", "FusionsAllowedByRestrictions",
  50. "OrbitPowermaps", "OrbitFusions", "RepresentativesPowermaps",
  51. "RepresentativesFusions", "Powmap") and
  52.  
  53. the function "ElementOrdersPowermap".
  54.  
  55. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  56. \Section{More about Maps and Parametrized Maps}
  57. \index{map!parametrized}\index{paramap}\index{class functions}
  58.  
  59. Besides the characters, *powermaps* are an important part of a character
  60. table. Often their computation is not easy, and in general they cannot be
  61. obtained from the matrix of irreducible characters, so it is useful to store
  62. them on the table.
  63.  
  64. If not only a single table is considered but different tables of groups
  65. and subgroups are used, also *subgroup fusion maps* must be known to get
  66. informations about the embedding or simply to induce or restrict characters.
  67.  
  68. These are examples of class functions which are called *maps* for short;
  69. in \GAP, maps are lists\:\ Characters are maps, the lists of element orders,
  70. centralizer orders, classlengths are maps, and for a permutation <perm> of
  71. classes, 'ListPerm( <perm> )' is a map.
  72.  
  73. When maps are constructed, in most cases one only knows that the image of
  74. any class is contained in a set of possible images, e.g. that the image of
  75. a class under a subgroup fusion is in the set of all classes with the same
  76. element order. Using further informations, like centralizer orders, powermaps
  77. and the restriction of characters, the sets of possible images can be
  78. diminished. In many cases, at the end the images are uniquely determined.
  79.  
  80. For this, many functions do not only work with maps but with
  81. *parametrized maps* (or short paramaps)\:\ These are lists whose entries are
  82. either the images themselves (i.e. integers for fusion maps, powermaps,
  83. element orders etc.\ and cyclotomics for characters) or lists of possible
  84. images. Thus maps are special paramaps. A paramap <paramap> can be
  85. identified with the set of all maps <map> with '<map>[i] = <paramap>[i]'
  86. or '<map>[i]' contained in '<paramap>[i]'; we say that <map> is contained
  87. in <paramap> then.
  88.  
  89. The composition of two paramaps is defined as the paramap that contains all
  90. compositions of elements of the paramaps. For example, the indirection of
  91. a character by a parametrized subgroup fusion map is the parametrized
  92. character that contains all possible restrictions of that character.
  93.  
  94. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  95. \Section{CompositionMaps}\index{map!composition}
  96.  
  97. 'CompositionMaps( <paramap2>, <paramap1> )'\\
  98. 'CompositionMaps( <paramap2>, <paramap1>, <class> )'
  99.  
  100. For parametrized maps <paramap1> and <paramap2> where '<paramap>[i]' is
  101. a bound position or a set of bound positions in <paramap2>,
  102. 'CompositionMaps( <paramap2>, <paramap1> )' is a parametrized map with
  103. image 'CompositionMaps( <paramap2>, <paramap1>, <class> )' at position
  104. <class>.
  105.  
  106. If '<paramap1>[ <class> ]' is unique, we have
  107. \[ 'CompositionMaps( <paramap2>, <paramap1>, <class> ) =
  108. <paramap2>[ <paramap1>[ <class> ] ]', \]
  109. otherwise it is the union of
  110. '<paramap2>[i]' for 'i' in '<paramap1>[ <class> ]'.
  111.  
  112. |    gap> map1:= [ 1, [ 2, 3, 4 ], [ 4, 5 ], 1 ];;
  113.     gap> map2:= [ [ 1, 2 ], 2, 2, 3, 3 ];;
  114.     gap> CompositionMaps( map2, map1 ); CompositionMaps( map1, map2 );
  115.     [ [ 1, 2 ], [ 2, 3 ], 3, [ 1, 2 ] ]
  116.     [ [ 1, 2, 3, 4 ], [ 2, 3, 4 ], [ 2, 3, 4 ], [ 4, 5 ], [ 4, 5 ] ]|
  117.  
  118. *Note*\:\ If you want to get indirections of characters which contain
  119. unknowns (see chapter "Unknowns") instead of sets of possible values,
  120. use "Indirected" 'Indirected'.
  121.  
  122. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  123. \Section{InverseMap}\index{map!inverse of a}
  124.  
  125. 'InverseMap( <paramap> )'
  126.  
  127. 'InverseMap( <paramap> )[i]' is the unique preimage or the set of all
  128. preimages of 'i' under <paramap>, if there are any; otherwise it is unbound.
  129.  
  130. (We have 'CompositionMaps( <paramap>, InverseMap( <paramap> ) )'
  131. the identity map.)
  132.  
  133. |    gap> t:= CharTable( "2.A5" );; f:= CharTable( "A5" );;
  134.     gap> fus:= GetFusionMap( t, f );    # the factor fusion map
  135.     [ 1, 1, 2, 3, 3, 4, 4, 5, 5 ]
  136.     gap> inverse:= InverseMap( fus );
  137.     [ [ 1, 2 ], 3, [ 4, 5 ], [ 6, 7 ], [ 8, 9 ] ]
  138.     gap> CompositionMaps( fus, inverse );
  139.     [ 1, 2, 3, 4, 5 ]
  140.     gap> t.powermap[2];
  141.     [ 1, 1, 2, 4, 4, 8, 8, 6, 6 ]
  142.     # transfer a powermap up to the factor group\:
  143.     gap> CompositionMaps( fus, CompositionMaps( last, inverse ) );
  144.     [ 1, 1, 3, 5, 4 ]                   # is equal to 'f.powermap[2]'
  145.     # transfer a powermap down to the group\:
  146.     gap> CompositionMaps( inverse, CompositionMaps( last, fus ) );
  147.     [ [ 1, 2 ], [ 1, 2 ], [ 1, 2 ], [ 4, 5 ], [ 4, 5 ], [ 8, 9 ], 
  148.       [ 8, 9 ], [ 6, 7 ], [ 6, 7 ] ]    # contains 't.powermap[2]'|
  149.  
  150. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  151. \Section{ProjectionMap}
  152.  
  153. 'ProjectionMap( <map> )'
  154.  
  155. For each image 'i' under the (necessarily *not* parametrized) map <map>,
  156. 'ProjectionMap( <map> )[<i>]' is the smallest preimage of <i>.
  157.  
  158. (We have 'CompositionMaps( <map>, ProjectionMap( <map> ) )' the identity map.)
  159.  
  160. |    gap> ProjectionMap( [1,1,1,2,2,2,3,4,5,5,5,6,6,6,7,7,7] );
  161.     [ 1, 4, 7, 8, 9, 12, 15 ]|
  162.  
  163. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  164. \Section{Parametrized}\index{map!parametrize}
  165.  
  166. 'Parametrized( <list> )'
  167.  
  168. returns the parametrized cover of <list>, i.e.\ the parametrized map with
  169. smallest indeterminateness that contains all maps in <list>.
  170. 'Parametrized' is the inverse function of "ContainedMaps" in the sense that
  171. 'Parametrized( ContainedMaps( <paramap> ) ) = <paramap>'.
  172.  
  173. |    gap> Parametrized( [ [ 1, 3, 4, 6, 8, 10, 11, 11, 15, 14 ],
  174.     >                    [ 1, 3, 4, 6, 8, 10, 11, 11, 14, 15 ],
  175.     >                    [ 1, 3, 4, 7, 8, 10, 12, 12, 15, 14 ], 
  176.     >                    [ 1, 3, 4, 7, 8, 10, 12, 12, 14, 15 ] ] );
  177.     [ 1, 3, 4, [ 6, 7 ], 8, 10, [ 11, 12 ], [ 11, 12 ], [ 14, 15 ],
  178.       [ 14, 15 ] ]|
  179.  
  180. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  181. \Section{ContainedMaps}
  182.  
  183. 'ContainedMaps( <paramap> )'
  184.  
  185. returns the set of all maps contained in the parametrized map <paramap>.
  186. 'ContainedMaps' is the inverse function of "Parametrized" in the sense that
  187. 'Parametrized( ContainedMaps( <paramap> ) ) = <paramap>'.
  188.  
  189. |    gap> ContainedMaps( [ 1, 3, 4, [ 6, 7 ], 8, 10, [ 11, 12 ], [ 11, 12 ],
  190.     > 14, 15 ] );
  191.     [ [ 1, 3, 4, 6, 8, 10, 11, 11, 14, 15 ],
  192.       [ 1, 3, 4, 6, 8, 10, 11, 12, 14, 15 ],
  193.       [ 1, 3, 4, 6, 8, 10, 12, 11, 14, 15 ], 
  194.       [ 1, 3, 4, 6, 8, 10, 12, 12, 14, 15 ],
  195.       [ 1, 3, 4, 7, 8, 10, 11, 11, 14, 15 ],
  196.       [ 1, 3, 4, 7, 8, 10, 11, 12, 14, 15 ], 
  197.       [ 1, 3, 4, 7, 8, 10, 12, 11, 14, 15 ],
  198.       [ 1, 3, 4, 7, 8, 10, 12, 12, 14, 15 ] ]|
  199.  
  200. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  201. \Section{UpdateMap}
  202.  
  203. 'UpdateMap( <char>, <paramap>, <indirected> )'
  204.  
  205. improves the paramap <paramap> using that <indirected> is the (possibly
  206. parametrized) indirection of the character <char> by <paramap>.
  207.  
  208. |    gap> s:= CharTable( "S4(4).2" );; he:= CharTable( "He" );;
  209.     gap> fus:= InitFusion( s, he );
  210.     [ 1, 2, 2, [ 2, 3 ], 4, 4, [ 7, 8 ], [ 7, 8 ], 9, 9, 9, [ 10, 11 ], 
  211.       [ 10, 11 ], 18, 18, 25, 25, [ 26, 27 ], [ 26, 27 ], 2, [ 6, 7 ],
  212.       [ 6, 7 ], [ 6, 7, 8 ], 10, 10, 17, 17, 18, [ 19, 20 ], [ 19, 20 ] ]
  213.     gap> Filtered( s.irreducibles, x -> x[1] = 50 );
  214.     [ [ 50, 10, 10, 2, 5, 5, -2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, -1,
  215.           10, 2, 2, 2, 1, 1, 0, 0, 0, -1, -1 ], 
  216.       [ 50, 10, 10, 2, 5, 5, -2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, -1,
  217.           -10, -2, -2, -2, -1, -1, 0, 0, 0, 1, 1 ] ]
  218.     gap> UpdateMap( he.irreducibles[2], fus, last[1] + s.irreducibles[1] );
  219.     gap> fus;
  220.     [ 1, 2, 2, 3, 4, 4, 8, 7, 9, 9, 9, 10, 10, 18, 18, 25, 25, 
  221.       [ 26, 27 ], [ 26, 27 ], 2, [ 6, 7 ], [ 6, 7 ], [ 6, 7 ], 10, 10, 
  222.       17, 17, 18, [ 19, 20 ], [ 19, 20 ] ]|
  223.  
  224. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  225. \Section{CommutativeDiagram}
  226.  
  227. 'CommutativeDiagram( <paramap1>, <paramap2>, <paramap3>, <paramap4> )'\\
  228. 'CommutativeDiagram( <paramap1>, <paramap2>, <paramap3>, <paramap4>,
  229.                      <improvements> )'
  230.  
  231. If \[ 'CompositionMaps(<paramap2>,<paramap1> ) =
  232.     CompositionMaps(<paramap4>,<paramap3> )' \]
  233. shall hold, the consistency is checked and the four maps
  234. will be improved according to this condition.
  235.  
  236. If a record <improvements> with fields 'imp1', 'imp2', 'imp3', 'imp4' 
  237. (all lists) is entered as parameter, only diagrams containing elements of
  238. 'imp<i>' as positions in the <i>-th paramap are considered.
  239.  
  240. 'CommutativeDiagram' returns 'false' if an inconsistency was found,
  241. otherwise a record is returned that contains four lists 'imp1', \ldots,
  242. 'imp4', where 'imp<i>' is the list of classes where the <i>-th paramap was
  243. improved.
  244.  
  245. |    gap> map1:= [ [ 1, 2, 3 ], [ 1, 3 ] ];;
  246.     gap> map2:= [ [ 1, 2 ], 1, [ 1, 3 ] ];;
  247.     gap> map3:= [ [ 2, 3 ], 3 ];; map4:= [ , 1, 2, [ 1, 2 ] ];;
  248.     gap> CommutativeDiagram( map1, map2, map3, map4 );
  249.     rec(
  250.       imp1 := [ 2 ],
  251.       imp2 := [ 1 ],
  252.       imp3 := [  ],
  253.       imp4 := [  ] )
  254.     gap> imp:= last;; map1; map2; map3; map4;
  255.     [ [ 1, 2, 3 ], 1 ]
  256.     [ 2, 1, [ 1, 3 ] ]
  257.     [ [ 2, 3 ], 3 ]
  258.     [ , 1, 2, [ 1, 2 ] ]
  259.     gap> CommutativeDiagram( map1, map2, map3, map4, imp );
  260.     rec(
  261.       imp1 := [  ],
  262.       imp2 := [  ],
  263.       imp3 := [  ],
  264.       imp4 := [  ] )|
  265.  
  266. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  267. \Section{TransferDiagram}
  268.  
  269. 'TransferDiagram( <inside1>, <between>, <inside2> )'\\
  270. 'TransferDiagram( <inside1>, <between>, <inside2>, <improvements> )'
  271.  
  272. Like in "CommutativeDiagram", it is checked that
  273. \[ 'CompositionMaps( <between>, <inside1> ) =
  274.     CompositionMaps( <inside2>, <between> )' \]
  275. holds for the paramaps <inside1>, <between> and <inside2>,
  276. that means the paramap <between> occurs twice in each commutative diagram.
  277.  
  278. Additionally, "CheckFixedPoints" 'CheckFixedPoints' is called.
  279.  
  280. If a record <improvements> with fields 'impinside1', 'impbetween' and
  281. 'impinside2' is specified, only those diagrams with elements of
  282. 'impinside1' as positions in <inside1>, elements of 'impbetween' as
  283. positions in <between> or elements of 'impinside2' as positions in
  284. <inside2> are considered.
  285.  
  286. When an inconsistency occurs, the program immediately returns 'false';
  287. else it returns a record with lists 'impinside1', 'impbetween' and
  288. 'impinside2' of found improvements.
  289.  
  290. |    gap> s:= CharTable( "2F4(2)" );; ru:= CharTable( "Ru" );;
  291.     gap> fus:= InitFusion( s, ru );;
  292.     gap> permchar:= Sum( Sublist( ru.irreducibles, [ 1, 5, 6 ] ) );;
  293.     gap> CheckPermChar( s, ru, fus, permchar );; fus;
  294.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, 
  295.       [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ],
  296.       [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ]
  297.     gap> TransferDiagram( s.powermap[2], fus, ru.powermap[2] );
  298.     rec(
  299.       impinside1 := [  ],
  300.       impbetween := [ 12, 23 ],
  301.       impinside2 := [  ] )
  302.     gap> TransferDiagram( s.powermap[3], fus, ru.powermap[3] );
  303.     rec( 
  304.       impinside1 := [  ], 
  305.       impbetween := [ 14, 24, 25 ], 
  306.       impinside2 := [  ] )
  307.     gap> TransferDiagram( s.powermap[2], fus, ru.powermap[2], last );
  308.     rec( 
  309.       impinside1 := [  ], 
  310.       impbetween := [  ], 
  311.       impinside2 := [  ] )
  312.     gap> fus;
  313.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, [ 25, 26 ],
  314.       [ 25, 26 ], 5, 5, 6, 8, 14, 13, 19, 19, [ 25, 26 ], [ 25, 26 ], 27,
  315.       27 ]|
  316.  
  317. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  318. \Section{Indeterminateness}\index{map!indeterminateness}
  319.  
  320. 'Indeterminateness( <paramap> )'
  321.  
  322. returns the indeterminateness of <paramap>, i.e. the number of maps contained
  323. in the parametrized map <paramap>
  324.  
  325. |    gap> m11:= CharTable( "M11" );; m12:= CharTable( "M12" );;
  326.     gap> fus:= InitFusion( m11, m12 );
  327.     [ 1, [ 2, 3 ], [ 4, 5 ], [ 6, 7 ], 8, [ 9, 10 ], [ 11, 12 ],
  328.       [ 11, 12 ], [ 14, 15 ], [ 14, 15 ] ]
  329.     gap> Indeterminateness( fus );
  330.     256
  331.     gap> TestConsistencyMaps( m11.powermap, fus, m12.powermap );; fus;
  332.     [ 1, 3, 4, [ 6, 7 ], 8, 10, [ 11, 12 ], [ 11, 12 ], [ 14, 15 ],
  333.       [ 14, 15 ] ]
  334.     gap> Indeterminateness( fus );
  335.     32|
  336.  
  337. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  338. \Section{PrintAmbiguity}
  339.  
  340. 'PrintAmbiguity( <list>, <paramap> )'
  341.  
  342. prints for each character in <list> its position, its indeterminateness
  343. with respect to <paramap> and the list of ambiguous classes
  344.  
  345. |    gap> s:= CharTable( "2F4(2)" );; ru:= CharTable( "Ru" );;
  346.     gap> fus:= InitFusion( s, ru );;
  347.     gap> permchar:= Sum( Sublist( ru.irreducibles, [ 1, 5, 6 ] ) );;
  348.     gap> CheckPermChar( s, ru, fus, permchar );; fus;
  349.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, 
  350.       [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ],
  351.       [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ]
  352.     gap> PrintAmbiguity( Sublist( ru.irreducibles, [ 1 .. 8 ] ), fus );
  353.     1 1 [  ]
  354.     2 16 [ 16, 17, 26, 27 ]
  355.     3 16 [ 16, 17, 26, 27 ]
  356.     4 32 [ 12, 14, 23, 24, 25 ]
  357.     5 4 [ 12, 23 ]
  358.     6 1 [  ]
  359.     7 32 [ 12, 14, 23, 24, 25 ]
  360.     8 1 [  ]
  361.     gap> Indeterminateness( fus );
  362.     512|
  363.     
  364. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  365. \Section{Powermap}\index{powermaps}
  366.  
  367. 'Powermap( <tbl>, <prime> )'\\
  368. 'Powermap( <tbl>, <prime>, <parameters> )'
  369.  
  370. returns a list of possibilities for the <prime>-th powermap of the
  371. character table <tbl>.
  372.  
  373. The optional record <parameters> may have the following fields\:
  374.  
  375. 'chars':\\
  376.      a list of characters which are used for the check of kernels
  377.      (see "ConsiderKernels"), the test of congruences (see "Congruences")
  378.      and the test of scalar products of symmetrisations
  379.      (see "PowermapsAllowedBySymmetrisations");
  380.      the default is '<tbl>.irreducibles'
  381.  
  382. 'powermap':\\
  383.      a (parametrized) map which is an approximation of the desired map
  384.  
  385. 'decompose':\\
  386.      a boolean; if 'true', the symmetrisations of 'chars' must have all
  387.      constituents in 'chars', that will be used in the algorithm;
  388.      if 'chars' is not bound and '<tbl>.irreducibles' is complete,
  389.      the default value of 'decompose' is 'true', otherwise 'false'
  390.  
  391. 'quick':\\
  392.      a boolean; if 'true', the subroutines are called with the option
  393.      '\"quick\"'; especially, a unique map will be returned immediately
  394.      without checking all symmetrisations; the default value is 'false'
  395.  
  396. 'parameters':\\
  397.      a record with fields 'maxamb', 'minamb' and 'maxlen' which control
  398.      the subroutine "PowermapsAllowedBySymmetrisations"\:\ 
  399.      It only uses characters with actual indeterminateness up to
  400.      'maxamb', tests decomposability only for characters with actual
  401.      indeterminateness at least 'minamb' and admits a branch only
  402.      according to a character if there is one with at most 'maxlen'
  403.      possible minus-characters.
  404.  
  405. |    # cf.\ example in "InitPowermap"
  406.     gap> t:= CharTable( "U4(3).4" );;
  407.     gap> pow:= Powermap( t, 2 );
  408.     [ [ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, 6, 14, 9, 1, 1, 2, 2, 3, 4,
  409.           5, 6, 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, 18, 18,
  410.           18, 20, 20, 20, 20, 22, 22, 24, 24, 25, 26, 28, 28, 29, 29 ] ]|
  411.  
  412. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  413. \Section{SubgroupFusions}\index{fusions}\index{subgroup fusions}
  414.  
  415. 'SubgroupFusions( <subtbl>, <tbl> )'\\
  416. 'SubgroupFusions( <subtbl>, <tbl>, <parameters> )'
  417.  
  418. returns the list of all subgroup fusion maps from <subtbl> into <tbl>.
  419.  
  420. The optional record <parameters> may have the following fields\:
  421.  
  422. 'chars':\\
  423.      a list of characters of <tbl> which will be restricted to <subtbl>,
  424.      (see "FusionsAllowedByRestrictions");
  425.      the default is '<tbl.irreducibles>'
  426.  
  427. 'subchars':\\
  428.      a list of characters of <subtbl> which are constituents of the
  429.      retrictions of 'chars', the default is '<subtbl>.irreducibles'
  430.  
  431. 'fusionmap':\\
  432.      a (parametrized) map which is an approximation of the desired map
  433.  
  434. 'decompose':\\
  435.      a boolean; if 'true', the restrictions of 'chars' must have all
  436.      constituents in 'subchars', that will be used in the algorithm;
  437.      if 'subchars' is not bound and '<subtbl>.irreducibles' is complete,
  438.      the default value of 'decompose' is 'true', otherwise 'false'
  439.  
  440. 'permchar':\\
  441.      a permutation character; only those fusions are computed which
  442.      afford that permutation character (see "CheckPermChar")
  443.  
  444. 'quick':\\
  445.      a boolean; if 'true', the subroutines are called with the option
  446.      '\"quick\"'; especially, a unique map will be returned immediately
  447.      without checking all symmetrisations; the default value is 'false'
  448.  
  449. 'parameters':\\
  450.      a record with fields 'maxamb', 'minamb' and 'maxlen' which control
  451.      the subroutine "FusionsAllowedByRestrictions"\:\ 
  452.      It only uses characters with actual indeterminateness up to
  453.      'maxamb', tests decomposability only for characters with actual
  454.      indeterminateness at least 'minamb' and admits a branch only
  455.      according to a character if there is one with at most 'maxlen'
  456.      possible restrictions.
  457.  
  458. |    # cf.\ example in "FusionsAllowedByRestrictions"
  459.     gap> s:= CharTable( "U3(3)" );; t:= CharTable( "J4" );;
  460.     gap> SubgroupFusions( s, t, rec( quick:= true ) );
  461.     [ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ],
  462.       [ 1, 2, 4, 4, 5, 5, 6, 10, 13, 12, 14, 14, 21, 21 ],
  463.       [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 15, 15, 22, 22 ],
  464.       [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 16, 16, 22, 22 ],
  465.       [ 1, 2, 4, 4, 6, 6, 6, 10, 13, 12, 15, 15, 22, 22 ],
  466.       [ 1, 2, 4, 4, 6, 6, 6, 10, 13, 12, 16, 16, 22, 22 ] ]|
  467.  
  468. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  469. \Section{InitPowermap}\index{powermaps}
  470.  
  471. 'InitPowermap( <tbl>, <prime> )'
  472.  
  473. computes a (probably parametrized,
  474. see "More about Maps and Parametrized Maps") first
  475. approximation of of the <prime>-th powermap of the character table <tbl>,
  476. using that for any class 'i' of <tbl>, the following properties hold\:
  477.  
  478. The centralizer order of the image is a multiple of the centralizer order of
  479. 'i'. If the element order of 'i' is relative prime to <prime>, the
  480. centralizer orders of 'i' and its image must be equal.
  481.  
  482. If <prime> divides the element order <x> of the class 'i', the element order
  483. of its image must be $<x> / <prime>$; otherwise the element orders of 'i'
  484. and its image must be equal. Of course, this is used only if the element
  485. orders are stored on the table.
  486.  
  487. If no <prime>-th powermap is possible because of these properties, 'false' is
  488. returned.  Otherwise 'InitPowermap' returns the parametrized map.
  489.  
  490. |    # cf.\ example in "Powermap"
  491.     gap> t:= CharTable( "U4(3).4" );;
  492.     gap> pow:= InitPowermap( t, 2 );
  493.     [ 1, 1, 3, 4, 5, [ 2, 16 ], [ 2, 16, 17 ], 8, 3, [ 3, 4 ], 
  494.       [ 11, 12 ], [ 11, 12 ], [ 6, 7, 18, 19, 30, 31, 32, 33 ], 14, 
  495.       [ 9, 20 ], 1, 1, 2, 2, 3, [ 3, 4, 5 ], [ 3, 4, 5 ], 
  496.       [ 6, 7, 18, 19, 30, 31, 32, 33 ], 8, 9, 9, [ 9, 10, 20, 21, 22 ], 
  497.       [ 11, 12 ], [ 11, 12 ], 16, 16, [ 2, 16 ], [ 2, 16 ], 17, 17, 
  498.       [ 6, 18, 30, 31, 32, 33 ], [ 6, 18, 30, 31, 32, 33 ], 
  499.       [ 6, 7, 18, 19, 30, 31, 32, 33 ], [ 6, 7, 18, 19, 30, 31, 32, 33 ], 
  500.       20, 20, [ 9, 20 ], [ 9, 20 ], [ 9, 10, 20, 21, 22 ], 
  501.       [ 9, 10, 20, 21, 22 ], 24, 24, [ 15, 25, 26, 40, 41, 42, 43 ], 
  502.       [ 15, 25, 26, 40, 41, 42, 43 ], [ 28, 29 ], [ 28, 29 ], [ 28, 29 ], 
  503.       [ 28, 29 ] ]
  504.     # continued in "Congruences"|
  505.  
  506. 'InitPowermap' is used by "Powermap" 'Powermap'.
  507.  
  508. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  509. \Section{Congruences}\index{powermaps}
  510.  
  511. 'Congruences( <tbl>, <chars>, <prime\_powermap>, <prime> )'\\
  512. 'Congruences( <tbl>, <chars>, <prime\_powermap>, <prime>, \"quick\" )'
  513.  
  514. improves the parametrized map <prime\_powermap> (see "More about Maps and
  515. Parametrized Maps") that is an approximation of the <prime>-th powermap of the
  516. character table <tbl>\:
  517.  
  518. For $G$ a group with character table <tbl>, $g \in G$ and a character $\chi$
  519. of <tbl>, the congruence
  520. \['GaloisCyc( \chi(<g>), <prime> )' \equiv\chi(g^{<prime>})\pmod{<prime>}\]
  521. holds; if the representative order of $g$ is relative prime to <prime>, we
  522. have
  523. \['GaloisCyc( \chi(g), <prime> ) = \chi(g^{<prime>})'.\]
  524. 'Congruences' checks these congruences for the (virtual ) characters in the
  525. list <chars>.
  526.  
  527. If '\"quick\"' is specified, only those classes are considered for which
  528. <prime\_powermap> is ambiguous.
  529.  
  530. If there are classes for which no image is possible, 'false' is returned,
  531. otherwise 'Congruences' returns 'true'.
  532.  
  533. |    # see example in "InitPowermap"
  534.     gap> Congruences( t, t.irreducibles, pow, 2 ); pow;
  535.     true
  536.     [ 1, 1, 3, 4, 5, [ 2, 16 ], [ 2, 16, 17 ], 8, 3, 4, 11, 12,
  537.       [ 6, 7, 18, 19 ], 14, [ 9, 20 ], 1, 1, 2, 2, 3, 4, 5,
  538.       [ 6, 7, 18, 19 ], 8, 9, 9, [ 10, 21 ], 11, 12, 16, 16, [ 2, 16 ],
  539.       [ 2, 16 ], 17, 17, [ 6, 18 ], [ 6, 18 ], [ 6, 7, 18, 19 ],
  540.       [ 6, 7, 18, 19 ], 20, 20, [ 9, 20 ], [ 9, 20 ], 22, 22, 24, 24,
  541.       [ 15, 25, 26 ], [ 15, 25, 26 ], 28, 28, 29, 29 ]
  542.     # continued in "ConsiderKernels"|
  543.  
  544. 'Congruences' is used by "Powermap" 'Powermap'.
  545.  
  546. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  547. \Section{ConsiderKernels}\index{powermaps}
  548.  
  549. 'ConsiderKernels( <tbl>, <chars>, <prime\_powermap>, <prime> )'\\
  550. 'ConsiderKernels( <tbl>, <chars>, <prime\_powermap>, <prime>, \"quick\" )'
  551.  
  552. improves the parametrized map <prime\_powermap> (see "More about Maps and
  553. Parametrized Maps") that is an approximation of the <prime>-th powermap of
  554. the character table <tbl>\:
  555.  
  556. For $G$ a group with character table <tbl>, the kernel of each character in
  557. the list <chars> is a normal subgroup of $G$, so for every
  558. $g \in 'Kernel( <chi> )'$ we have $g^{<prime>} \in 'Kernel( <chi> )'$.
  559.  
  560. Depending on the order of the factor group modulo 'Kernel( <chi> )',
  561. there are two further properties\: If the order is relative prime to <prime>,
  562. for each $g \notin 'Kernel( <chi> )'$ the <prime>-th power is not contained
  563. in 'Kernel( <chi> )'; if the order is equal to <prime>, the <prime>-th powers
  564. of all elements lie in 'Kernel( <chi> )'.
  565.  
  566. If '\"quick\"' is specified, only those classes are considered for which
  567. <prime\_powermap> is ambiguous.
  568.  
  569. If 'Kernel( <chi> )' has an order not dividing '<tbl>.order' for an element
  570. <chi> of <chars>, or if no image is possible for a class,
  571. 'false' is returned; otherwise 'ConsiderKernels' returns 'true'.
  572.  
  573. *Note* that <chars> must consist of ordinary characters, since the kernel of
  574. a virtual character is not defined.
  575.  
  576. |    # see example in "Congruences"
  577.     gap> ConsiderKernels( t, t.irreducibles, pow, 2 ); pow;
  578.     true
  579.     [ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, [ 6, 7 ], 14, 9, 1, 1, 2, 2,
  580.       3, 4, 5, [ 6, 7, 18, 19 ], 8, 9, 9, [ 10, 21 ], 11, 12, 16, 16,
  581.       [ 2, 16 ], [ 2, 16 ], 17, 17, [ 6, 18 ], [ 6, 18 ], 
  582.       [ 6, 7, 18, 19 ], [ 6, 7, 18, 19 ], 20, 20, [ 9, 20 ], [ 9, 20 ], 
  583.       22, 22, 24, 24, [ 15, 25, 26 ], [ 15, 25, 26 ], 28, 28, 29, 29 ]
  584.     # continued in "PowermapsAllowedBySymmetrisations"|
  585.  
  586. 'ConsiderKernels' is used by "Powermap" 'Powermap'.
  587.  
  588. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  589. \Section{ConsiderSmallerPowermaps}\index{powermaps}
  590.  
  591. 'ConsiderSmallerPowermaps( <tbl>, <prime\_powermap>, <prime> )'\\
  592. 'ConsiderSmallerPowermaps( <tbl>, <prime\_powermap>, <prime>, \"quick\" )'
  593.  
  594. improves the parametrized map <prime\_powermap> (see chapter "Maps and
  595. Parametrized Maps") that is an approximation of the <prime>-th powermap of
  596. the character table <tbl>\:
  597.  
  598. If $<prime> > '<tbl>.orders[i]'$ for a class 'i', try to improve
  599. <prime\_powermap> at class 'i' using that for $g$ in class 'i',
  600. $g_i^{<prime>} = g_i^{<prime>\ 'mod\ <tbl>.orders[i]'}$ holds; so if the
  601. '(<prime> mod <tbl>.orders[i])'-th powermap at class 'i' is determined by the
  602. maps stored in '<tbl>.powermap', this information is used.
  603.  
  604. If '\"quick\"' is specified, only those classes are considered for which
  605. <prime\_powermap> is ambiguous.
  606.  
  607. If there are classes for which no image is possible, 'false' is returned,
  608. otherwise 'true'.
  609.  
  610. *Note*\:\ If '<tbl>.orders' is unbound, 'true' is returned without tests.
  611.  
  612. |    gap> t:= CharTable( "U4(3).4" );; init:= InitPowermap( t, 5 );;
  613.     gap> Indeterminateness( init );
  614.     84537841287168
  615.     gap> ConsiderSmallerPowermaps( t, init, 5 );;
  616.     gap> Indeterminateness( init );
  617.     195689447424|
  618.  
  619. 'ConsiderSmallerPowermaps' is used by "Powermap" 'Powermap'.
  620.  
  621. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  622. \Section{InitFusion}\index{subgroup fusions}
  623.  
  624. 'InitFusion( <subtbl>, <tbl> )'
  625.  
  626. computes a (probably parametrized, see "More about Maps and Parametrized
  627. Maps") first approximation of of the subgroup fusion from the character
  628. table <subtbl> into the character table <tbl>, using that for any class 'i'
  629. of <subtbl>, the centralizer order of the image is a multiple of the
  630. centralizer order of 'i' and the element order of 'i' is equal to the
  631. element order of its image (used only if element orders are stored on the
  632. tables).
  633.  
  634. If no fusion map is possible because of these properties, 'false' is returned.
  635. Otherwise 'InitFusion' returns the parametrized map.
  636.  
  637. |    gap> s:= CharTable( "2F4(2)" );; ru:= CharTable( "Ru" );;
  638.     gap> fus:= InitFusion( s, ru );
  639.     [ 1, 2, 2, 4, [ 5, 6 ], [ 5, 6, 7, 8 ], [ 5, 6, 7, 8 ], [ 9, 10 ], 
  640.       11, 14, 14, [ 13, 14, 15 ], [ 16, 17 ], [ 18, 19 ], 20, [ 25, 26 ],
  641.       [ 25, 26 ], [ 5, 6 ], [ 5, 6 ], [ 5, 6 ], [ 5, 6, 7, 8 ],
  642.       [ 13, 14, 15 ], [ 13, 14, 15 ], [ 18, 19 ], [ 18, 19 ], [ 25, 26 ],
  643.       [ 25, 26 ], [ 27, 28, 29 ], [ 27, 28, 29 ] ]|
  644.  
  645. 'InitFusion' is used by "SubgroupFusions" 'SubgroupFusions'.
  646.  
  647. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  648. \Section{CheckPermChar}
  649. \index{subgroup fusions}
  650. \index{permutation character}
  651.  
  652. 'CheckPermChar( <subtbl>, <tbl>, <fusionmap>, <permchar> )'
  653.  
  654. tries to  improve the parametrized  fusion <fusionmap> (see Chapter "Maps
  655. and  Parametrized  Maps") from  the  character  table  <subtbl> into  the
  656. character table  <tbl>  using  the permutation character  <permchar> that
  657. belongs to the required fusion\:\  A possible  image 'x'  of class 'i' is
  658. excluded if class 'i' is too large, and a possible image 'y' of class 'i'
  659. is  the right  image  if 'y' must be the image of {\em all} classes where
  660. 'y' is a possible image.
  661.  
  662. 'CheckPermChar'  returns 'true'  if  no  inconsistency  occurred,  and
  663. 'false' otherwise.
  664.  
  665. |    gap> fus:= InitFusion( s, ru );; # cf. example in "InitFusion"
  666.     gap> permchar:= Sum( Sublist( ru.irreducibles, [ 1, 5, 6 ] ) );;
  667.     gap> CheckPermChar( s, ru, fus, permchar );; fus;
  668.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, 
  669.       [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ],
  670.       [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ]|
  671.  
  672. 'CheckPermChar' is used by "SubgroupFusions" 'SubgroupFusions'.
  673.  
  674. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  675. \Section{CheckFixedPoints}\index{subgroup fusions}
  676.  
  677. 'CheckFixedPoints( <inside1>, <between>, <inside2> )'
  678.  
  679. If the parametrized map (see "More about Maps and Parametrized Maps")
  680. <between> transfers the parametrized map <inside1> to <inside2>, i.e.\ 
  681. $<inside2> \circ <between> = <between> \circ <inside1>$,
  682. <between> must map fixed points of <inside1> to fixed points of <inside2>.
  683. Using this property, 'CheckFixedPoints' tries to improve <between> and
  684. <inside2>.
  685.  
  686. If an inconsistency occurs, 'false' is returned. Otherwise,
  687. 'CheckFixedPoints' returns the list of classes where improvements were found.
  688.  
  689. |    gap> s:= CharTable( "L4(3).2_2" );; o7:= CharTable( "O7(3)" );;
  690.     gap> fus:= InitFusion( s, o7 );;
  691.     gap> CheckFixedPoints( s.powermap[5], fus, o7.powermap[5] );
  692.     [ 48, 49 ]
  693.     gap> fus:= InitFusion( s, o7 );; Sublist( fus, [ 48, 49 ] );
  694.     [ [ 54, 55, 56, 57 ], [ 54, 55, 56, 57 ] ]
  695.     gap> CheckFixedPoints( s.powermap[5], fus, o7.powermap[5] );
  696.     [ 48, 49 ]
  697.     gap> Sublist( fus, [ 48, 49 ] );
  698.     [ [ 56, 57 ], [ 56, 57 ] ]|
  699.  
  700. 'CheckFixedPoints' is used by "SubgroupFusions" 'SubgroupFusions'.
  701.  
  702. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  703. \Section{TestConsistencyMaps}\index{subgroup fusions}
  704.  
  705. 'TestConsistencyMaps( <powmap1>, <fusmap>, <powmap2> )'\\
  706. 'TestConsistencyMaps( <powmap1>, <fusmap>, <powmap2>, <fus\_imp> )'
  707.  
  708. Like in "TransferDiagram", it is checked that parametrized maps
  709. (see chapter "Maps and Parametrized Maps") commute\:
  710.  
  711. For all positions 'i' where both '<powmap1>[i]' and '<powmap2>[i]'
  712. are bound,
  713. \[ 'CompositionMaps( <fusmap>, <powmap1>[i] ) =
  714.  CompositionMaps( <powmap2>[i], <fusmap> )' \]
  715. shall hold,
  716. so <fusmap> occurs in diagrams for all considered elements of
  717. <powmap1> resp. <powmap2>, and it occurs twice in each diagram.
  718.  
  719. If a set <fus\_imp> is specified, only those diagrams with
  720. elements of <fus\_imp> as preimages of <fusmap> are considered.
  721.  
  722. 'TestConsistencyMaps' stores all found improvements in <fusmap> and
  723. elements of <powmap1> and <powmap2>.
  724. When an inconsistency occurs, the program immediately returns 'false';
  725. otherwise 'true' is returned.
  726.  
  727. 'TestConsistencyMaps' stops if no more improvements of <fusmap> are
  728. possible.
  729. E.g.\ if <fusmap> was unique from the beginning, the powermaps will not
  730. be improved.  To transfer powermaps by fusions, use "TransferDiagram"
  731. 'TransferDiagram'.
  732.  
  733. |    gap> s:= CharTable( "2F4(2)" );; ru:= CharTable( "Ru" );;
  734.     gap> fus:= InitFusion( s, ru );;
  735.     gap> permchar:= Sum( Sublist( ru.irreducibles, [ 1, 5, 6 ] ) );;
  736.     gap> CheckPermChar( s, ru, fus, permchar );; fus;
  737.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, 
  738.       [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ],
  739.       [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ]
  740.     gap> TestConsistencyMaps( s.powermap, fus, ru.powermap );
  741.     true
  742.     gap> fus;
  743.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, [ 25, 26 ],
  744.       [ 25, 26 ], 5, 5, 6, 8, 14, 13, 19, 19, [ 25, 26 ], [ 25, 26 ], 27,
  745.       27 ]
  746.     gap> Indeterminateness( fus );
  747.     16|
  748.  
  749. 'TestConsistencyMaps' is used by "SubgroupFusions" 'SubgroupFusions'.
  750.  
  751. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  752. \Section{ConsiderTableAutomorphisms}\index{subgroup fusions}
  753. \index{table automorphisms}
  754.  
  755. 'ConsiderTableAutomorphisms( <parafus>, <tableautomorphisms> )'
  756.  
  757. improves the parametrized subgroup fusion map <parafus> (see "More about
  758. Maps and Parametrized Maps")\:\ 
  759. Let $T$ be the permutation group that has the list <tableautomorphisms> as
  760. generators, let $T_0$ be the subgroup of $T$ that is maximal with the property
  761. that $T_0$ operates on the set of fusions contained in <parafus> by
  762. permutation of images.
  763.  
  764. 'ConsiderTableAutomorphisms' replaces orbits by representatives at suitable
  765. positions so that afterwards exactly one representative of fusion maps
  766. (that is contained in <parafus>) in every orbit under the operation of $T_0$
  767. is contained in <parafus>.
  768.  
  769. The list of positions where improvements were found is returned.
  770.  
  771. |    gap> fus:= InitFusion( s, ru );;
  772.     gap> permchar:= Sum( Sublist( ru.irreducibles, [ 1, 5, 6 ] ) );;
  773.     gap> CheckPermChar( s, ru, fus, permchar );; fus;
  774.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, 
  775.       [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ],
  776.       [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ]
  777.     gap> ConsiderTableAutomorphisms( fus, ru.automorphisms );
  778.     [ 16 ]
  779.     gap> fus;
  780.     [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20,
  781.       25, [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [ 18, 19 ],
  782.       [ 25, 26 ], [ 25, 26 ], 27, 27 ]|
  783.  
  784. 'ConsiderTableAutomorphisms' is used by "SubgroupFusions" 'SubgroupFusions'.
  785.  
  786. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  787. \Section{PowermapsAllowedBySymmetrisations}\index{powermaps}
  788.  
  789. 'PowermapsAllowedBySymmetrisations( <tbl>, <subchars>, <chars>, <pow>,'\\
  790. |                                   |'<prime>, <parameters> )'
  791.  
  792. returns a list of (possibly parametrized, see "More about Maps and
  793. Parametrized Maps") maps <map> which are contained in the parametrized map
  794. <pow> and which have the property that for all $\chi$ in the list <chars> of
  795. characters of the character table <tbl>, the symmetrizations
  796.       \[ \chi^{p-} = |M|'inusCharacter( '\chi', <map>, <prime> )' \]
  797. (see "MinusCharacter") have nonnegative integral scalar products with all
  798. characters in the list <subchars>.
  799.  
  800. <parameters> must be a record with fields
  801.  
  802. 'maxlen':\\ an integer that controls the position where branches take place
  803.  
  804. 'contained':\\ a function, usually "ContainedCharacters" or
  805.                "ContainedPossibleCharacters"; for a symmetrization <minus>,
  806.                it returns the list 'contained( <tbl>, <subchars>, <minus> )'
  807.  
  808. 'minamb', 'maxamb':\\ two arbitrary objects; <contained> is called only for
  809.                       symmetrizations <minus> with
  810.                       \[ 'minamb \< Indeterminateness( <minus> ) \< maxamb' \]
  811.  
  812. 'quick':\\ a boolean; if it is true, the scalar products of
  813.            uniquely determined symmetrizations are not checked.
  814.  
  815. <pow> will be improved, i.e.\ is changed by the algorithm.
  816.  
  817. If there is no character left which allows an immediate improvement but there
  818. are characters in <chars> with indeterminateness of the symmetrizations bigger
  819. than '<parameters>.minamb', a branch is necessary. Two kinds of branches may
  820. occur\:\ If '<parameters>.contained( <tbl>, <subchars>, <minus> )' has
  821. length at most '<parameters>.maxlen', the union of maps allowed by the
  822. characters in <minus> is computed; otherwise a suitable class 'c' is taken
  823. which is significant for some character, and the union of all admissible maps
  824. with image 'x' on 'c' is computed, where 'x' runs over '<pow>[c]'.
  825.  
  826. |    # see example in "ConsiderKernels"
  827.     gap> PowermapsAllowedBySymmetrisations(t,t.irreducibles,t.irreducibles,
  828.     >      pow, 2, rec( maxlen:=10, contained:=ContainedPossibleCharacters,
  829.     >      minamb:= 2, maxamb:= "infinity", quick:= false ) );
  830.     [ [ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, 6, 14, 9, 1, 1, 2, 2, 3, 4,
  831.           5, 6, 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, 18, 18,
  832.           18, 20, 20, 20, 20, 22, 22, 24, 24, 25, 26, 28, 28, 29, 29 ] ]
  833.     gap> t.powermap[2] = last[1];
  834.     true|
  835.  
  836. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  837. \Section{FusionsAllowedByRestrictions}\index{subgroup fusions}
  838.  
  839. 'FusionsAllowedByRestrictions( <subtbl>, <tbl>, <subchars>, <chars>,'\\
  840. |                               |'<fus>, <parameters> )'
  841.  
  842. returns a list of (possibly parametrized, see "More about Maps and
  843. Parametrized Maps")
  844. maps <map> which are contained in the parametrized map <fus> and which have
  845. the property that for all $\chi$ in the list <chars> of characters of the
  846. character table <tbl>, the restrictions
  847.       \[ \chi_{<subtbl>} = 'CompositionMaps( '\chi', <fus> )' \]
  848. (see "CompositionMaps") have nonnegative integral scalar products with all
  849. characters in the list <subchars>.
  850.  
  851. <parameters> must be a record with fields
  852.  
  853. 'maxlen':\\ an integer that controls the position where branches take place
  854.  
  855. 'contained':\\ a function, usually "ContainedCharacters" or
  856.                "ContainedPossibleCharacters"; for a restriction <rest>, it
  857.                returns the list 'contained( <subtbl>, <subchars>, <rest> )';
  858.  
  859. 'minamb', 'maxamb':\\ two arbitrary objects; <contained> is called only for
  860.                       restrictions <rest> with
  861.                       'minamb \< Indeterminateness( <rest> ) \< maxamb';
  862.  
  863. 'quick':\\ a boolean value; if it is true, the scalar products of
  864.            uniquely determined restrictions are not checked.
  865.  
  866. <fus> will be improved, i.e.\ is changed by the algorithm.
  867.  
  868. If there is no character left which allows an immediate improvement but there
  869. are characters in <chars> with indeterminateness of the restrictions bigger
  870. than '<parameters>.minamb', a branch is necessary. Two kinds of branches may
  871. occur\:\ If '<parameters>.contained( <tbl>, <subchars>, <rest> )' has
  872. length at most '<parameters>.maxlen', the union of maps allowed by the
  873. characters in <rest> is computed; otherwise a suitable class 'c' is taken
  874. which is significant for some character, and the union of all admissible maps
  875. with image 'x' on 'c' is computed, where 'x' runs over '<fus>[c]'.
  876.  
  877. |    gap> s:= CharTable( "U3(3)" );; t:= CharTable( "J4" );;
  878.     gap> fus:= InitFusion( s, t );;
  879.     gap> TestConsistencyMaps( s.powermap, fus, t.powermap );;
  880.     gap> ConsiderTableAutomorphisms( fus, t.automorphisms );; fus;
  881.     [ 1, 2, 4, 4, [ 5, 6 ], [ 5, 6 ], [ 5, 6 ], 10, 12, [ 12, 13 ], 
  882.       [ 14, 15, 16 ], [ 14, 15, 16 ], [ 21, 22 ], [ 21, 22 ] ]
  883.     gap> FusionsAllowedByRestrictions( s, t, s.irreducibles,
  884.     >             t.irreducibles, fus, rec( maxlen:= 10,
  885.     >             contained:= ContainedPossibleCharacters,
  886.     >             minamb:= 2, maxamb:= "infinity", quick:= false ) );
  887.     [ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ], 
  888.       [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 15, 15, 22, 22 ], 
  889.       [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 16, 16, 22, 22 ] ]
  890.     # cf.\ example in "SubgroupFusions"|
  891.  
  892. 'FusionsAllowedByRestrictions' is used by "SubgroupFusions"
  893. 'SubgroupFusions'.
  894.  
  895. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  896. \Section{OrbitFusions}\index{subgroup fusions}
  897. \index{table automorphisms}
  898.  
  899. 'OrbitFusions( <subtblautomorphisms>, <fusionmap>, <tblautomorphisms> )'
  900.  
  901. returns the orbit of the subgroup fusion map <fusionmap> under the operations
  902. of maximal admissible subgroups of the table automorphism groups of the
  903. character tables. <subtblautomorphisms> is a list of generators of the
  904. automorphisms of the subgroup table, <tblautomorphisms> is a list of
  905. generators of the automorphisms of the supergroup table.
  906.  
  907. |    gap> s:= CharTable( "U3(3)" );; t:= CharTable( "J4" );;
  908.     gap> GetFusionMap( s, t );
  909.     [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ]
  910.     gap> OrbitFusions( s.automorphisms, last, t.automorphisms );
  911.     [ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ], 
  912.       [ 1, 2, 4, 4, 5, 5, 6, 10, 13, 12, 14, 14, 21, 21 ] ]|
  913.  
  914. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  915. \Section{OrbitPowermaps}\index{powermaps}
  916. \index{matrix automorphisms}
  917.  
  918. 'OrbitPowermaps( <powermap>, <matautomorphisms> )'
  919.  
  920. returns the orbit of the powermap <powermap> under the operation of the
  921. subgroup <matautomorphisms> of the maximal admissible subgroup of the matrix
  922. automorphisms of the corresponding character table.
  923.  
  924. |    gap> t:= CharTable( "3.McL" );;
  925.     gap> maut:= MatAutomorphisms( t.irreducibles, [], Group( () ) );
  926.     Group( (55,58)(56,59)(57,60)(61,64)(62,65)(63,66), (35,36), (26,29)
  927.     (27,30)(28,31)(49,52)(50,53)(51,54), (40,43)(41,44)(42,45), ( 2, 3)
  928.     ( 5, 6)( 8, 9)(12,13)(15,16)(18,19)(21,22)(24,25)(27,28)(30,31)(33,34)
  929.     (38,39)(41,42)(44,45)(47,48)(50,51)(53,54)(56,57)(59,60)(62,63)
  930.     (65,66) )
  931.     gap> OrbitPowermaps( t.powermap[3], maut );
  932.     [ [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17,
  933.           4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37,
  934.           37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49,
  935.           49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ], 
  936.       [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17,
  937.           4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 9, 8, 37,
  938.           37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49,
  939.           49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ] ]|
  940.  
  941. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  942. \Section{RepresentativesFusions}\index{subgroup fusions}
  943. \index{table automorphisms}
  944.  
  945. 'RepresentativesFusions( <subtblautomorphisms>, <listoffusionmaps>,
  946.                          <tblautomorphisms> )'\\
  947. 'RepresentativesFusions( <subtbl>, <listoffusionmaps>, <tbl> )'
  948.  
  949. returns a list of representatives of the list <listoffusionmaps> of subgroup
  950. fusion maps under the operations of maximal admissible subgroups of the table
  951. automorphism groups of the character tables. <subtblautomorphisms> is a list
  952. of generators of the automorphisms of the subgroup table, <tblautomorphisms>
  953. is a list of generators of the automorphisms of the supergroup table.
  954. if the parameters <subtbl> and <tbl> (character tables) are used, the values
  955. of '<subtbl>.automorphisms' and '<subtbl>.automorphisms' will be
  956. taken.
  957.  
  958. |    gap> s:= CharTable( "2F4(2)" );; ru:= CharTable( "Ru" );;
  959.     gap> SubgroupFusions( s, ru );
  960.     [ [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, 25, 26, 5, 5,
  961.           6, 8, 14, 13, 19, 19, 26, 25, 27, 27 ], 
  962.       [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, 26, 25, 5, 5,
  963.           6, 8, 14, 13, 19, 19, 25, 26, 27, 27 ] ]
  964.     gap> RepresentativesFusions( s, last, ru );
  965.     [ [ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, 25, 26, 5, 5,
  966.           6, 8, 14, 13, 19, 19, 26, 25, 27, 27 ] ]|
  967.  
  968. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  969. \Section{RepresentativesPowermaps}\index{powermaps}%
  970. \index{matrix automorphisms}
  971.  
  972. 'RepresentativesPowermaps( <listofpowermaps>, <matautomorphisms> )'
  973.  
  974. returns a list of representatives of the list <listofpowermaps> of powermaps
  975. under the operation of a subgroup <matautomorphisms> of the maximal
  976. admissible subgroup of matrix automorphisms of irreducible characters of the
  977. corresponding character table. 
  978.  
  979. |    gap> t:= CharTable( "3.McL" );;
  980.     gap> maut:= MatAutomorphisms( t.irreducibles, [], Group( () ) );
  981.     Group( (55,58)(56,59)(57,60)(61,64)(62,65)(63,66), (35,36), (26,29)
  982.     (27,30)(28,31)(49,52)(50,53)(51,54), (40,43)(41,44)(42,45), ( 2, 3)
  983.     ( 5, 6)( 8, 9)(12,13)(15,16)(18,19)(21,22)(24,25)(27,28)(30,31)(33,34)
  984.     (38,39)(41,42)(44,45)(47,48)(50,51)(53,54)(56,57)(59,60)(62,63)
  985.     (65,66) )
  986.     gap> Powermap( t, 3 );
  987.     [ [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17,
  988.           4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 9, 8, 37,
  989.           37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49,
  990.           49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ], 
  991.       [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17,
  992.           4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37,
  993.           37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49,
  994.           49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ] ]
  995.     gap> RepresentativesPowermaps( last, maut );
  996.     [ [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17,
  997.           4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37,
  998.           37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49,
  999.           49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ] ]|
  1000.  
  1001. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1002. \Section{Indirected}\index{map!indirection by a}
  1003.  
  1004. 'Indirected( <char>, <paramap> )'
  1005.  
  1006. We have
  1007. \[ 'Indirected( <char>, <paramap> )[i]' = '<char>[ <paramap>[i] ]', \]
  1008. if this value is unique; otherwise it is set unknown (see chapter "Unknowns").
  1009. (For a parametrized indirection, see "CompositionMaps".)
  1010.  
  1011. |    gap> m12:= CharTable( "M12" );;
  1012.     gap> fus:= [ 1, 3, 4, [ 6, 7 ], 8, 10, [ 11, 12 ], [ 11, 12 ],
  1013.     >            [ 14, 15 ], [ 14, 15 ] ];;  # parametrized subgroup fusion
  1014.                                              # from $M_{11}$
  1015.     gap> chars:= Sublist( m12.irreducibles, [ 1 .. 6 ] );;
  1016.     gap> List( chars, x -> Indirected( x, fus ) );
  1017.     [ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], 
  1018.       [ 11, 3, 2, Unknown(1), 1, 0, Unknown(2), Unknown(3), 0, 0 ], 
  1019.       [ 11, 3, 2, Unknown(4), 1, 0, Unknown(5), Unknown(6), 0, 0 ], 
  1020.       [ 16, 0, -2, 0, 1, 0, 0, 0, Unknown(7), Unknown(8) ], 
  1021.       [ 16, 0, -2, 0, 1, 0, 0, 0, Unknown(9), Unknown(10) ], 
  1022.       [ 45, -3, 0, 1, 0, 0, -1, -1, 1, 1 ] ]|
  1023.  
  1024. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1025. \Section{Powmap}
  1026.  
  1027. 'Powmap( <powermap>, <n> )'\\
  1028. 'Powmap( <powermap>, <n>, <class> )'
  1029.  
  1030. The first form returns the <n>-th powermap where <powermap> is the powermap of
  1031. a character table (see "Character Table Records").
  1032. If the <n>-th position in <powermap> is bound, this map is returned, otherwise
  1033. it is computed from the (necessarily stored) powermaps of the prime divisors
  1034. of <n>.
  1035.  
  1036. The second form returns the image of <class> under the <n>-th powermap;
  1037. for any valid class <class>, we have
  1038. 'Powmap( <powermap>, <n> )[ <class> ] = Powmap( <powermap>, <n>, <class> )'.
  1039.  
  1040. The entries of <powermap> may be parametrized maps (see "More about Maps
  1041. and Parametrized Maps").
  1042.  
  1043. |    gap> t:= CharTable( "3.McL" );;
  1044.     gap> Powmap( t.powermap, 3 );
  1045.     [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17,
  1046.       4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37, 37, 
  1047.       37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, 49, 14, 
  1048.       14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ]
  1049.     gap> Powmap( t.powermap, 27 );
  1050.     [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, 
  1051.       4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 1, 1, 37, 37, 
  1052.       37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, 49, 14, 
  1053.       14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ]
  1054.     gap> Lcm( t.orders ); Powmap( t.powermap, last );
  1055.     27720
  1056.     [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1057.       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1058.       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]|
  1059.  
  1060. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1061. \Section{ElementOrdersPowermap}
  1062.  
  1063. 'ElementOrdersPowermap( <powermap> )'
  1064.  
  1065. returns the list of element orders given by the maps in the powermap
  1066. <powermap>.  The entries at positions where the powermaps do not uniquely
  1067. determine the element order are set to unknowns (see chapter "Unknowns").
  1068.  
  1069. |    gap> t:= CharTable( "3.J3.2" );; t.powermap;
  1070.     [ , [ 1, 2, 1, 2, 5, 6, 7, 3, 4, 10, 11, 12, 5, 6, 8, 9, 18, 19, 17,
  1071.           10, 11, 12, 13, 14, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1,
  1072.           3, 7, 8, 8, 13, 18, 19, 17, 23, 23, 28, 30 ], 
  1073.       [ 1, 1, 3, 3, 1, 1, 1, 8, 8, 10, 10, 10, 3, 3, 15, 15, 7, 7, 7, 20,
  1074.           20, 20, 8, 8, 10, 10, 10, 30, 30, 28, 28, 32, 32, 32, 35, 36,
  1075.           35, 38, 39, 36, 37, 37, 37, 38, 38, 47, 46 ],, 
  1076.       [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 2, 13, 14, 15, 16, 19, 17, 18, 
  1077.           3, 4, 4, 23, 24, 5, 6, 6, 30, 31, 28, 29, 32, 34, 33, 35, 36, 
  1078.           37, 38, 39, 40, 43, 41, 42, 44, 45, 47, 46 ],,,,,,,,,,,, 
  1079.       [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
  1080.           19, 20, 21, 22, 23, 24, 25, 26, 27, 1, 2, 1, 2, 32, 34, 33, 35, 
  1081.           36, 37, 38, 39, 40, 41, 42, 43, 45, 44, 35, 35 ],, 
  1082.       [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
  1083.           19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 2, 
  1084.           35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 ] ]
  1085.     gap> ElementOrdersPowermap( last );
  1086.     [ 1, 3, 2, 6, 3, 3, 3, 4, 12, 5, 15, 15, 6, 6, 8, 24, 9, 9, 9, 10, 
  1087.       30, 30, 12, 12, 15, 15, 15, 17, 51, 17, 51, 19, 57, 57, 2, 4, 6, 8, 
  1088.       8, 12, 18, 18, 18, 24, 24, 34, 34 ]
  1089.     gap> Unbind( t.powermap[17] ); ElementOrdersPowermap( t.powermap );
  1090.     [ 1, 3, 2, 6, 3, 3, 3, 4, 12, 5, 15, 15, 6, 6, 8, 24, 9, 9, 9, 10, 
  1091.       30, 30, 12, 12, 15, 15, 15, Unknown(11), Unknown(12), Unknown(13),
  1092.       Unknown(14), 19, 57, 57, 2, 4, 6, 8, 8, 12, 18, 18, 18, 24, 24,
  1093.       Unknown(15), Unknown(16) ]|
  1094.  
  1095.