  
  [1X3 [33X[0;0YThe User Interface to the [5XGAP[105X[101X[1X Character Table Library[133X[101X
  
  
  [1X3.1 [33X[0;0YAccessing Data of the [5XCTblLib[105X[101X[1X Package[133X[101X
  
  
  [1X3.1-1 [33X[0;0YAdmissible Names for Character Tables in [5XCTblLib[105X[101X[1X[133X[101X
  
  [33X[0;0YWhen you access a character table from the [5XGAP[105X Character Table Library, this
  table is specified by an admissible name.[133X
  
  [33X[0;0YAdmissible names for the [13Xordinary character table[113X [22Xtbl[122X of the group [22XG[122X are[133X
  
  [30X    [33X[0;6Yan  [5XAtlas[105X  like  name  if [22Xtbl[122X is an [5XAtlas[105X table (see Section [14X4.3[114X), for
        example  [10X"M22"[110X for the table of the Mathieu group [22XM_22[122X, [10X"L2(13).2"[110X for
        [22XL_2(13):2[122X, and [10X"12_1.U4(3).2_1"[110X for [22X12_1.U_4(3).2_1[122X.[133X
  
        [33X[0;6Y(The  difference  to  the name printed in the [5XAtlas[105X is that subscripts
        and  superscripts  are  omitted  except  if  they  are used to qualify
        integer values, and double dots are replaced by a single dot.)[133X
  
  [30X    [33X[0;6Ythe  names  that  were admissible for tables of [22XG[122X in the [5XCAS[105X system if
        the [5XCAS[105X table library contained a table of [22XG[122X, for example [10Xsl42[110X for the
        table of the alternating group [22XA_8[122X.[133X
  
        [33X[0;6Y(But  note  that the ordering of rows and columns of the [5XGAP[105X table may
        be different from that in [5XCAS[105X, see Section [14X4.4[114X.)[133X
  
  [30X    [33X[0;6Ysome [21Xrelative[121X names, as follows.[133X
  
        [30X    [33X[0;12YIf [22XG[122X is the [22Xn[122X-th maximal subgroup (in decreasing group order) of
              a  group  whose  library  table  [22Xsubtbl[122X  is available in [5XGAP[105X and
              stores  the  [2XMaxes[102X  ([14X3.7-1[114X)  value, and if [10Xname[110X is an admissible
              name  for [22Xsubtbl[122X then [10Xname[110XM[22Xn[122X is admissible for [22Xtbl[122X. For example,
              the  name  [10X"J3M2"[110X  can  be  used  to  access  the second maximal
              subgroup  of  the  sporadic simple Janko group [22XJ_3[122X which has the
              admissible name [10X"J3"[110X.[133X
  
        [30X    [33X[0;12YIf  [22XG[122X  is  a  nontrivial Sylow [22Xp[122X normalizer in a sporadic simple
              group  with  admissible name [10Xname[110X –where nontrivial means that [22XG[122X
              is  not  isomorphic  to a subgroup of [22Xp:(p-1)[122X– then [10Xname[110XN[22Xp[122X is an
              admissible  name  of  [22Xtbl[122X.  For example, the name [10X"J4N11"[110X can be
              used  to  access  the  table  of  the Sylow [22X11[122X normalizer in the
              sporadic simple Janko group [22XJ_4[122X.[133X
  
        [30X    [33X[0;12YIn  a  few  cases,  the  table  of  the Sylow [22Xp[122X-subgroup of [22XG[122X is
              accessible  via  the  name  [10Xname[110XSyl[22Xp[122X where [10Xname[110X is an admissible
              name  of the table of [22XG[122X. For example, [10X"A11Syl2"[110X is an admissible
              name  for  the  table of the Sylow [22X2[122X-subgroup of the alternating
              group [22XA_11[122X.[133X
  
        [30X    [33X[0;12YIn  a  few  cases,  the  table of an element centralizer in [22XG[122X is
              accessible via the name [10Xname[110XC[22Xcl[122X where [10Xname[110X is an admissible name
              of  the  table  of [22XG[122X. For example, [10X"M11C2"[110X is an admissible name
              for  the table of an involution centralizer in the Mathieu group
              [22XM_11[122X.[133X
  
  [33X[0;0YThe  recommended  way  to  access  a  [13XBrauer  table[113X  is via applying the [9Xmod[109X
  operator   to  the  ordinary  table  and  the  desired  characteristic  (see
  [2XBrauerTable[102X  ([14XReference:  BrauerTable[114X) and Section [14X'Reference: Operators for
  Character  Tables'[114X),  so  it  is not necessary to define admissible names of
  Brauer tables.[133X
  
  [33X[0;0YA  [13Xgeneric  character table[113X (see Section [14X4.2[114X) is accessible only by the name
  given  by  its  [2XIdentifier[102X  ([14XReference:  Identifier  (for character tables)[114X)
  value.[133X
  
  [1X3.1-2 CharacterTable[101X
  
  [29X[2XCharacterTable[102X( [3Xtblname[103X[, [3Xpara1[103X[, [3Xpara2[103X]] ) [32X method
  
  [33X[0;0YIf  the  only argument is a string [3Xtblname[103X and if this is an admissible name
  (see  [14X3.1-1[114X)  of  a library character table then [2XCharacterTable[102X returns this
  library table, otherwise [9Xfail[109X.[133X
  
  [33X[0;0YIf  [2XCharacterTable[102X is called with more than one argument then the first must
  be a string [3Xtblname[103X specifying a series of groups which is implemented via a
  generic  character  table, for example [10X"Symmetric"[110X for symmetric groups; the
  remaining  arguments  specialize  the  desired  member  of  the  series (see
  Section [14X4.2[114X  for  a  list  of available generic tables). If no generic table
  with  name [3Xtblname[103X is available or if the parameters are not admissible then
  [2XCharacterTable[102X returns [9Xfail[109X.[133X
  
  [33X[0;0YA call of [2XCharacterTable[102X may cause that some library files are read and that
  some  table  objects are constructed from the data stored in these files, so
  fetching a library table may take more time than one expects.[133X
  
  [33X[0;0YCase  is  not significant for [3Xtblname[103X. For example, both [10X"suzm3"[110X and [10X"SuzM3"[110X
  can  be entered in order to access the character table of the third class of
  maximal subgroups of the sporadic simple Suzuki group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs5:= CharacterTable( "A5.2" );[127X[104X
    [4X[28XCharacterTable( "A5.2" )[128X[104X
    [4X[25Xgap>[125X [27Xsym5:= CharacterTable( "Symmetric", 5 );[127X[104X
    [4X[28XCharacterTable( "Sym(5)" )[128X[104X
    [4X[25Xgap>[125X [27XTransformingPermutationsCharacterTables( s5, sym5 );[127X[104X
    [4X[28Xrec( columns := (2,3,4,7,5), group := Group(()), [128X[104X
    [4X[28X  rows := (1,7,3,4,6,5,2) )[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  above two tables are tables of the symmetric group on five letters; the
  first  is  in [5XAtlas[105X format (see Section [14X4.3[114X), the second is constructed from
  the generic table for symmetric groups (see [14X4.2[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCharacterTable( "J5" );[127X[104X
    [4X[28Xfail[128X[104X
    [4X[25Xgap>[125X [27XCharacterTable( "A5" ) mod 2;[127X[104X
    [4X[28XBrauerTable( "A5", 2 )[128X[104X
  [4X[32X[104X
  
  [1X3.1-3 AllCharacterTableNames[101X
  
  [29X[2XAllCharacterTableNames[102X( [[3Xfunc[103X, [3Xval[103X, [3X...[103X[, [3XOfThose[103X, [3Xfunc[103X]] ) [32X function
  
  [33X[0;0YSimilar  to  group libraries (see Chapter [14X'Reference: Group Libraries'[114X), the
  [5XGAP[105X  Character  Table  Library  can be used to search for ordinary character
  tables with prescribed properties.[133X
  
  [33X[0;0YA specific library table can be selected by an admissible name, see [14X3.1-1[114X.[133X
  
  [33X[0;0YThe  [13Xselection function[113X (see [14X'Reference: Selection Functions'[114X) for character
  tables  from  the  [5XGAP[105X  Character  Table  Library that have certain abstract
  properties  is [2XAllCharacterTableNames[102X. Contrary to the situation in the case
  of  group  libraries,  the  selection function returns a list not of library
  character  tables  but  of their names; using [2XCharacterTable[102X ([14X3.1-2[114X) one can
  then access the tables themselves.[133X
  
  [33X[0;0Y[2XAllCharacterTableNames[102X  takes  an  arbitrary  even  number of arguments. The
  argument  at  each  odd position must be a function, and the argument at the
  subsequent  even  position  must  be  either a value that this function must
  return when called for the character table in question, in order to have the
  name  of the table included in the selection, or a list of such values, or a
  function  that  returns  [9Xtrue[109X  for  such  a  value, and [9Xfalse[109X otherwise. For
  example,[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xnames:= AllCharacterTableNames();;[127X[104X
  [4X[32X[104X
  
  [33X[0;0Yreturns  a  list  containing  one admissible name of each ordinary character
  table in the [5XGAP[105X library,[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xsimpnames:= AllCharacterTableNames( IsSimple, true,[127X[104X
    [4X[25X>[125X [27X                                       IsAbelian, false );;[127X[104X
  [4X[32X[104X
  
  [33X[0;0Yreturns  a  list  containing  an  admissible name of each ordinary character
  table in the [5XGAP[105X library whose groups are nonabelian and simple, and[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XAllCharacterTableNames( IsSimple, true, IsAbelian, false,[127X[104X
    [4X[25X>[125X [27X                           Size, [ 1 .. 100 ] );[127X[104X
    [4X[28X[ "A5", "A6M2" ][128X[104X
  [4X[32X[104X
  
  [33X[0;0Yreturns  a  list  containing  an  admissible name of each ordinary character
  table  in  the  [5XGAP[105X  library whose groups are nonabelian and simple and have
  order  at most [22X100[122X, respectively. (Note that [10X"A5"[110X and [10X"A6M2"[110X are identifiers
  of  permutation equivalent character tables. It would be possible to exclude
  duplicates, see Section [14X3.6[114X).[133X
  
  [33X[0;0YSimilarly,[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XAllCharacterTableNames( Size, IsPrimeInt );[127X[104X
    [4X[28X[ "C3" ][128X[104X
  [4X[32X[104X
  
  [33X[0;0Yreturns the list of all identifiers of library tables whose [2XSize[102X ([14XReference:
  Size[114X) value is a prime integer.[133X
  
  [33X[0;0YFor  the  sake  of  efficiency,  the  attributes  whose  names are listed in
  [10XCTblLib.SupportedAttributes[110X  are handled in a special way, [5XGAP[105X need not read
  all  files  of the table library in these cases in order to find the desired
  names.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCTblLib.SupportedAttributes;[127X[104X
    [4X[28X[ "AbelianInvariants", "IdentifiersOfDuplicateTables", "InfoText", [128X[104X
    [4X[28X  "IsAbelian", "IsAlmostSimple", "IsDuplicateTable", [128X[104X
    [4X[28X  "IsNontrivialDirectProduct", "IsPerfect", "IsSimple", [128X[104X
    [4X[28X  "IsSporadicSimple", "KnowsDeligneLusztigNames", [128X[104X
    [4X[28X  "KnowsSomeGroupInfo", "Maxes", "NamesOfFusionSources", [128X[104X
    [4X[28X  "NrConjugacyClasses", "Size" ][128X[104X
  [4X[32X[104X
  
  [33X[0;0YIf    the    [5XBrowse[105X    package    (see [BL12])    is    not    loaded   then
  [10XCTblLib.SupportedAttributes[110X is an empty list, [2XAllCharacterTableNames[102X will be
  very slow when one selects character tables according to attributes from the
  list shown above.[133X
  
  [33X[0;0YIf  the  dummy  function  [10XOfThose[110X is an argument at an odd position then the
  following  argument [3Xfunc[103X must be a function that takes a character table and
  returns  a name of a character table or a list of names; this is interpreted
  as  replacement  of  the  names computed up to this position by the union of
  names  returned  by  [3Xfunc[103X.  For  example,  [3Xfunc[103X  may  be  [2XMaxes[102X  ([14X3.7-1[114X)  or
  [2XNamesOfFusionSources[102X ([14XReference: NamesOfFusionSources[114X)).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmaxesnames:= AllCharacterTableNames( IsSporadicSimple, true,[127X[104X
    [4X[25X>[125X [27X                                        HasMaxes, true,[127X[104X
    [4X[25X>[125X [27X                                        OfThose, Maxes );;[127X[104X
  [4X[32X[104X
  
  [33X[0;0Yreturns  the union of names of ordinary tables of those maximal subgroups of
  sporadic  simple groups that are contained in the table library in the sense
  that the attribute [2XMaxes[102X ([14X3.7-1[114X) is set.[133X
  
  [33X[0;0YFor  the  sake  of  efficiency,  [10XOfThose[110X  followed  by  one of the arguments
  [2XAutomorphismGroup[102X  ([14XReference:  AutomorphismGroup[114X),  [2XSchurCover[102X  ([14XReference:
  SchurCover[114X), [10XCompleteGroup[110X is handled in a special way.[133X
  
  [1X3.1-4 OneCharacterTableName[101X
  
  [29X[2XOneCharacterTableName[102X( [[3Xfunc[103X, [3Xval[103X, [3X...[103X[, [3XOfThose[103X, [3Xfunc[103X]] ) [32X function
  
  [33X[0;0YThe  example  function  for  character  tables  from the [5XGAP[105X Character Table
  Library  that  have certain abstract properties is [2XOneCharacterTableName[102X. It
  is  analogous  to the selection function [2XAllCharacterTableNames[102X ([14X3.1-3[114X), the
  difference  is  that  it  returns one [2XIdentifier[102X ([14XReference: Identifier (for
  character  tables)[114X)  value  of  a  character  table  with  the properties in
  question  instead  of  the  list  of  all  such values. If no table with the
  required  properties  is  contained  in the [5XGAP[105X Character Table Library then
  [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XOneCharacterTableName( IsSimple, true, Size, 60 );[127X[104X
    [4X[28X"A5"[128X[104X
    [4X[25Xgap>[125X [27XOneCharacterTableName( IsSimple, true, Size, 20 );[127X[104X
    [4X[28Xfail[128X[104X
  [4X[32X[104X
  
  [1X3.1-5 NameOfEquivalentLibraryCharacterTable[101X
  
  [29X[2XNameOfEquivalentLibraryCharacterTable[102X( [3Xordtbl[103X ) [32X function
  [29X[2XNamesOfEquivalentLibraryCharacterTables[102X( [3Xordtbl[103X ) [32X function
  
  [33X[0;0YLet       [3Xordtbl[103X       be       an       ordinary      character      table.
  [2XNameOfEquivalentLibraryCharacterTable[102X  returns  the  [2XIdentifier[102X  ([14XReference:
  Identifier  (for  character  tables)[114X)  value of a character table in the [5XGAP[105X
  Character  Table  Library  that  is  permutation  equivalent  to [3Xordtbl[103X (see
  [2XTransformingPermutationsCharacterTables[102X                          ([14XReference:
  TransformingPermutationsCharacterTables[114X))  if such a character table exists,
  and [9Xfail[109X otherwise. [2XNamesOfEquivalentLibraryCharacterTables[102X returns the list
  of  all  [2XIdentifier[102X ([14XReference: Identifier (for character tables)[114X) values of
  character  tables  in  the  [5XGAP[105X Character Table Library that are permutation
  equivalent  to  [3Xordtbl[103X;  thus  an  empty list is returned in this case if no
  equivalent library table exists.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "Alternating", 5 );;[127X[104X
    [4X[25Xgap>[125X [27XNameOfEquivalentLibraryCharacterTable( tbl );[127X[104X
    [4X[28X"A5"[128X[104X
    [4X[25Xgap>[125X [27XNamesOfEquivalentLibraryCharacterTables( tbl );[127X[104X
    [4X[28X[ "A5", "A6M2" ][128X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "Cyclic", 17 );;[127X[104X
    [4X[25Xgap>[125X [27XNameOfEquivalentLibraryCharacterTable( tbl );[127X[104X
    [4X[28Xfail[128X[104X
    [4X[25Xgap>[125X [27XNamesOfEquivalentLibraryCharacterTables( tbl );[127X[104X
    [4X[28X[  ][128X[104X
  [4X[32X[104X
  
  
  [1X3.2 [33X[0;0YThe Interface to the [5XTomLib[105X[101X[1X Package[133X[101X
  
  [33X[0;0YThe  [5XGAP[105X  Character  Table Library contains ordinary character tables of all
  groups  for  which  the  [5XTomLib[105X package [NMP11] contains the table of marks.
  This  section describes the mapping between these character tables and their
  tables of marks.[133X
  
  [33X[0;0YIf  the  [5XTomLib[105X  package  is not loaded then [2XFusionToTom[102X ([14X3.2-4[114X) is the only
  available function from this section, but of course it is of little interest
  in this situation.[133X
  
  [1X3.2-1 TableOfMarks[101X
  
  [29X[2XTableOfMarks[102X( [3Xtbl[103X ) [32X method
  
  [33X[0;0YLet [3Xtbl[103X be an ordinary character table from the [5XGAP[105X Character Table Library,
  for the group [22XG[122X, say. If the [5XTomLib[105X package is loaded and contains the table
  of  marks  of  [22XG[122X  then  there  is a method based on [2XTableOfMarks[102X ([14XReference:
  TableOfMarks  (for  a string)[114X) that returns this table of marks. If there is
  no  such  table of marks but [3Xtbl[103X knows its underlying group then this method
  delegates to the group. Otherwise [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XTableOfMarks( CharacterTable( "A5" ) );[127X[104X
    [4X[28XTableOfMarks( "A5" )[128X[104X
    [4X[25Xgap>[125X [27XTableOfMarks( CharacterTable( "M" ) );[127X[104X
    [4X[28Xfail[128X[104X
  [4X[32X[104X
  
  [1X3.2-2 CharacterTable[101X
  
  [29X[2XCharacterTable[102X( [3Xtom[103X ) [32X method
  
  [33X[0;0YFor  a  table  of  marks  [3Xtom[103X,  this  method  for [2XCharacterTable[102X ([14XReference:
  CharacterTable  (for  a group)[114X) returns the character table corresponding to
  [3Xtom[103X.[133X
  
  [33X[0;0YIf [3Xtom[103X comes from the [5XTomLib[105X package, the character table comes from the [5XGAP[105X
  Character  Table  Library.  Otherwise,  if  [3Xtom[103X  stores  an  [2XUnderlyingGroup[102X
  ([14XReference:  UnderlyingGroup  (for  tables of marks)[114X) value then the task is
  delegated  to  a  [2XCharacterTable[102X  ([14XReference:  CharacterTable (for a group)[114X)
  method  for this group, and if no underlying group is available then [9Xfail[109X is
  returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCharacterTable( TableOfMarks( "A5" ) );[127X[104X
    [4X[28XCharacterTable( "A5" )[128X[104X
  [4X[32X[104X
  
  [1X3.2-3 FusionCharTableTom[101X
  
  [29X[2XFusionCharTableTom[102X( [3Xtbl[103X, [3Xtom[103X ) [32X method
  
  [33X[0;0YLet  [3Xtbl[103X be an ordinary character table from the [5XGAP[105X Character Table Library
  with  the  attribute  [2XFusionToTom[102X ([14X3.2-4[114X), and let [3Xtom[103X be the table of marks
  from  the [5XGAP[105X package [5XTomLib[105X that corresponds to [3Xtbl[103X. In this case, a method
  for  [2XFusionCharTableTom[102X  ([14XReference:  FusionCharTableTom[114X)  is available that
  returns  the fusion from [3Xtbl[103X to [3Xtom[103X that is given by the [2XFusionToTom[102X ([14X3.2-4[114X)
  value of [3Xtbl[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );[127X[104X
    [4X[28XCharacterTable( "A5" )[128X[104X
    [4X[25Xgap>[125X [27Xtom:= TableOfMarks( "A5" );[127X[104X
    [4X[28XTableOfMarks( "A5" )[128X[104X
    [4X[25Xgap>[125X [27XFusionCharTableTom( tbl, tom );[127X[104X
    [4X[28X[ 1, 2, 3, 5, 5 ][128X[104X
  [4X[32X[104X
  
  [1X3.2-4 FusionToTom[101X
  
  [29X[2XFusionToTom[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YIf  this  attribute  is set for an ordinary character table [3Xtbl[103X then the [5XGAP[105X
  Library  of Tables of Marks contains the table of marks of the group of [3Xtbl[103X,
  and the attribute value is a record with the following components.[133X
  
  [8X[10Xname[110X[108X
        [33X[0;6Ythe [2XIdentifier[102X ([14XReference: Identifier (for tables of marks)[114X) component
        of the table of marks of [3Xtbl[103X,[133X
  
  [8X[10Xmap[110X[108X
        [33X[0;6Ythe fusion map,[133X
  
  [8X[10Xtext[110X (optional)[108X
        [33X[0;6Ya string describing the status of the fusion, and[133X
  
  [8X[10Xperm[110X (optional)[108X
        [33X[0;6Ya  permutation  that  establishes the bijection between the classes of
        maximal  subgroups  in  the  table  of  marks (see [2XMaximalSubgroupsTom[102X
        ([14XReference:  MaximalSubgroupsTom[114X))  and the [2XMaxes[102X ([14X3.7-1[114X) list of [3Xtbl[103X.
        Applying the permutation to the sublist of permutation characters (see
        [2XPermCharsTom[102X  ([14XReference:  PermCharsTom  (via  fusion  map)[114X))  at  the
        positions  of  the  maximal subgroups of the table of marks yields the
        list  of  primitive permutation characters computed from the character
        tables  described by the [2XMaxes[102X ([14X3.7-1[114X) list. Usually, there is no [10Xperm[110X
        component,  which  means  that  the two lists of primitive permutation
        characters are equal. See Section [14X2.3-5[114X for an example.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XFusionToTom( CharacterTable( "2.A6" ) );[127X[104X
    [4X[28Xrec( map := [ 1, 2, 5, 4, 8, 3, 7, 11, 11, 6, 13, 6, 13 ], [128X[104X
    [4X[28X  name := "2.A6", perm := (4,5), [128X[104X
    [4X[28X  text := "fusion map is unique up to table autom." )[128X[104X
  [4X[32X[104X
  
  [1X3.2-5 NameOfLibraryCharacterTable[101X
  
  [29X[2XNameOfLibraryCharacterTable[102X( [3Xtomname[103X ) [32X function
  
  [33X[0;0YThis  function  returns the [2XIdentifier[102X ([14XReference: Identifier (for character
  tables)[114X)  value  of  the character table corresponding to the table of marks
  with [2XIdentifier[102X ([14XReference: Identifier (for tables of marks)[114X) value [3Xtomname[103X.
  If  no  such character table exists in the [5XGAP[105X Character Table Library or if
  the [5XTomLib[105X package is not loaded then [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XNameOfLibraryCharacterTable( "A5" );[127X[104X
    [4X[28X"A5"[128X[104X
    [4X[25Xgap>[125X [27XNameOfLibraryCharacterTable( "S5" );[127X[104X
    [4X[28X"A5.2"[128X[104X
  [4X[32X[104X
  
  
  [1X3.3 [33X[0;0YThe Interface to [5XGAP[105X[101X[1X's Group Libraries[133X[101X
  
  [33X[0;0YSometimes  it  is  useful  to  extend a character-theoretic computation with
  computations involving a group that has the character table in question. For
  many  character  tables  in  the  [5XGAP[105X Character Table Library, corresponding
  groups can be found in the various group libraries that are distributed with
  [5XGAP[105X.  This  section  describes  how  one  can access the library groups that
  belong to a given character table.[133X
  
  [1X3.3-1 GroupInfoForCharacterTable[101X
  
  [29X[2XGroupInfoForCharacterTable[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YLet [3Xtbl[103X be an ordinary character table from the [5XGAP[105X Character Table Library.
  [2XGroupInfoForCharacterTable[102X  returns a sorted list of pairs such that calling
  [2XGroupForGroupInfo[102X  ([14X3.3-4[114X)  with  any  of  these  pairs yields a group whose
  ordinary character table is [3Xtbl[103X, up to permutations of rows and columns.[133X
  
  [33X[0;0YNote  that  this group is in general [13Xnot[113X determined up to isomorphism, since
  nonisomorphic  groups  may  have  the  same character table (including power
  maps).[133X
  
  [33X[0;0YContrary  to  the attribute [2XUnderlyingGroup[102X ([14XReference: UnderlyingGroup (for
  tables  of  marks)[114X),  the entries of the [2XGroupInfoForCharacterTable[102X list for
  [3Xtbl[103X are not related to the ordering of the conjugacy classes in [3Xtbl[103X.[133X
  
  [33X[0;0YSources  for  this  attribute  are  the [5XGAP[105X databases of groups described in
  Chapter  [14X'Reference: Group Libraries'[114X, and the packages [5XAtlasRep[105X and [5XTomLib[105X,
  see  also [2XGroupForTom[102X ([14X3.3-5[114X) and [2XAtlasStabilizer[102X ([14X3.3-6[114X). If these packages
  are  not  loaded  then part of the information may be missing. If the [5XBrowse[105X
  (see [BL12]) is not loaded then [2XGroupInfoForCharacterTable[102X returns always an
  empty list.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XGroupInfoForCharacterTable( CharacterTable( "A5" ) );[127X[104X
    [4X[28X[ [ "AlternatingGroup", [ 5 ] ], [ "AtlasGroup", [ "A5" ] ], [128X[104X
    [4X[28X  [ "AtlasStabilizer", [ "A6", "A6G1-p6aB0" ] ], [128X[104X
    [4X[28X  [ "AtlasStabilizer", [ "A6", "A6G1-p6bB0" ] ], [128X[104X
    [4X[28X  [ "AtlasStabilizer", [ "L2(11)", "L211G1-p11aB0" ] ], [128X[104X
    [4X[28X  [ "AtlasStabilizer", [ "L2(11)", "L211G1-p11bB0" ] ], [128X[104X
    [4X[28X  [ "AtlasStabilizer", [ "L2(19)", "L219G1-p57aB0" ] ], [128X[104X
    [4X[28X  [ "AtlasStabilizer", [ "L2(19)", "L219G1-p57bB0" ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "A5.2", 1 ] ], [ "AtlasSubgroup", [ "A6", 1 ] ][128X[104X
    [4X[28X    , [ "AtlasSubgroup", [ "A6", 2 ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "J2", 9 ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "L2(109)", 4 ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "L2(109)", 5 ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "L2(11)", 1 ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "L2(11)", 2 ] ], [128X[104X
    [4X[28X  [ "AtlasSubgroup", [ "S6(3)", 11 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "2^4:A5", 68 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "2^4:A5`", 56 ] ], [ "GroupForTom", [ "A5" ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "A5xA5", 85 ] ], [ "GroupForTom", [ "A6", 21 ] ],[128X[104X
    [4X[28X  [ "GroupForTom", [ "J2", 99 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(109)", 25 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(11)", 15 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(125)", 18 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(16)", 18 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(19)", 17 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(29)", 19 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "L2(31)", 25 ] ], [128X[104X
    [4X[28X  [ "GroupForTom", [ "S5", 18 ] ], [ "PSL", [ 2, 4 ] ], [128X[104X
    [4X[28X  [ "PSL", [ 2, 5 ] ], [ "PerfectGroup", [ 60, 1 ] ], [128X[104X
    [4X[28X  [ "PrimitiveGroup", [ 5, 4 ] ], [ "PrimitiveGroup", [ 6, 1 ] ], [128X[104X
    [4X[28X  [ "PrimitiveGroup", [ 10, 1 ] ], [ "SmallGroup", [ 60, 5 ] ], [128X[104X
    [4X[28X  [ "TransitiveGroup", [ 5, 4 ] ], [ "TransitiveGroup", [ 6, 12 ] ], [128X[104X
    [4X[28X  [ "TransitiveGroup", [ 10, 7 ] ], [ "TransitiveGroup", [ 12, 33 ] ],[128X[104X
    [4X[28X  [ "TransitiveGroup", [ 15, 5 ] ], [ "TransitiveGroup", [ 20, 15 ] ],[128X[104X
    [4X[28X  [ "TransitiveGroup", [ 30, 9 ] ] ][128X[104X
  [4X[32X[104X
  
  [1X3.3-2 KnowsSomeGroupInfo[101X
  
  [29X[2XKnowsSomeGroupInfo[102X( [3Xtbl[103X ) [32X property
  
  [33X[0;0YFor  an ordinary character table [3Xtbl[103X, this function returns [9Xtrue[109X if the list
  returned  by  [2XGroupInfoForCharacterTable[102X  ([14X3.3-1[114X)  is  nonempty,  and  [9Xfalse[109X
  otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XKnowsSomeGroupInfo( CharacterTable( "A5" ) );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XKnowsSomeGroupInfo( CharacterTable( "M" ) );[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X3.3-3 CharacterTableForGroupInfo[101X
  
  [29X[2XCharacterTableForGroupInfo[102X( [3Xinfo[103X ) [32X attribute
  
  [33X[0;0YThis function is a partial inverse of [2XGroupInfoForCharacterTable[102X ([14X3.3-1[114X). If
  [3Xinfo[103X  has  the  form  [10X[  [110X[22Xfuncname[122X[10X, [110X[22Xargs[122X[10X ][110X and occurs in the list returned by
  [2XGroupInfoForCharacterTable[102X  ([14X3.3-1[114X)  when  called  with a character table [22Xt[122X,
  say,  then [2XCharacterTableForGroupInfo[102X returns a character table from the [5XGAP[105X
  Character Table that is equivalent to [22Xt[122X. Otherwise [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCharacterTableForGroupInfo( [ "AlternatingGroup", [ 5 ] ] );[127X[104X
    [4X[28XCharacterTable( "A5" )[128X[104X
  [4X[32X[104X
  
  [1X3.3-4 GroupForGroupInfo[101X
  
  [29X[2XGroupForGroupInfo[102X( [3Xinfo[103X ) [32X attribute
  
  [33X[0;0YIf  [3Xinfo[103X  has the form [10X[ [110X[22Xfuncname[122X[10X, [110X[22Xargs[122X[10X ][110X and occurs in the list returned by
  [2XGroupInfoForCharacterTable[102X  ([14X3.3-1[114X)  when called with a character table [22Xtbl[122X,
  say,  then  [2XGroupForGroupInfo[102X  returns a group that is described by [3Xinfo[103X and
  whose  character  table  is  equal  to  [22Xtbl[122X,  up to permutations of rows and
  columns. Otherwise [9Xfail[109X is returned.[133X
  
  [33X[0;0YTypically,  [22Xfuncname[122X  is  a string that is the name of a global [5XGAP[105X function
  [22Xfun[122X,  say,  and  [22Xargs[122X  is  a  list  of arguments for this function such that
  [10XCallFuncList( [110X[22Xfun[122X[10X, [110X[22Xargs[122X[10X )[110X yields the desired group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XGroupForGroupInfo( [ "AlternatingGroup", [ 5 ] ] );[127X[104X
    [4X[28XAlt( [ 1 .. 5 ] )[128X[104X
    [4X[25Xgap>[125X [27XGroupForGroupInfo( [ "PrimitiveGroup", [ 5, 4 ] ] );[127X[104X
    [4X[28XA(5)[128X[104X
  [4X[32X[104X
  
  [1X3.3-5 GroupForTom[101X
  
  [29X[2XGroupForTom[102X( [3Xtomidentifier[103X[, [3Xrepnr[103X] ) [32X attribute
  
  [33X[0;0YLet  [3Xtomidentifier[103X  be  a  string  that is an admissible name for a table of
  marks  from the [5XGAP[105X Library of Tables of Marks (the [5XTomLib[105X package [NMP11]).
  Called   with   one   argument,   [2XGroupForTom[102X  returns  the  [2XUnderlyingGroup[102X
  ([14XReference:  UnderlyingGroup  (for  tables of marks)[114X) value of this table of
  marks.  If  a  positive integer [3Xrepnr[103X is given as the second argument then a
  representative of the [3Xrepnr[103X-th class of subgroups of this group is returned,
  see [2XRepresentativeTom[102X ([14XReference: RepresentativeTom[114X).[133X
  
  [33X[0;0YThe  string[10X"GroupForTom"[110X  may  occur  in the entries of the list returned by
  [2XGroupInfoForCharacterTable[102X   ([14X3.3-1[114X),   and   therefore  may  be  called  by
  [2XGroupForGroupInfo[102X ([14X3.3-4[114X).[133X
  
  [33X[0;0YIf  the  [5XTomLib[105X  package  is not loaded or if it does not contain a table of
  marks with identifier [3Xtomidentifier[103X then [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:= GroupForTom( "A5" );  u:= GroupForTom( "A5", 2 );[127X[104X
    [4X[28XGroup([ (2,4)(3,5), (1,2,5) ])[128X[104X
    [4X[28XGroup([ (2,3)(4,5) ])[128X[104X
    [4X[25Xgap>[125X [27XIsSubset( g, u );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XGroupForTom( "J4" );[127X[104X
    [4X[28Xfail[128X[104X
  [4X[32X[104X
  
  [1X3.3-6 AtlasStabilizer[101X
  
  [29X[2XAtlasStabilizer[102X( [3Xgapname[103X, [3Xrepname[103X ) [32X function
  
  [33X[0;0YLet  [3Xgapname[103X  be  an  admissible name of a group [22XG[122X, say, in the sense of the
  [5XAtlasRep[105X  package  (see  Section [14X'AtlasRep: Group Names Used in the AtlasRep
  Package'[114X), and [3Xrepname[103X be a string that occurs as the [10Xrepname[110X component of a
  record      returned      by      [2XAllAtlasGeneratingSetInfos[102X      ([14XAtlasRep:
  AllAtlasGeneratingSetInfos[114X) when this function is called with first argument
  [3Xgapname[103X  and  further  arguments  [2XIsTransitive[102X ([14XReference: IsTransitive[114X) and
  [9Xtrue[109X.   In   this   case,   [3Xrepname[103X   describes   a  transitive  permutation
  representation of [22XG[122X.[133X
  
  [33X[0;0YIf  the  [5XAtlasRep[105X  package  is  available  and  if  the permutation group in
  question  can  be  fetched  then [2XAtlasStabilizer[102X returns a point stabilizer.
  Otherwise [9Xfail[109X is returned.[133X
  
  [33X[0;0YThe string[10X"AtlasStabilizer"[110X may occur in the entries of the list returned by
  [2XGroupInfoForCharacterTable[102X   ([14X3.3-1[114X),   and   therefore  may  be  called  by
  [2XGroupForGroupInfo[102X ([14X3.3-4[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XAtlasStabilizer( "A5","A5G1-p5B0");[127X[104X
    [4X[28XGroup([ (1,2)(3,4), (2,3,4) ])[128X[104X
  [4X[32X[104X
  
  [1X3.3-7 IsNontrivialDirectProduct[101X
  
  [29X[2XIsNontrivialDirectProduct[102X( [3Xtbl[103X ) [32X property
  
  [33X[0;0YFor  an  ordinary  character  table  [3Xtbl[103X  of the group [22XG[122X, say, this function
  returns  [9Xtrue[109X  if  [22XG[122X  is  the  direct  product  of smaller groups, and [9Xfalse[109X
  otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmx:= Maxes( CharacterTable( "J1" ) );[127X[104X
    [4X[28X[ "L2(11)", "2^3.7.3", "2xA5", "19:6", "11:10", "D6xD10", "7:6" ][128X[104X
    [4X[25Xgap>[125X [27XList( mx, name -> IsNontrivialDirectProduct([127X[104X
    [4X[25X>[125X [27X                         CharacterTable( name ) ) );[127X[104X
    [4X[28X[ false, false, true, false, false, true, false ][128X[104X
  [4X[32X[104X
  
  
  [1X3.4 [33X[0;0YUnipotent Characters of Finite Groups of Lie Type[133X[101X
  
  [33X[0;0YUnipotent  characters are defined for finite groups of Lie type. For most of
  these  groups  whose  character table is in the [5XGAP[105X Character Table Library,
  the unipotent characters are known and parametrised by labels. This labeling
  is  due  to  the  work  of  P.  Deligne  and G. Lusztig, thus the label of a
  unipotent character is called its Deligne-Lusztig name (see [Cla05]).[133X
  
  [1X3.4-1 UnipotentCharacter[101X
  
  [29X[2XUnipotentCharacter[102X( [3Xtbl[103X, [3Xlabel[103X ) [32X function
  
  [33X[0;0YLet [3Xtbl[103X be the ordinary character table of a finite group of Lie type in the
  [5XGAP[105X  Character  Table  Library.  [2XUnipotentCharacter[102X  returns  the  unipotent
  character with Deligne-Lusztig name [3Xlabel[103X.[133X
  
  [33X[0;0YThe  object  [3Xlabel[103X  must  be  either  a  list  of integers which describes a
  partition  (if  the finite group of Lie type is of the type [22XA_l[122X or [22X^2A_l[122X), a
  list  of  two lists of integers which describes a symbol (if the group is of
  classical  type  other  than  [22XA_l[122X and [22X^2A_l[122X) or a string (if the group is of
  exceptional type).[133X
  
  [33X[0;0YA  call of [2XUnipotentCharacter[102X sets the attribute [2XDeligneLusztigNames[102X ([14X3.4-2[114X)
  for [3Xtbl[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "U4(2).2" );;[127X[104X
    [4X[25Xgap>[125X [27XUnipotentCharacter( tbl, [ [ 0, 1 ], [ 2 ] ] );[127X[104X
    [4X[28XCharacter( CharacterTable( "U4(2).2" ), [128X[104X
    [4X[28X[ 15, 7, 3, -3, 0, 3, -1, 1, 0, 1, -2, 1, 0, 0, -1, 5, 1, 3, -1, 2, [128X[104X
    [4X[28X  -1, 1, -1, 0, 0 ] )[128X[104X
  [4X[32X[104X
  
  [1X3.4-2 DeligneLusztigNames[101X
  
  [29X[2XDeligneLusztigNames[102X( [3Xobj[103X ) [32X attribute
  
  [33X[0;0YFor   a   character   table  [3Xobj[103X,  [2XDeligneLusztigNames[102X  returns  a  list  of
  Deligne-Lusztig  names  of  the the unipotent characters of [3Xobj[103X. If the [22Xi[122X-th
  entry is bound then it is the name of the [22Xi[122X-th irreducible character of [3Xobj[103X,
  and  this  character  is  irreducible.  If  an  irreducible character is not
  unipotent the accordant position is unbound.[133X
  
  [33X[0;0Y[2XDeligneLusztigNames[102X called with a string [3Xobj[103X, calls itself with the argument
  [10XCharacterTable( [3Xobj[103X[10X )[110X.[133X
  
  [33X[0;0YWhen  [2XDeligneLusztigNames[102X  is called with a record [3Xobj[103X then this should have
  the  components  [10Xisoc[110X,  [10Xisot[110X,  [10Xl[110X,  and  [10Xq[110X,  where  [10Xisoc[110X and [10Xisot[110X are strings
  defining the isogeny class and isogeny type, and [10Xl[110X and [10Xq[110X are integers. These
  components define a finite group of Lie type uniquely. Moreover this way one
  can  choose Deligne-Lusztig names for a prescribed type in those cases where
  a  group has more than one interpretation as a finite group of Lie type, see
  the example below. (The first call of [2XDeligneLusztigNames[102X sets the attribute
  value in the character table.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XDeligneLusztigNames( "L2(7)" );[127X[104X
    [4X[28X[ [ 2 ],,,, [ 1, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "L2(7)" );[127X[104X
    [4X[28XCharacterTable( "L3(2)" )[128X[104X
    [4X[25Xgap>[125X [27XHasDeligneLusztigNames( tbl );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XDeligneLusztigNames( rec( isoc:= "A", isot:= "simple",[127X[104X
    [4X[25X>[125X [27X                             l:= 2, q:= 2 ) );[127X[104X
    [4X[28X[ [ 3 ],,, [ 2, 1 ],, [ 1, 1, 1 ] ][128X[104X
  [4X[32X[104X
  
  [1X3.4-3 DeligneLusztigName[101X
  
  [29X[2XDeligneLusztigName[102X( [3Xchi[103X ) [32X function
  
  [33X[0;0YFor    a   unipotent   character   [3Xchi[103X,   [2XDeligneLusztigName[102X   returns   the
  Deligne-Lusztig name of [3Xchi[103X. For that, [2XDeligneLusztigNames[102X ([14X3.4-2[114X) is called
  with the argument [10XUnderlyingCharacterTable( [3Xchi[103X[10X )[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "F4(2)" );;[127X[104X
    [4X[25Xgap>[125X [27XDeligneLusztigName( Irr( tbl )[9] );[127X[104X
    [4X[28Xfail[128X[104X
    [4X[25Xgap>[125X [27XHasDeligneLusztigNames( tbl );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XList( [ 1 .. 8 ], i -> DeligneLusztigName( Irr( tbl )[i] ) );[127X[104X
    [4X[28X[ "phi{1,0}", "[ [ 2 ], [  ] ]", "phi{2,4}''", "phi{2,4}'", [128X[104X
    [4X[28X  "F4^II[1]", "phi{4,1}", "F4^I[1]", "phi{9,2}" ][128X[104X
  [4X[32X[104X
  
  [1X3.4-4 KnowsDeligneLusztigNames[101X
  
  [29X[2XKnowsDeligneLusztigNames[102X( [3Xtbl[103X ) [32X property
  
  [33X[0;0YFor  an  ordinary  character  table  [3Xtbl[103X,  this  function  returns  [9Xtrue[109X  if
  [2XDeligneLusztigNames[102X ([14X3.4-2[114X) returns the list of Deligne-Lusztig names of the
  unipotent characters of [3Xtbl[103X, and [9Xfalse[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XKnowsDeligneLusztigNames( CharacterTable( "A5" ) );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XKnowsDeligneLusztigNames( CharacterTable( "M" ) );[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  
  [1X3.5 [33X[0;0Y[5XBrowse[105X[101X[1X Applications Provided by [5XCTblLib[105X[101X[1X[133X[101X
  
  [33X[0;0YThe  following  functions  are  available  only  if  the  [5XGAP[105X package [5XBrowse[105X
  (see [BL12])  is  loaded.  The  function  [2XDisplayCTblLibInfo[102X  ([14X3.5-1[114X)  shows
  details  about  an ordinary or modular character table in a pager, the other
  functions can be used to show the following information via browse tables.[133X
  
  [30X    [33X[0;6YAn  overview of the [5XGAP[105X Character Table Library (see [2XBrowseCTblLibInfo[102X
        ([14X3.5-2[114X)),[133X
  
  [30X    [33X[0;6Ydetails  tables  about  ordinary  and  modular  character  tables (see
        [2XBrowseCTblLibInfo[102X ([14X3.5-2[114X)),[133X
  
  [30X    [33X[0;6Yordinary  and  modular  character  tables,  (cf. [2XBrowse (for character
        tables)[102X ([14XBrowse: Browse (for character tables)[114X)),[133X
  
  [30X    [33X[0;6Ydecomposition   matrices   (cf.   [2XBrowseDecompositionMatrix[102X   ([14XBrowse:
        BrowseDecompositionMatrix[114X)),[133X
  
  [30X    [33X[0;6Ythe  atomic  irrationalities that occur in [5XAtlas[105X character tables (see
        [2XBrowseCommonIrrationalities[102X ([14X3.5-3[114X)),[133X
  
  [30X    [33X[0;6Yan  overview  of the differences between the character table data from
        version   1.1.3   and   version  1.2  of  the  [5XCTblLib[105X  package,  (see
        [2XBrowseCTblLibDifferences[102X ([14X3.5-4[114X)).[133X
  
  [33X[0;0YThe  functions  [2XBrowseCTblLibInfo[102X  ([14X3.5-2[114X)  and  [2XBrowseCommonIrrationalities[102X
  ([14X3.5-3[114X)  are  also  reachable  in the list of choices shown by [2XBrowseGapData[102X
  ([14XBrowse: BrowseGapData[114X).[133X
  
  [1X3.5-1 DisplayCTblLibInfo[101X
  
  [29X[2XDisplayCTblLibInfo[102X( [3Xtbl[103X ) [32X function
  [29X[2XDisplayCTblLibInfo[102X( [3Xname[103X[, [3Xp[103X] ) [32X function
  [29X[2XStringCTblLibInfo[102X( [3Xtbl[103X ) [32X function
  [29X[2XStringCTblLibInfo[102X( [3Xname[103X[, [3Xp[103X] ) [32X function
  
  [33X[0;0YWhen  [2XDisplayCTblLibInfo[102X  is  called  with  an ordinary or modular character
  table  [3Xtbl[103X  then an overview of the information available for this character
  table   is   shown   in   a  pager  (see  [2XPager[102X  ([14XReference:  Pager[114X)).  When
  [2XDisplayCTblLibInfo[102X  is  called with a string [3Xname[103X that is an admissible name
  for  an  ordinary character table then the overview for this character table
  is  shown.  If  a  prime  integer  [3Xp[103X  is  entered  in  addition to [3Xname[103X then
  information about the [3Xp[103X-modular character table is shown instead.[133X
  
  [33X[0;0YAn interactive variant of [2XDisplayCTblLibInfo[102X is [2XBrowseCTblLibInfo[102X ([14X3.5-2[114X).[133X
  
  [33X[0;0YThe  string  that  is  shown  by  [2XDisplayCTblLibInfo[102X  can  be computed using
  [2XStringCTblLibInfo[102X, with the same arguments.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XStringCTblLibInfo( CharacterTable( "A5" ) );;[127X[104X
    [4X[25Xgap>[125X [27XStringCTblLibInfo( CharacterTable( "A5" ) mod 2 );;[127X[104X
    [4X[25Xgap>[125X [27XStringCTblLibInfo( "A5" );;[127X[104X
    [4X[25Xgap>[125X [27XStringCTblLibInfo( "A5", 2 );;[127X[104X
  [4X[32X[104X
  
  [1X3.5-2 BrowseCTblLibInfo[101X
  
  [29X[2XBrowseCTblLibInfo[102X( [[3Xfunc[103X, [3Xval[103X, [3X...[103X] ) [32X function
  [29X[2XBrowseCTblLibInfo[102X( [3Xtbl[103X ) [32X function
  [29X[2XBrowseCTblLibInfo[102X( [3Xname[103X[, [3Xp[103X] ) [32X function
  [6XReturns:[106X  [33X[0;10Ynothing.[133X
  
  [33X[0;0YCalled  without  arguments,  [2XBrowseCTblLibInfo[102X shows the contents of the [5XGAP[105X
  Character Table Library in an [13Xoverview table[113X, see below.[133X
  
  [33X[0;0YWhen  arguments  [3Xfunc[103X,  [3Xval[103X, [3X...[103X are given that are admissible arguments for
  [2XAllCharacterTableNames[102X  ([14X3.1-3[114X) –in particular, the first argument must be a
  function–  then  the  overview  is restricted to those character tables that
  match the conditions.[133X
  
  [33X[0;0YWhen  [2XBrowseCTblLibInfo[102X  is called with a character table [3Xtbl[103X then a [13Xdetails
  table[113X is opened that gives an overview of the information available for this
  character table. When [2XBrowseCTblLibInfo[102X is called with a string [3Xname[103X that is
  an  admissible  name  for an ordinary character table then the details table
  for  this  character  table  is  opened.  If a prime integer [3Xp[103X is entered in
  addition  to  [3Xname[103X  then  information about the [3Xp[103X-modular character table is
  shown instead.[133X
  
  [33X[0;0YThe overview table has the following columns.[133X
  
  [8X[10Xname[110X[108X
        [33X[0;6Ythe [2XIdentifier[102X ([14XReference: Identifier (for character tables)[114X) value of
        the table,[133X
  
  [8X[10Xsize[110X[108X
        [33X[0;6Ythe group order,[133X
  
  [8X[10Xnccl[110X[108X
        [33X[0;6Ythe number of conjugacy classes,[133X
  
  [8X[10Xfusions -> G[110X[108X
        [33X[0;6Ythe list of identifiers of tables on which a fusion to the given table
        is stored, and[133X
  
  [8X[10Xfusions G ->[110X[108X
        [33X[0;6Ythe  list  of identifiers of tables to which a fusion is stored on the
        given table.[133X
  
  [33X[0;0YThe  details  table for a given character table has exactly one column. Only
  part  of  the  functionality  of the function [2XNCurses.BrowseGeneric[102X ([14XBrowse:
  NCurses.BrowseGeneric[114X)  is available in such a table. On the other hand, the
  details tables contain [21Xlinks[121X to other Browse applications, for example other
  details tables.[133X
  
  [33X[0;0YWhen  one [21Xclicks[121X on a row or an entry in the overview table then the details
  table  for  the character table in question is opened. One can navigate from
  this  details  table  to  a  related  one,  by  first [13Xactivating[113X a link (via
  repeatedly  hitting  the  [12XTab[112X  key)  and then [13Xfollowing[113X the active link (via
  hitting the [12XReturn[112X key). If mouse actions are enabled (by hitting the [12XM[112X key,
  see  [2XNCurses.UseMouse[102X ([14XBrowse: NCurses.UseMouse[114X)) then one can alternatively
  activate a link and click on it via mouse actions.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xtab:= [ 9 ];;         # hit the TAB key[127X[104X
    [4X[25Xgap>[125X [27Xn:= [ 14, 14, 14 ];;  # ``do nothing'' input (means timeout)[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( Concatenation([127X[104X
    [4X[25X>[125X [27X        # select the first column, search for the name A5[127X[104X
    [4X[25X>[125X [27X        "sc/A5", [ NCurses.keys.DOWN, NCurses.keys.DOWN,[127X[104X
    [4X[25X>[125X [27X        NCurses.keys.RIGHT, NCurses.keys.ENTER ],[127X[104X
    [4X[25X>[125X [27X        # open the details table for A5[127X[104X
    [4X[25X>[125X [27X        [ NCurses.keys.ENTER ], n, n,[127X[104X
    [4X[25X>[125X [27X        # activate the link to the character table of A5[127X[104X
    [4X[25X>[125X [27X        tab, n, n,[127X[104X
    [4X[25X>[125X [27X        # show the character table of A5[127X[104X
    [4X[25X>[125X [27X        [ NCurses.keys.ENTER ], n, n, "seddrr", n, n,[127X[104X
    [4X[25X>[125X [27X        # close this character table[127X[104X
    [4X[25X>[125X [27X        "Q",[127X[104X
    [4X[25X>[125X [27X        # activate the link to the maximal subgroup D10[127X[104X
    [4X[25X>[125X [27X        tab, tab, n, n,[127X[104X
    [4X[25X>[125X [27X        # jump to the details table for D10[127X[104X
    [4X[25X>[125X [27X        [ NCurses.keys.ENTER ], n, n,[127X[104X
    [4X[25X>[125X [27X        # close this details table[127X[104X
    [4X[25X>[125X [27X        "Q",[127X[104X
    [4X[25X>[125X [27X        # activate the link to a decomposition matrix[127X[104X
    [4X[25X>[125X [27X        tab, tab, tab, tab, tab, n, n,[127X[104X
    [4X[25X>[125X [27X        # show the decomposition matrix[127X[104X
    [4X[25X>[125X [27X        [ NCurses.keys.ENTER ], n, n,[127X[104X
    [4X[25X>[125X [27X        # close this table[127X[104X
    [4X[25X>[125X [27X        "Q",[127X[104X
    [4X[25X>[125X [27X        # activate the link to the AtlasRep overview[127X[104X
    [4X[25X>[125X [27X        tab, tab, tab, tab, tab, tab, tab, n, n,[127X[104X
    [4X[25X>[125X [27X        # show the overview[127X[104X
    [4X[25X>[125X [27X        [ NCurses.keys.ENTER ], n, n,[127X[104X
    [4X[25X>[125X [27X        # close this table[127X[104X
    [4X[25X>[125X [27X        "Q",[127X[104X
    [4X[25X>[125X [27X        # and quit the applications[127X[104X
    [4X[25X>[125X [27X        "QQ" ) );[127X[104X
    [4X[25Xgap>[125X [27XBrowseCTblLibInfo();[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( false );[127X[104X
  [4X[32X[104X
  
  [1X3.5-3 BrowseCommonIrrationalities[101X
  
  [29X[2XBrowseCommonIrrationalities[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ya  list  of  info  records  for the irrationalities that have been
            [21Xclicked[121X in visual mode.[133X
  
  [33X[0;0YThis  function  shows  the  atomic  irrationalities  that occur in character
  tables  in  the  [5XAtlas[105X  of  Finite  Groups [CCNPW85]  or the [5XAtlas[105X of Brauer
  Characters [JLPW95],  together  with descriptions of their reductions to the
  relevant  finite  fields  in  a browse table with the following columns. The
  format is the same as in [JLPW95, Appendix 1].[133X
  
  [8X[10Xname[110X[108X
        [33X[0;6Ythe  name  of  the  irrationality,  see [2XAtlasIrrationality[102X ([14XReference:
        AtlasIrrationality[114X),[133X
  
  [8X[10Xp[110X[108X
        [33X[0;6Ythe characteristic,[133X
  
  [8X[10Xvalue mod C_n[110X[108X
        [33X[0;6Ythe  corresponding  reduction  to  a finite field of characteristic [10Xp[110X,
        given   by   the  residue  modulo  the  [10Xn[110X-th  Conway  polynomial  (see
        [2XConwayPolynomial[102X ([14XReference: ConwayPolynomial[114X)),[133X
  
  [8X[10Xn[110X[108X
        [33X[0;6Ythe   degree   of  the  smallest  extension  of  the  prime  field  of
        characteristic [10Xp[110X that contains the reduction.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xn:= [ 14, 14, 14 ];;  # ``do nothing'' input (means timeout)[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( Concatenation([127X[104X
    [4X[25X>[125X [27X        # categorize the table by the characteristics[127X[104X
    [4X[25X>[125X [27X        "scrsc", n, n,[127X[104X
    [4X[25X>[125X [27X        # expand characteristic 2[127X[104X
    [4X[25X>[125X [27X        "srxq", n, n,[127X[104X
    [4X[25X>[125X [27X        # scroll down[127X[104X
    [4X[25X>[125X [27X        "DDD", n, n,[127X[104X
    [4X[25X>[125X [27X        # and quit the application[127X[104X
    [4X[25X>[125X [27X        "Q" ) );[127X[104X
    [4X[25Xgap>[125X [27XBrowseCommonIrrationalities();;[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( false );[127X[104X
  [4X[32X[104X
  
  [1X3.5-4 BrowseCTblLibDifferences[101X
  
  [29X[2XBrowseCTblLibDifferences[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ynothing.[133X
  
  [33X[0;0Y[2XBrowseCTblLibDifferences[102X  lists  the differences of the character table data
  between version 1.1.3 and version 1.2 of the [5XCTblLib[105X package.[133X
  
  [33X[0;0YThe  overview table contains one row for each change, where [21Xchange[121X means the
  addition,  modification,  or  removal  of information, and has the following
  columns.[133X
  
  [8X[10XIdentifier[110X[108X
        [33X[0;6Ythe [2XIdentifier[102X ([14XReference: Identifier (for character tables)[114X) value of
        the character table,[133X
  
  [8X[10XType[110X[108X
        [33X[0;6Yone of [10XNEW[110X (for the addition of previously not available information),
        [10X***[110X (for a bugfix), or [10XC[110X (for a change that does not really fix a bug,
        typically a change motivated by a new consistency criterion),[133X
  
  [8X[10XWhat[110X[108X
        [33X[0;6Yone  of  [10Xclass  fusions[110X  (some  class  fusions from or to the table in
        question  were  changed),  [10Xmaxes[110X  (the  value  of  the attribute [2XMaxes[102X
        ([14X3.7-1[114X) was changed), [10Xnames[110X (incorrect admissible names were removed),
        [10Xtable[110X  or  [10Xtable  mod [110X[22Xp[122X (the ordinary or [22Xp[122X-modular character table was
        changed),  [10Xmaxes[110X  (the  value  of  the  attribute  [2XMaxes[102X  ([14X3.7-1[114X)  was
        changed),  [10Xtom  fusion[110X (the value of the attribute [2XFusionToTom[102X ([14X3.2-4[114X)
        was changed),[133X
  
  [8X[10XDescription[110X[108X
        [33X[0;6Ya description what has been changed,[133X
  
  [8X[10XFlag[110X[108X
        [33X[0;6Yone of [10XDup[110X (the table is a duplicate, in the sense of [2XIsDuplicateTable[102X
        ([14X3.6-1[114X)),  [10XDer[110X  (the  row belongs to a character table that is derived
        from  other  tables),  [10XFus[110X  (the  row belongs to the addition of class
        fusions),  [10XMax[110X  (the  row  belongs to a character table that was added
        because  its group is maximal in another group), or [10XNone[110X (in all other
        cases  –these  rows  are  to  some  extent  the interesting ones). The
        information  in  this  column  can be used to restrict the overview to
        interesting subsets.[133X
  
  [33X[0;0YThe  full  functionality  of  the  function  [2XNCurses.BrowseGeneric[102X  ([14XBrowse:
  NCurses.BrowseGeneric[114X) is available.[133X
  
  [33X[0;0YThe following examples show the input for[133X
  
  [30X    [33X[0;6Yrestricting the overview to error rows,[133X
  
  [30X    [33X[0;6Yrestricting the overview to [21XNone[121X rows, and[133X
  
  [30X    [33X[0;6Yrestricting the overview to rows about a particular table.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xn:= [ 14, 14, 14, 14, 14, 14 ];;  # ``do nothing''[127X[104X
    [4X[25Xgap>[125X [27Xenter:= [ NCurses.keys.ENTER ];;[127X[104X
    [4X[25Xgap>[125X [27Xdown:= [ NCurses.keys.DOWN ];;[127X[104X
    [4X[25Xgap>[125X [27Xright:= [ NCurses.keys.RIGHT ];;[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( Concatenation([127X[104X
    [4X[25X>[125X [27X       "scr",                    # select the 'Type' column,[127X[104X
    [4X[25X>[125X [27X       "f***", enter,            # filter rows containing '***',[127X[104X
    [4X[25X>[125X [27X       n, "Q" ) );               # and quit[127X[104X
    [4X[25Xgap>[125X [27XBrowseCTblLibDifferences();[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( Concatenation([127X[104X
    [4X[25X>[125X [27X       "scrrrr",                 # select the 'Flag' column,[127X[104X
    [4X[25X>[125X [27X       "fNone", enter,           # filter rows containing 'None',[127X[104X
    [4X[25X>[125X [27X       n, "Q" ) );               # and quit[127X[104X
    [4X[25Xgap>[125X [27XBrowseCTblLibDifferences();[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( Concatenation([127X[104X
    [4X[25X>[125X [27X       "fM",                     # filter rows containing 'M',[127X[104X
    [4X[25X>[125X [27X       down, down, down, right,  # but 'M' as a whole word,[127X[104X
    [4X[25X>[125X [27X       enter,                    #[127X[104X
    [4X[25X>[125X [27X       n, "Q" ) );               # and quit[127X[104X
    [4X[25Xgap>[125X [27XBrowseCTblLibDifferences();[127X[104X
    [4X[25Xgap>[125X [27XBrowseData.SetReplay( false );[127X[104X
  [4X[32X[104X
  
  
  [1X3.6 [33X[0;0YDuplicates of Library Character Tables[133X[101X
  
  [33X[0;0YIt  can  be  useful  to  deal with different instances of [21Xthe same[121X character
  table.  An  example  is  the situation that a group [22XG[122X, say, contains several
  classes  of  isomorphic maximal subgroups that have different class fusions;
  the  attribute  [2XMaxes[102X  ([14X3.7-1[114X)  of  the  character  table of [22XG[122X then contains
  several  entries  that  belong to the same group, but the identifiers of the
  character tables are different.[133X
  
  [33X[0;0YOn  the  other  hand, it can be useful to consider only one of the different
  instances  when  one  searches for character tables with certain properties,
  for example using [2XOneCharacterTableName[102X ([14X3.1-4[114X).[133X
  
  [33X[0;0YFor  that, we introduce the following concept. A character table [22Xt_1[122X is said
  to  be  a  [13Xduplicate[113X  of  another  character  table  [22Xt_2[122X  if  the  attribute
  [2XConstructionInfoCharacterTable[102X  ([14X3.7-4[114X) is set in [22Xt_1[122X, if the first entry of
  the  attribute  value is [10X"ConstructPermuted"[110X, and if the second entry of the
  attribute  value  is  the  [2XIdentifier[102X  ([14XReference: Identifier (for character
  tables)[114X) value of [22Xt_2[122X. We call [22Xt_2[122X the [13Xmain table[113X of [22Xt_1[122X.[133X
  
  [1X3.6-1 IsDuplicateTable[101X
  
  [29X[2XIsDuplicateTable[102X( [3Xtbl[103X ) [32X property
  
  [33X[0;0YFor  an  ordinary character table [3Xtbl[103X, this function returns [9Xtrue[109X if [3Xtbl[103X was
  constructed  from another character table by permuting rows and columns, and
  [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YOne   application   of   this  function  is  to  restrict  the  search  with
  [2XAllCharacterTableNames[102X  ([14X3.1-3[114X)  to  exactly one library character table for
  each class of permutation equivalent tables.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XMaxes( CharacterTable( "A6" ) );[127X[104X
    [4X[28X[ "A5", "A6M2", "3^2:4", "s4", "A6M5" ][128X[104X
    [4X[25Xgap>[125X [27XIsDuplicateTable( CharacterTable( "A5" ) );[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsDuplicateTable( CharacterTable( "A6M2" ) );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X3.6-2 IdentifierOfMainTable[101X
  
  [29X[2XIdentifierOfMainTable[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YIf  [3Xtbl[103X  is  an ordinary character table that is a duplicate in the sense of
  the  introduction  to  Section [14X3.6[114X then this function returns the [2XIdentifier[102X
  ([14XReference:  Identifier  (for  character tables)[114X) value of the main table of
  [3Xtbl[103X. Otherwise [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XMaxes( CharacterTable( "A6" ) );[127X[104X
    [4X[28X[ "A5", "A6M2", "3^2:4", "s4", "A6M5" ][128X[104X
    [4X[25Xgap>[125X [27XIdentifierOfMainTable( CharacterTable( "A5" ) );[127X[104X
    [4X[28Xfail[128X[104X
    [4X[25Xgap>[125X [27XIdentifierOfMainTable( CharacterTable( "A6M2" ) );[127X[104X
    [4X[28X"A5"[128X[104X
  [4X[32X[104X
  
  [1X3.6-3 IdentifiersOfDuplicateTables[101X
  
  [29X[2XIdentifiersOfDuplicateTables[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YFor  an  ordinary  character  table  [3Xtbl[103X,  this function returns the list of
  [2XIdentifier[102X  ([14XReference:  Identifier  (for character tables)[114X) values of those
  character tables from the [5XGAP[105X Character Table Library that are duplicates of
  [3Xtbl[103X, in the sense of the introduction to Section [14X3.6[114X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XMaxes( CharacterTable( "A6" ) );[127X[104X
    [4X[28X[ "A5", "A6M2", "3^2:4", "s4", "A6M5" ][128X[104X
    [4X[25Xgap>[125X [27XIdentifiersOfDuplicateTables( CharacterTable( "A5" ) );[127X[104X
    [4X[28X[ "A6M2" ][128X[104X
    [4X[25Xgap>[125X [27XIdentifiersOfDuplicateTables( CharacterTable( "A6M2" ) );[127X[104X
    [4X[28X[  ][128X[104X
  [4X[32X[104X
  
  
  [1X3.7 [33X[0;0YAttributes for Library Character Tables[133X[101X
  
  [33X[0;0YThis  section  describes  certain  attributes which are set only for certain
  (not necessarily all) character tables from the [5XGAP[105X Character Table Library.
  The  attribute  values  are  part  of the database, there are no methods for
  [13Xcomputing[113X them.[133X
  
  [33X[0;0YOther  such  attributes  and  properties  are  described  in manual sections
  because  the  context fits better. These attributes are [2XFusionToTom[102X ([14X3.2-4[114X),
  [2XGroupInfoForCharacterTable[102X      ([14X3.3-1[114X),     [2XKnowsSomeGroupInfo[102X     ([14X3.3-2[114X),
  [2XIsNontrivialDirectProduct[102X      ([14X3.3-7[114X),     [2XDeligneLusztigNames[102X     ([14X3.4-2[114X),
  [2XDeligneLusztigName[102X      ([14X3.4-3[114X),      [2XKnowsDeligneLusztigNames[102X      ([14X3.4-4[114X),
  [2XIsDuplicateTable[102X ([14X3.6-1[114X), and [2XCASInfo[102X ([14X4.4-1[114X).[133X
  
  [1X3.7-1 Maxes[101X
  
  [29X[2XMaxes[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YIf  this attribute is set for an ordinary character table [3Xtbl[103X then the value
  is  a  list  of  identifiers of the ordinary character tables of all maximal
  subgroups of [3Xtbl[103X. There is no default method to [13Xcompute[113X this value from [3Xtbl[103X.[133X
  
  [33X[0;0YIf the [2XMaxes[102X value of [3Xtbl[103X is stored then it lists exactly one representative
  for  each  conjugacy class of maximal subgroups of the group of [3Xtbl[103X, and the
  character  tables  of  these  maximal  subgroups  are  available  in the [5XGAP[105X
  Character  Table  Library, and compatible class fusions to [3Xtbl[103X are stored on
  these tables (see the example in Section [14X2.3-5[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "M11" );;[127X[104X
    [4X[25Xgap>[125X [27XHasMaxes( tbl );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xmaxes:= Maxes( tbl );[127X[104X
    [4X[28X[ "A6.2_3", "L2(11)", "3^2:Q8.2", "A5.2", "2.S4" ][128X[104X
    [4X[25Xgap>[125X [27XCharacterTable( maxes[1] );[127X[104X
    [4X[28XCharacterTable( "A6.2_3" )[128X[104X
  [4X[32X[104X
  
  [1X3.7-2 ProjectivesInfo[101X
  
  [29X[2XProjectivesInfo[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YIf  this attribute is set for an ordinary character table [3Xtbl[103X then the value
  is a list of records, each with the following components.[133X
  
  [8X[10Xname[110X[108X
        [33X[0;6Ythe [2XIdentifier[102X ([14XReference: Identifier (for character tables)[114X) value of
        the  character  table  [10Xmult[110X of the covering whose faithful irreducible
        characters are described by the record,[133X
  
  [8X[10Xchars[110X[108X
        [33X[0;6Ya  list  of values lists of faithful projective irreducibles; only one
        representative  of  each  family  of Galois conjugates is contained in
        this list, and[133X
  
  [8X[10Xmap[110X[108X
        [33X[0;6Ya  list  of  positions that maps each class of [3Xtbl[103X to that preimage in
        [10Xmult[110X  for  which  the  entries in [10Xchars[110X give the values. In a sense, a
        projection  map  is  an inverse of the factor fusion from the table of
        the  covering  to  the  given  table  (see  [2XProjectionMap[102X  ([14XReference:
        ProjectionMap[114X)).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XProjectivesInfo( CharacterTable( "A5" ) );[127X[104X
    [4X[28X[ rec( [128X[104X
    [4X[28X      chars := [ [ 2, 0, -1, E(5)+E(5)^4, E(5)^2+E(5)^3 ], [128X[104X
    [4X[28X          [ 2, 0, -1, E(5)^2+E(5)^3, E(5)+E(5)^4 ], [128X[104X
    [4X[28X          [ 4, 0, 1, -1, -1 ], [ 6, 0, 0, 1, 1 ] ], [128X[104X
    [4X[28X      map := [ 1, 3, 4, 6, 8 ], name := "2.A5" ) ][128X[104X
  [4X[32X[104X
  
  [1X3.7-3 ExtensionInfoCharacterTable[101X
  
  [29X[2XExtensionInfoCharacterTable[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YLet [3Xtbl[103X be the ordinary character table of a group [22XG[122X, say. If this attribute
  is set for [3Xtbl[103X then the value is a list of length two, the first entry being
  a  string  [10XM[110X  that  describes the Schur multiplier of [22XG[122X and the second entry
  being  a  string [10XA[110X that describes the outer automorphism group of [22XG[122X. Trivial
  multiplier or outer automorphism group are denoted by an empty string.[133X
  
  [33X[0;0YIf  [3Xtbl[103X is a table from the [5XGAP[105X Character Table Library and [22XG[122X is (nonabelian
  and)  simple then the value is set. In this case, an admissible name for the
  character  table  of  a  universal  covering  group  of  [22XG[122X (if this table is
  available  and  different from [3Xtbl[103X) is given by the concatenation of [10XM[110X, [10X"."[110X,
  and  the  [2XIdentifier[102X ([14XReference: Identifier (for character tables)[114X) value of
  [3Xtbl[103X.  Analogously,  an  admissible  name  for  the  character  table  of the
  automorphism  group of [22XG[122X (if this table is available and different from [3Xtbl[103X)
  is  given by the concatenation of the [2XIdentifier[102X ([14XReference: Identifier (for
  character tables)[114X) value of [3Xtbl[103X, [10X"."[110X, and [10XA[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XExtensionInfoCharacterTable( CharacterTable( "A5" ) );[127X[104X
    [4X[28X[ "2", "2" ][128X[104X
  [4X[32X[104X
  
  [1X3.7-4 ConstructionInfoCharacterTable[101X
  
  [29X[2XConstructionInfoCharacterTable[102X( [3Xtbl[103X ) [32X attribute
  
  [33X[0;0YIf  this attribute is set for an ordinary character table [3Xtbl[103X then the value
  is  a list that describes how this table was constructed. The first entry is
  a  string  that  is  the  identifier of the function that was applied to the
  pre-table record; the remaining entries are the arguments for that function,
  except that the pre-table record must be prepended to these arguments.[133X
  
