52 Character Table Libraries

The utility of GAP for character theoretical tasks depends on the availability of many known character tables, so there is a lot of tables in the GAP group collection.

There are three different libraries of character tables, namely ordinary character tables, Brauer tables and generic character tables.

Of course, these libraries are ``open'' in the sense that they shall be extended. So we would be grateful for any further tables of interest sent to us for inclusion into our libraries.

This chapter mainly explains properties not of single tables but of the libraries and their structure; for the format of character tables, see Generic Character Tables.

The chapter informs about Contents of the Table Libraries), item the sublibraries of ATLAS tables (see ATLAS Tables) and CAS tables (see CAS Tables), Organization of the Table Libraries), item and how to extend a library (see How to Extend a Table Library).

Subsections

  1. Contents of the Table Libraries
  2. Selecting Library Tables
  3. ATLAS Tables
  4. Examples of the ATLAS format for GAP tables
  5. CAS Tables
  6. Organization of the Table Libraries
  7. How to Extend a Table Library
  8. FirstNameCharTable
  9. FileNameCharTable

52.1 Contents of the Table Libraries

As stated at the beginning of the chapter, there are three libraries of character tables: ordinary character tables, Brauer tables, and generic character tables.

Ordinary Character Tables

Two different aspects are useful to list up the ordinary character tables

available to GAP:
the aspect of source of the tables and that of connections between the tables.

ATLAS Tables) and the CAS library of character tables. Many ATLAS tables are contained in the CAS library, and difficulties may arise because the succession of characters or classes in CAS tables and Character Table Records for the relations between the (at least) two forms of the same table. A large subset of the CAS tables is the set of tables of Sylow normalizers of sporadic simple groups as published in~Ost86, so this may be viewed as another source.

To avoid confusions about the actual format of a table, authorship and so on, the text component of the table contains the information

origin: ATLAS of finite groups:

for ATLAS tables (see ATLAS Tables)

origin: Ostermann:

for tables of Ost86 and

origin: CAS library:

for any table of the CAS table library that is contained neither in the ATLAS nor in Ost86.

If one is interested in the aspect of connections between the tables, i.e., the internal structure of the library of ordinary tables (which corresponds to the access to character tables, as described in CharTable), the contents can be listed up the following way:

We have item all ATLAS tables (see ATLAS Tables), i.e. the tables of the simple groups which are contained in the ATLAS, and the tables of cyclic and bicyclic extensions of these groups; item most tables of maximal subgroups of sporadic simple groups (not all for HN, F3+, B, M); item some tables of maximal subgroups of other ATLAS tables (which?) item most nontrivial Sylow normalizers of sporadic simple groups as printed in~Ost86, where nontrivial means that the group is not contained in p:(p-1) (not J_4N2, Co_1N2, Co_1N5, all of Fi_{23}, Fi_{24}^{prime}, B, M, HN, and Fi_{22}N2) item some tables of element centralizers item some tables of Sylow subgroups item a few other tables, e.g. W(F4)
namely which?

Brauer Tables

This library contains the tables of the modular ATLAS which are yet known. Some of them still contain unknowns (see Unknown). Since there is ongoing work in computing new tables, this library is changed nearly every day.

These Brauer tables contain the information

origin: modular ATLAS of finite groups

in their text component.

Generic Character Tables

At the moment, generic tables of the following groups are available in GAP (see CharTable):

item alternating groups item cyclic groups, item dihedral groups, item some linear groups, item quaternionic (dicyclic) groups item Suzuki groups, item symmetric groups, item wreath products of a group with a symmetric group (see CharTableWreathSymmetric), item Weyl groups of types B_n and D_n

52.2 Selecting Library Tables

Single library tables can be selected by their name (see CharTable for admissible names of library tables, and Contents of the Table Libraries for the organization of the library).

In general it does not make sense to select tables with respect to Group Libraries). But it may be useful to get an overview of all library tables, or all library tables of simple groups, or all library tables of sporadic simple groups. It is sufficient to know an admissible name of these tables, so they need not be loaded. A table can then be read using CharTable CharTable.

The mechanism is similar to that for group libraries.

AllCharTableNames():

returns a list with an admissible name for every library table,

AllCharTableNames( IsSimple ):

returns a list with an admissible name for every library table of a simple group,

AllCharTableNames( IsSporadicSimple ):

returns a list with an admissible name for every library table of a sporadic simple group.

Admissible names of maximal subgroups of sporadic simple groups are stored in the component maxes of the tables of the sporadic simple groups. Thus

    gap> maxes:= CharTable( "M11" ).maxes;
    [ "A6.2_3", "L2(11)", "3^2:Q8.2", "A5.2", "2.S4" ] 

returns the list containing these names for the Mathieu group M_{11}, and

    gap> List( maxes, CharTable );
    [ CharTable( "A6.2_3" ), CharTable( "L2(11)" ),
      CharTable( "3^2:Q8.2" ), CharTable( "A5.2" ), CharTable( "2.S4" ) ] 

will read them from the library files.

52.3 ATLAS Tables

defttquotechar13 setlengthunitlength0.1cm

The GAP group collection contains all character tables that are included in the Atlas of finite groups (CCN85, from now on called ATLAS) and the Brauer tables contained in the modular ATLAS (JLPW95). Although the Brauer tables form a library of their own, they are described here since all conventions for ATLAS tables stated here hold for Brauer tables, too.

Additionally some conventions are necessary about follower characters!

These tables have the information

origin: ATLAS of finite groups

resp.

origin: modular ATLAS of finite groups

in their text component, further on they are simply called ATLAS tables.

In addition to the information given in Chapters 6--8 of the ATLAS which tell how to read the printed tables, there are some rules relating these to the corresponding GAP tables.

Improvements

Note that for the GAP library not the printed ATLAS is relevant but the revised version given by the list of Improvements to the ATLAS which can be got from Cambridge.

Also some tables are regarded as ATLAS tables which are not printed in the ATLAS but available in ATLAS format from Cambridge; at the moment, these are the tables related to L_2(49), L_2(81), L_6(2), O_8^-(3), O_8^+(3) and S_{10}(2).

Powermaps

In a few cases (namely the tables of 3.McL, 3_2.U_4(3) and its covers, 3_2.U_4(3).2_3 and its covers) the powermaps are not uniquely determined by the given information but determined up to matrix automorphisms (see MatAutomorphisms) of the characters; then the first possible map according to lexicographical ordering was chosen, and the automorphisms are listed in the text component of the concerned table.

Projective Characters

For any nontrivial multiplier of a simple group or of an automorphic extension of a simple group, there is a component projectives in the table of G that is a list of records with the names of the covering group (e.g. "12_1.U4(3)") and the list of those faithful characters which are printed in the ATLAS (so--called it proxy characters).

Projections

ATLAS tables contain the component projections: For any covering group of G for which the character table is available in ATLAS format a record is stored there containing components name (the name of the cover table) and map (the projection map); the projection maps any class of G to that preimage in the cover for that the column is printed in the ATLAS; it is called g_0 in Chapter 7, Section 14 there.

(In a sense, a projection map is an inverse of the factor fusion from the cover table to the actual table (see ProjectionMap).)

Tables of Isoclinic Groups

As described in Chapter 6, Section 7 and Chapter 7, Section 18 of the ATLAS, there exist two different groups of structure 2.G.2 for a simple group G which are isoclinic. The ATLAS table in the library is that which is printed in the ATLAS, the isoclinic variant can be got using CharTableIsoclinic CharTableIsoclinic.

Succession of characters and classes

(Throughout this paragraph, G always means the involved simple group.) item For G itself, the succession of classes and characters in the GAP table is as printed in the ATLAS. item For an automorphic extension G.a, there are three types of characters: item If a character chi of G extends to G.a, the different extensions chi^0,chi^1,ldots,chi^{a-1} are consecutive (see ATLAS, Chapter 7, Section 16). item If some characters of G fuse to give a single character of G.a, the position of that character is the position of the first involved character of G. item If both, extension and fusion, occur, the result characters are consecutive, and each replaces the first involved character. item Similarly, there are different types of classes for an automorphic extension G.a: item If some classes collapse, the result class replaces the first involved class. item For a > 2, any proxy class and its followers are consecutive; if there are more than one followers for a proxy class (the only case that occurs is for a = 5), the succession of followers is the natural one of corresponding galois automorphisms (see ATLAS, Chapter 7, Section 19). The classes of G.a_1 always precede the outer classes of G.a_2 for a_1, a_2 dividing a and a_1 < a_2. This succession is like in the ATLAS, with the only exception U_3(8).6. item For a central extension M.G, there are different types of characters: item Every character can be regarded as a faithful character of the factor group m.G, where m divides M. Characters faithful for the same factor group are consecutive like in the ATLAS, the succession of these sets of characters is given by the order of precedence 1, 2, 4, 3, 6, 12 for the different values of m. item If m > 2, a faithful character of m.G that is printed in the ATLAS (a so-called mboxem proxy) represents one or more mboxem followers, this means galois conjugates of the proxy; in any GAP table, the proxy precedes its followers; the case m = 12 is the only one that occurs with more than one follower for a proxy, then the three followers are ordered according to the corresponding galois automorphisms 5, 7, 11 (in that succession). item For the classes of a central extension we have: item The preimages of a G-class in M.G are subsequent, the succession is the same as that of the lifting order rows in the ATLAS. item The primitive roots of unity chosen to represent the generating central element (class 2) are E(3), E(4), E(6)^5 (= E(2) * E(3)) and E(12)^7 (= E(3) * E(4)) for m = 3, 4, 6 and 12, respectively. item For tables of bicyclic extensions m.G.a, both the rules for automorphic and central extensions hold; additionally we have: item Whenever classes of the subgroup m.G collapse or characters fuse, the result class resp. character replaces the first involved class resp. character. item Extensions of a character are subsequent, and the extensions of a proxy character precede the extensions of its followers. item Preimages of a class are subsequent, and the preimages of a proxy class precede the preimages of its followers.

52.4 Examples of the ATLAS format for GAP tables

ATLAS Tables, listing up the ATLAS format and the table displayed by GAP.

First, let G be the trivial group. The cyclic group C_6 of order 6 can be viewed in several ways:

item As a downward extension of the factor group C_2 which contains G as a subgroup; equivalently, as an upward extension of the subgroup C_3 which has a factor group G:

put(-2,23) put(0,29)line(1,0)14 put(0,15)line(1,0)14 put(0,14)line(1,0)14 put(0,0)line(1,0)14 put(15,29)line(1,0)14 put(15,15)line(1,0)14 put(15,14)line(1,0)14 put(15,0)line(1,0)14 put(0,15)line(0,1)14 put(0,0)line(0,1)14 put(14,15)line(0,1)14 put(15,15)line(0,1)14 put(29,15)line(0,1)14 put(14,0)line(0,1)14 put(15,0)line(0,1)14 put(29,0)line(0,1)14 put(7,7)makebox(0,0)3.G put(22,7)makebox(0,0)3.G.2 put(7,22)makebox(0,0)G put(22,22)makebox(0,0)G.2 put(37,52)makebox(0,0)[tl] smalltt baselineskip0.9ex parskip0.2ex

; @ ; ; @ par par 1 1 par p power A par pttquote part A par ind 1A fus ind 2A par par chi_1 + 1 : ++ 1 par par ind 1 fus ind 2 par 3 6 par 3 6 par par chi_2 o2 1 : oo2 1

put(83,52)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex

2 1 1 1 1 1 1 par 3 1 1 1 1 1 1 par par 1a 3a 3b 2a 6a 6b par 2P 1a 3b 3a 1a 3b 3a par 3P 1a 1a 1a 2a 2a 2a par par X.1 1 1 1 1 1 1 par X.2 1 1 1 -1 -1 -1 par X.3 1 A /A 1 A /A par X.4 1 A /A -1 -A -/A par X.5 1 /A A 1 /A A par X.6 1 /A A -1 -/A -A par par A = E(3) par = (-1+ER(-3))/2 = b3 par

X.1, X.2 extend chi_1. X.3, X.4 extend the proxy character chi_2. X.5, X.6 extend its follower. 1a, 3a, 3b are preimages of 1A, and 2a, 6a, 6b are preimages of 2A.

item As a downward extension of the factor group C_3 which contains G as a subgroup; equivalently, as an upward extension of the subgroup C_2 which has a factor group G:

put(-2,23) put(0,29)line(1,0)14 put(0,15)line(1,0)14 put(0,14)line(1,0)14 put(0,0)line(1,0)14 put(15,29)line(1,0)14 put(15,15)line(1,0)14 put(15,14)line(1,0)14 put(15,0)line(1,0)14 put(0,15)line(0,1)14 put(0,0)line(0,1)14 put(14,15)line(0,1)14 put(15,15)line(0,1)14 put(29,15)line(0,1)14 put(14,0)line(0,1)14 put(15,0)line(0,1)14 put(29,0)line(0,1)14 put(7,7)makebox(0,0)2.G put(22,7)makebox(0,0)2.G.3 put(7,22)makebox(0,0)G put(22,22)makebox(0,0)G.3 put(37,52)makebox(0,0)[tl] smalltt baselineskip0.9ex parskip0.2ex

; @ ; ; @ par par 1 1 par p power A par pttquote part A par ind 1A fus ind 3A par par chi_1 + 1 : +oo 1 par par ind 1 fus ind 3 par 2 6 par par chi_2 + 1 : +oo 1 par

put(83,52)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex

2 1 1 1 1 1 1 par 3 1 1 1 1 1 1 par par 1a 2a 3a 6a 3b 6b par 2P 1a 1a 3b 3b 3a 3a par 3P 1a 2a 1a 2a 1a 2a par par X.1 1 1 1 1 1 1 par X.2 1 1 A A /A /A par X.3 1 1 /A /A A A par X.4 1 -1 1 -1 1 -1 par X.5 1 -1 A -A /A -/A par X.6 1 -1 /A -/A A -A par par A = E(3) par = (-1+ER(-3))/2 = b3 par

X.1-X.3 extend chi_1, X.4-X.6 extend chi_2. 1a, 2a are preimages of 1A. 3a, 6a are preimages of the proxy class 3A, and 3b, 6b are preimages of its follower class.

item As a downward extension of the factor groups C_3 and C_2 which have G as a factor group:

put(-2,8) put(0,59)line(1,0)14 put(0,45)line(1,0)14 put(0,44)line(1,0)14 put(0,30)line(1,0)14 put(0,29)line(1,0)14 put(0,15)line(1,0)14 put(0,14)line(1,0)14 put(0,0)line(1,0)14 put(0,45)line(0,1)14 put(0,30)line(0,1)14 put(0,15)line(0,1)14 put(0,0)line(0,1)14 put(14,45)line(0,1)14 put(14,30)line(0,1)14 put(14,15)line(0,1)14 put(14,0)line(0,1)14 put(7,7)makebox(0,0)6.G put(7,22)makebox(0,0)3.G put(7,37)makebox(0,0)2.G put(7,52)makebox(0,0)G put(37,67)makebox(0,0)[tl] smalltt baselineskip0.9ex parskip0.2ex

; @ par par 1 par p power par pttquote part par ind 1A par par chi_1 + 1 par par ind 1 par 2 par par chi_2 + 1 par par ind 1 par 3 par 3 par par chi_3 o2 1 par par ind 1 par 6 par 3 par 2 par 3 par 6 par par chi_4 o2 1 par

put(83,67)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex

2 1 1 1 1 1 1 par 3 1 1 1 1 1 1 par par 1a 6a 3a 2a 3b 6b par 2P 1a 3a 3b 1a 3a 3b par 3P 1a 2a 1a 2a 1a 2a par par X.1 1 1 1 1 1 1 par X.2 1 -1 1 -1 1 -1 par X.3 1 A /A 1 A /A par X.4 1 /A A 1 /A A par X.5 1 -A /A -1 A -/A par X.6 1 -/A A -1 /A -A par par A = E(3) par = (-1+ER(-3))/2 = b3 par

X.1, X.2 correspond to chi_1, chi_2, respectively; X.3, X.5 correspond to the proxies chi_3, chi_4, and X.4, X.6 to their followers. The factor fusion onto 3.G is [ 1, 2, 3, 1, 2, 3 ], that onto G.2 is [ 1, 2, 1, 2, 1, 2 ].

item As an upward extension of the subgroups C_3 or C_2 which both contain a subgroup G:

put(-2,38) put(0,0)line(1,0)14 put(0,0)line(0,1)14 put(0,14)line(1,0)14 put(14,0)line(0,1)14 put(7,7)makebox(0,0)G put(15,0)line(1,0)14 put(15,0)line(0,1)14 put(15,14)line(1,0)14 put(29,0)line(0,1)14 put(22,7)makebox(0,0)G.2 put(30,0)line(1,0)14 put(30,0)line(0,1)14 put(30,14)line(1,0)14 put(44,0)line(0,1)14 put(37,7)makebox(0,0)G.3 put(45,0)line(1,0)14 put(45,0)line(0,1)14 put(45,14)line(1,0)14 put(59,0)line(0,1)14 put(52,7)makebox(0,0)G.6 put(-2,30)makebox(0,0)[tl] smalltt baselineskip0.9ex parskip0.2ex

; @ ; ; @ ; ; @ ; ; @ par par 1 1 1 1 par p power A A AA par pttquote part A A AA par ind 1A fus ind 2A fus ind 3A fus ind 6A par par chi_1 + 1 : ++ 1 : +oo 1 :+oo+oo 1 par

put(83,52)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex

2 1 1 1 1 1 1 par 3 1 1 1 1 1 1 par par 1a 2a 3a 3b 6a 6b par 2P 1a 1a 3b 3a 3b 3a par 3P 1a 2a 1a 1a 2a 2a par par X.1 1 1 1 1 1 1 par X.2 1 -1 A /A -A -/A par X.3 1 1 /A A /A A par X.4 1 -1 1 1 -1 -1 par X.5 1 1 A /A A /A par X.6 1 -1 /A A -/A -A par par A = E(3) par = (-1+ER(-3))/2 = b3 par

1a, 2a correspond to 1A, 2A, respectively; 3a, 6a correspond to the proxies 3A, 6A, and 3b, 6b to their followers.

The second example explains the fusion case; again, G is the trivial group.

put(0,33) put(0,59)line(1,0)14 put(0,45)line(1,0)14 put(0,44)line(1,0)14 put(0,30)line(1,0)14 put(0,29)line(1,0)14 put(0,15)line(1,0)14 put(0,14)line(1,0)14 put(0,0)line(1,0)14 put(0,45)line(0,1)14 put(0,30)line(0,1)14 put(0,15)line(0,1)14 put(0,0)line(0,1)14 put(14,45)line(0,1)14 put(14,30)line(0,1)14 put(14,15)line(0,1)14 put(14,0)line(0,1)14 put(15,59)line(1,0)14 put(15,45)line(1,0)14 put(15,44)line(1,0)14 put(15,30)line(1,0)14 put(15,29)line(1,0)14 put(15,14)line(1,0)14 put(15,45)line(0,1)14 put(15,30)line(0,1)14 put(15,15)line(0,1)14 put(15,0)line(0,1)14 put(29,45)line(0,1)14 put(29,30)line(0,1)14 put(7,7)makebox(0,0)6.G put(7,22)makebox(0,0)3.G put(7,37)makebox(0,0)2.G put(7,52)makebox(0,0)G put(22,7)makebox(0,0)6.G.2 put(22,22)makebox(0,0)3.G.2 put(22,37)makebox(0,0)2.G.2 put(22,52)makebox(0,0)G.2 put(39,92)makebox(0,0)[tl] smalltt baselineskip0.9ex parskip0.2ex

; @ ; ; @ par par 1 1 par p power A par pttquote part A par ind 1A fus ind 2A par par chi_1 + 1 : ++ 1 par par ind 1 fus ind 2 par 2 2 par par chi_2 + 1 : ++ 1 par par ind 1 fus ind 2 par 3 par 3 par par chi_3 o2 1 * + par par ind 1 fus ind 2 par 6 2par 3 par 2 par 3 par 6 par par chi_4 o2 1 * + par

put(85,92)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex

3.G.2 par par 2 1 . 1 par 3 1 1 . par par 1a 3a 2a par 2P 1a 3a 1a par 3P 1a 1a 2a par par X.1 1 1 1 par X.2 1 1 -1 par X.3 2 -1 . par par par 6.G.2 par par 2 2 1 1 2 2 2 par 3 1 1 1 1 . . par par 1a 6a 3a 2a 2b 2c par 2P 1a 3a 3a 1a 1a 1a par 3P 1a 2a 1a 2a 2b 2c par par Y.1 1 1 1 1 1 1 par Y.2 1 1 1 1 -1 -1 par Y.3 1 -1 1 -1 1 -1 par Y.4 1 -1 1 -1 -1 1 par Y.5 2 -1 -1 2 . . par Y.6 2 1 -1 -2 . . par

The tables of G, 2.G, 3.G, 6.G and G.2 are known from the first example, that of 2.G.2 cong V_4 will be given in the next one. So here we only print the GAP tables of 3.G.2 cong D_6 and 6.G.2 cong D_{12}:

In 3.G.2, X.1, X.2 extend chi_1; chi_3 and its follower fuse to give X.3, and two of the preimages of 1A collapse.

In 6.G.2, Y.1-Y.4 are extensions of chi_1, chi_2, so these characters are the inflated characters from 2.G.2 (with respect to the factor fusion [ 1, 2, 1, 2, 3, 4 ]). Y.5 is inflated from 3.G.2 (with respect to the factor fusion [ 1, 2, 2, 1, 3, 3 ]), and Y.6 is the result of the fusion of chi_4 and its follower.

For the last example, let G be the group 2^2. Consider the following tables:

put(0,93) put(0,29)line(1,0)14 put(0,15)line(1,0)14 put(0,14)line(1,0)14 put(0,0)line(1,0)14 put(15,29)line(1,0)14 put(15,15)line(1,0)14 put(15,14)line(1,0)14 put(15,0)line(1,0)14 put(0,15)line(0,1)14 put(0,0)line(0,1)14 put(14,15)line(0,1)14 put(15,15)line(0,1)14 put(29,15)line(0,1)14 put(14,0)line(0,1)14 put(15,0)line(0,1)14 put(29,0)line(0,1)14 put(7,7)makebox(0,0)2.G put(22,7)makebox(0,0)2.G.3 put(7,22)makebox(0,0)G put(22,22)makebox(0,0)G.3

put(81,91)line(0,1)8 put(39,122)makebox(0,0)[tl] smalltt baselineskip0.9ex parskip0.2ex

; @ @ @ @ ; ; @ par par 4 4 4 4 1 par p power A A A A par pttquote part A A A A par ind 1A 2A 2B 2C fus ind 3A par par chi_1 + 1 1 1 1 : +oo 1 par par chi_2 + 1 1 -1 -1 . + 0 par par chi_3 + 1 -1 1 -1 . par par chi_4 + 1 -1 -1 1 . par par ind 1 4 4 4 fus ind 3 par 2 6 par par chi_5 - 2 0 0 0 : -oo 1 par

put(102,122)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex G.3par par 2 2 2 . . par 3 1 . 1 1 par par 1a 2a 3a 3b par 2P 1a 1a 3b 3a par 3P 1a 2a 1a 1a par par X.1 1 1 1 1 par X.2 1 1 A /A par X.3 1 1 /A A par X.4 3 -1 . . par par A = E(3) par = (-1+ER(-3))/2 = b3 par

put(0,71)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex 2.Gpar par 2 3 3 2 2 2par par 1a 2a 4a 4b 4cpar 2P 1a 1a 2a 1a 1apar 3P 1a 2a 4a 4b 4cpar par X.1 1 1 1 1 1par X.2 1 1 1 -1 -1par X.3 1 1 -1 1 -1par X.4 1 1 -1 -1 1par X.5 2 -2 . . .par

put(50,71)makebox(0,0)[tl] smalltt baselineskip2.7ex parskip0ex 2.G.3par par 2 3 3 2 1 1 1 1par 3 1 1 . 1 1 1 1par par 1a 2a 4a 3a 6a 3b 6bpar 2P 1a 1a 2a 3b 3b 3a 3apar 3P 1a 2a 4a 1a 2a 1a 2apar par X.1 1 1 1 1 1 1 1par X.2 1 1 1 A A /A /Apar X.3 1 1 1 /A /A A Apar X.4 3 3 -1 . . . .par X.5 2 -2 . 1 1 1 1par X.6 2 -2 . A -A /A -/Apar X.7 2 -2 . /A -/A A -Apar par A = E(3) par = (-1+ER(-3))/2 = b3 par

In the table of G.3 cong A_4, the characters chi_2, chi_3 and chi_4 fuse, and the classes 2A, 2B and 2C collapse. To get the table of 2.G cong Q_8 one just has to split the class 2A and adjust the representative orders. Finally, the table of 2.G.3 cong SL_2(3) is given; the subgroup fusion corresponding to the injection 2.G hookrightarrow 2.G.3 is [ 1, 2, 3, 3, 3 ], and the factor fusion corresponding to the epimorphism 2.G.3 rightarrow G.3 is [ 1, 1, 2, 3, 3, 4, 4 ].

52.5 CAS Tables

All tables of the CAS table library are available in GAP, too. This sublibrary has been completely revised, i.e., errors have been corrected and powermaps have been completed.

Any CAS table is accessible by each of its CAS names, that is, the table name or the filename (see CharTable):

    gap> t:= CharTable( "m10" );; t.name;
    "A6.2_3"

One does, however, not always get the original CAS table: In many cases (mostly ATLAS tables, see ATLAS Tables) not only the name but also the succession of classes and characters has changed; the records in the component CAS of the table (see Character Table Records) contain the permutations which must be applied to classes and characters to get the original CAS table:

    gap> t.CAS;
    [ rec(
          name := "m10",
          permchars := (3,5)(4,8,7,6),
          permclasses := (),
          text := [ 'n', 'a', 'm', 'e', 's', ':', ' ', ' ', ' ', ' ',
              ' ', 'm', '1', '0', '\n', 'o', 'r', 'd', 'e', 'r', ':',
              ' ', ' ', ' ', ' ', ' ', '2', '^', '4', '.', '3', '^', '2',
              '.', '5', ' ', '=', ' ', '7', '2', '0', '\n', 'n', 'u',
              'm', 'b', 'e', 'r', ' ', 'o', 'f', ' ', 'c', 'l', 'a', 's',
              's', 'e', 's', ':', ' ', '8', '\n', 's', 'o', 'u', 'r',
              'c', 'e', ':', ' ', ' ', ' ', ' ', 'c', 'a', 'm', 'b', 'r',
              'i', 'd', 'g', 'e', ' ', 'a', 't', 'l', 'a', 's', '\n',
              'c', 'o', 'm', 'm', 'e', 'n', 't', 's', ':', ' ', ' ', 'p',
              'o', 'i', 'n', 't', ' ', 's', 't', 'a', 'b', 'i', 'l', 'i',
              'z', 'e', 'r', ' ', 'o', 'f', ' ', 'm', 'a', 't', 'h', 'i',
              'e', 'u', '-', 'g', 'r', 'o', 'u', 'p', ' ', 'm', '1', '1',
              '\n', 't', 'e', 's', 't', ':', ' ', ' ', ' ', ' ', ' ',
              ' ', 'o', 'r', 't', 'h', ',', ' ', 'm', 'i', 'n', ',', ' ',
              's', 'y', 'm', '[', '3', ']', ' ', ' ', ' ', ' ', ' ', ' ',
              ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
              ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\n' ] ) ]

The subgroup fusions were computed anew; their record component text tells if the fusion is equal to that in the CAS library --of course modulo the permutation of classes.

Note that the fusions are neither tested to be consistent for any two subgroups of a group and their intersection, nor tested to be consistent with respect to composition of maps.

52.6 Organization of the Table Libraries

The primary files are TBLNAME/ctadmin.tbl and TBLNAME/ctprimar.tbl. The former contains the evaluation function CharTableLibrary (see CharTable) and some utilities, the latter contains the global variable LIBLIST which encodes all information where to find library tables; the file TBLNAME/ctprimar.tbl can be constructed from the data files of the table libraries using the awk script maketbl in the etc directory of the GAP distribution.

Also the secondary files are all stored in the directory TBLNAME; they are

    clmelab.tbl   clmexsp.tbl   ctadmin.tbl   ctbalter.tbl  ctbatres.tbl
    ctbconja.tbl  ctbfisc1.tbl  ctbfisc2.tbl  ctbline1.tbl  ctbline2.tbl
    ctbline3.tbl  ctbline4.tbl  ctbline5.tbl  ctbmathi.tbl  ctbmonst.tbl
    ctborth1.tbl  ctborth2.tbl  ctborth3.tbl  ctbspora.tbl  ctbsympl.tbl
    ctbtwis1.tbl  ctbtwis2.tbl  ctbunit1.tbl  ctbunit2.tbl  ctbunit3.tbl
    ctbunit4.tbl  ctgeneri.tbl  ctoalter.tbl  ctoatres.tbl  ctocliff.tbl
    ctoconja.tbl  ctofisc1.tbl  ctofisc2.tbl  ctoholpl.tbl  ctoinert.tbl
    ctoline1.tbl  ctoline2.tbl  ctoline3.tbl  ctoline4.tbl  ctoline5.tbl
    ctoline6.tbl  ctomathi.tbl  ctomaxi1.tbl  ctomaxi2.tbl  ctomaxi3.tbl
    ctomaxi4.tbl  ctomaxi5.tbl  ctomaxi6.tbl  ctomisc1.tbl  ctomisc2.tbl
    ctomisc3.tbl  ctomisc4.tbl  ctomisc5.tbl  ctomisc6.tbl  ctomonst.tbl
    ctonews.tbl   ctoorth1.tbl  ctoorth2.tbl  ctoorth3.tbl  ctoorth4.tbl
    ctoorth5.tbl  ctospora.tbl  ctosylno.tbl  ctosympl.tbl  ctotwis1.tbl
    ctotwis2.tbl  ctounit1.tbl  ctounit2.tbl  ctounit3.tbl  ctounit4.tbl

The names start with ct for ``character table'', followed by o for ``ordinary'', b for ``Brauer'' or g for ``generic'', then an up to 5 letter description of the contents, e.g., alter for the alternating groups, and the extension .tbl.

The file ctbdescr.tbl contains (at most) the Brauer tables corresponding to the ordinary tables in ctodescr.tbl.

The format of library tables is always like this:

MOT(tblname

,
          ...
               # here the data components are stored
          ... );

Here tblname is the value of the identifier component of the table, e.g. "A5".

For the contents of the table record, there are three different ways how tables are stored:

Full tables (like that of A_5) are stored similar to the internal format (see Character Table Records). Lists of characters, however, will be abbreviated in the following way:

For each subset of characters which differ just by multiplication with a linear character or by Galois conjugacy, only one is given by its values, the others are replaced by [TENSOR,[i,j]] (which means that the character is the tensor product of the i-th and the j-th character) or [GALOIS,[i,j]] (which means that the character is the j-th Galois conjugate of the i-th character.

Brauer tables (like that of A_5 mod 2) are stored relative to the corresponding ordinary table; instead of irreducible characters the files contain decomposition matrices or Brauer trees for the blocks of nonzero defect (see Brauer Table Records), and components which can be got by restriction to p--regular classes are not stored at all.

Construction tables (like that of O_8^-(3)M7) have a component construction that is a function of one variable. This function is called by CharTable (see CharTable) when the table is constructed, i.e. not when the file containing the table is read.

The aim of this rather complicated way to store a character table is that big tables with a simple structure (e.g. direct products) can be stored in a very compact way.

Another special case where construction tables are useful is that of projective tables:

In their component irreducibles they do not contain irreducible characters but a list with information about the factor groups: Any entry is a list of length 2 that contains at position 1 the name of the table of the factor group, at the second position a list of integers representing the Galois automorphisms to get follower characters. E.g., for 12.M_{22}, the value of irreducibles is

    [["M22",[]],["2.M22",[]],
     ["3.M22",[-1,-13,-13,-1,23,23,-1,-1,-1,-1,-1]],
     ["4.M22",[-1,-1,15,15,23,23,-1,-1]],,
     ["6.M22",[-13,-13,-1,23,23,-1,-7,-7,-1,-1]],,,,,,
     ["12.M22",[[17,-17,-1],[17,-17,-1],[-55,-377,-433],[-55,-377,-433],
     [89,991,1079],[89,991,1079],[-7,7,-1]]]]

Using this and the projectives component of the table of the smallest nontrivial factor group, CharTable CharTable constructs the irreducible characters. The table head, however, need not be constructed.

52.7 How to Extend a Table Library

If you have some ordinary character tables which are not (or not yet) in a GAP table library, but which you want to treat as library tables, e.g., assign them to variables using CharTable CharTable, you can include these tables. For that, two things must be done:

First you must notify each table, i.e., tell GAP on which file it can be found, and which names are admissible; this can be done using

NotifyCharTable( firstname, filename, othernames ),

with strings firstname (the identifier component of the table) and filename (the name of the file containing the table, relative to TBLNAME, and without extension .tbl), and a list othernames of strings which are other admissible names of the table (see CharTable).

NotifyCharTable will add the necessary information to LIBLIST. A warning is printed for each table libtbl that was already accessible by some of the names, and these names are ignored for the new tables. Of course this affects only the value of LIBLIST in the current GAP session, not that on the file.

Note that an error is raised if you want to notify a table with firstname or name in othernames which is already the identifier component of a library table.

    gap> Append( TBLNAME, ";tables/" );
    # tells {\GAP} that the directory 'tables' is a place to look for
    # library tables
    gap> NotifyCharTable( "Private", "mytables", [ "My" ] );
    # tells {\GAP} that the table with names '\"Private\"' and '\"My\"'
    # is stored on file 'mytables.tbl'
    gap> FirstNameCharTable( "My" );
    "Private"
    gap> FileNameCharTable( "My" );
    "mytables"

The second condition is that each file must contain tables in library format as described in Organization of the Table Libraries; in the example, the contents of the file tables/mytables.tbl may be this:

    SET_TABLEFILENAME("mytables");
    ALN:= Ignore;
    MOT("Private",
    [
    "my private character table"
    ],
    [2,2],
    [],
    [[1,1],[1,-1]],
    []);
    ALN("Private",["my"]);
    LIBTABLE.LOADSTATUS.("mytables"):="loaded";

We simulate reading this file by explicitly assigning some of the components.

    gap> LIBTABLE.("mytables"):= rec(
    > Private:= rec( identifier:= "Private",
    >                centralizers:= [2,2],
    >                irreducibles:= [[1,1],[1,-1]] ) );;
    gap> LIBTABLE.LOADSTATUS.("mytables"):="loaded";;

Now the private table is a library table:

    gap> CharTable( "My" );
    CharTable( "Private" ) 

To append the table tbl in library format to the file with name file, use

PrintToLib( file, tbl ).

Note that here file is the absolute name of the file, not the name relative to TBLNAME. Thus the filename in the row with the assignment to LIBTABLE must be adjusted to make the file a library file.

52.8 FirstNameCharTable

FirstNameCharTable( name )

returns the value of the identifier component of the character table with admissible name name, if exists; otherwise false is returned.

For each admissible name, also the lowercase string is admissible.

    gap> FirstNameCharTable( "m22mod3" );
    "M22mod3"
    gap> FirstNameCharTable( "s5" );
    "A5.2"
    gap> FirstNameCharTable( "J5" );
    false

52.9 FileNameCharTable

FileNameCharTable( tblname )

returns the value of the filename component of the information record in LIBLIST for the table with admissible name tblname, if exists; otherwise false is returned.

    gap> FileNameCharTable( "M22mod3" );
    "ctbmathi"
    gap> FileNameCharTable( "J5" );
    false

Previous Up Next
Index

GAP 3.4.4
April 1997