  
  [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 from the [5XGAP[105X Character Table Library,
  this  function  returns  [9Xtrue[109X  if [3Xtbl[103X was constructed from another character
  table    by    permuting    rows    and    columns,    via   the   attribute
  [2XConstructionInfoCharacterTable[102X  ([14X3.7-4[114X).  Otherwise  [9Xfalse[109X  is  returned, in
  particular  if  [3Xtbl[103X  is  not  a character table from the [5XGAP[105X Character Table
  Library.[133X
  
  [33X[0;0YOne   application   of   this  function  is  to  restrict  the  search  with
  [2XAllCharacterTableNames[102X  ([14X3.1-3[114X) to only one library character table for each
  class  of permutation equivalent tables. Note that this does property of the
  search  result  cannot  be  guaranteed if private character tables have been
  added to the library, see [2XNotifyCharacterTable[102X ([14X4.7-4[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 [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
  
