For GAP, a character table is any
record that has the components centralizers and identifier
(see IsCharTable).
There are three different but very similar types of character tables in GAP, namely ordinary tables, Brauer tables and generic tables. Generic tables are described in Chapter Generic Character Tables. Brauer tables are defined and stored relative to ordinary tables, so they will be described in Brauer Table Records, and we start with ordinary tables.
You may store arbitrary information on an ordinary character table, but these are the only fields used by GAP functions:
centralizers:
the list of centralizer orders which should be
positive integers
identifier:
a string that identifies the table, sometimes
also called he table name; it is used for fusions (see below), programs for
generic tables (see chapter Generic Character Tables) and for access to
library tables (see CharTable, Contents of the Table Libraries)
order:
the group order, a positive integer; in most cases,
it is equal to centralizers[1]
classes:
the lengths of conjugacy classes, a list of
positive integers
orders:
the list of representative orders
powermap:
a list where at position p, if bound,
the p-th powermap is stored; the p-th powermap is a -possibly
parametrized- map (see More about Maps and Parametrized Maps)
fusions:
a list of records which describe the fusions into
other character tables, that is subgroup fusions and factor fusions; any
record has fields name (the identifier component of
the destination table) and map (a list of images for the classes,
it may be parametrized (see More about Maps and Parametrized Maps)); if there
are different fusions with same destination table, the field specification
is used to distinguish them; optional fields are type (a string
that is "normal" for normal subgroup fusions and "factor"
for factor fusions) and text (a string with information about
the fusion)
fusionsource:
a list of table names of those tables which
contain a fusion into the actual table
irreducibles:
a list of irreducible characters (see below)
irredinfo:
a list of records with information about irreducibles,
usual entries are indicator, pblock and charparam
(see Indicator, PrimeBlocks, Generic Character Tables); if the field irreducibles
is sorted using SortCharactersCharTable, the irredinfo field is
sorted, too. So any information about irreducibles should be
stored here.
projectives:
(only for ATLAS tables, see
ATLAS Tables) a list of records, each with fields name (of the
table of a covering group) and chars (a list of --in general not
all-- faithful irreducibles of the covering group)
permutation:
the actual permutation of the classes (see
Conventions for Character Tables, SortClassesCharTable)
classparam:
a list of parameter values specifying the
classes of tables constructed via specialisation of a generic character table
(see chapter Generic Character Tables)
classtext:
a list of additional information about the
conjugacy classes (e.g. representatives of the class for matrix groups or
permutation groups)
text:
a string containing information about the table; these
are e.g. its source (see Chapter Character Table Libraries), the tests it has
passed (1.o.r. for the test of orthogonality, pow[p]
for the construction of the p-th powermap, DEC for
the decomposition of ordinary characters in Brauer characters), and choices
made without loss of generality where possible
automorphisms:
the permutation group of column permutations
preserving the set irreducibles (see MatAutomorphisms,
TableAutomorphisms)
classnames:
a list of names for the classes, a string each (see
ClassNamesCharTable)
classnames:
for each entry clname in classnames,
a field tbl.clname that has the position of clname
in classnames as value (see ClassNamesCharTable)
operations:
a record with fields Print (see
DisplayCharTable) and ScalarProduct (see ScalarProduct); the
default value of the operations field is CharTableOps
(see Operations Records for Character Tables)
CAS:
a list of records, each with fields permchars,
permclasses (both permutations), name and
eventually text and classtext; application of the
two permutations to irreducibles and classes yields the original
CAS library table with name name and text
text (see CAS Tables)
libinfo:
a record with components othernames
and perhaps CASnames which are all admissible names of the table
(see CharTable); using these records, the list LIBLIST.ORDINARY
can be constructed from the library using MakeLIBLIST (see
Organization of the Table Libraries)
group:
the group the table belongs to; if the table was
computed using CharTable (see CharTable) then this component
holds the group, with conjugacy classes sorted compatible with the columns of
the table
Note that tables in library files may have different format (see chapter Character Table Libraries).
This is a typical example of a character table, first the ``naked'' record, then the displayed version:
gap> t:= CharTable( "2.A5" );; PrintCharTable( t );
rec( text := "origin: ATLAS of finite groups, tests: 1.o.r., pow[2,3,5\
]", centralizers := [ 120, 120, 4, 6, 6, 10, 10, 10, 10
], powermap := [ , [ 1, 1, 2, 4, 4, 8, 8, 6, 6 ],
[ 1, 2, 3, 1, 2, 8, 9, 6, 7 ],, [ 1, 2, 3, 4, 5, 1, 2, 1, 2 ]
], fusions := [ rec(
name := "A5",
map := [ 1, 1, 2, 3, 3, 4, 4, 5, 5 ],
type := "factor" ), rec(
name := "2.A5.2",
map := [ 1, 2, 3, 4, 5, 6, 7, 6, 7 ],
type := "normal" ) ], projectionsource :=
[ "A5" ], irreducibles := [ [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 3, 3, -1, 0, 0, -E(5)-E(5)^4, -E(5)-E(5)^4, -E(5)^2-E(5)^3,
-E(5)^2-E(5)^3 ],
[ 3, 3, -1, 0, 0, -E(5)^2-E(5)^3, -E(5)^2-E(5)^3, -E(5)-E(5)^4,
-E(5)-E(5)^4 ], [ 4, 4, 0, 1, 1, -1, -1, -1, -1 ],
[ 5, 5, 1, -1, -1, 0, 0, 0, 0 ],
[ 2, -2, 0, -1, 1, E(5)+E(5)^4, -E(5)-E(5)^4, E(5)^2+E(5)^3,
-E(5)^2-E(5)^3 ],
[ 2, -2, 0, -1, 1, E(5)^2+E(5)^3, -E(5)^2-E(5)^3, E(5)+E(5)^4,
-E(5)-E(5)^4 ], [ 4, -4, 0, 1, -1, -1, 1, -1, 1 ],
[ 6, -6, 0, 0, 0, 1, -1, 1, -1 ] ], irredinfo := [ rec(
pblock := [ , 1, 1,, 1 ] ), rec(
pblock := [ , 1, 2,, 1 ] ), rec(
pblock := [ , 1, 3,, 1 ] ), rec(
pblock := [ , 2, 1,, 1 ] ), rec(
pblock := [ , 1, 1,, 2 ] ), rec(
pblock := [ , 1, 4,, 3 ] ), rec(
pblock := [ , 1, 4,, 3 ] ), rec(
pblock := [ , 2, 4,, 3 ] ), rec(
pblock := [ , 1, 5,, 3 ] ) ], automorphisms := Group( (6,8)
(7,9) ), libinfo := rec(
othernames :=
[ "2.L2(4)", "2.L2(5)", "2.A1(4)", "2.A1(5)", "2.U2(4)",
"2.U2(5)", "2.S2(4)", "2.S2(5)", "2.O3(4)", "2.O3(5)",
"2.O4-(2)" ],
firstname := "2.A5",
filename := "ctoalter"
), identifier := "2.A5", name := "2.A5", order := 120, size :=
120, orders := [ 1, 2, 4, 3, 6, 5, 10, 5, 10 ], fusionsource :=
[ ], projections := [ ], classes := [ 1, 1, 30, 20, 20, 12, 12, 12,
12 ], operations := CharTableOps )
bigskip gap> DisplayCharTable( t );
2.A5
2 3 3 2 1 1 1 1 1 1
3 1 1 . 1 1 . . . .
5 1 1 . . . 1 1 1 1
1a 2a 4a 3a 6a 5a 10a 5b 10b
2P 1a 1a 2a 3a 3a 5b 5b 5a 5a
3P 1a 2a 4a 1a 2a 5b 10b 5a 10a
5P 1a 2a 4a 3a 6a 1a 2a 1a 2a
X.1 1 1 1 1 1 1 1 1 1
X.2 3 3 -1 . . A A *A *A
X.3 3 3 -1 . . *A *A A A
X.4 4 4 . 1 1 -1 -1 -1 -1
X.5 5 5 1 -1 -1 . . . .
X.6 2 -2 . -1 1 -A A -*A *A
X.7 2 -2 . -1 1 -*A *A -A A
X.8 4 -4 . 1 -1 -1 1 -1 1
X.9 6 -6 . . . 1 -1 1 -1
A = -E(5)-E(5)^4
= (1-ER(5))/2 = -b5
bigskip