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).
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
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
:
origin: Ostermann
:
origin: CAS library
: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
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()
:
AllCharTableNames( IsSimple )
:
AllCharTableNames( IsSporadicSimple )
:
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.
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 ]
.
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.
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
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
GAP 3.4.4