
| Current Path : /usr/share/gap/doc/ref/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/share/gap/doc/ref/chap71.txt |
[1X71 [33X[0;0YCharacter Tables[133X[101X
[33X[0;0YThis chapter describes operations for [13Xcharacter tables of finite groups[113X.[133X
[33X[0;0YOperations for [13Xcharacters[113X (or, more general, [13Xclass functions[113X) are described
in ChapterĀ [14X72[114X.[133X
[33X[0;0YFor a description of the [5XGAP[105X Library of Character Tables, see the separate
manual for the [5XGAP[105X package [5XCTblLib[105X.[133X
[33X[0;0YSeveral examples in this chapter require the [5XGAP[105X Character Table Library to
be available. If it is not yet loaded then we load it now.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XLoadPackage( "ctbllib" );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X71.1 [33X[0;0YSome Remarks about Character Theory in [5XGAP[105X[101X[1X[133X[101X
[33X[0;0YIt seems to be necessary to state some basic facts āand maybe warningsā at
the beginning of the character theory package. This holds for people who are
familiar with character theory because there is no global reference on
computational character theory, although there are many papers on this
topic, such asĀ [NPP84] orĀ [LP91]. It holds, however, also for people who are
familiar with [5XGAP[105X because the general concept of domains (see ChapterĀ [14X12.4[114X)
plays no important role here āwe will justify this later in this section.[133X
[33X[0;0YIntuitively, [13Xcharacters[113X (or more generally, [13Xclass functions[113X) of a finite
group [22XG[122X can be thought of as certain mappings defined on [22XG[122X, with values in
the complex number field; the set of all characters of [22XG[122X forms a semiring,
with both addition and multiplication defined pointwise, which is naturally
embedded into the ring of [13Xgeneralized[113X (or [13Xvirtual[113X) [13Xcharacters[113X in the natural
way. A [22Xā¤[122X-basis of this ring, and also a vector space basis of the complex
vector space of class functions of [22XG[122X, is given by the irreducible characters
of [22XG[122X.[133X
[33X[0;0YAt this stage one could ask where there is a problem, since all these
algebraic structures are supported by [5XGAP[105X. But in practice, these structures
are of minor importance, compared to individual characters and the [13Xcharacter
tables[113X themselves (which are not domains in the sense of [5XGAP[105X).[133X
[33X[0;0YFor computations with characters of a finite group [22XG[122X with [22Xn[122X conjugacy
classes, say, we fix an ordering of the classes, and then identify each
class with its position according to this ordering. Each character of [22XG[122X can
be represented by a list of length [22Xn[122X in which the character value for
elements of the [22Xi[122X-th class is stored at the [22Xi[122X-th position. Note that we need
not know the conjugacy classes of [22XG[122X physically, even our knowledge of [22XG[122X may
be implicit in the sense that, e.g., we know how many classes of involutions
[22XG[122X has, and which length these classes have, but we never have seen an
element of [22XG[122X, or a presentation or representation of [22XG[122X. This allows us to
work with the character tables of very large groups, e.g., of the so-called
monster, where [5XGAP[105X has (currently) no chance to deal with the group.[133X
[33X[0;0YAs a consequence, also other information involving characters is given
implicitly. For example, we can talk about the kernel of a character not as
a group but as a list of classes (more exactly: a list of their positions
according to the chosen ordering of classes) forming this kernel; we can
deduce the group order, the contained cyclic subgroups and so on, but we do
not get the group itself.[133X
[33X[0;0YSo typical calculations with characters involve loops over lists of
character values. For example, the scalar product of two characters [22XĻ[122X, [22XĻ[122X of
[22XG[122X given by[133X
[24X[33X[0;6Y[ Ļ, Ļ ] = ( ā_{g ā G} Ļ(g) Ļ(g^{-1}) ) / |G|[133X[124X
[33X[0;0Ycan be written as[133X
[4X[32X[104X
[4XSum( [ 1 .. n ], i -> SizesConjugacyClasses( t )[i] * chi[i][104X
[4X * ComplexConjugate( psi[i] ) ) / Size( t );[104X
[4X[32X[104X
[33X[0;0Ywhere [10Xt[110X is the character table of [22XG[122X, and [10Xchi[110X, [10Xpsi[110X are the lists of values of
[22XĻ[122X, [22XĻ[122X, respectively.[133X
[33X[0;0YIt is one of the advantages of character theory that after one has
translated a problem concerning groups into a problem concerning only
characters, the necessary calculations are mostly simple. For example, one
can often prove that a group is a Galois group over the rationals using
calculations with structure constants that can be computed from the
character table, and information about (the character tables of) maximal
subgroups. When one deals with such questions, the translation back to
groups is just an interpretation by the user, it does not take place in [5XGAP[105X.[133X
[33X[0;0Y[5XGAP[105X uses character [13Xtables[113X to store information such as class lengths,
element orders, the irreducible characters of [22XG[122X etc.Ā in a consistent way; in
the example above, we have seen that [2XSizesConjugacyClasses[102X ([14X71.9-3[114X) returns
the list of class lengths of its argument. Note that the values of these
attributes rely on the chosen ordering of conjugacy classes, a character
table is not determined by something similar to generators of groups or
rings in [5XGAP[105X where knowledge could in principle be recovered from the
generators but is stored mainly for the sake of efficiency.[133X
[33X[0;0YNote that the character table of a group [22XG[122X in [5XGAP[105X must [13Xnot[113X be mixed up with
the list of complex irreducible characters of [22XG[122X. The irreducible characters
are stored in a character table via the attribute [2XIrr[102X ([14X71.8-2[114X).[133X
[33X[0;0YTwo further important instances of information that depends on the ordering
of conjugacy classes are [13Xpower maps[113X and [13Xfusion maps[113X. Both are represented as
lists of integers in [5XGAP[105X. The [22Xk[122X-th power map maps each class to the class of
[22Xk[122X-th powers of its elements, the corresponding list contains at each
position the position of the image. A class fusion map between the classes
of a subgroup [22XH[122X of [22XG[122X and the classes of [22XG[122X maps each class [22Xc[122X of [22XH[122X to that
class of [22XG[122X that contains [22Xc[122X, the corresponding list contains again the
positions of image classes; if we know only the character tables of [22XH[122X and [22XG[122X
but not the groups themselves, this means with respect to a fixed embedding
of [22XH[122X into [22XG[122X. More about power maps and fusion maps can be found in
ChapterĀ [14X73[114X.[133X
[33X[0;0YSo class functions, power maps, and fusion maps are represented by lists in
[5XGAP[105X. If they are plain lists then they are regarded as class functions
etc.Ā of an appropriate character table when they are passed to [5XGAP[105X functions
that expect class functions etc. For example, a list with all entries equal
to 1 is regarded as the trivial character if it is passed to a function that
expects a character. Note that this approach requires the character table as
an argument for such a function.[133X
[33X[0;0YOne can construct class function objects that store their underlying
character table and other attribute values (see ChapterĀ [14X72[114X). This allows one
to omit the character table argument in many functions, and it allows one to
use infix operations for tensoring or inducing class functions.[133X
[1X71.2 [33X[0;0YHistory of Character Theory Stuff in GAP[133X[101X
[33X[0;0Y[5XGAP[105X provides functions for dealing with group characters since the version
[5XGAP[105XĀ 3.1, which was released in March 1992. The reason for adding this branch
of mathematics to the topics of [5XGAP[105X was (apart from the usefulness of
character theoretic computations in general) the insight that [5XGAP[105X provides
an ideal environment for developing the algorithms needed. In particular, it
had been decided at Lehrstuhl D für Mathematik that the [5XCAS[105X system (a
standalone Fortran program together with a database of character tables,
seeĀ [NPP84]) should not be developed further and the functionality of [5XCAS[105X
should be made available in [5XGAP[105X. The background was that extending [5XCAS[105X (by
new Fortran code) had turned out to be much less flexible than writing
analogous [5XGAP[105X library code.[133X
[33X[0;0YFor integrating the existing character theory algorithms, [5XGAP[105X's memory
management and long integer arithmetic were useful as well as the list
handling āit is an important feature of character theoretic methods that
questions about groups are translated into manipulations of lists; on the
other hand, the datatype of cyclotomics (see ChapterĀ [2XCyclotomics[102X ([14X18.1-2[114X))
was added to the [5XGAP[105X kernel because of the character theory algorithms. For
developing further code, also other areas of [5XGAP[105X's library became
interesting, such as permutation groups, finite fields, and polynomials.[133X
[33X[0;0YThe development of character theory code for [5XGAP[105X has been supported by
several DFG grants, in particular the project [21XRepresentation Theory of
Finite Groups and Finite Dimensional Algebras[121X (until 1991), and the
Schwerpunkt [21XAlgorithmische Zahlentheorie und Algebra[121X (from 1991 until 1997).
Besides that, several Diploma theses at Lehrstuhl D were concerned with the
development and/or implementation of algorithms dealing with characters in
[5XGAP[105X.[133X
[33X[0;0YThe major contributions can be listed as follows.[133X
[30X [33X[0;6YThe arithmetic for the cyclotomics data type, followingĀ [Zum89], was
first implemented by Marco van Meegen; an alternative approach was
studied in the diploma thesis of Michael Scherner (seeĀ [Sch92]) but
was not efficient enough; later Martin Schƶnert replaced the
implementation by a better one.[133X
[30X [33X[0;6YThe basic routines for characters and character tables were written by
Thomas Breuer and Gƶtz Pfeiffer.[133X
[30X [33X[0;6YThe lattice related functions, such as [2XLLL[102X ([14X72.10-4[114X),
[2XOrthogonalEmbeddings[102X ([14X25.6-1[114X), and [2XDnLattice[102X ([14X72.10-8[114X), were
implemented by Ansgar Kaup (seeĀ [Kau92]).[133X
[30X [33X[0;6YFunctions for computing possible class fusions, possible power maps,
and table automorphisms were written by Thomas Breuer (seeĀ [Bre91]).[133X
[30X [33X[0;6YFunctions for computing possible permutation characters were written
by Thomas Breuer (see [Bre91]) and Götz Pfeiffer (see [Pfe91]).[133X
[30X [33X[0;6YFunctions for computing character tables from groups were written by
Alexander Hulpke (Dixon-Schneider algorithm, seeĀ [Hul93]) and Hans
Ulrich Besche (Baum algorithm and Conlon algorithm, seeĀ [Bes92]).[133X
[30X [33X[0;6YFunctions for dealing with Clifford matrices were written by Ute
Schiffer (seeĀ [Sch94]).[133X
[30X [33X[0;6YFunctions for monomiality questions were written by Thomas Breuer and
ErzsƩbet HorvƔth.[133X
[33X[0;0YSince then, the code has been maintained and extended further by Alexander
Hulpke (code related to his implementation of the Dixon-Schneider algorithm)
and Thomas Breuer.[133X
[33X[0;0YCurrently [5XGAP[105X does not provide special functionality for computing Brauer
character tables, but there is an interface to the [5XMOC[105X system (seeĀ [HJLP]),
and the [5XGAP[105X Character Table Library contains many known Brauer character
tables.[133X
[1X71.3 [33X[0;0YCreating Character Tables[133X[101X
[33X[0;0YThere are in general five different ways to get a character table in [5XGAP[105X.
You can[133X
[31X1[131X [33X[0;6Ycompute the table from a group,[133X
[31X2[131X [33X[0;6Yread a file that contains the table data,[133X
[31X3[131X [33X[0;6Yconstruct the table using generic formulae,[133X
[31X4[131X [33X[0;6Yderive it from known character tables, or[133X
[31X5[131X [33X[0;6Ycombine partial information about conjugacy classes, power maps of the
group in question, and about (character tables of) some subgroups and
supergroups.[133X
[33X[0;0YIn 1., the computation of the irreducible characters is the hardest part;
the different algorithms available for this are described inĀ [14X71.14[114X.
Possibility 2.Ā is used for the character tables in the [5XGAP[105X Character Table
Library, see the manual of this library. Generic character tables āas
addressed by 3.ā are described inĀ [14X'CTblLib: Generic Character Tables'[114X.
Several occurrences of 4.Ā are described inĀ [14X71.20[114X. The last of the above
possibilities [13Xis currently not supported and will be described in a chapter
of its own when it becomes available[113X.[133X
[33X[0;0YThe operation [2XCharacterTable[102X ([14X71.3-1[114X) can be used for the cases 1. to 3.[133X
[1X71.3-1 [33X[0;0YCharacterTable[133X[101X
[33X[1;0Y[29X[2XCharacterTable[102X( [3XG[103X[, [3Xp[103X] ) [32X operation[133X
[33X[1;0Y[29X[2XCharacterTable[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XCharacterTable[102X( [3Xname[103X[, [3Xparam[103X] ) [32X operation[133X
[33X[0;0YCalled with a group [3XG[103X, [2XCharacterTable[102X calls the attribute
[2XOrdinaryCharacterTable[102X ([14X71.8-4[114X). Called with first argument a group [3XG[103X or an
ordinary character table [3Xordtbl[103X, and second argument a prime [3Xp[103X,
[2XCharacterTable[102X calls the operation [2XBrauerTable[102X ([14X71.3-2[114X).[133X
[33X[0;0YCalled with a string [3Xname[103X and perhaps optional parameters [3Xparam[103X,
[2XCharacterTable[102X tries to access a character table from the [5XGAP[105X Character
Table Library. See the manual of the [5XGAP[105X package [5XCTblLib[105X for an overview of
admissible arguments. An error is signalled if this [5XGAP[105X package is not
loaded in this case.[133X
[33X[0;0YProbably the most interesting information about the character table is its
list of irreducibles, which can be accessed as the value of the attribute
[2XIrr[102X ([14X71.8-2[114X). If the argument of [2XCharacterTable[102X is a string [3Xname[103X then the
irreducibles are just read from the library file, therefore the returned
table stores them already. However, if [2XCharacterTable[102X is called with a group
[3XG[103X or with an ordinary character table [3Xordtbl[103X, the irreducible characters are
[13Xnot[113X computed by [2XCharacterTable[102X. They are only computed when the [2XIrr[102X ([14X71.8-2[114X)
value is accessed for the first time, for example when [2XDisplay[102X ([14X6.3-6[114X) is
called for the table (seeĀ [14X71.13[114X). This means for example that [2XCharacterTable[102X
returns its result very quickly, and the first call of [2XDisplay[102X ([14X6.3-6[114X) for
this table may take some time because the irreducible characters must be
computed at that time before they can be displayed together with other
information stored on the character table. The value of the filter [10XHasIrr[110X
indicates whether the irreducible characters have been computed already.[133X
[33X[0;0YThe reason why [2XCharacterTable[102X does not compute the irreducible characters is
that there are situations where one only needs the [21Xtable head[121X, that is, the
information about class lengths, power maps etc., but not the irreducibles.
For example, if one wants to inspect permutation characters of a group then
all one has to do is to induce the trivial characters of subgroups one is
interested in; for that, only class lengths and the class fusion are needed.
Or if one wants to compute the Molien series (seeĀ [2XMolienSeries[102X ([14X72.12-1[114X))
for a given complex matrix group, the irreducible characters of this group
are in general of no interest.[133X
[33X[0;0YFor details about different algorithms to compute the irreducible
characters, seeĀ [14X71.14[114X.[133X
[33X[0;0YIf the group [3XG[103X is given as an argument, [2XCharacterTable[102X accesses the
conjugacy classes of [3XG[103X and therefore causes that these classes are computed
if they were not yet stored (see [14X71.6[114X).[133X
[1X71.3-2 [33X[0;0YBrauerTable[133X[101X
[33X[1;0Y[29X[2XBrauerTable[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XBrauerTable[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XBrauerTableOp[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XComputedBrauerTables[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0YCalled with an ordinary character table [3Xordtbl[103X or a group [3XG[103X, [2XBrauerTable[102X
returns its [3Xp[103X-modular character table if [5XGAP[105X can compute this table, and
[9Xfail[109X otherwise. The [3Xp[103X-modular table can be computed for [3Xp[103X-solvable groups
(using the Fong-Swan Theorem) and in the case that [3Xordtbl[103X is a table from
the [5XGAP[105X character table library for which also the [3Xp[103X-modular table is
contained in the table library.[133X
[33X[0;0YThe default method for a group and a prime delegates to [2XBrauerTable[102X for the
ordinary character table of this group. The default method for [3Xordtbl[103X uses
the attribute [2XComputedBrauerTables[102X for storing the computed Brauer table at
position [3Xp[103X, and calls the operation [2XBrauerTableOp[102X for computing values that
are not yet known.[133X
[33X[0;0YSo if one wants to install a new method for computing Brauer tables then it
is sufficient to install it for [2XBrauerTableOp[102X.[133X
[33X[0;0YThe [9Xmod[109X operator for a character table and a prime (seeĀ [14X71.7[114X) delegates to
[2XBrauerTable[102X.[133X
[1X71.3-3 CharacterTableRegular[101X
[33X[1;0Y[29X[2XCharacterTableRegular[102X( [3Xtbl[103X, [3Xp[103X ) [32X function[133X
[33X[0;0YFor an ordinary character table [3Xtbl[103X and a prime integer [3Xp[103X,
[2XCharacterTableRegular[102X returns the [21Xtable head[121X of the [3Xp[103X-modular Brauer
character table of [3Xtbl[103X. This is the restriction of [3Xtbl[103X to its [3Xp[103X-regular
classes, like the return value of [2XBrauerTable[102X ([14X71.3-2[114X), but without the
irreducible Brauer characters. (In general, these characters are hard to
compute, and [2XBrauerTable[102X ([14X71.3-2[114X) may return [9Xfail[109X for the given arguments,
for example if [3Xtbl[103X is a table from the [5XGAP[105X character table library.)[133X
[33X[0;0YThe returned table head can be used to create [3Xp[103X-modular Brauer characters,
by restricting ordinary characters, for example when one is interested in
approximations of the (unknown) irreducible Brauer characters.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= SymmetricGroup( 4 );[127X[104X
[4X[28XSym( [ 1 .. 4 ] )[128X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( g );; HasIrr( tbl );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xtblmod2:= CharacterTable( tbl, 2 );[127X[104X
[4X[28XBrauerTable( Sym( [ 1 .. 4 ] ), 2 )[128X[104X
[4X[25Xgap>[125X [27Xtblmod2 = CharacterTable( tbl, 2 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xtblmod2 = BrauerTable( tbl, 2 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xtblmod2 = BrauerTable( g, 2 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xlibtbl:= CharacterTable( "M" );[127X[104X
[4X[28XCharacterTable( "M" )[128X[104X
[4X[25Xgap>[125X [27XCharacterTableRegular( libtbl, 2 );[127X[104X
[4X[28XBrauerTable( "M", 2 )[128X[104X
[4X[25Xgap>[125X [27XBrauerTable( libtbl, 2 );[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27XCharacterTable( "Symmetric", 4 );[127X[104X
[4X[28XCharacterTable( "Sym(4)" )[128X[104X
[4X[25Xgap>[125X [27XComputedBrauerTables( tbl );[127X[104X
[4X[28X[ , BrauerTable( Sym( [ 1 .. 4 ] ), 2 ) ][128X[104X
[4X[32X[104X
[1X71.3-4 SupportedCharacterTableInfo[101X
[33X[1;0Y[29X[2XSupportedCharacterTableInfo[102X[32X global variable[133X
[33X[0;0Y[2XSupportedCharacterTableInfo[102X is a list that contains at position [22X3i-2[122X an
attribute getter function, at position [22X3i-1[122X the name of this attribute, and
at position [22X3i[122X a list containing a subset of [10X[ "character", "class",
"mutable" ][110X, depending on whether the attribute value relies on the ordering
of characters or classes, or whether the attribute value is a mutable list
or record.[133X
[33X[0;0YWhen (ordinary or Brauer) character table objects are created from records,
using [2XConvertToCharacterTable[102X ([14X71.3-5[114X), [2XSupportedCharacterTableInfo[102X
specifies those record components that shall be used as attribute values;
other record components are [13Xnot[113X be regarded as attribute values in the
conversion process.[133X
[33X[0;0YNew attributes and properties can be notified to [2XSupportedCharacterTableInfo[102X
by creating them with [10XDeclareAttributeSuppCT[110X and [10XDeclarePropertySuppCT[110X
instead of [2XDeclareAttribute[102X ([14X79.18-9[114X) and [2XDeclareProperty[102X ([14X79.18-10[114X).[133X
[1X71.3-5 ConvertToCharacterTable[101X
[33X[1;0Y[29X[2XConvertToCharacterTable[102X( [3Xrecord[103X ) [32X function[133X
[33X[1;0Y[29X[2XConvertToCharacterTableNC[102X( [3Xrecord[103X ) [32X function[133X
[33X[0;0YLet [3Xrecord[103X be a record. [2XConvertToCharacterTable[102X converts [3Xrecord[103X into a
component object (seeĀ [14X79.10[114X) representing a character table. The values of
those components of [3Xrecord[103X whose names occur in [2XSupportedCharacterTableInfo[102X
([14X71.3-4[114X) correspond to attribute values of the returned character table. All
other components of the record simply become components of the character
table object.[133X
[33X[0;0YIf inconsistencies in [3Xrecord[103X are detected, [9Xfail[109X is returned. [3Xrecord[103X must
have the component [10XUnderlyingCharacteristic[110X bound
(cf.Ā [2XUnderlyingCharacteristic[102X ([14X71.9-5[114X)), since this decides about whether
the returned character table lies in [2XIsOrdinaryTable[102X ([14X71.4-1[114X) or in
[2XIsBrauerTable[102X ([14X71.4-1[114X).[133X
[33X[0;0Y[2XConvertToCharacterTableNC[102X does the same except that all checks of [3Xrecord[103X are
omitted.[133X
[33X[0;0YAn example of a conversion from a record to a character table object can be
found in SectionĀ [2XPrintCharacterTable[102X ([14X71.13-5[114X).[133X
[1X71.4 [33X[0;0YCharacter Table Categories[133X[101X
[1X71.4-1 IsNearlyCharacterTable[101X
[33X[1;0Y[29X[2XIsNearlyCharacterTable[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsCharacterTable[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsOrdinaryTable[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsBrauerTable[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsCharacterTableInProgress[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YEvery [21Xcharacter table like object[121X in [5XGAP[105X lies in the category
[2XIsNearlyCharacterTable[102X. There are four important subcategories, namely the
[13Xordinary[113X tables in [2XIsOrdinaryTable[102X, the [13XBrauer[113X tables in [2XIsBrauerTable[102X, the
union of these two in [2XIsCharacterTable[102X, and the [13Xincomplete ordinary[113X tables
in [2XIsCharacterTableInProgress[102X.[133X
[33X[0;0YWe want to distinguish ordinary and Brauer tables because a Brauer table may
delegate tasks to the ordinary table of the same group, for example the
computation of power maps. A Brauer table is constructed from an ordinary
table and stores this table upon construction (seeĀ [2XOrdinaryCharacterTable[102X
([14X71.8-4[114X)).[133X
[33X[0;0YFurthermore, [2XIsOrdinaryTable[102X and [2XIsBrauerTable[102X denote character tables that
provide enough information to compute all power maps and irreducible
characters (and in the case of Brauer tables to get the ordinary table), for
example because the underlying group (seeĀ [2XUnderlyingGroup[102X ([14X71.6-1[114X)) is known
or because the table is a library table (see the manual of the [5XGAP[105X Character
Table Library). We want to distinguish these tables from partially known
ordinary tables that cannot be asked for all power maps or all irreducible
characters.[133X
[33X[0;0YThe character table objects in [2XIsCharacterTable[102X are always immutable
(seeĀ [14X12.6[114X). This means mainly that the ordering of conjugacy classes used
for the various attributes of the character table cannot be changed;
seeĀ [14X71.21[114X for how to compute a character table with a different ordering of
classes.[133X
[33X[0;0YThe [5XGAP[105X objects in [2XIsCharacterTableInProgress[102X represent incomplete ordinary
character tables. This means that not all irreducible characters, not all
power maps are known, and perhaps even the number of classes and the
centralizer orders are known. Such tables occur when the character table of
a group [22XG[122X is constructed using character tables of related groups and
information about [22XG[122X but for example without explicitly computing the
conjugacy classes of [22XG[122X. An object in [2XIsCharacterTableInProgress[102X is first of
all [13Xmutable[113X, so [13Xnothing is stored automatically[113X on such a table, since
otherwise one has no control of side-effects when a hypothesis is changed.
Operations for such tables may return more general values than for other
tables, for example class functions may contain unknowns (see ChapterĀ [14X74[114X) or
lists of possible values in certain positions, the same may happen also for
power maps and class fusions (seeĀ [14X73.5[114X). [13XIncomplete tables in this sense are
currently not supported and will be described in a chapter of their own when
they become available.[113X Note that the term [21Xincomplete table[121X shall express
that [5XGAP[105X cannot compute certain values such as irreducible characters or
power maps. A table with access to its group is therefore always complete,
also if its irreducible characters are not yet stored.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= SymmetricGroup( 4 );;[127X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( g ); modtbl:= tbl mod 2;[127X[104X
[4X[28XCharacterTable( Sym( [ 1 .. 4 ] ) )[128X[104X
[4X[28XBrauerTable( Sym( [ 1 .. 4 ] ), 2 )[128X[104X
[4X[25Xgap>[125X [27XIsCharacterTable( tbl ); IsCharacterTable( modtbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsBrauerTable( modtbl ); IsBrauerTable( tbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XIsOrdinaryTable( tbl ); IsOrdinaryTable( modtbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XIsCharacterTable( g ); IsCharacterTable( Irr( g ) );[127X[104X
[4X[28Xfalse[128X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X71.4-2 InfoCharacterTable[101X
[33X[1;0Y[29X[2XInfoCharacterTable[102X[32X info class[133X
[33X[0;0Yis the info class (seeĀ [14X7.4[114X) for computations with character tables.[133X
[1X71.4-3 NearlyCharacterTablesFamily[101X
[33X[1;0Y[29X[2XNearlyCharacterTablesFamily[102X[32X family[133X
[33X[0;0YEvery character table like object lies in this family (seeĀ [14X13.1[114X).[133X
[1X71.5 [33X[0;0YConventions for Character Tables[133X[101X
[33X[0;0YThe following few conventions should be noted.[133X
[30X [33X[0;6YThe class of the [13Xidentity element[113X is expected to be the first one;
thus the degree of a character is the character value at position [22X1[122X.[133X
[30X [33X[0;6YThe [13Xtrivial character[113X of a character table need not be the first in
the list of irreducibles.[133X
[30X [33X[0;6YMost functions that take a character table as an argument and work
with characters expect these characters as an argument, too. For some
functions, the list of irreducible characters serves as the default,
i.e, the value of the attribute [2XIrr[102X ([14X71.8-2[114X); in these cases, the [2XIrr[102X
([14X71.8-2[114X) value is automatically computed if it was not yet known.[133X
[30X [33X[0;6YFor a stored class fusion, the image table is denoted by its
[2XIdentifier[102X ([14X71.9-8[114X) value; each library table has a unique identifier
by which it can be accessed (seeĀ [14X'CTblLib: Accessing a Character Table
from the Library'[114X in the manual for the [5XGAP[105X Character Table Library),
tables constructed from groups get an identifier that is unique in the
current [5XGAP[105X session.[133X
[1X71.6 [33X[0;0YThe Interface between Character Tables and Groups[133X[101X
[33X[0;0YFor a character table with underlying group (seeĀ [2XUnderlyingGroup[102X ([14X71.6-1[114X)),
the interface between table and group consists of three attribute values,
namely the [13Xgroup[113X, the [13Xconjugacy classes[113X stored in the table (see
[2XConjugacyClasses[102X ([14X71.6-2[114X) below) and the [13Xidentification[113X of the conjugacy
classes of table and group (seeĀ [2XIdentificationOfConjugacyClasses[102X ([14X71.6-3[114X)
below).[133X
[33X[0;0YCharacter tables constructed from groups know these values upon
construction, and for character tables constructed without groups, these
values are usually not known and cannot be computed from the table.[133X
[33X[0;0YHowever, given a group [22XG[122X and a character table of a group isomorphic to [22XG[122X
(for example a character table from the [5XGAP[105X table library), one can tell [5XGAP[105X
to compute a new instance of the given table and to use it as the character
table of [22XG[122X (seeĀ [2XCharacterTableWithStoredGroup[102X ([14X71.6-4[114X)).[133X
[33X[0;0YTasks may be delegated from a group to its character table or vice versa
only if these three attribute values are stored in the character table.[133X
[1X71.6-1 UnderlyingGroup[101X
[33X[1;0Y[29X[2XUnderlyingGroup[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0YFor an ordinary character table [3Xordtbl[103X of a finite group, the group can be
stored as value of [2XUnderlyingGroup[102X.[133X
[33X[0;0YBrauer tables do not store the underlying group, they access it via the
ordinary table (seeĀ [2XOrdinaryCharacterTable[102X ([14X71.8-4[114X)).[133X
[1X71.6-2 ConjugacyClasses[101X
[33X[1;0Y[29X[2XConjugacyClasses[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor a character table [3Xtbl[103X with known underlying group [22XG[122X, the
[2XConjugacyClasses[102X value of [3Xtbl[103X is a list of conjugacy classes of [22XG[122X. All those
lists stored in the table that are related to the ordering of conjugacy
classes (such as sizes of centralizers and conjugacy classes, orders of
representatives, power maps, and all class functions) refer to the ordering
of this list.[133X
[33X[0;0YThis ordering need [13Xnot[113X coincide with the ordering of conjugacy classes as
stored in the underlying group of the table (seeĀ [14X71.21[114X). One reason for this
is that otherwise we would not be allowed to use a library table as the
character table of a group for which the conjugacy classes are stored
already. (Another, less important reason is that we can use the same group
as underlying group of character tables that differ only w.r.t.Ā the ordering
of classes.)[133X
[33X[0;0YThe class of the identity element must be the first class (seeĀ [14X71.5[114X).[133X
[33X[0;0YIf [3Xtbl[103X was constructed from [22XG[122X then the conjugacy classes have been stored at
the same time when [22XG[122X was stored. If [22XG[122X and [3Xtbl[103X have been connected later than
in the construction of [3Xtbl[103X, the recommended way to do this is via
[2XCharacterTableWithStoredGroup[102X ([14X71.6-4[114X). So there is no method for
[2XConjugacyClasses[102X that computes the value for [3Xtbl[103X if it is not yet stored.[133X
[33X[0;0YBrauer tables do not store the ([22Xp[122X-regular) conjugacy classes, they access
them via the ordinary table (seeĀ [2XOrdinaryCharacterTable[102X ([14X71.8-4[114X)) if
necessary.[133X
[1X71.6-3 IdentificationOfConjugacyClasses[101X
[33X[1;0Y[29X[2XIdentificationOfConjugacyClasses[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor an ordinary character table [3Xtbl[103X with known underlying group [22XG[122X,
[2XIdentificationOfConjugacyClasses[102X returns a list of positive integers that
contains at position [22Xi[122X the position of the [22Xi[122X-th conjugacy class of [3Xtbl[103X in
the [2XConjugacyClasses[102X ([14X71.6-2[114X) value of [22XG[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= SymmetricGroup( 4 );;[127X[104X
[4X[25Xgap>[125X [27Xrepres:= [ (1,2), (1,2,3), (1,2,3,4), (1,2)(3,4), () ];;[127X[104X
[4X[25Xgap>[125X [27Xccl:= List( repres, x -> ConjugacyClass( g, x ) );;[127X[104X
[4X[25Xgap>[125X [27XSetConjugacyClasses( g, ccl );[127X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( g );; # the table stores already the values[127X[104X
[4X[25Xgap>[125X [27XHasConjugacyClasses( tbl ); HasUnderlyingGroup( tbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XUnderlyingGroup( tbl ) = g;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XHasIdentificationOfConjugacyClasses( tbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIdentificationOfConjugacyClasses( tbl );[127X[104X
[4X[28X[ 5, 1, 2, 3, 4 ][128X[104X
[4X[32X[104X
[1X71.6-4 CharacterTableWithStoredGroup[101X
[33X[1;0Y[29X[2XCharacterTableWithStoredGroup[102X( [3XG[103X, [3Xtbl[103X[, [3Xinfo[103X] ) [32X function[133X
[33X[0;0YLet [3XG[103X be a group and [3Xtbl[103X a character table of (a group isomorphic to) [3XG[103X,
such that [3XG[103X does not store its [2XOrdinaryCharacterTable[102X ([14X71.8-4[114X) value.
[2XCharacterTableWithStoredGroup[102X calls [2XCompatibleConjugacyClasses[102X ([14X71.6-5[114X),
trying to identify the classes of [3XG[103X with the columns of [3Xtbl[103X.[133X
[33X[0;0YIf this identification is unique up to automorphisms of [3Xtbl[103X
(seeĀ [2XAutomorphismsOfTable[102X ([14X71.9-4[114X)) then [3Xtbl[103X is stored as [2XCharacterTable[102X
([14X71.3-1[114X) value of [3XG[103X, and a new character table is returned that is
equivalent to [3Xtbl[103X, is sorted in the same way as [3Xtbl[103X, and has the values of
[2XUnderlyingGroup[102X ([14X71.6-1[114X), [2XConjugacyClasses[102X ([14X71.6-2[114X), and
[2XIdentificationOfConjugacyClasses[102X ([14X71.6-3[114X) set.[133X
[33X[0;0YOtherwise, i.e., if [5XGAP[105X cannot identify the classes of [3XG[103X up to automorphisms
of [3Xtbl[103X, [9Xfail[109X is returned.[133X
[33X[0;0YIf a record is present as the third argument [3Xinfo[103X, its meaning is the same
as the optional argument [3Xarec[103X for [2XCompatibleConjugacyClasses[102X ([14X71.6-5[114X).[133X
[33X[0;0YIf a list is entered as third argument [3Xinfo[103X it is used as value of
[2XIdentificationOfConjugacyClasses[102X ([14X71.6-3[114X), relative to the [2XConjugacyClasses[102X
([14X71.6-2[114X) value of [3XG[103X, without further checking, and the corresponding
character table is returned.[133X
[1X71.6-5 CompatibleConjugacyClasses[101X
[33X[1;0Y[29X[2XCompatibleConjugacyClasses[102X( [[3XG[103X, [3Xccl[103X, ][3Xtbl[103X[, [3Xarec[103X] ) [32X operation[133X
[33X[0;0YIf the arguments [3XG[103X and [3Xccl[103X are present then [3Xccl[103X must be a list of the
conjugacy classes of the group [3XG[103X, and [3Xtbl[103X the ordinary character table of [3XG[103X.
Then [2XCompatibleConjugacyClasses[102X returns a list [22Xl[122X of positive integers that
describes an identification of the columns of [3Xtbl[103X with the conjugacy classes
[3Xccl[103X in the sense that [22Xl[i][122X is the position in [3Xccl[103X of the class corresponding
to the [22Xi[122X-th column of [3Xtbl[103X, if this identification is unique up to
automorphisms of [3Xtbl[103X (seeĀ [2XAutomorphismsOfTable[102X ([14X71.9-4[114X)); if [5XGAP[105X cannot
identify the classes, [9Xfail[109X is returned.[133X
[33X[0;0YIf [3Xtbl[103X is the first argument then it must be an ordinary character table,
and [2XCompatibleConjugacyClasses[102X checks whether the columns of [3Xtbl[103X can be
identified with the conjugacy classes of a group isomorphic to that for
which [3Xtbl[103X is the character table; the return value is a list of all those
sets of class positions for which the columns of [3Xtbl[103X cannot be distinguished
with the invariants used, up to automorphisms of [3Xtbl[103X. So the identification
is unique if and only if the returned list is empty.[133X
[33X[0;0YThe usual approach is that one first calls [2XCompatibleConjugacyClasses[102X in the
second form for checking quickly whether the first form will be successful,
and only if this is the case the more time consuming calculations with both
group and character table are done.[133X
[33X[0;0YThe following invariants are used.[133X
[31X1[131X [33X[0;6Yelement orders (seeĀ [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X)),[133X
[31X2[131X [33X[0;6Yclass lengths (seeĀ [2XSizesConjugacyClasses[102X ([14X71.9-3[114X)),[133X
[31X3[131X [33X[0;6Ypower maps (seeĀ [2XPowerMap[102X ([14X73.1-1[114X), [2XComputedPowerMaps[102X ([14X73.1-1[114X)),[133X
[31X4[131X [33X[0;6Ysymmetries of the table (seeĀ [2XAutomorphismsOfTable[102X ([14X71.9-4[114X)).[133X
[33X[0;0YIf the optional argument [3Xarec[103X is present then it must be a record whose
components describe additional information for the class identification. The
following components are supported.[133X
[8X[10Xnatchar[110X[8X [108X
[33X[0;6Yif [22XG[122X is a permutation group or matrix group then the value of this
component is regarded as the list of values of the natural character
(seeĀ [2XNaturalCharacter[102X ([14X72.7-2[114X)) of [3XG[103X, w.r.t.Ā the ordering of classes
in [3Xtbl[103X,[133X
[8X[10Xbijection[110X[8X [108X
[33X[0;6Ya list describing a partial bijection; the [22Xi[122X-th entry, if bound, is
the position of the [22Xi[122X-th conjugacy class of [3Xtbl[103X in the list [3Xccl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= AlternatingGroup( 5 );[127X[104X
[4X[28XAlt( [ 1 .. 5 ] )[128X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );[127X[104X
[4X[28XCharacterTable( "A5" )[128X[104X
[4X[25Xgap>[125X [27XHasUnderlyingGroup( tbl ); HasOrdinaryCharacterTable( g );[127X[104X
[4X[28Xfalse[128X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XCompatibleConjugacyClasses( tbl ); # unique identification[127X[104X
[4X[28X[ ][128X[104X
[4X[25Xgap>[125X [27Xnew:= CharacterTableWithStoredGroup( g, tbl );[127X[104X
[4X[28XCharacterTable( Alt( [ 1 .. 5 ] ) )[128X[104X
[4X[25Xgap>[125X [27XIrr( new ) = Irr( tbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XHasConjugacyClasses( new ); HasUnderlyingGroup( new );[127X[104X
[4X[28Xtrue[128X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIdentificationOfConjugacyClasses( new );[127X[104X
[4X[28X[ 1, 2, 3, 4, 5 ][128X[104X
[4X[25Xgap>[125X [27X# Here is an example where the identification is not unique.[127X[104X
[4X[25Xgap>[125X [27XCompatibleConjugacyClasses( CharacterTable( "J2" ) );[127X[104X
[4X[28X[ [ 17, 18 ], [ 9, 10 ] ][128X[104X
[4X[32X[104X
[1X71.7 [33X[0;0YOperators for Character Tables[133X[101X
[33X[0;0YThe following infix operators are defined for character tables.[133X
[8X[10X[3Xtbl1[103X[8X[10X * [3Xtbl2[103X[8X[10X[110X[8X[108X
[33X[0;6Ythe direct product of two character tables
(seeĀ [2XCharacterTableDirectProduct[102X ([14X71.20-1[114X)),[133X
[8X[10X[3Xtbl[103X[8X[10X / [3Xlist[103X[8X[10X[110X[8X[108X
[33X[0;6Ythe table of the factor group modulo the normal subgroup spanned by
the classes in the list [3Xlist[103X (seeĀ [2XCharacterTableFactorGroup[102X
([14X71.20-3[114X)),[133X
[8X[10X[3Xtbl[103X[8X[10X mod [3Xp[103X[8X[10X[110X[8X[108X
[33X[0;6Ythe [3Xp[103X-modular Brauer character table corresponding to the ordinary
character table [3Xtbl[103X (seeĀ [2XBrauerTable[102X ([14X71.3-2[114X)),[133X
[8X[10X[3Xtbl[103X[8X[10X.[3Xname[103X[8X[10X[110X[8X[108X
[33X[0;6Ythe position of the class with name [3Xname[103X in [3Xtbl[103X (seeĀ [2XClassNames[102X
([14X71.9-6[114X)).[133X
[1X71.8 [33X[0;0YAttributes and Properties for Groups and Character Tables[133X[101X
[33X[0;0YSeveral [13Xattributes for groups[113X are valid also for character tables.[133X
[33X[0;0YThese are first those that have the same meaning for both the group and its
character table, and whose values can be read off or computed, respectively,
from the character table, such as [2XSize[102X ([14X71.8-5[114X), [2XIsAbelian[102X ([14X71.8-5[114X), or
[2XIsSolvable[102X ([14X71.8-5[114X).[133X
[33X[0;0YSecond, there are attributes whose meaning for character tables is different
from the meaning for groups, such as [2XConjugacyClasses[102X ([14X71.6-2[114X).[133X
[1X71.8-1 [33X[0;0YCharacterDegrees[133X[101X
[33X[1;0Y[29X[2XCharacterDegrees[102X( [3XG[103X[, [3Xp[103X] ) [32X attribute[133X
[33X[1;0Y[29X[2XCharacterDegrees[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YIn the first form, [2XCharacterDegrees[102X returns a collected list of the degrees
of the absolutely irreducible characters of the group [3XG[103X; the optional second
argument [3Xp[103X must be either zero or a prime integer denoting the
characteristic, the default value is zero. In the second form, [3Xtbl[103X must be
an (ordinary or Brauer) character table, and [2XCharacterDegrees[102X returns a
collected list of the degrees of the absolutely irreducible characters of
[3Xtbl[103X.[133X
[33X[0;0Y(The default method for the call with only argument a group is to call the
operation with second argument [10X0[110X.)[133X
[33X[0;0YFor solvable groups, the default method is based onĀ [Con90b].[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCharacterDegrees( SymmetricGroup( 4 ) );[127X[104X
[4X[28X[ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ] ][128X[104X
[4X[25Xgap>[125X [27XCharacterDegrees( SymmetricGroup( 4 ), 2 );[127X[104X
[4X[28X[ [ 1, 1 ], [ 2, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XCharacterDegrees( CharacterTable( "A5" ) );[127X[104X
[4X[28X[ [ 1, 1 ], [ 3, 2 ], [ 4, 1 ], [ 5, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XCharacterDegrees( CharacterTable( "A5" ) mod 2 );[127X[104X
[4X[28X[ [ 1, 1 ], [ 2, 2 ], [ 4, 1 ] ][128X[104X
[4X[32X[104X
[1X71.8-2 [33X[0;0YIrr[133X[101X
[33X[1;0Y[29X[2XIrr[102X( [3XG[103X[, [3Xp[103X] ) [32X attribute[133X
[33X[1;0Y[29X[2XIrr[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YCalled with a group [3XG[103X, [2XIrr[102X returns the irreducible characters of the
ordinary character table of [3XG[103X. Called with a group [3XG[103X and a prime integer [3Xp[103X,
[2XIrr[102X returns the irreducible characters of the [3Xp[103X-modular Brauer table of [3XG[103X.
Called with an (ordinary or Brauer) character table [3Xtbl[103X, [2XIrr[102X returns the
list of all complex absolutely irreducible characters of [3Xtbl[103X.[133X
[33X[0;0YFor a character table [3Xtbl[103X with underlying group, [2XIrr[102X may delegate to the
group. For a group [3XG[103X, [2XIrr[102X may delegate to its character table only if the
irreducibles are already stored there.[133X
[33X[0;0Y(If [3XG[103X is [3Xp[103X-solvable (seeĀ [2XIsPSolvable[102X ([14X39.15-24[114X)) then the [3Xp[103X-modular
irreducible characters can be computed by the Fong-Swan Theorem; in all
other cases, there may be no method.)[133X
[33X[0;0YNote that the ordering of columns in the [2XIrr[102X matrix of the group [3XG[103X refers to
the ordering of conjugacy classes in the [2XCharacterTable[102X ([14X71.3-1[114X) value of [3XG[103X,
which may differ from the ordering of conjugacy classes in [3XG[103X (see [14X71.6[114X). As
an extreme example, for a character table obtained from sorting the classes
of the [2XCharacterTable[102X ([14X71.3-1[114X) value of [3XG[103X, the ordering of columns in the
[2XIrr[102X matrix respects the sorting of classes (seeĀ [14X71.21[114X), so the irreducibles
of such a table will in general not coincide with the irreducibles stored as
the [2XIrr[102X value of [3XG[103X although also the sorted table stores the group [3XG[103X.[133X
[33X[0;0YThe ordering of the entries in the attribute [2XIrr[102X of a group need [13Xnot[113X
coincide with the ordering of its [2XIrreducibleRepresentations[102X ([14X71.14-4[114X)
value.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIrr( SymmetricGroup( 4 ) );[127X[104X
[4X[28X[ Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [ 1, -1, 1, 1, -1 [128X[104X
[4X[28X ] ), Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [128X[104X
[4X[28X [ 3, -1, -1, 0, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [ 2, 0, 2, -1, 0 ] )[128X[104X
[4X[28X , Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [128X[104X
[4X[28X [ 3, 1, -1, 0, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [ 1, 1, 1, 1, 1 ] ) [128X[104X
[4X[28X ][128X[104X
[4X[25Xgap>[125X [27XIrr( SymmetricGroup( 4 ), 2 );[127X[104X
[4X[28X[ Character( BrauerTable( Sym( [ 1 .. 4 ] ), 2 ), [ 1, 1 ] ), [128X[104X
[4X[28X Character( BrauerTable( Sym( [ 1 .. 4 ] ), 2 ), [ 2, -1 ] ) ][128X[104X
[4X[25Xgap>[125X [27XIrr( CharacterTable( "A5" ) );[127X[104X
[4X[28X[ Character( CharacterTable( "A5" ), [ 1, 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "A5" ), [128X[104X
[4X[28X [ 3, -1, 0, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ] ), [128X[104X
[4X[28X Character( CharacterTable( "A5" ), [128X[104X
[4X[28X [ 3, -1, 0, -E(5)^2-E(5)^3, -E(5)-E(5)^4 ] ), [128X[104X
[4X[28X Character( CharacterTable( "A5" ), [ 4, 0, 1, -1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "A5" ), [ 5, 1, -1, 0, 0 ] ) ][128X[104X
[4X[25Xgap>[125X [27XIrr( CharacterTable( "A5" ) mod 2 );[127X[104X
[4X[28X[ Character( BrauerTable( "A5", 2 ), [ 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( BrauerTable( "A5", 2 ), [128X[104X
[4X[28X [ 2, -1, E(5)+E(5)^4, E(5)^2+E(5)^3 ] ), [128X[104X
[4X[28X Character( BrauerTable( "A5", 2 ), [128X[104X
[4X[28X [ 2, -1, E(5)^2+E(5)^3, E(5)+E(5)^4 ] ), [128X[104X
[4X[28X Character( BrauerTable( "A5", 2 ), [ 4, 1, -1, -1 ] ) ][128X[104X
[4X[32X[104X
[1X71.8-3 [33X[0;0YLinearCharacters[133X[101X
[33X[1;0Y[29X[2XLinearCharacters[102X( [3XG[103X[, [3Xp[103X] ) [32X attribute[133X
[33X[1;0Y[29X[2XLinearCharacters[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Y[2XLinearCharacters[102X returns the linear (i.e., degree [22X1[122X) characters in the [2XIrr[102X
([14X71.8-2[114X) list of the group [3XG[103X or the character table [3Xtbl[103X, respectively. In
the second form, [2XLinearCharacters[102X returns the [3Xp[103X-modular linear characters of
the group [3XG[103X.[133X
[33X[0;0YFor a character table [3Xtbl[103X with underlying group, [2XLinearCharacters[102X may
delegate to the group. For a group [3XG[103X, [2XLinearCharacters[102X may delegate to its
character table only if the irreducibles are already stored there.[133X
[33X[0;0YThe ordering of linear characters in [3Xtbl[103X need not coincide with the ordering
of linear characters in the irreducibles of [3Xtbl[103X (seeĀ [2XIrr[102X ([14X71.8-2[114X)).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XLinearCharacters( SymmetricGroup( 4 ) );[127X[104X
[4X[28X[ Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [ 1, 1, 1, 1, 1 ] ),[128X[104X
[4X[28X Character( CharacterTable( Sym( [ 1 .. 4 ] ) ), [ 1, -1, 1, 1, -1 [128X[104X
[4X[28X ] ) ][128X[104X
[4X[32X[104X
[1X71.8-4 [33X[0;0YOrdinaryCharacterTable[133X[101X
[33X[1;0Y[29X[2XOrdinaryCharacterTable[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XOrdinaryCharacterTable[102X( [3Xmodtbl[103X ) [32X attribute[133X
[33X[0;0Y[2XOrdinaryCharacterTable[102X returns the ordinary character table of the group [3XG[103X
or the Brauer character table [3Xmodtbl[103X, respectively.[133X
[33X[0;0YSince Brauer character tables are constructed from ordinary tables, the
attribute value for [3Xmodtbl[103X is already stored (cf.Ā [14X71.4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XOrdinaryCharacterTable( SymmetricGroup( 4 ) );[127X[104X
[4X[28XCharacterTable( Sym( [ 1 .. 4 ] ) )[128X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );; modtbl:= tbl mod 2;[127X[104X
[4X[28XBrauerTable( "A5", 2 )[128X[104X
[4X[25Xgap>[125X [27XOrdinaryCharacterTable( modtbl ) = tbl;[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X71.8-5 [33X[0;0YGroup Operations Applicable to Character Tables[133X[101X
[33X[1;0Y[29X[2XAbelianInvariants[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XCommutatorLength[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XExponent[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XIsAbelian[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsAlmostSimple[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsCyclic[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsElementaryAbelian[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsFinite[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsMonomial[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsNilpotent[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsPerfect[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsSimple[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsSolvable[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsSporadicSimple[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsSupersolvable[102X( [3Xtbl[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsomorphismTypeInfoFiniteSimpleGroup[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XNrConjugacyClasses[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XSize[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YThese operations for groups are applicable to character tables and mean the
same for a character table as for its underlying group; see Chapter [14X39[114X for
the definitions. The operations are mainly useful for selecting character
tables with certain properties, also for character tables without access to
a group.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtables:= [ CharacterTable( CyclicGroup( 3 ) ),[127X[104X
[4X[25X>[125X [27X CharacterTable( SymmetricGroup( 4 ) ),[127X[104X
[4X[25X>[125X [27X CharacterTable( AlternatingGroup( 5 ) ) ];;[127X[104X
[4X[25Xgap>[125X [27XList( tables, AbelianInvariants );[127X[104X
[4X[28X[ [ 3 ], [ 2 ], [ ] ][128X[104X
[4X[25Xgap>[125X [27XList( tables, CommutatorLength );[127X[104X
[4X[28X[ 1, 1, 1 ][128X[104X
[4X[25Xgap>[125X [27XList( tables, Exponent );[127X[104X
[4X[28X[ 3, 12, 30 ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsAbelian );[127X[104X
[4X[28X[ true, false, false ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsAlmostSimple );[127X[104X
[4X[28X[ false, false, true ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsCyclic );[127X[104X
[4X[28X[ true, false, false ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsFinite );[127X[104X
[4X[28X[ true, true, true ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsMonomial );[127X[104X
[4X[28X[ true, true, false ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsNilpotent );[127X[104X
[4X[28X[ true, false, false ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsPerfect );[127X[104X
[4X[28X[ false, false, true ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsSimple );[127X[104X
[4X[28X[ true, false, true ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsSolvable );[127X[104X
[4X[28X[ true, true, false ][128X[104X
[4X[25Xgap>[125X [27XList( tables, IsSupersolvable );[127X[104X
[4X[28X[ true, false, false ][128X[104X
[4X[25Xgap>[125X [27XList( tables, NrConjugacyClasses );[127X[104X
[4X[28X[ 3, 5, 5 ][128X[104X
[4X[25Xgap>[125X [27XList( tables, Size );[127X[104X
[4X[28X[ 3, 24, 60 ][128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( CharacterTable( "C5" ) );[127X[104X
[4X[28Xrec( name := "Z(5)", parameter := 5, series := "Z", shortname := "C5" [128X[104X
[4X[28X )[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( CharacterTable( "S3" ) );[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( CharacterTable( "S6(3)" ) );[127X[104X
[4X[28Xrec( name := "C(3,3) = S(6,3)", parameter := [ 3, 3 ], series := "C", [128X[104X
[4X[28X shortname := "S6(3)" )[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( CharacterTable( "O7(3)" ) );[127X[104X
[4X[28Xrec( name := "B(3,3) = O(7,3)", parameter := [ 3, 3 ], series := "B", [128X[104X
[4X[28X shortname := "O7(3)" )[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( CharacterTable( "A8" ) );[127X[104X
[4X[28Xrec( name := "A(8) ~ A(3,2) = L(4,2) ~ D(3,2) = O+(6,2)", [128X[104X
[4X[28X parameter := 8, series := "A", shortname := "A8" )[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( CharacterTable( "L3(4)" ) );[127X[104X
[4X[28Xrec( name := "A(2,4) = L(3,4)", parameter := [ 3, 4 ], series := "L", [128X[104X
[4X[28X shortname := "L3(4)" )[128X[104X
[4X[32X[104X
[1X71.9 [33X[0;0YAttributes and Properties only for Character Tables[133X[101X
[33X[0;0YThe following three [13Xattributes for character tables[113X
ā[2XOrdersClassRepresentatives[102X ([14X71.9-1[114X), [2XSizesCentralizers[102X ([14X71.9-2[114X), and
[2XSizesConjugacyClasses[102X ([14X71.9-3[114X)ā would make sense also for groups but are in
fact [13Xnot[113X used for groups. This is because the values depend on the ordering
of conjugacy classes stored as the value of [2XConjugacyClasses[102X ([14X71.6-2[114X), and
this value may differ for a group and its character table (see [14X71.6[114X). Note
that for character tables, the consistency of attribute values must be
guaranteed, whereas for groups, there is no need to impose such a
consistency rule.[133X
[33X[0;0YThe other attributes introduced in this section apply only to character
tables, not to groups.[133X
[1X71.9-1 OrdersClassRepresentatives[101X
[33X[1;0Y[29X[2XOrdersClassRepresentatives[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Yis a list of orders of representatives of conjugacy classes of the character
table [3Xtbl[103X, in the same ordering as the conjugacy classes of [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XOrdersClassRepresentatives( tbl );[127X[104X
[4X[28X[ 1, 2, 3, 5, 5 ][128X[104X
[4X[32X[104X
[1X71.9-2 SizesCentralizers[101X
[33X[1;0Y[29X[2XSizesCentralizers[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XSizesCentralisers[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Yis a list that stores at position [22Xi[122X the size of the centralizer of any
element in the [22Xi[122X-th conjugacy class of the character table [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XSizesCentralizers( tbl );[127X[104X
[4X[28X[ 60, 4, 3, 5, 5 ][128X[104X
[4X[32X[104X
[1X71.9-3 SizesConjugacyClasses[101X
[33X[1;0Y[29X[2XSizesConjugacyClasses[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Yis a list that stores at position [22Xi[122X the size of the [22Xi[122X-th conjugacy class of
the character table [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XSizesConjugacyClasses( tbl );[127X[104X
[4X[28X[ 1, 15, 20, 12, 12 ][128X[104X
[4X[32X[104X
[1X71.9-4 AutomorphismsOfTable[101X
[33X[1;0Y[29X[2XAutomorphismsOfTable[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Yis the permutation group of all column permutations of the character table
[3Xtbl[103X that leave the set of irreducibles and each power map of [3Xtbl[103X invariant
(see alsoĀ [2XTableAutomorphisms[102X ([14X71.22-2[114X)).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27XAutomorphismsOfTable( tbl );[127X[104X
[4X[28XGroup([ (4,5) ])[128X[104X
[4X[25Xgap>[125X [27XOrdersClassRepresentatives( tbl );[127X[104X
[4X[28X[ 1, 4, 2, 2, 2 ][128X[104X
[4X[25Xgap>[125X [27XSizesConjugacyClasses( tbl );[127X[104X
[4X[28X[ 1, 2, 1, 2, 2 ][128X[104X
[4X[32X[104X
[1X71.9-5 [33X[0;0YUnderlyingCharacteristic[133X[101X
[33X[1;0Y[29X[2XUnderlyingCharacteristic[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XUnderlyingCharacteristic[102X( [3Xpsi[103X ) [32X attribute[133X
[33X[0;0YFor an ordinary character table [3Xtbl[103X, the result is [10X0[110X, for a [22Xp[122X-modular Brauer
table [3Xtbl[103X, it is [22Xp[122X. The underlying characteristic of a class function [3Xpsi[103X is
equal to that of its underlying character table.[133X
[33X[0;0YThe underlying characteristic must be stored when the table is constructed,
there is no method to compute it.[133X
[33X[0;0YWe cannot use the attribute [2XCharacteristic[102X ([14X31.10-1[114X) to denote this, since
of course each Brauer character is an element of characteristic zero in the
sense of [5XGAP[105X (see ChapterĀ [14X72[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XUnderlyingCharacteristic( tbl );[127X[104X
[4X[28X0[128X[104X
[4X[25Xgap>[125X [27XUnderlyingCharacteristic( tbl mod 17 );[127X[104X
[4X[28X17[128X[104X
[4X[32X[104X
[1X71.9-6 [33X[0;0YClass Names and Character Names[133X[101X
[33X[1;0Y[29X[2XClassNames[102X( [3Xtbl[103X[, [3X"ATLAS"[103X] ) [32X attribute[133X
[33X[1;0Y[29X[2XCharacterNames[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Y[2XClassNames[102X and [2XCharacterNames[102X return lists of strings, one for each
conjugacy class or irreducible character, respectively, of the character
table [3Xtbl[103X. These names are used when [3Xtbl[103X is displayed.[133X
[33X[0;0YThe default method for [2XClassNames[102X computes class names consisting of the
order of an element in the class and at least one distinguishing letter.[133X
[33X[0;0YThe default method for [2XCharacterNames[102X returns the list [10X[ "X.1", "X.2", ...
][110X, whose length is the number of irreducible characters of [3Xtbl[103X.[133X
[33X[0;0YThe position of the class with name [3Xname[103X in [3Xtbl[103X can be accessed as [10X[3Xtbl[103X[10X.[3Xname[103X[10X[110X.[133X
[33X[0;0YWhen [2XClassNames[102X is called with two arguments, the second being the string
[10X"ATLAS"[110X, the class names returned obey the convention used in the [5XAtlas[105X of
Finite Groups [CCN+85, Chapter 7, Section 5]. If one is interested in
[21Xrelative[121X class names of almost simple [5XAtlas[105X groups, one can use the function
[2XAtlasClassNames[102X ([14XAtlasRep: AtlasClassNames[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XClassNames( tbl );[127X[104X
[4X[28X[ "1a", "2a", "3a", "5a", "5b" ][128X[104X
[4X[25Xgap>[125X [27Xtbl.2a;[127X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[1X71.9-7 [33X[0;0YClass Parameters and Character Parameters[133X[101X
[33X[1;0Y[29X[2XClassParameters[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XCharacterParameters[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YThe values of these attributes are lists containing a parameter for each
conjugacy class or irreducible character, respectively, of the character
table [3Xtbl[103X.[133X
[33X[0;0YIt depends on [3Xtbl[103X what these parameters are, so there is no default to
compute class and character parameters.[133X
[33X[0;0YFor example, the classes of symmetric groups can be parametrized by
partitions, corresponding to the cycle structures of permutations. Character
tables constructed from generic character tables (see the manual of the [5XGAP[105X
Character Table Library) usually have class and character parameters stored.[133X
[33X[0;0YIf [3Xtbl[103X is a [22Xp[122X-modular Brauer table such that class parameters are stored in
the underlying ordinary table (seeĀ [2XOrdinaryCharacterTable[102X ([14X71.8-4[114X)) of [3Xtbl[103X
then [2XClassParameters[102X returns the sublist of class parameters of the ordinary
table, for [22Xp[122X-regular classes.[133X
[1X71.9-8 Identifier[101X
[33X[1;0Y[29X[2XIdentifier[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Yis a string that identifies the character table [3Xtbl[103X in the current [5XGAP[105X
session. It is used mainly for class fusions into [3Xtbl[103X that are stored on
other character tables. For character tables without group, the identifier
is also used to print the table; this is the case for library tables, but
also for tables that are constructed as direct products, factors
etc.Ā involving tables that may or may not store their groups.[133X
[33X[0;0YThe default method for ordinary tables constructs strings of the form [10X"CT[3Xn[103X[10X"[110X,
where [3Xn[103X is a positive integer. [10XLARGEST_IDENTIFIER_NUMBER[110X is a list
containing the largest integer [3Xn[103X used in the current [5XGAP[105X session.[133X
[33X[0;0YThe default method for Brauer tables returns the concatenation of the
identifier of the ordinary table, the string [10X"mod"[110X, and the (string of the)
underlying characteristic.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIdentifier( CharacterTable( "A5" ) );[127X[104X
[4X[28X"A5"[128X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( Group( () ) );;[127X[104X
[4X[25Xgap>[125X [27XIdentifier( tbl ); Identifier( tbl mod 2 );[127X[104X
[4X[28X"CT8"[128X[104X
[4X[28X"CT8mod2"[128X[104X
[4X[32X[104X
[1X71.9-9 InfoText[101X
[33X[1;0Y[29X[2XInfoText[102X( [3Xtbl[103X ) [32X method[133X
[33X[0;0Yis a mutable string with information about the character table [3Xtbl[103X. There is
no default method to create an info text.[133X
[33X[0;0YThis attribute is used mainly for library tables (see the manual of the [5XGAP[105X
Character Table Library). Usual parts of the information are the origin of
the table, tests it has passed ([10X1.o.r.[110X for the test of orthogonality, [10Xpow[[3Xp[103X[10X][110X
for the construction of the [3Xp[103X-th power map, [10XDEC[110X for the decomposition of
ordinary into Brauer characters, [10XTENS[110X for the decomposition of tensor
products of irreducibles), and choices made without loss of generality.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XPrint( InfoText( CharacterTable( "A5" ) ), "\n" );[127X[104X
[4X[28Xorigin: ATLAS of finite groups, tests: 1.o.r., pow[2,3,5][128X[104X
[4X[32X[104X
[1X71.9-10 InverseClasses[101X
[33X[1;0Y[29X[2XInverseClasses[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor a character table [3Xtbl[103X, [2XInverseClasses[102X returns the list mapping each
conjugacy class to its inverse class. This list can be regarded as [22X(-1)[122X-st
power map of [3Xtbl[103X (seeĀ [2XPowerMap[102X ([14X73.1-1[114X)).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XInverseClasses( CharacterTable( "A5" ) );[127X[104X
[4X[28X[ 1, 2, 3, 4, 5 ][128X[104X
[4X[25Xgap>[125X [27XInverseClasses( CharacterTable( "Cyclic", 3 ) );[127X[104X
[4X[28X[ 1, 3, 2 ][128X[104X
[4X[32X[104X
[1X71.9-11 RealClasses[101X
[33X[1;0Y[29X[2XRealClasses[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor a character table [3Xtbl[103X, [2XRealClasses[102X returns the strictly sorted list of
positions of classes in [3Xtbl[103X that consist of real elements.[133X
[33X[0;0YAn element [22Xx[122X is [13Xreal[113X iff it is conjugate to its inverse [22Xx^{-1} = x^{o(x)-1}[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XRealClasses( CharacterTable( "A5" ) );[127X[104X
[4X[28X[ 1, 2, 3, 4, 5 ][128X[104X
[4X[25Xgap>[125X [27XRealClasses( CharacterTable( "Cyclic", 3 ) );[127X[104X
[4X[28X[ 1 ][128X[104X
[4X[32X[104X
[1X71.9-12 ClassOrbit[101X
[33X[1;0Y[29X[2XClassOrbit[102X( [3Xtbl[103X, [3Xcc[103X ) [32X operation[133X
[33X[0;0Yis the list of positions of those conjugacy classes of the character table
[3Xtbl[103X that are Galois conjugate to the [3Xcc[103X-th class. That is, exactly the
classes at positions given by the list returned by [2XClassOrbit[102X contain
generators of the cyclic group generated by an element in the [3Xcc[103X-th class.[133X
[33X[0;0YThis information is computed from the power maps of [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XClassOrbit( CharacterTable( "A5" ), 4 );[127X[104X
[4X[28X[ 4, 5 ][128X[104X
[4X[32X[104X
[1X71.9-13 ClassRoots[101X
[33X[1;0Y[29X[2XClassRoots[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor a character table [3Xtbl[103X, [2XClassRoots[102X returns a list containing at position
[22Xi[122X the list of positions of the classes of all nontrivial [22Xp[122X-th roots, where [22Xp[122X
runs over the prime divisors of the [2XSize[102X ([14X71.8-5[114X) value of [3Xtbl[103X.[133X
[33X[0;0YThis information is computed from the power maps of [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XClassRoots( CharacterTable( "A5" ) );[127X[104X
[4X[28X[ [ 2, 3, 4, 5 ], [ ], [ ], [ ], [ ] ][128X[104X
[4X[25Xgap>[125X [27XClassRoots( CharacterTable( "Cyclic", 6 ) );[127X[104X
[4X[28X[ [ 3, 4, 5 ], [ ], [ 2 ], [ 2, 6 ], [ 6 ], [ ] ][128X[104X
[4X[32X[104X
[1X71.10 [33X[0;0YNormal Subgroups Represented by Lists of Class Positions[133X[101X
[33X[0;0YThe following attributes for a character table [3Xtbl[103X correspond to attributes
for the group [22XG[122X of [3Xtbl[103X. But instead of a normal subgroup (or a list of
normal subgroups) of [22XG[122X, they return a strictly sorted list of positive
integers (or a list of such lists) which are the positions ārelative to the
[2XConjugacyClasses[102X ([14X71.6-2[114X) value of [3Xtbl[103Xā of those classes forming the normal
subgroup in question.[133X
[1X71.10-1 ClassPositionsOfNormalSubgroups[101X
[33X[1;0Y[29X[2XClassPositionsOfNormalSubgroups[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XClassPositionsOfMaximalNormalSubgroups[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XClassPositionsOfMinimalNormalSubgroups[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorrespond to [2XNormalSubgroups[102X ([14X39.19-9[114X), [2XMaximalNormalSubgroups[102X ([14X39.19-10[114X),
[2XMinimalNormalSubgroups[102X ([14X39.19-11[114X) for the group of the ordinary character
table [3Xordtbl[103X.[133X
[33X[0;0YThe entries of the result lists are sorted according to increasing length.
(So this total order respects the partial order of normal subgroups given by
inclusion.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfNormalSubgroups( tbls4 );[127X[104X
[4X[28X[ [ 1 ], [ 1, 3 ], [ 1, 3, 4 ], [ 1 .. 5 ] ][128X[104X
[4X[32X[104X
[1X71.10-2 ClassPositionsOfAgemo[101X
[33X[1;0Y[29X[2XClassPositionsOfAgemo[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0Ycorresponds to [2XAgemo[102X ([14X39.14-2[114X) for the group of the ordinary character table
[3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfAgemo( tbls4, 2 );[127X[104X
[4X[28X[ 1, 3, 4 ][128X[104X
[4X[32X[104X
[1X71.10-3 ClassPositionsOfCentre[101X
[33X[1;0Y[29X[2XClassPositionsOfCentre[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XClassPositionsOfCenter[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XCentre[102X ([14X35.4-5[114X) for the group of the ordinary character table
[3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfCentre( tbld8 );[127X[104X
[4X[28X[ 1, 3 ][128X[104X
[4X[32X[104X
[1X71.10-4 ClassPositionsOfDirectProductDecompositions[101X
[33X[1;0Y[29X[2XClassPositionsOfDirectProductDecompositions[102X( [3Xtbl[103X[, [3Xnclasses[103X] ) [32X attribute[133X
[33X[0;0YLet [3Xtbl[103X be the ordinary character table of the group [22XG[122X, say. Called with the
only argument [3Xtbl[103X, [2XClassPositionsOfDirectProductDecompositions[102X returns the
list of all those pairs [22X[ l_1, l_2 ][122X where [22Xl_1[122X and [22Xl_2[122X are lists of class
positions of normal subgroups [22XN_1[122X, [22XN_2[122X of [22XG[122X such that [22XG[122X is their direct
product and [22X|N_1| ⤠|N_2|[122X holds. Called with second argument a list [3Xnclasses[103X
of class positions of a normal subgroup [22XN[122X of [22XG[122X,
[2XClassPositionsOfDirectProductDecompositions[102X returns the list of pairs
describing the decomposition of [22XN[122X as a direct product of two normal
subgroups of [22XG[122X.[133X
[1X71.10-5 ClassPositionsOfDerivedSubgroup[101X
[33X[1;0Y[29X[2XClassPositionsOfDerivedSubgroup[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XDerivedSubgroup[102X ([14X39.12-3[114X) for the group of the ordinary
character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfDerivedSubgroup( tbld8 );[127X[104X
[4X[28X[ 1, 3 ][128X[104X
[4X[32X[104X
[1X71.10-6 ClassPositionsOfElementaryAbelianSeries[101X
[33X[1;0Y[29X[2XClassPositionsOfElementaryAbelianSeries[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XElementaryAbelianSeries[102X ([14X39.17-9[114X) for the group of the
ordinary character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27Xtbla5:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfElementaryAbelianSeries( tbls4 );[127X[104X
[4X[28X[ [ 1 .. 5 ], [ 1, 3, 4 ], [ 1, 3 ], [ 1 ] ][128X[104X
[4X[25Xgap>[125X [27XClassPositionsOfElementaryAbelianSeries( tbla5 );[127X[104X
[4X[28Xfail[128X[104X
[4X[32X[104X
[1X71.10-7 ClassPositionsOfFittingSubgroup[101X
[33X[1;0Y[29X[2XClassPositionsOfFittingSubgroup[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XFittingSubgroup[102X ([14X39.12-5[114X) for the group of the ordinary
character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfFittingSubgroup( tbls4 );[127X[104X
[4X[28X[ 1, 3 ][128X[104X
[4X[32X[104X
[1X71.10-8 ClassPositionsOfLowerCentralSeries[101X
[33X[1;0Y[29X[2XClassPositionsOfLowerCentralSeries[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XLowerCentralSeriesOfGroup[102X ([14X39.17-11[114X) for the group of the
ordinary character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfLowerCentralSeries( tbls4 );[127X[104X
[4X[28X[ [ 1 .. 5 ], [ 1, 3, 4 ] ][128X[104X
[4X[25Xgap>[125X [27XClassPositionsOfLowerCentralSeries( tbld8 );[127X[104X
[4X[28X[ [ 1 .. 5 ], [ 1, 3 ], [ 1 ] ][128X[104X
[4X[32X[104X
[1X71.10-9 ClassPositionsOfUpperCentralSeries[101X
[33X[1;0Y[29X[2XClassPositionsOfUpperCentralSeries[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XUpperCentralSeriesOfGroup[102X ([14X39.17-12[114X) for the group of the
ordinary character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfUpperCentralSeries( tbls4 );[127X[104X
[4X[28X[ [ 1 ] ][128X[104X
[4X[25Xgap>[125X [27XClassPositionsOfUpperCentralSeries( tbld8 );[127X[104X
[4X[28X[ [ 1, 3 ], [ 1, 2, 3, 4, 5 ] ][128X[104X
[4X[32X[104X
[1X71.10-10 ClassPositionsOfSolvableRadical[101X
[33X[1;0Y[29X[2XClassPositionsOfSolvableRadical[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XRadicalGroup[102X ([14X39.12-9[114X) for the group of the ordinary
character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XClassPositionsOfSolvableRadical( CharacterTable( "2.A5" ) );[127X[104X
[4X[28X[ 1, 2 ][128X[104X
[4X[32X[104X
[1X71.10-11 ClassPositionsOfSupersolvableResiduum[101X
[33X[1;0Y[29X[2XClassPositionsOfSupersolvableResiduum[102X( [3Xordtbl[103X ) [32X attribute[133X
[33X[0;0Ycorresponds to [2XSupersolvableResiduum[102X ([14X39.12-11[114X) for the group of the
ordinary character table [3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfSupersolvableResiduum( tbls4 );[127X[104X
[4X[28X[ 1, 3 ][128X[104X
[4X[32X[104X
[1X71.10-12 ClassPositionsOfPCore[101X
[33X[1;0Y[29X[2XClassPositionsOfPCore[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0Ycorresponds to [2XPCore[102X ([14X39.11-3[114X) for the group of the ordinary character table
[3Xordtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfPCore( tbls4, 2 );[127X[104X
[4X[28X[ 1, 3 ][128X[104X
[4X[25Xgap>[125X [27XClassPositionsOfPCore( tbls4, 3 );[127X[104X
[4X[28X[ 1 ][128X[104X
[4X[32X[104X
[1X71.10-13 ClassPositionsOfNormalClosure[101X
[33X[1;0Y[29X[2XClassPositionsOfNormalClosure[102X( [3Xordtbl[103X, [3Xclasses[103X ) [32X operation[133X
[33X[0;0Yis the sorted list of the positions of all conjugacy classes of the ordinary
character table [3Xordtbl[103X that form the normal closure (seeĀ [2XNormalClosure[102X
([14X39.11-4[114X)) of the conjugacy classes at positions in the list [3Xclasses[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfNormalClosure( tbls4, [ 1, 4 ] );[127X[104X
[4X[28X[ 1, 3, 4 ][128X[104X
[4X[32X[104X
[1X71.11 [33X[0;0YOperations Concerning Blocks[133X[101X
[1X71.11-1 PrimeBlocks[101X
[33X[1;0Y[29X[2XPrimeBlocks[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XPrimeBlocksOp[102X( [3Xordtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XComputedPrimeBlockss[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor an ordinary character table [3Xordtbl[103X and a prime integer [3Xp[103X, [2XPrimeBlocks[102X
returns a record with the following components.[133X
[8X[10Xblock[110X[8X[108X
[33X[0;6Ya list, the value [22Xj[122X at position [22Xi[122X means that the [22Xi[122X-th irreducible
character of [3Xordtbl[103X lies in the [22Xj[122X-th [3Xp[103X-block of [3Xordtbl[103X,[133X
[8X[10Xdefect[110X[8X[108X
[33X[0;6Ya list containing at position [22Xi[122X the defect of the [22Xi[122X-th block,[133X
[8X[10Xheight[110X[8X[108X
[33X[0;6Ya list containing at position [22Xi[122X the height of the [22Xi[122X-th irreducible
character of [3Xordtbl[103X in its block,[133X
[8X[10Xrelevant[110X[8X[108X
[33X[0;6Ya list of class positions such that only the restriction to these
classes need be checked for deciding whether two characters lie in the
same block, and[133X
[8X[10Xcentralcharacter[110X[8X[108X
[33X[0;6Ya list containing at position [22Xi[122X a list whose values at the positions
stored in the component [10Xrelevant[110X are the values of a central character
in the [22Xi[122X-th block.[133X
[33X[0;0YThe components [10Xrelevant[110X and [10Xcentralcharacters[110X are used by [2XSameBlock[102X
([14X71.11-2[114X).[133X
[33X[0;0YIf [2XInfoCharacterTable[102X ([14X71.4-2[114X) has level at least 2, the defects of the
blocks and the heights of the characters are printed.[133X
[33X[0;0YThe default method uses the attribute [2XComputedPrimeBlockss[102X for storing the
computed value at position [3Xp[103X, and calls the operation [2XPrimeBlocksOp[102X for
computing values that are not yet known.[133X
[33X[0;0YTwo ordinary irreducible characters [22XĻ, Ļ[122X of a group [22XG[122X are said to lie in the
same [22Xp[122X-[13Xblock[113X if the images of their central characters [22XĻ_Ļ, Ļ_Ļ[122X
(seeĀ [2XCentralCharacter[102X ([14X72.8-17[114X)) under the natural ring epimorphism [22XR ā R /
M[122X are equal, where [22XR[122X denotes the ring of algebraic integers in the complex
number field, and [22XM[122X is a maximal ideal in [22XR[122X with [22XpR ā M[122X. (The distribution
to [22Xp[122X-blocks is in fact independent of the choice of [22XM[122X, seeĀ [Isa76].)[133X
[33X[0;0YFor [22X|G| = p^a m[122X where [22Xp[122X does not divide [22Xm[122X, the [13Xdefect[113X of a block is the
integer [22Xd[122X such that [22Xp^{a-d}[122X is the largest power of [22Xp[122X that divides the
degrees of all characters in the block.[133X
[33X[0;0YThe [13Xheight[113X of a character [22XĻ[122X in the block is defined as the largest exponent
[22Xh[122X for which [22Xp^h[122X divides [22XĻ(1) / p^{a-d}[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "L3(2)" );;[127X[104X
[4X[25Xgap>[125X [27Xpbl:= PrimeBlocks( tbl, 2 );[127X[104X
[4X[28Xrec( block := [ 1, 1, 1, 1, 1, 2 ], [128X[104X
[4X[28X centralcharacter := [ [ ,, 56,, 24 ], [ ,, -7,, 3 ] ], [128X[104X
[4X[28X defect := [ 3, 0 ], height := [ 0, 0, 0, 1, 0, 0 ], [128X[104X
[4X[28X relevant := [ 3, 5 ] )[128X[104X
[4X[32X[104X
[1X71.11-2 SameBlock[101X
[33X[1;0Y[29X[2XSameBlock[102X( [3Xp[103X, [3Xomega1[103X, [3Xomega2[103X, [3Xrelevant[103X ) [32X function[133X
[33X[0;0YLet [3Xp[103X be a prime integer, [3Xomega1[103X and [3Xomega2[103X be two central characters (or
their values lists) of a character table, and [3Xrelevant[103X be a list of
positions as is stored in the component [10Xrelevant[110X of a record returned by
[2XPrimeBlocks[102X ([14X71.11-1[114X).[133X
[33X[0;0Y[2XSameBlock[102X returns [9Xtrue[109X if [3Xomega1[103X and [3Xomega2[103X are equal modulo any maximal
ideal in the ring of complex algebraic integers containing the ideal spanned
by [3Xp[103X, and [9Xfalse[109X otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xomega:= List( Irr( tbl ), CentralCharacter );;[127X[104X
[4X[25Xgap>[125X [27XSameBlock( 2, omega[1], omega[2], pbl.relevant );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XSameBlock( 2, omega[1], omega[6], pbl.relevant );[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X71.11-3 BlocksInfo[101X
[33X[1;0Y[29X[2XBlocksInfo[102X( [3Xmodtbl[103X ) [32X attribute[133X
[33X[0;0YFor a Brauer character table [3Xmodtbl[103X, the value of [2XBlocksInfo[102X is a list of
(mutable) records, the [22Xi[122X-th entry containing information about the [22Xi[122X-th
block. Each record has the following components.[133X
[8X[10Xdefect[110X[8X[108X
[33X[0;6Ythe defect of the block,[133X
[8X[10Xordchars[110X[8X[108X
[33X[0;6Ythe list of positions of the ordinary characters that belong to the
block, relative to [10XIrr( OrdinaryCharacterTable( [3Xmodtbl[103X[10X ) )[110X,[133X
[8X[10Xmodchars[110X[8X[108X
[33X[0;6Ythe list of positions of the Brauer characters that belong to the
block, relative to [10XIBr( [3Xmodtbl[103X[10X )[110X.[133X
[33X[0;0YOptional components are[133X
[8X[10Xbasicset[110X[8X[108X
[33X[0;6Ya list of positions of ordinary characters in the block whose
restriction to [3Xmodtbl[103X is maximally linearly independent, relative to
[10XIrr( OrdinaryCharacterTable( [3Xmodtbl[103X[10X ) )[110X,[133X
[8X[10Xdecmat[110X[8X[108X
[33X[0;6Ythe decomposition matrix of the block, it is stored automatically when
[2XDecompositionMatrix[102X ([14X71.11-4[114X) is called for the block,[133X
[8X[10Xdecinv[110X[8X[108X
[33X[0;6Yinverse of the decomposition matrix of the block, restricted to the
ordinary characters described by [10Xbasicset[110X,[133X
[8X[10Xbrauertree[110X[8X[108X
[33X[0;6Ya list that describes the Brauer tree of the block, in the case that
the block is of defect [22X1[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XBlocksInfo( CharacterTable( "L3(2)" ) mod 2 );[127X[104X
[4X[28X[ rec( basicset := [ 1, 2, 3 ], [128X[104X
[4X[28X decinv := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], [128X[104X
[4X[28X defect := 3, modchars := [ 1, 2, 3 ], [128X[104X
[4X[28X ordchars := [ 1, 2, 3, 4, 5 ] ), [128X[104X
[4X[28X rec( basicset := [ 6 ], decinv := [ [ 1 ] ], defect := 0, [128X[104X
[4X[28X modchars := [ 4 ], ordchars := [ 6 ] ) ][128X[104X
[4X[32X[104X
[1X71.11-4 DecompositionMatrix[101X
[33X[1;0Y[29X[2XDecompositionMatrix[102X( [3Xmodtbl[103X[, [3Xblocknr[103X] ) [32X operation[133X
[33X[0;0YLet [3Xmodtbl[103X be a Brauer character table.[133X
[33X[0;0YCalled with one argument, [2XDecompositionMatrix[102X returns the decomposition
matrix of [3Xmodtbl[103X, where the rows and columns are indexed by the irreducible
characters of the ordinary character table of [3Xmodtbl[103X and the irreducible
characters of [3Xmodtbl[103X, respectively,[133X
[33X[0;0YCalled with two arguments, [2XDecompositionMatrix[102X returns the decomposition
matrix of the block of [3Xmodtbl[103X with number [3Xblocknr[103X; the matrix is stored as
value of the [10Xdecmat[110X component of the [3Xblocknr[103X-th entry of the [2XBlocksInfo[102X
([14X71.11-3[114X) list of [3Xmodtbl[103X.[133X
[33X[0;0YAn ordinary irreducible character is in block [22Xi[122X if and only if all
characters before the first character of the same block lie in [22Xi-1[122X different
blocks. An irreducible Brauer character is in block [22Xi[122X if it has nonzero
scalar product with an ordinary irreducible character in block [22Xi[122X.[133X
[33X[0;0Y[2XDecompositionMatrix[102X is based on the more general function [2XDecomposition[102X
([14X25.4-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmodtbl:= CharacterTable( "L3(2)" ) mod 2;[127X[104X
[4X[28XBrauerTable( "L3(2)", 2 )[128X[104X
[4X[25Xgap>[125X [27XDecompositionMatrix( modtbl );[127X[104X
[4X[28X[ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 1, 0 ], [128X[104X
[4X[28X [ 1, 1, 1, 0 ], [ 0, 0, 0, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XDecompositionMatrix( modtbl, 1 );[127X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ], [ 0, 1, 1 ], [ 1, 1, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XDecompositionMatrix( modtbl, 2 );[127X[104X
[4X[28X[ [ 1 ] ][128X[104X
[4X[32X[104X
[1X71.11-5 LaTeXStringDecompositionMatrix[101X
[33X[1;0Y[29X[2XLaTeXStringDecompositionMatrix[102X( [3Xmodtbl[103X[, [3Xblocknr[103X][, [3Xoptions[103X] ) [32X function[133X
[33X[0;0Yis a string that contains LaTeX code to print a decomposition matrix
(seeĀ [2XDecompositionMatrix[102X ([14X71.11-4[114X)) nicely.[133X
[33X[0;0YThe optional argument [3Xoptions[103X, if present, must be a record with components
[10Xphi[110X, [10Xchi[110X (strings used in each label for columns and rows), [10Xcollabels[110X,
[10Xrowlabels[110X (subscripts for the labels). The defaults for [10Xphi[110X and [10Xchi[110X are
[10X"{\\tt Y}"[110X and [10X"{\\tt X}"[110X, the defaults for [10Xcollabels[110X and [10Xrowlabels[110X are the
lists of positions of the Brauer characters and ordinary characters in the
respective lists of irreducibles in the character tables.[133X
[33X[0;0YThe optional components [10Xnrows[110X and [10Xncols[110X denote the maximal number of rows
and columns per array; if they are present then each portion of [10Xnrows[110X rows
and [10Xncols[110X columns forms an array of its own which is enclosed in [10X\[[110X, [10X\][110X.[133X
[33X[0;0YIf the component [10Xdecmat[110X is bound in [3Xoptions[103X then it must be the
decomposition matrix in question, in this case the matrix is not computed
from the information in [3Xmodtbl[103X.[133X
[33X[0;0YFor those character tables from the [5XGAP[105X table library that belong to the
[5XAtlas[105X of Finite GroupsĀ [CCN+85], [2XAtlasLabelsOfIrreducibles[102X ([14XCTblLib:
AtlasLabelsOfIrreducibles[114X) constructs character labels that are compatible
with those used in the [5XAtlas[105X (seeĀ [14X'CTblLib: Atlas Tables'[114X in the manual of
the [5XGAP[105X Character Table Library).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmodtbl:= CharacterTable( "L3(2)" ) mod 2;;[127X[104X
[4X[25Xgap>[125X [27XPrint( LaTeXStringDecompositionMatrix( modtbl, 1 ) );[127X[104X
[4X[28X\[[128X[104X
[4X[28X\begin{array}{r|rrr} \hline[128X[104X
[4X[28X & {\tt Y}_{1}[128X[104X
[4X[28X & {\tt Y}_{2}[128X[104X
[4X[28X & {\tt Y}_{3}[128X[104X
[4X[28X \rule[-7pt]{0pt}{20pt} \\ \hline[128X[104X
[4X[28X{\tt X}_{1} & 1 & . & . \rule[0pt]{0pt}{13pt} \\[128X[104X
[4X[28X{\tt X}_{2} & . & 1 & . \\[128X[104X
[4X[28X{\tt X}_{3} & . & . & 1 \\[128X[104X
[4X[28X{\tt X}_{4} & . & 1 & 1 \\[128X[104X
[4X[28X{\tt X}_{5} & 1 & 1 & 1 \rule[-7pt]{0pt}{5pt} \\[128X[104X
[4X[28X\hline[128X[104X
[4X[28X\end{array}[128X[104X
[4X[28X\][128X[104X
[4X[25Xgap>[125X [27Xoptions:= rec( phi:= "\\varphi", chi:= "\\chi" );;[127X[104X
[4X[25Xgap>[125X [27XPrint( LaTeXStringDecompositionMatrix( modtbl, 1, options ) );[127X[104X
[4X[28X\[[128X[104X
[4X[28X\begin{array}{r|rrr} \hline[128X[104X
[4X[28X & \varphi_{1}[128X[104X
[4X[28X & \varphi_{2}[128X[104X
[4X[28X & \varphi_{3}[128X[104X
[4X[28X \rule[-7pt]{0pt}{20pt} \\ \hline[128X[104X
[4X[28X\chi_{1} & 1 & . & . \rule[0pt]{0pt}{13pt} \\[128X[104X
[4X[28X\chi_{2} & . & 1 & . \\[128X[104X
[4X[28X\chi_{3} & . & . & 1 \\[128X[104X
[4X[28X\chi_{4} & . & 1 & 1 \\[128X[104X
[4X[28X\chi_{5} & 1 & 1 & 1 \rule[-7pt]{0pt}{5pt} \\[128X[104X
[4X[28X\hline[128X[104X
[4X[28X\end{array}[128X[104X
[4X[28X\][128X[104X
[4X[32X[104X
[1X71.12 [33X[0;0YOther Operations for Character Tables[133X[101X
[33X[0;0YIn the following, we list operations for character tables that are not
attributes.[133X
[1X71.12-1 Index[101X
[33X[1;0Y[29X[2XIndex[102X( [3Xtbl[103X, [3Xsubtbl[103X ) [32X operation[133X
[33X[0;0YFor two character tables [3Xtbl[103X and [3Xsubtbl[103X, [2XIndex[102X returns the quotient of the
[2XSize[102X ([14X71.8-5[114X) values of [3Xtbl[103X and [3Xsubtbl[103X. The containment of the underlying
groups of [3Xsubtbl[103X and [3Xtbl[103X is [13Xnot[113X checked; so the distinction between [2XIndex[102X
([14X39.3-2[114X) and [2XIndexNC[102X ([14X39.3-2[114X) is not made for character tables.[133X
[1X71.12-2 IsInternallyConsistent[101X
[33X[1;0Y[29X[2XIsInternallyConsistent[102X( [3Xtbl[103X ) [32X method[133X
[33X[0;0YFor an [13Xordinary[113X character table [3Xtbl[103X, [2XIsInternallyConsistent[102X ([14X12.8-4[114X) checks
the consistency of the following attribute values (if stored).[133X
[30X [33X[0;6Y[2XSize[102X ([14X30.4-6[114X), [2XSizesCentralizers[102X ([14X71.9-2[114X), and [2XSizesConjugacyClasses[102X
([14X71.9-3[114X).[133X
[30X [33X[0;6Y[2XSizesCentralizers[102X ([14X71.9-2[114X) and [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X).[133X
[30X [33X[0;6Y[2XComputedPowerMaps[102X ([14X73.1-1[114X) and [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X).[133X
[30X [33X[0;6Y[2XSizesCentralizers[102X ([14X71.9-2[114X) and [2XIrr[102X ([14X71.8-2[114X).[133X
[30X [33X[0;6Y[2XIrr[102X ([14X71.8-2[114X) (first orthogonality relation).[133X
[33X[0;0YFor a [13XBrauer[113X table [3Xtbl[103X, [2XIsInternallyConsistent[102X checks the consistency of the
following attribute values (if stored).[133X
[30X [33X[0;6Y[2XSize[102X ([14X30.4-6[114X), [2XSizesCentralizers[102X ([14X71.9-2[114X), and [2XSizesConjugacyClasses[102X
([14X71.9-3[114X).[133X
[30X [33X[0;6Y[2XSizesCentralizers[102X ([14X71.9-2[114X) and [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X).[133X
[30X [33X[0;6Y[2XComputedPowerMaps[102X ([14X73.1-1[114X) and [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X).[133X
[30X [33X[0;6Y[2XIrr[102X ([14X71.8-2[114X) (closure under complex conjugation and Frobenius map).[133X
[33X[0;0YIf no inconsistency occurs, [9Xtrue[109X is returned, otherwise each inconsistency
is printed to the screen if the level of [2XInfoWarning[102X ([14X7.4-7[114X) is at least [22X1[122X
(seeĀ [14X7.4[114X), and [9Xfalse[109X is returned at the end.[133X
[1X71.12-3 IsPSolvableCharacterTable[101X
[33X[1;0Y[29X[2XIsPSolvableCharacterTable[102X( [3Xtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XIsPSolubleCharacterTable[102X( [3Xtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XIsPSolvableCharacterTableOp[102X( [3Xtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XIsPSolubleCharacterTableOp[102X( [3Xtbl[103X, [3Xp[103X ) [32X operation[133X
[33X[1;0Y[29X[2XComputedIsPSolvableCharacterTables[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XComputedIsPSolubleCharacterTables[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Y[2XIsPSolvableCharacterTable[102X for the ordinary character table [3Xtbl[103X corresponds
to [2XIsPSolvable[102X ([14X39.15-24[114X) for the group of [3Xtbl[103X, [3Xp[103X must be either a prime
integer or [10X0[110X.[133X
[33X[0;0YThe default method uses the attribute [2XComputedIsPSolvableCharacterTables[102X for
storing the computed value at position [3Xp[103X, and calls the operation
[2XIsPSolvableCharacterTableOp[102X for computing values that are not yet known.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "Sz(8)" );;[127X[104X
[4X[25Xgap>[125X [27XIsPSolvableCharacterTable( tbl, 2 );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XIsPSolvableCharacterTable( tbl, 3 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X71.12-4 IsClassFusionOfNormalSubgroup[101X
[33X[1;0Y[29X[2XIsClassFusionOfNormalSubgroup[102X( [3Xsubtbl[103X, [3Xfus[103X, [3Xtbl[103X ) [32X function[133X
[33X[0;0YFor two ordinary character tables [3Xtbl[103X and [3Xsubtbl[103X of a group [22XG[122X and its
subgroup [22XU[122X, say, and a list [3Xfus[103X of positive integers that describes the
class fusion of [22XU[122X into [22XG[122X, [2XIsClassFusionOfNormalSubgroup[102X returns [9Xtrue[109X if [22XU[122X is
a normal subgroup of [22XG[122X, and [9Xfalse[109X otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtblc2:= CharacterTable( "Cyclic", 2 );;[127X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= PossibleClassFusions( tblc2, tbld8 );[127X[104X
[4X[28X[ [ 1, 3 ], [ 1, 4 ], [ 1, 5 ] ][128X[104X
[4X[25Xgap>[125X [27XList(fus, map -> IsClassFusionOfNormalSubgroup(tblc2, map, tbld8));[127X[104X
[4X[28X[ true, false, false ][128X[104X
[4X[32X[104X
[1X71.12-5 Indicator[101X
[33X[1;0Y[29X[2XIndicator[102X( [3Xtbl[103X[, [3Xcharacters[103X], [3Xn[103X ) [32X operation[133X
[33X[1;0Y[29X[2XIndicatorOp[102X( [3Xtbl[103X, [3Xcharacters[103X, [3Xn[103X ) [32X operation[133X
[33X[1;0Y[29X[2XComputedIndicators[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YIf [3Xtbl[103X is an ordinary character table then [2XIndicator[102X returns the list of
[3Xn[103X-th Frobenius-Schur indicators of the characters in the list [3Xcharacters[103X;
the default of [3Xcharacters[103X is [10XIrr( [3Xtbl[103X[10X )[110X.[133X
[33X[0;0YThe [22Xn[122X-th Frobenius-Schur indicator [22Xν_n(Ļ)[122X of an ordinary character [22XĻ[122X of the
group [22XG[122X is given by [22Xν_n(Ļ) = ( ā_{g ā G} Ļ(g^n) ) / |G|[122X.[133X
[33X[0;0YIf [3Xtbl[103X is a Brauer table in characteristic [22Xā 2[122X and [22X[3Xn[103X = 2[122X then [2XIndicator[102X
returns the second indicator.[133X
[33X[0;0YThe default method uses the attribute [2XComputedIndicators[102X for storing the
computed value at position [3Xn[103X, and calls the operation [2XIndicatorOp[102X for
computing values that are not yet known.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "L3(2)" );;[127X[104X
[4X[25Xgap>[125X [27XIndicator( tbl, 2 );[127X[104X
[4X[28X[ 1, 0, 0, 1, 1, 1 ][128X[104X
[4X[32X[104X
[1X71.12-6 NrPolyhedralSubgroups[101X
[33X[1;0Y[29X[2XNrPolyhedralSubgroups[102X( [3Xtbl[103X, [3Xc1[103X, [3Xc2[103X, [3Xc3[103X ) [32X function[133X
[33X[0;0Yreturns the number and isomorphism type of polyhedral subgroups of the group
with ordinary character table [3Xtbl[103X which are generated by an element [22Xg[122X of
class [3Xc1[103X and an element [22Xh[122X of class [3Xc2[103X with the property that the product [22Xgh[122X
lies in class [3Xc3[103X.[133X
[33X[0;0YAccording to [NPP84, p. 233], the number of polyhedral subgroups of
isomorphism type [22XV_4[122X, [22XD_2n[122X, [22XA_4[122X, [22XS_4[122X, and [22XA_5[122X can be derived from the class
multiplication coefficient (seeĀ [2XClassMultiplicationCoefficient[102X ([14X71.12-7[114X))
and the number of Galois conjugates of a class (seeĀ [2XClassOrbit[102X ([14X71.9-12[114X)).[133X
[33X[0;0YThe classes [3Xc1[103X, [3Xc2[103X and [3Xc3[103X in the parameter list must be ordered according to
the order of the elements in these classes. If elements in class [3Xc1[103X and [3Xc2[103X
do not generate a polyhedral group then [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XNrPolyhedralSubgroups( tbl, 2, 2, 4 );[127X[104X
[4X[28Xrec( number := 21, type := "D8" )[128X[104X
[4X[32X[104X
[1X71.12-7 ClassMultiplicationCoefficient[101X
[33X[1;0Y[29X[2XClassMultiplicationCoefficient[102X( [3Xtbl[103X, [3Xi[103X, [3Xj[103X, [3Xk[103X ) [32X operation[133X
[33X[0;0Yreturns the class multiplication coefficient of the classes [3Xi[103X, [3Xj[103X, and [3Xk[103X of
the group [22XG[122X with ordinary character table [3Xtbl[103X.[133X
[33X[0;0YThe class multiplication coefficient [22Xc_{i,j,k}[122X of the classes [3Xi[103X, [3Xj[103X, [3Xk[103X equals
the number of pairs [22X(x,y)[122X of elements [22Xx, y ā G[122X such that [22Xx[122X lies in class [3Xi[103X,
[22Xy[122X lies in class [3Xj[103X, and their product [22Xxy[122X is a fixed element of class [3Xk[103X.[133X
[33X[0;0YIn the center of the group algebra of [22XG[122X, these numbers are found as
coefficients of the decomposition of the product of two class sums [22XK_i[122X and
[22XK_j[122X into class sums:[133X
[24X[33X[0;6YK_i K_j = ā_k c_ijk K_k .[133X[124X
[33X[0;0YGiven the character table of a finite group [22XG[122X, whose classes are [22XC_1, ...,
C_r[122X with representatives [22Xg_i ā C_i[122X, the class multiplication coefficient
[22Xc_ijk[122X can be computed with the following formula:[133X
[24X[33X[0;6Yc_ijk = |C_i| ā
|C_j| / |G| ā
ā_{Ļ ā Irr(G)} Ļ(g_i) Ļ(g_j) Ļ(g_k^{-1}) / Ļ(1).[133X[124X
[33X[0;0YOn the other hand the knowledge of the class multiplication coefficients
admits the computation of the irreducible characters of [22XG[122X,
seeĀ [2XIrrDixonSchneider[102X ([14X71.14-1[114X).[133X
[1X71.12-8 ClassStructureCharTable[101X
[33X[1;0Y[29X[2XClassStructureCharTable[102X( [3Xtbl[103X, [3Xclasses[103X ) [32X function[133X
[33X[0;0Yreturns the so-called class structure of the classes in the list [3Xclasses[103X,
for the character table [3Xtbl[103X of the group [22XG[122X. The length of [3Xclasses[103X must be at
least 2.[133X
[33X[0;0YLet [22XC = (C_1, C_2, ..., C_n)[122X denote the [22Xn[122X-tuple of conjugacy classes of [22XG[122X
that are indexed by [3Xclasses[103X. The class structure [22Xn(C)[122X equals the number of
[22Xn[122X-tuples [22X(g_1, g_2, ..., g_n)[122X of elements [22Xg_i ā C_i[122X with [22Xg_1 g_2 ⯠g_n = 1[122X.
Note the difference to the definition of the class multiplication
coefficients in [2XClassMultiplicationCoefficient[102X ([14X71.12-7[114X).[133X
[33X[0;0Y[22Xn(C_1, C_2, ..., C_n)[122X is computed using the formula[133X
[24X[33X[0;6Yn(C_1, C_2, ..., C_n) = |C_1| |C_2| ⯠|C_n| / |G| ā
ā_{Ļ ā Irr(G)} Ļ(g_1) Ļ(g_2) ⯠Ļ(g_n) / Ļ(1)^{n-2} .[133X[124X
[1X71.12-9 MatClassMultCoeffsCharTable[101X
[33X[1;0Y[29X[2XMatClassMultCoeffsCharTable[102X( [3Xtbl[103X, [3Xi[103X ) [32X function[133X
[33X[0;0YFor an ordinary character table [3Xtbl[103X and a class position [3Xi[103X,
[10XMatClassMultCoeffsCharTable[110X returns the matrix [22X[ a_ijk ]_{j,k}[122X of structure
constants (seeĀ [2XClassMultiplicationCoefficient[102X ([14X71.12-7[114X)).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "L3(2)" );;[127X[104X
[4X[25Xgap>[125X [27XClassMultiplicationCoefficient( tbl, 2, 2, 4 );[127X[104X
[4X[28X4[128X[104X
[4X[25Xgap>[125X [27XClassStructureCharTable( tbl, [ 2, 2, 4 ] );[127X[104X
[4X[28X168[128X[104X
[4X[25Xgap>[125X [27XClassStructureCharTable( tbl, [ 2, 2, 2, 4 ] );[127X[104X
[4X[28X1848[128X[104X
[4X[25Xgap>[125X [27XMatClassMultCoeffsCharTable( tbl, 2 );[127X[104X
[4X[28X[ [ 0, 1, 0, 0, 0, 0 ], [ 21, 4, 3, 4, 0, 0 ], [ 0, 8, 6, 8, 7, 7 ], [128X[104X
[4X[28X [ 0, 8, 6, 1, 7, 7 ], [ 0, 0, 3, 4, 0, 7 ], [ 0, 0, 3, 4, 7, 0 ] ][128X[104X
[4X[32X[104X
[1X71.13 [33X[0;0YPrinting Character Tables[133X[101X
[1X71.13-1 ViewObj[101X
[33X[1;0Y[29X[2XViewObj[102X( [3Xtbl[103X ) [32X method[133X
[33X[0;0YThe default [2XViewObj[102X ([14X6.3-5[114X) method for ordinary character tables prints the
string [10X"CharacterTable"[110X, followed by the identifier (seeĀ [2XIdentifier[102X
([14X71.9-8[114X)) or, if known, the group of the character table enclosed in
brackets. [2XViewObj[102X ([14X6.3-5[114X) for Brauer tables does the same, except that the
first string is replaced by [10X"BrauerTable"[110X, and that the characteristic is
also shown.[133X
[1X71.13-2 PrintObj[101X
[33X[1;0Y[29X[2XPrintObj[102X( [3Xtbl[103X ) [32X method[133X
[33X[0;0YThe default [2XPrintObj[102X ([14X6.3-5[114X) method for character tables does the same as
[2XViewObj[102X ([14X6.3-5[114X), except that [2XPrintObj[102X ([14X6.3-5[114X) is used for the group instead
of [2XViewObj[102X ([14X6.3-5[114X).[133X
[1X71.13-3 Display[101X
[33X[1;0Y[29X[2XDisplay[102X( [3Xtbl[103X ) [32X method[133X
[33X[0;0YThere are various ways to customize the [2XDisplay[102X ([14X6.3-6[114X) output for character
tables. First we describe the default behaviour, alternatives are then
described below.[133X
[33X[0;0YThe default [2XDisplay[102X ([14X6.3-6[114X) method prepares the data in [3Xtbl[103X for a columnwise
output. The number of columns printed at one time depends on the actual line
length, which can be accessed and changed by the function [2XSizeScreen[102X
([14X6.12-1[114X).[133X
[33X[0;0YAn interesting variant of [2XDisplay[102X ([14X6.3-6[114X) is the function [2XPageDisplay[102X
([14XGAPDoc: PageDisplay[114X). Convenient ways to print the [2XDisplay[102X ([14X6.3-6[114X) format
to a file are given by the function [2XPrintTo1[102X ([14XGAPDoc: PrintTo1[114X) or by using
[2XPageDisplay[102X ([14XGAPDoc: PageDisplay[114X) and the facilities of the pager used,
cf.Ā [2XPager[102X ([14X2.4-1[114X).[133X
[33X[0;0YAn interactive variant of [2XDisplay[102X ([14X6.3-6[114X) is the [2XBrowse[102X ([14XBrowse???[114X) method
for character tables that is provided by the [5XGAP[105X package [5XBrowse[105X, see [2XBrowse[102X
([14XBrowse, for character tables???[114X).[133X
[33X[0;0Y[2XDisplay[102X ([14X6.3-6[114X) shows certain characters (by default all irreducible
characters) of [3Xtbl[103X, together with the orders of the centralizers in
factorized form and the available power maps (seeĀ [2XComputedPowerMaps[102X
([14X73.1-1[114X)). The [3Xn[103X-th displayed character is given the name [10XX.[3Xn[103X[10X[110X.[133X
[33X[0;0YThe first lines of the output describe the order of the centralizer of an
element of the class factorized into its prime divisors.[133X
[33X[0;0YThe next line gives the name of each class. If no class names are stored on
[3Xtbl[103X, [2XClassNames[102X ([14X71.9-6[114X) is called.[133X
[33X[0;0YPreceded by a name [10XP[3Xn[103X[10X[110X, the next lines show the [3Xn[103Xth power maps of [3Xtbl[103X in
terms of the former shown class names.[133X
[33X[0;0YEvery ambiguous or unknown (see ChapterĀ [14X74[114X) value of the table is displayed
as a question mark [10X?[110X.[133X
[33X[0;0YIrrational character values are not printed explicitly because the lengths
of their printed representation might disturb the layout. Instead of that
every irrational value is indicated by a name, which is a string of at least
one capital letter.[133X
[33X[0;0YOnce a name for an irrational value is found, it is used all over the
printed table. Moreover the complex conjugate (seeĀ [2XComplexConjugate[102X
([14X18.5-2[114X), [2XGaloisCyc[102X ([14X18.5-1[114X)) and the star of an irrationality (seeĀ [2XStarCyc[102X
([14X18.5-3[114X)) are represented by that very name preceded by a [10X/[110X and a [10X*[110X,
respectively.[133X
[33X[0;0YThe printed character table is then followed by a legend, a list identifying
the occurring symbols with their actual values. Occasionally this
identification is supplemented by a quadratic representation of the
irrationality (seeĀ [2XQuadratic[102X ([14X18.5-4[114X)) together with the corresponding [5XAtlas[105X
notation (seeĀ [CCN+85]).[133X
[33X[0;0YThis default style can be changed by prescribing a record [3Xarec[103X of options,
which can be given[133X
[31X1[131X [33X[0;6Yas an optional argument in the call to [2XDisplay[102X ([14X6.3-6[114X),[133X
[31X2[131X [33X[0;6Yas the value of the attribute [2XDisplayOptions[102X ([14X71.13-4[114X) if this value
is stored in the table,[133X
[31X3[131X [33X[0;6Yas the value of the global variable
[10XCharacterTableDisplayDefaults.User[110X, or[133X
[31X4[131X [33X[0;6Yas the value of the global variable
[10XCharacterTableDisplayDefaults.Global[110X[133X
[33X[0;0Y(in this order of precedence).[133X
[33X[0;0YThe following components of [3Xarec[103X are supported.[133X
[8X[10Xcentralizers[110X[8X[108X
[33X[0;6Y[9Xfalse[109X to suppress the printing of the orders of the centralizers, or
the string [10X"ATLAS"[110X to force the printing of non-factorized centralizer
orders in a style similar to that used in the [5XAtlas[105X of Finite
GroupsĀ [CCN+85],[133X
[8X[10Xchars[110X[8X[108X
[33X[0;6Yan integer or a list of integers to select a sublist of the
irreducible characters of [3Xtbl[103X, or a list of characters of [3Xtbl[103X (in this
case the letter [10X"X"[110X is replaced by [10X"Y"[110X),[133X
[8X[10Xclasses[110X[8X[108X
[33X[0;6Yan integer or a list of integers to select a sublist of the classes of
[3Xtbl[103X,[133X
[8X[10Xindicator[110X[8X[108X
[33X[0;6Y[9Xtrue[109X enables the printing of the second Frobenius Schur indicator, a
list of integers enables the printing of the corresponding indicators
(seeĀ [2XIndicator[102X ([14X71.12-5[114X)),[133X
[8X[10Xletter[110X[8X[108X
[33X[0;6Ya single capital letter (e.Ā g.Ā [10X"P"[110X for permutation characters) to
replace the default [10X"X"[110X in character names,[133X
[8X[10Xpowermap[110X[8X[108X
[33X[0;6Yan integer or a list of integers to select a subset of the available
power maps, [9Xfalse[109X to suppress the printing of power maps, or the
string [10X"ATLAS"[110X to force a printing of class names and power maps in a
style similar to that used in the [5XAtlas[105X of Finite GroupsĀ [CCN+85],[133X
[8X[10XDisplay[110X[8X[108X
[33X[0;6Ythe function that is actually called in order to display the table;
the arguments are the table and the optional record, whose components
can be used inside the [10XDisplay[110X function,[133X
[8X[10XStringEntry[110X[8X[108X
[33X[0;6Ya function that takes either a character value or a character value
and the return value of [10XStringEntryData[110X (see below), and returns the
string that is actually displayed; it is called for all character
values to be displayed, and also for the displayed indicator values
(see above),[133X
[8X[10XStringEntryData[110X[8X[108X
[33X[0;6Ya unary function that is called once with argument [3Xtbl[103X before the
character values are displayed; it returns an object that is used as
second argument of the function [10XStringEntry[110X,[133X
[8X[10XLegend[110X[8X[108X
[33X[0;6Ya function that takes the result of the [10XStringEntryData[110X call as its
only argument, after the character table has been displayed; the
return value is a string that describes the symbols used in the
displayed table in a formatted way, it is printed below the displayed
table.[133X
[1X71.13-4 DisplayOptions[101X
[33X[1;0Y[29X[2XDisplayOptions[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YThere is no default method to compute a value, one can set a value with
[10XSetDisplayOptions[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27XDisplay( tbl );[127X[104X
[4X[28XA5[128X[104X
[4X[28X[128X[104X
[4X[28X 2 2 2 . . .[128X[104X
[4X[28X 3 1 . 1 . .[128X[104X
[4X[28X 5 1 . . 1 1[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 2a 3a 5a 5b[128X[104X
[4X[28X 2P 1a 1a 3a 5b 5a[128X[104X
[4X[28X 3P 1a 2a 1a 5b 5a[128X[104X
[4X[28X 5P 1a 2a 3a 1a 1a[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 1 1 1 1[128X[104X
[4X[28XX.2 3 -1 . A *A[128X[104X
[4X[28XX.3 3 -1 . *A A[128X[104X
[4X[28XX.4 4 . 1 -1 -1[128X[104X
[4X[28XX.5 5 1 -1 . .[128X[104X
[4X[28X[128X[104X
[4X[28XA = -E(5)-E(5)^4[128X[104X
[4X[28X = (1-Sqrt(5))/2 = -b5[128X[104X
[4X[25Xgap>[125X [27XCharacterTableDisplayDefaults.User:= rec([127X[104X
[4X[25X>[125X [27X powermap:= "ATLAS", centralizers:= "ATLAS", chars:= false );;[127X[104X
[4X[25Xgap>[125X [27XDisplay( CharacterTable( "A5" ) );[127X[104X
[4X[28XA5[128X[104X
[4X[28X[128X[104X
[4X[28X 60 4 3 5 5[128X[104X
[4X[28X[128X[104X
[4X[28X p A A A A[128X[104X
[4X[28X p' A A A A[128X[104X
[4X[28X 1A 2A 3A 5A B*[128X[104X
[4X[28X[128X[104X
[4X[25Xgap>[125X [27Xoptions:= rec( chars:= 4, classes:= [ tbl.3a .. tbl.5a ],[127X[104X
[4X[25X>[125X [27X centralizers:= false, indicator:= true,[127X[104X
[4X[25X>[125X [27X powermap:= [ 2 ] );;[127X[104X
[4X[25Xgap>[125X [27XDisplay( tbl, options );[127X[104X
[4X[28XA5[128X[104X
[4X[28X[128X[104X
[4X[28X 3a 5a[128X[104X
[4X[28X 2P 3a 5b[128X[104X
[4X[28X 2[128X[104X
[4X[28XX.4 + 1 -1[128X[104X
[4X[25Xgap>[125X [27XSetDisplayOptions( tbl, options ); Display( tbl );[127X[104X
[4X[28XA5[128X[104X
[4X[28X[128X[104X
[4X[28X 3a 5a[128X[104X
[4X[28X 2P 3a 5b[128X[104X
[4X[28X 2[128X[104X
[4X[28XX.4 + 1 -1[128X[104X
[4X[25Xgap>[125X [27XUnbind( CharacterTableDisplayDefaults.User );[127X[104X
[4X[32X[104X
[1X71.13-5 PrintCharacterTable[101X
[33X[1;0Y[29X[2XPrintCharacterTable[102X( [3Xtbl[103X, [3Xvarname[103X ) [32X function[133X
[33X[0;0YLet [3Xtbl[103X be a nearly character table, and [3Xvarname[103X a string.
[2XPrintCharacterTable[102X prints those values of the supported attributes
(seeĀ [2XSupportedCharacterTableInfo[102X ([14X71.3-4[114X)) that are known for [3Xtbl[103X.[133X
[33X[0;0YThe output of [2XPrintCharacterTable[102X is [5XGAP[105X readable; actually reading it into
[5XGAP[105X will bind the variable with name [3Xvarname[103X to a character table that
coincides with [3Xtbl[103X for all printed components.[133X
[33X[0;0YThis is used mainly for saving character tables to files. A more human
readable form is produced by [2XDisplay[102X ([14X6.3-6[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XPrintCharacterTable( CharacterTable( "Cyclic", 2 ), "tbl" );[127X[104X
[4X[28Xtbl:= function()[128X[104X
[4X[28Xlocal tbl, i;[128X[104X
[4X[28Xtbl:=rec();[128X[104X
[4X[28Xtbl.Irr:=[128X[104X
[4X[28X[ [ 1, 1 ], [ 1, -1 ] ];[128X[104X
[4X[28Xtbl.IsFinite:=[128X[104X
[4X[28Xtrue;[128X[104X
[4X[28Xtbl.NrConjugacyClasses:=[128X[104X
[4X[28X2;[128X[104X
[4X[28Xtbl.Size:=[128X[104X
[4X[28X2;[128X[104X
[4X[28Xtbl.OrdersClassRepresentatives:=[128X[104X
[4X[28X[ 1, 2 ];[128X[104X
[4X[28Xtbl.SizesCentralizers:=[128X[104X
[4X[28X[ 2, 2 ];[128X[104X
[4X[28Xtbl.UnderlyingCharacteristic:=[128X[104X
[4X[28X0;[128X[104X
[4X[28Xtbl.ClassParameters:=[128X[104X
[4X[28X[ [ 1, 0 ], [ 1, 1 ] ];[128X[104X
[4X[28Xtbl.CharacterParameters:=[128X[104X
[4X[28X[ [ 1, 0 ], [ 1, 1 ] ];[128X[104X
[4X[28Xtbl.Identifier:=[128X[104X
[4X[28X"C2";[128X[104X
[4X[28Xtbl.InfoText:=[128X[104X
[4X[28X"computed using generic character table for cyclic groups";[128X[104X
[4X[28Xtbl.ComputedPowerMaps:=[128X[104X
[4X[28X[ , [ 1, 1 ] ];[128X[104X
[4X[28XConvertToLibraryCharacterTableNC(tbl);[128X[104X
[4X[28Xreturn tbl;[128X[104X
[4X[28Xend;[128X[104X
[4X[28Xtbl:= tbl();[128X[104X
[4X[32X[104X
[1X71.14 [33X[0;0YComputing the Irreducible Characters of a Group[133X[101X
[33X[0;0YSeveral algorithms are available for computing the irreducible characters of
a finite group [22XG[122X. The default method for arbitrary finite groups is to use
the Dixon-Schneider algorithm (seeĀ [2XIrrDixonSchneider[102X ([14X71.14-1[114X)). For
supersolvable groups, Conlon's algorithm can be used (seeĀ [2XIrrConlon[102X
([14X71.14-2[114X)). For abelian-by-supersolvable groups, the Baum-Clausen algorithm
for computing the irreducible representations
(seeĀ [2XIrreducibleRepresentations[102X ([14X71.14-4[114X)) can be used to compute the
irreducible characters (seeĀ [2XIrrBaumClausen[102X ([14X71.14-3[114X)).[133X
[33X[0;0YThese functions are installed in methods for [2XIrr[102X ([14X71.8-2[114X), but explicitly
calling one of them will [13Xnot[113X set the [2XIrr[102X ([14X71.8-2[114X) value of [22XG[122X.[133X
[1X71.14-1 IrrDixonSchneider[101X
[33X[1;0Y[29X[2XIrrDixonSchneider[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Ycomputes the irreducible characters of the finite group [3XG[103X, using the
Dixon-Schneider method (seeĀ [14X71.16[114X). It calls [2XDixonInit[102X ([14X71.17-2[114X) and
[2XDixonSplit[102X ([14X71.17-4[114X), and finally returns the list returned by [2XDixontinI[102X
([14X71.17-3[114X). See also the sections [14X71.18[114X and [14X71.19[114X.[133X
[1X71.14-2 IrrConlon[101X
[33X[1;0Y[29X[2XIrrConlon[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YFor a finite solvable group [3XG[103X, [2XIrrConlon[102X returns a list of certain
irreducible characters of [3XG[103X, among those all irreducibles that have the
supersolvable residuum of [3XG[103X in their kernels; so if [3XG[103X is supersolvable, all
irreducible characters of [3XG[103X are returned. An error is signalled if [3XG[103X is not
solvable.[133X
[33X[0;0YThe characters are computed using Conlon's algorithm (seeĀ [Con90a]
andĀ [Con90b]). For each irreducible character in the returned list, the
monomiality information (seeĀ [2XTestMonomial[102X ([14X75.4-1[114X)) is stored.[133X
[1X71.14-3 IrrBaumClausen[101X
[33X[1;0Y[29X[2XIrrBaumClausen[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Y[2XIrrBaumClausen[102X returns the absolutely irreducible ordinary characters of the
factor group of the finite solvable group [3XG[103X by the derived subgroup of its
supersolvable residuum.[133X
[33X[0;0YThe characters are computed using the algorithm by Baum and Clausen
(seeĀ [BC94]). An error is signalled if [3XG[103X is not solvable.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= SL(2,3);;[127X[104X
[4X[25Xgap>[125X [27Xirr1:= IrrDixonSchneider( g );[127X[104X
[4X[28X[ Character( CharacterTable( SL(2,3) ), [ 1, 1, 1, 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 1, E(3)^2, E(3), 1, E(3), E(3)^2, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 1, E(3), E(3)^2, 1, E(3)^2, E(3), 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [ 2, 1, 1, -2, -1, -1, 0 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 2, E(3)^2, E(3), -2, -E(3), -E(3)^2, 0 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 2, E(3), E(3)^2, -2, -E(3)^2, -E(3), 0 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [ 3, 0, 0, 3, 0, 0, -1 ] ) ][128X[104X
[4X[25Xgap>[125X [27Xirr2:= IrrConlon( g );[127X[104X
[4X[28X[ Character( CharacterTable( SL(2,3) ), [ 1, 1, 1, 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 1, E(3), E(3)^2, 1, E(3)^2, E(3), 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 1, E(3)^2, E(3), 1, E(3), E(3)^2, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [ 3, 0, 0, 3, 0, 0, -1 ] ) ][128X[104X
[4X[25Xgap>[125X [27Xirr3:= IrrBaumClausen( g );[127X[104X
[4X[28X[ Character( CharacterTable( SL(2,3) ), [ 1, 1, 1, 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 1, E(3), E(3)^2, 1, E(3)^2, E(3), 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [128X[104X
[4X[28X [ 1, E(3)^2, E(3), 1, E(3), E(3)^2, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( SL(2,3) ), [ 3, 0, 0, 3, 0, 0, -1 ] ) ][128X[104X
[4X[25Xgap>[125X [27Xchi:= irr2[4];; HasTestMonomial( chi );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X71.14-4 IrreducibleRepresentations[101X
[33X[1;0Y[29X[2XIrreducibleRepresentations[102X( [3XG[103X[, [3XF[103X] ) [32X attribute[133X
[33X[0;0YCalled with a finite group [3XG[103X and a field [3XF[103X, [2XIrreducibleRepresentations[102X
returns a list of representatives of the irreducible matrix representations
of [3XG[103X over [3XF[103X, up to equivalence.[133X
[33X[0;0YIf [3XG[103X is the only argument then [2XIrreducibleRepresentations[102X returns a list of
representatives of the absolutely irreducible complex representations of [3XG[103X,
up to equivalence.[133X
[33X[0;0YAt the moment, methods are available for the following cases: If [3XG[103X is
abelian by supersolvable the method ofĀ [BC94] is used.[133X
[33X[0;0YOtherwise, if [3XF[103X and [3XG[103X are both finite, the regular module of [3XG[103X is split by
MeatAxe methods which can make this an expensive operation.[133X
[33X[0;0YFinally, if [3XF[103X is not given (i.e. it defaults to the cyclotomic numbers) and
[3XG[103X is a finite group, the method of [Dix93] (see
[2XIrreducibleRepresentationsDixon[102X ([14X71.14-5[114X)) is used.[133X
[33X[0;0YFor other cases no methods are implemented yet.[133X
[33X[0;0YThe representations obtained are [13Xnot[113X guaranteed to be [21Xnice[121X (for example
preserving a unitary form) in any way.[133X
[33X[0;0YSee also [2XIrreducibleModules[102X ([14X71.15-1[114X), which provides efficient methods for
solvable groups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= AlternatingGroup( 4 );;[127X[104X
[4X[25Xgap>[125X [27Xrepr:= IrreducibleRepresentations( g );[127X[104X
[4X[28X[ Pcgs([ (2,4,3), (1,3)(2,4), (1,2)(3,4) ]) -> [128X[104X
[4X[28X [ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], [128X[104X
[4X[28X Pcgs([ (2,4,3), (1,3)(2,4), (1,2)(3,4) ]) -> [128X[104X
[4X[28X [ [ [ E(3) ] ], [ [ 1 ] ], [ [ 1 ] ] ], [128X[104X
[4X[28X Pcgs([ (2,4,3), (1,3)(2,4), (1,2)(3,4) ]) -> [128X[104X
[4X[28X [ [ [ E(3)^2 ] ], [ [ 1 ] ], [ [ 1 ] ] ], [128X[104X
[4X[28X Pcgs([ (2,4,3), (1,3)(2,4), (1,2)(3,4) ]) -> [128X[104X
[4X[28X [ [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ], [128X[104X
[4X[28X [ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ], [128X[104X
[4X[28X [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ] ] ][128X[104X
[4X[25Xgap>[125X [27XForAll( repr, IsGroupHomomorphism );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XLength( repr );[127X[104X
[4X[28X4[128X[104X
[4X[25Xgap>[125X [27Xgens:= GeneratorsOfGroup( g );[127X[104X
[4X[28X[ (1,2,3), (2,3,4) ][128X[104X
[4X[25Xgap>[125X [27XList( gens, x -> x^repr[1] );[127X[104X
[4X[28X[ [ [ 1 ] ], [ [ 1 ] ] ][128X[104X
[4X[25Xgap>[125X [27X List( gens, x -> x^repr[4] );[127X[104X
[4X[28X[ [ [ 0, 0, -1 ], [ 1, 0, 0 ], [ 0, -1, 0 ] ], [128X[104X
[4X[28X [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ][128X[104X
[4X[32X[104X
[1X71.14-5 IrreducibleRepresentationsDixon[101X
[33X[1;0Y[29X[2XIrreducibleRepresentationsDixon[102X( [3XG[103X[, [3Xchi[103X] ) [32X function[133X
[33X[0;0YCalled with one argument, a group [3XG[103X, [2XIrreducibleRepresentationsDixon[102X
computes (representatives of) all irreducible complex representations for
the finite group [3XG[103X, using the method ofĀ [Dix93], which computes the
character table and computes the representation as constituent of an induced
monomial representation of a subgroup.[133X
[33X[0;0YThis method can be quite expensive for larger groups, for example it might
involve calculation of the subgroup lattice of [3XG[103X.[133X
[33X[0;0YA character [3Xchi[103X of [3XG[103X can be given as the second argument, in this case only
a representation affording [3Xchi[103X is returned.[133X
[33X[0;0YThe second argument can also be a list of characters of [3XG[103X, in this case only
representations for characters in this list are computed.[133X
[33X[0;0YNote that this method might fail if for an irreducible representation there
is no subgroup in which its reduction has a linear constituent with
multiplicity one.[133X
[33X[0;0YIf the option [3Xunitary[103X is given, [5XGAP[105X tries, at extra cost, to find a unitary
representation (and will issue an error if it cannot do so).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xa5:= AlternatingGroup( 5 );[127X[104X
[4X[28XAlt( [ 1 .. 5 ] )[128X[104X
[4X[25Xgap>[125X [27Xchar:= First( Irr( a5 ), x -> x[1] = 4 );[127X[104X
[4X[28XCharacter( CharacterTable( Alt( [ 1 .. 5 ] ) ), [ 4, 0, 1, -1, -1 ] )[128X[104X
[4X[25Xgap>[125X [27Xhom:=IrreducibleRepresentationsDixon( a5, char: unitary );;[127X[104X
[4X[25Xgap>[125X [27XOrder( a5.1*a5.2 ) = Order( Image( hom, a5.1 )*Image( hom, a5.2 ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xreps:= List( ConjugacyClasses( a5 ), Representative );;[127X[104X
[4X[25Xgap>[125X [27XList( reps, g -> TraceMat( Image( hom, g ) ) );[127X[104X
[4X[28X[ 4, 0, 1, -1, -1 ][128X[104X
[4X[32X[104X
[1X71.15 [33X[0;0YRepresentations Given by Modules[133X[101X
[33X[0;0YThis section describes functions that return certain modules of a given
group. (Extensions by modules can be formed by the command [2XExtensions[102X
([14X46.8-4[114X).)[133X
[1X71.15-1 IrreducibleModules[101X
[33X[1;0Y[29X[2XIrreducibleModules[102X( [3XG[103X, [3XF[103X, [3Xdim[103X ) [32X operation[133X
[33X[0;0Yreturns a list of length 2. The first entry is a generating system of [3XG[103X. The
second entry is a list of all irreducible modules of [3XG[103X over the field [3XF[103X in
dimension [3Xdim[103X, given as MeatAxe modules (seeĀ [2XGModuleByMats[102X ([14X69.1-1[114X)).[133X
[1X71.15-2 AbsolutelyIrreducibleModules[101X
[33X[1;0Y[29X[2XAbsolutelyIrreducibleModules[102X( [3XG[103X, [3XF[103X, [3Xdim[103X ) [32X operation[133X
[33X[1;0Y[29X[2XAbsoluteIrreducibleModules[102X( [3XG[103X, [3XF[103X, [3Xdim[103X ) [32X operation[133X
[33X[1;0Y[29X[2XAbsolutIrreducibleModules[102X( [3XG[103X, [3XF[103X, [3Xdim[103X ) [32X operation[133X
[33X[0;0Yreturns a list of length 2. The first entry is a generating system of [3XG[103X. The
second entry is a list of all absolute irreducible modules of [3XG[103X over the
field [3XF[103X in dimension [3Xdim[103X, given as MeatAxe modules (seeĀ [2XGModuleByMats[102X
([14X69.1-1[114X)). The other two names are just synonyms.[133X
[1X71.15-3 RegularModule[101X
[33X[1;0Y[29X[2XRegularModule[102X( [3XG[103X, [3XF[103X ) [32X operation[133X
[33X[0;0Yreturns a list of length 2. The first entry is a generating system of [3XG[103X. The
second entry is the regular module of [3XG[103X over [3XF[103X, given as a MeatAxe module
(seeĀ [2XGModuleByMats[102X ([14X69.1-1[114X)).[133X
[1X71.16 [33X[0;0YThe Dixon-Schneider Algorithm[133X[101X
[33X[0;0YThe [5XGAP[105X library implementation of the Dixon-Schneider algorithm first
computes the linear characters, using the commutator factor group. If
irreducible characters are missing afterwards, they are computed using the
techniques described in [Dix67], [Sch90] and [Hul93].[133X
[33X[0;0YCalled with a group [22XG[122X, the function [2XCharacterTable[102X ([14X71.3-1[114X) returns a
character table object that stores already information such as class
lengths, but not the irreducible characters. The routines that compute the
irreducibles may use the information that is already contained in this table
object. In particular the ordering of classes in the computed characters
coincides with the ordering of classes in the character table of [3XG[103X
(seeĀ [14X71.6[114X). Thus it is possible to combine computations using the group with
character theoretic computations (seeĀ [14X71.17[114X for details), for example one
can enter known characters. Note that the user is responsible for the
correctness of the characters. (There is little use in providing the trivial
character to the routine.)[133X
[33X[0;0YThe computation of irreducible characters from the group needs to identify
the classes of group elements very often, so it can be helpful to store a
class list of all group elements. Since this is obviously limited by the
group order, it is controlled by the global function [2XIsDxLargeGroup[102X
([14X71.17-8[114X).[133X
[33X[0;0YThe routines compute in a prime field of size [22Xp[122X, such that the exponent of
the group divides [22X(p-1)[122X and such that [22X2 sqrt{|G|} < p[122X. Currently prime
fields of size smaller than [22X65536[122X are handled more efficiently than larger
prime fields, so the runtime of the character calculation depends on how
large the chosen prime is.[133X
[33X[0;0YThe routine stores a Dixon record (seeĀ [2XDixonRecord[102X ([14X71.17-1[114X)) in the group
that helps routines that identify classes, for example
[2XFusionConjugacyClasses[102X ([14X73.3-1[114X), to work much faster. Note that interrupting
Dixon-Schneider calculations will prevent [5XGAP[105X from cleaning up the Dixon
record; when the computation by [2XIrrDixonSchneider[102X ([14X71.14-1[114X) is complete, the
possibly large record is shrunk to an acceptable size.[133X
[1X71.17 [33X[0;0YAdvanced Methods for Dixon-Schneider Calculations[133X[101X
[33X[0;0YThe computation of irreducible characters of very large groups may take
quite some time. On the other hand, for the expert only a few irreducible
characters may be needed, since the other ones can be computed using
character theoretic methods such as tensoring, induction, and restriction.
Thus [5XGAP[105X provides also step-by-step routines for doing the calculations.
These routines allow one to compute some characters and to stop before all
are calculated. Note that there is no [21Xsafety net[121X: The routines (being
somehow internal) do no error checking, and assume the information given is
correct.[133X
[33X[0;0YWhen the info level of [2XInfoCharacterTable[102X ([14X71.4-2[114X) if positive, information
about the progress of splitting is printed. (The default value is zero.)[133X
[1X71.17-1 DixonRecord[101X
[33X[1;0Y[29X[2XDixonRecord[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe [2XDixonRecord[102X of a group contains information used by the routines to
compute the irreducible characters and related information via the
Dixon-Schneider algorithm such as class arrangement and character spaces
split obtained so far. Usually this record is passed as argument to all
subfunctions to avoid a long argument list. It has a component
[10XconjugacyClasses[110X which contains the classes of [3XG[103X [13Xordered as the algorithm
needs them[113X.[133X
[1X71.17-2 DixonInit[101X
[33X[1;0Y[29X[2XDixonInit[102X( [3XG[103X ) [32X function[133X
[33X[0;0YThis function does all the initializations for the Dixon-Schneider
algorithm. This includes calculation of conjugacy classes, power maps,
linear characters and character morphisms. It returns a record
(seeĀ [2XDixonRecord[102X ([14X71.17-1[114X) and Section [14X71.18[114X) that can be used when
calculating the irreducible characters of [3XG[103X interactively.[133X
[1X71.17-3 DixontinI[101X
[33X[1;0Y[29X[2XDixontinI[102X( [3XD[103X ) [32X function[133X
[33X[0;0YThis function ends a Dixon-Schneider calculation. It sorts the characters
according to the degree and unbinds components in the Dixon record that are
not of use any longer. It returns a list of irreducible characters.[133X
[1X71.17-4 DixonSplit[101X
[33X[1;0Y[29X[2XDixonSplit[102X( [3XD[103X ) [32X function[133X
[33X[0;0YThis function performs one splitting step in the Dixon-Schneider algorithm.
It selects a class, computes the (partial) class sum matrix, uses it to
split character spaces and stores all the irreducible characters obtained
that way.[133X
[33X[0;0YThe class to use for splitting is chosen via [2XBestSplittingMatrix[102X ([14X71.17-5[114X)
and the options described for this function apply here.[133X
[33X[0;0Y[2XDixonSplit[102X returns the number of the class that was used for splitting if a
split was performed, and [9Xfail[109X otherwise.[133X
[1X71.17-5 BestSplittingMatrix[101X
[33X[1;0Y[29X[2XBestSplittingMatrix[102X( [3XD[103X ) [32X function[133X
[33X[0;0Yreturns the number of the class sum matrix that is assumed to yield the best
(cost/earning ration) split. This matrix then will be the next one computed
and used.[133X
[33X[0;0YThe global option [10Xmaxclasslen[110X (defaulting to [2Xinfinity[102X ([14X18.2-1[114X)) is
recognized by [2XBestSplittingMatrix[102X: Only classes whose length is limited by
the value of this option will be considered for splitting. If no usable
class remains, [9Xfail[109X is returned.[133X
[1X71.17-6 DxIncludeIrreducibles[101X
[33X[1;0Y[29X[2XDxIncludeIrreducibles[102X( [3XD[103X, [3Xnew[103X[, [3Xnewmod[103X] ) [32X function[133X
[33X[0;0YThis function takes a list of irreducible characters [3Xnew[103X, each given as a
list of values (corresponding to the class arrangement in [3XD[103X), and adds these
to a partial computed list of irreducibles as maintained by the Dixon record
[3XD[103X. This permits one to add characters in interactive use obtained from other
sources and to continue the Dixon-Schneider calculation afterwards. If the
optional argument [3Xnewmod[103X is given, it must be a list of reduced characters,
corresponding to [3Xnew[103X. (Otherwise the function has to reduce the characters
itself.)[133X
[33X[0;0YThe function closes the new characters under the action of Galois
automorphisms and tensor products with linear characters.[133X
[1X71.17-7 SplitCharacters[101X
[33X[1;0Y[29X[2XSplitCharacters[102X( [3XD[103X, [3Xlist[103X ) [32X function[133X
[33X[0;0YThis routine decomposes the characters given in [3Xlist[103X according to the
character spaces found up to this point. By applying this routine to tensor
products etc., it may result in characters with smaller norm, even
irreducible ones. Since the recalculation of characters is only possible if
the degree is small enough, the splitting process is applied only to
characters of sufficiently small degree.[133X
[1X71.17-8 IsDxLargeGroup[101X
[33X[1;0Y[29X[2XIsDxLargeGroup[102X( [3XG[103X ) [32X function[133X
[33X[0;0Yreturns [9Xtrue[109X if the order of the group [3XG[103X is smaller than the current value
of the global variable [10XDXLARGEGROUPORDER[110X, and [9Xfalse[109X otherwise. In
Dixon-Schneider calculations, for small groups in the above sense a class
map is stored, whereas for large groups, each occurring element is
identified individually.[133X
[1X71.18 [33X[0;0YComponents of a Dixon Record[133X[101X
[33X[0;0YThe [21XDixon record[121X [3XD[103X returned by [2XDixonInit[102X ([14X71.17-2[114X) stores all the
information that is used by the Dixon-Schneider routines while computing the
irreducible characters of a group. Some entries, however, may be useful to
know about when using the algorithm interactively, see [14X71.19[114X.[133X
[8X[10Xgroup[110X[8X[108X
[33X[0;6Ythe group [22XG[122X of which the character table is to be computed,[133X
[8X[10XconjugacyClasses[110X[8X[108X
[33X[0;6Yclasses of [22XG[122X (all characters stored in the Dixon record correspond to
this arrangement of classes),[133X
[8X[10Xirreducibles[110X[8X[108X
[33X[0;6Ythe already known irreducible characters (given as lists of their
values on the conjugacy classes),[133X
[8X[10XcharacterTable[110X[8X[108X
[33X[0;6Ythe [2XCharacterTable[102X ([14X71.3-1[114X) value of [22XG[122X (whose irreducible characters
are not yet known),[133X
[8X[10XClassElement( [3XD[103X[8X[10X, [3Xel[103X[8X[10X )[110X[8X[108X
[33X[0;6Ya function that returns the number of the class of [22XG[122X that contains the
element [3Xel[103X.[133X
[1X71.19 [33X[0;0YAn Example of Advanced Dixon-Schneider Calculations[133X[101X
[33X[0;0YFirst, we set the appropriate info level higher.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSetInfoLevel( InfoCharacterTable, 1 );[127X[104X
[4X[32X[104X
[33X[0;0Yfor printout of some internal results. We now define our group, which is
isomorphic to PSL[22X_4(3)[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= PrimitiveGroup(40,5);[127X[104X
[4X[28XPSL(4, 3)[128X[104X
[4X[25Xgap>[125X [27XSize(g);[127X[104X
[4X[28X6065280[128X[104X
[4X[25Xgap>[125X [27Xd:= DixonInit( g );;[127X[104X
[4X[28X#I 29 classes[128X[104X
[4X[28X#I choosing prime 65521[128X[104X
[4X[25Xgap>[125X [27Xc:= d.characterTable;;[127X[104X
[4X[32X[104X
[33X[0;0YAfter the initialisation, one structure matrix is evaluated, yielding
smaller spaces and several irreducible characters.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XDixonSplit( d );[127X[104X
[4X[28X#I Matrix 2,Representative of Order 3,Centralizer: 5832[128X[104X
[4X[28X#I Dimensions: [ 1, 2, 1, 4, 12, 1, 1, 2, 1, 2, 1 ][128X[104X
[4X[28X#I Two-dim space split[128X[104X
[4X[28X#I Two-dim space split[128X[104X
[4X[28X#I Two-dim space split[128X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[33X[0;0YIn this case spaces of the listed dimensions are a result of the splitting
process. The three two dimensional spaces are split successfully by
combinatoric means.[133X
[33X[0;0YWe obtain several irreducible characters by tensor products and notify them
to the Dixon record.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xasp:= AntiSymmetricParts( c, d.irreducibles, 2 );;[127X[104X
[4X[25Xgap>[125X [27Xro:= ReducedCharacters( c, d.irreducibles, asp );;[127X[104X
[4X[25Xgap>[125X [27XLength( ro.irreducibles );[127X[104X
[4X[28X3[128X[104X
[4X[25Xgap>[125X [27XDxIncludeIrreducibles( d, ro.irreducibles );[127X[104X
[4X[32X[104X
[33X[0;0YThe tensor products of the nonlinear characters among each other are reduced
with the irreducible characters. The result is split according to the spaces
found, which yields characters of smaller norms, but no new irreducibles.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xnlc:= Filtered( d.irreducibles, i -> i[1] > 1 );;[127X[104X
[4X[25Xgap>[125X [27Xt:= Tensored( nlc, nlc );;[127X[104X
[4X[25Xgap>[125X [27Xro:= ReducedCharacters( c, d.irreducibles, t );; ro.irreducibles;[127X[104X
[4X[28X[ ][128X[104X
[4X[25Xgap>[125X [27XList( ro.remainders, i -> ScalarProduct( c, i, i) );[127X[104X
[4X[28X[ 2, 2, 4, 4, 4, 4, 13, 13, 18, 18, 19, 21, 21, 36, 36, 29, 34, 34, [128X[104X
[4X[28X 42, 34, 48, 54, 62, 68, 68, 78, 84, 84, 88, 90, 159, 169, 169, 172, [128X[104X
[4X[28X 172, 266, 271, 271, 268, 274, 274, 280, 328, 373, 373, 456, 532, [128X[104X
[4X[28X 576, 679, 683, 683, 754, 768, 768, 890, 912, 962, 1453, 1453, 1601, [128X[104X
[4X[28X 1601, 1728, 1739, 1739, 1802, 2058, 2379, 2414, 2543, 2744, 2744, [128X[104X
[4X[28X 2920, 3078, 3078, 4275, 4275, 4494, 4760, 5112, 5115, 5115, 5414, [128X[104X
[4X[28X 6080, 6318, 7100, 7369, 7369, 7798, 8644, 10392, 12373, 12922, [128X[104X
[4X[28X 14122, 14122, 18948, 21886, 24641, 24641, 25056, 38942, 44950, [128X[104X
[4X[28X 78778 ][128X[104X
[4X[25Xgap>[125X [27Xt:= SplitCharacters( d, ro.remainders );;[127X[104X
[4X[25Xgap>[125X [27XList( t, i -> ScalarProduct( c, i, i ) );[127X[104X
[4X[28X[ 2, 2, 4, 2, 2, 4, 4, 3, 6, 5, 5, 9, 9, 4, 12, 13, 18, 18, 20, 18, [128X[104X
[4X[28X 20, 24, 26, 32, 32, 16, 42, 59, 69, 69, 72, 72, 36, 72, 78, 78, 84, [128X[104X
[4X[28X 122, 117, 127, 117, 127, 64, 132, 100, 144, 196, 256, 456, 532, [128X[104X
[4X[28X 576, 679, 683, 683, 754, 768, 768, 890, 912, 962, 1453, 1453, 1601, [128X[104X
[4X[28X 1601, 1728, 1739, 1739, 1802, 2058, 2379, 2414, 2543, 2744, 2744, [128X[104X
[4X[28X 2920, 3078, 3078, 4275, 4275, 4494, 4760, 5112, 5115, 5115, 5414, [128X[104X
[4X[28X 6080, 6318, 7100, 7369, 7369, 7798, 8644, 10392, 12373, 12922, [128X[104X
[4X[28X 14122, 14122, 18948, 21886, 24641, 24641, 25056, 38942, 44950, [128X[104X
[4X[28X 78778 ][128X[104X
[4X[32X[104X
[33X[0;0YFinally we calculate the characters induced from all cyclic subgroups and
obtain the missing irreducibles by applying the LLL-algorithm to them.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xic:= InducedCyclic( c, "all" );;[127X[104X
[4X[25Xgap>[125X [27Xro:= ReducedCharacters( c, d.irreducibles, ic );;[127X[104X
[4X[25Xgap>[125X [27XLength( ro.irreducibles );[127X[104X
[4X[28X0[128X[104X
[4X[25Xgap>[125X [27Xl:= LLL( c, ro.remainders );;[127X[104X
[4X[25Xgap>[125X [27XLength( l.irreducibles );[127X[104X
[4X[28X13[128X[104X
[4X[32X[104X
[33X[0;0YThe LLL returns class function objects (see ChapterĀ [14X72[114X), and the Dixon
record works with character values lists. So we convert them to a list of
values before feeding them in the machinery of the Dixon-algorithm.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xl.irreducibles[1];[127X[104X
[4X[28XCharacter( CharacterTable( PSL(4, 3) ),[128X[104X
[4X[28X [ 640, -8, -8, -8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, [128X[104X
[4X[28X 0, 0, 0, 0, E(13)^7+E(13)^8+E(13)^11, E(13)^4+E(13)^10+E(13)^12, [128X[104X
[4X[28X E(13)^2+E(13)^5+E(13)^6, E(13)+E(13)^3+E(13)^9, 0 ] )[128X[104X
[4X[25Xgap>[125X [27Xl:=List(l.irreducibles,ValuesOfClassFunction);;[127X[104X
[4X[25Xgap>[125X [27XDxIncludeIrreducibles( d, l );[127X[104X
[4X[25Xgap>[125X [27XLength( d.irreducibles );[127X[104X
[4X[28X29[128X[104X
[4X[25Xgap>[125X [27XLength( d.classes );[127X[104X
[4X[28X29[128X[104X
[4X[32X[104X
[33X[0;0YIt turns out we have found all irreducible characters. As the last step, we
obtain the irreducible characters and tell them to the group. This makes
them available also to the character table.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xirrs:= DixontinI( d );;[127X[104X
[4X[28X#I Total:1 matrices,[ 2 ][128X[104X
[4X[25Xgap>[125X [27XSetIrr(g,irrs);[127X[104X
[4X[25Xgap>[125X [27XLength(Irr(c));[127X[104X
[4X[28X29[128X[104X
[4X[25Xgap>[125X [27XSetInfoLevel( InfoCharacterTable, 0 );[127X[104X
[4X[32X[104X
[1X71.20 [33X[0;0YConstructing Character Tables from Others[133X[101X
[33X[0;0YThe following operations take one or more character table arguments, and
return a character table. This holds also for [2XBrauerTable[102X ([14X71.3-2[114X). Note
that the return value of [2XBrauerTable[102X ([14X71.3-2[114X) will in general not know the
irreducible Brauer characters, and [5XGAP[105X might be unable to compute these
characters.[133X
[33X[0;0Y[13XNote[113X that whenever fusions between input and output tables occur in these
operations, they are stored on the concerned tables, and the
[2XNamesOfFusionSources[102X ([14X73.3-5[114X) values are updated.[133X
[33X[0;0Y(The interactive construction of character tables using character theoretic
methods and incomplete tables is not described here.) [13XCurrently it is not
supported and will be described in a chapter of its own when it becomes
available[113X.[133X
[1X71.20-1 CharacterTableDirectProduct[101X
[33X[1;0Y[29X[2XCharacterTableDirectProduct[102X( [3Xtbl1[103X, [3Xtbl2[103X ) [32X operation[133X
[33X[0;0Yis the table of the direct product of the character tables [3Xtbl1[103X and [3Xtbl2[103X.[133X
[33X[0;0YThe matrix of irreducibles of this table is the Kronecker product
(seeĀ [2XKroneckerProduct[102X ([14X24.5-8[114X)) of the irreducibles of [3Xtbl1[103X and [3Xtbl2[103X.[133X
[33X[0;0YProducts of ordinary and Brauer character tables are supported.[133X
[33X[0;0YIn general, the result will not know an underlying group, so missing power
maps (for prime divisors of the result) and irreducibles of the input tables
may be computed in order to construct the table of the direct product.[133X
[33X[0;0YThe embeddings of the input tables into the direct product are stored, they
can be fetched with [2XGetFusionMap[102X ([14X73.3-3[114X); if [3Xtbl1[103X is equal to [3Xtbl2[103X then the
two embeddings are distinguished by their [10Xspecification[110X components [10X"1"[110X and
[10X"2"[110X, respectively.[133X
[33X[0;0YAnalogously, the projections from the direct product onto the input tables
are stored, and can be distinguished by the [10Xspecification[110X components.[133X
[33X[0;0YThe attribute [2XFactorsOfDirectProduct[102X ([14X71.20-2[114X) is set to the lists of
arguments.[133X
[33X[0;0YThe [10X*[110X operator for two character tables (seeĀ [14X71.7[114X) delegates to
[2XCharacterTableDirectProduct[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xc2:= CharacterTable( "Cyclic", 2 );;[127X[104X
[4X[25Xgap>[125X [27Xs3:= CharacterTable( "Symmetric", 3 );;[127X[104X
[4X[25Xgap>[125X [27XDisplay( CharacterTableDirectProduct( c2, s3 ) );[127X[104X
[4X[28XC2xSym(3)[128X[104X
[4X[28X[128X[104X
[4X[28X 2 2 2 1 2 2 1[128X[104X
[4X[28X 3 1 . 1 1 . 1[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 2a 3a 2b 2c 6a[128X[104X
[4X[28X 2P 1a 1a 3a 1a 1a 3a[128X[104X
[4X[28X 3P 1a 2a 1a 2b 2c 2b[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 -1 1 1 -1 1[128X[104X
[4X[28XX.2 2 . -1 2 . -1[128X[104X
[4X[28XX.3 1 1 1 1 1 1[128X[104X
[4X[28XX.4 1 -1 1 -1 1 -1[128X[104X
[4X[28XX.5 2 . -1 -2 . 1[128X[104X
[4X[28XX.6 1 1 1 -1 -1 -1[128X[104X
[4X[32X[104X
[1X71.20-2 FactorsOfDirectProduct[101X
[33X[1;0Y[29X[2XFactorsOfDirectProduct[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor an ordinary character table that has been constructed via
[2XCharacterTableDirectProduct[102X ([14X71.20-1[114X), the value of [2XFactorsOfDirectProduct[102X
is the list of arguments in the [2XCharacterTableDirectProduct[102X ([14X71.20-1[114X) call.[133X
[33X[0;0YNote that there is no default method for [13Xcomputing[113X the value of
[2XFactorsOfDirectProduct[102X.[133X
[1X71.20-3 CharacterTableFactorGroup[101X
[33X[1;0Y[29X[2XCharacterTableFactorGroup[102X( [3Xtbl[103X, [3Xclasses[103X ) [32X operation[133X
[33X[0;0Yis the character table of the factor group of the ordinary character table
[3Xtbl[103X by the normal closure of the classes whose positions are contained in
the list [3Xclasses[103X.[133X
[33X[0;0YThe [10X/[110X operator for a character table and a list of class positions
(seeĀ [14X71.7[114X) delegates to [2XCharacterTableFactorGroup[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xs4:= CharacterTable( "Symmetric", 4 );;[127X[104X
[4X[25Xgap>[125X [27XClassPositionsOfNormalSubgroups( s4 );[127X[104X
[4X[28X[ [ 1 ], [ 1, 3 ], [ 1, 3, 4 ], [ 1 .. 5 ] ][128X[104X
[4X[25Xgap>[125X [27Xf:= CharacterTableFactorGroup( s4, [ 3 ] );[127X[104X
[4X[28XCharacterTable( "Sym(4)/[ 1, 3 ]" )[128X[104X
[4X[25Xgap>[125X [27XDisplay( f );[127X[104X
[4X[28XSym(4)/[ 1, 3 ][128X[104X
[4X[28X[128X[104X
[4X[28X 2 1 1 .[128X[104X
[4X[28X 3 1 . 1[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 2a 3a[128X[104X
[4X[28X 2P 1a 1a 3a[128X[104X
[4X[28X 3P 1a 2a 1a[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 -1 1[128X[104X
[4X[28XX.2 2 . -1[128X[104X
[4X[28XX.3 1 1 1[128X[104X
[4X[32X[104X
[1X71.20-4 CharacterTableIsoclinic[101X
[33X[1;0Y[29X[2XCharacterTableIsoclinic[102X( [3Xtbl[103X[, [3Xclasses[103X][, [3Xcentre[103X] ) [32X operation[133X
[33X[1;0Y[29X[2XSourceOfIsoclinicTable[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YIf [3Xtbl[103X is the (ordinary or modular) character table of a group with the
structure [22X2.G.2[122X with a central subgroup [22XZ[122X of order [22X2[122X or [22X4[122X and a normal
subgroup [22XN[122X of index [22X2[122X that contains [22XZ[122X then [2XCharacterTableIsoclinic[102X returns
the table of the isoclinic group in the sense of the [5XAtlas[105X of Finite Groups
[CCN+85, Chapter 6, Section 7]. If [22XN[122X is not uniquely determined then the
positions of the classes forming [22XN[122X must be entered as list [3Xclasses[103X. If [22XZ[122X is
not unique inside [22XN[122X then the positions of the classes in [22XZ[122X must be entered
as list [3Xcentre[103X; If [22XZ[122X has order [22X2[122X then [3Xcentre[103X can be also the position of the
involution in [22XZ[122X.[133X
[33X[0;0YNote that also if [3Xtbl[103X is a Brauer table then [3Xclasses[103X and [3Xcentre[103X denote class
numbers w.r.t.Ā the [13Xordinary[113X character table.[133X
[33X[0;0YFor an ordinary character table that has been constructed via
[2XCharacterTableIsoclinic[102X, the value of [2XSourceOfIsoclinicTable[102X is the list of
three arguments in the [2XCharacterTableIsoclinic[102X call.[133X
[33X[0;0YNote that there is no default method for [13Xcomputing[113X the value of
[2XSourceOfIsoclinicTable[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xd8:= CharacterTable( "Dihedral", 8 );[127X[104X
[4X[28XCharacterTable( "Dihedral(8)" )[128X[104X
[4X[25Xgap>[125X [27Xnsg:= ClassPositionsOfNormalSubgroups( d8 );[127X[104X
[4X[28X[ [ 1 ], [ 1, 3 ], [ 1 .. 3 ], [ 1, 3, 4 ], [ 1, 3 .. 5 ], [ 1 .. 5 ] [128X[104X
[4X[28X ][128X[104X
[4X[25Xgap>[125X [27Xiso:= CharacterTableIsoclinic( d8, nsg[3] );;[127X[104X
[4X[25Xgap>[125X [27XDisplay( iso );[127X[104X
[4X[28XIsoclinic(Dihedral(8))[128X[104X
[4X[28X[128X[104X
[4X[28X 2 3 2 3 2 2[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 4a 2a 4b 4c[128X[104X
[4X[28X 2P 1a 2a 1a 2a 2a[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 1 1 1 1[128X[104X
[4X[28XX.2 1 1 1 -1 -1[128X[104X
[4X[28XX.3 1 -1 1 1 -1[128X[104X
[4X[28XX.4 1 -1 1 -1 1[128X[104X
[4X[28XX.5 2 . -2 . .[128X[104X
[4X[25Xgap>[125X [27XSourceOfIsoclinicTable( iso );[127X[104X
[4X[28X[ CharacterTable( "Dihedral(8)" ), [ 1, 2, 3 ], [ 3 ], 3 ][128X[104X
[4X[32X[104X
[1X71.20-5 CharacterTableOfNormalSubgroup[101X
[33X[1;0Y[29X[2XCharacterTableOfNormalSubgroup[102X( [3Xordtbl[103X, [3Xclasses[103X ) [32X function[133X
[33X[0;0YLet [3Xordtbl[103X be the ordinary character table of a group [22XG[122X, say, and [3Xclasses[103X be
a list of class positions for this table. If the classes given by [3Xclasses[103X
form a normal subgroup [22XN[122X, say, of [22XG[122X and if these classes are conjugacy
classes of [22XN[122X then this function returns the character table of [22XN[122X. In all
other cases, the function returns [9Xfail[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xt:= CharacterTable( "Symmetric", 4 );[127X[104X
[4X[28XCharacterTable( "Sym(4)" )[128X[104X
[4X[25Xgap>[125X [27Xnsg:= ClassPositionsOfNormalSubgroups( t );[127X[104X
[4X[28X[ [ 1 ], [ 1, 3 ], [ 1, 3, 4 ], [ 1 .. 5 ] ][128X[104X
[4X[25Xgap>[125X [27Xrest:= List( nsg, c -> CharacterTableOfNormalSubgroup( t, c ) );[127X[104X
[4X[28X[ CharacterTable( "Rest(Sym(4),[ 1 ])" ), fail, fail, [128X[104X
[4X[28X CharacterTable( "Rest(Sym(4),[ 1 .. 5 ])" ) ][128X[104X
[4X[32X[104X
[33X[0;0YHere is a nontrivial example. We use [2XCharacterTableOfNormalSubgroup[102X for
computing the two isoclinic variants of [22X2.A_5.2[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= SchurCoverOfSymmetricGroup( 5, 3, 1 );;[127X[104X
[4X[25Xgap>[125X [27Xc:= CyclicGroup( 4 );;[127X[104X
[4X[25Xgap>[125X [27Xdp:= DirectProduct( g, c );;[127X[104X
[4X[25Xgap>[125X [27Xdiag:= First( Elements( Centre( dp ) ), [127X[104X
[4X[25X>[125X [27X x -> Order( x ) = 2 and[127X[104X
[4X[25X>[125X [27X not x in Image( Embedding( dp, 1 ) ) and[127X[104X
[4X[25X>[125X [27X not x in Image( Embedding( dp, 2 ) ) );;[127X[104X
[4X[25Xgap>[125X [27Xfact:= Image( NaturalHomomorphismByNormalSubgroup( dp, [127X[104X
[4X[25X>[125X [27X Subgroup( dp, [ diag ] ) ));;[127X[104X
[4X[25Xgap>[125X [27Xt:= CharacterTable( fact );;[127X[104X
[4X[25Xgap>[125X [27XSize( t );[127X[104X
[4X[28X480[128X[104X
[4X[25Xgap>[125X [27Xnsg:= ClassPositionsOfNormalSubgroups( t );;[127X[104X
[4X[25Xgap>[125X [27Xrest:= List( nsg, c -> CharacterTableOfNormalSubgroup( t, c ) );;[127X[104X
[4X[25Xgap>[125X [27Xindex2:= Filtered( rest, x -> x <> fail and Size( x ) = 240 );;[127X[104X
[4X[25Xgap>[125X [27XLength( index2 );[127X[104X
[4X[28X2[128X[104X
[4X[25Xgap>[125X [27Xtg:= CharacterTable( g );;[127X[104X
[4X[25Xgap>[125X [27XIsRecord([127X[104X
[4X[25X>[125X [27X TransformingPermutationsCharacterTables( index2[1], tg ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsRecord([127X[104X
[4X[25X>[125X [27X TransformingPermutationsCharacterTables( index2[2], tg ) );[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[33X[0;0YAlternatively, we could construct the character table of the central product
with character theoretic methods. Or we could use [2XCharacterTableIsoclinic[102X
([14X71.20-4[114X).[133X
[1X71.20-6 CharacterTableWreathSymmetric[101X
[33X[1;0Y[29X[2XCharacterTableWreathSymmetric[102X( [3Xtbl[103X, [3Xn[103X ) [32X function[133X
[33X[0;0Yreturns the character table of the wreath product of a group [22XG[122X with the full
symmetric group on [3Xn[103X points, where [3Xtbl[103X is the character table of [22XG[122X.[133X
[33X[0;0YThe result has values for [2XClassParameters[102X ([14X71.9-7[114X) and [2XCharacterParameters[102X
([14X71.9-7[114X) stored, the entries in these lists are sequences of partitions.
Note that this parametrization prevents the principal character from being
the first one in the list of irreducibles.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xc3:= CharacterTable( "Cyclic", 3 );;[127X[104X
[4X[25Xgap>[125X [27Xwr:= CharacterTableWreathSymmetric( c3, 2 );;[127X[104X
[4X[25Xgap>[125X [27XDisplay( wr );[127X[104X
[4X[28XC3wrS2[128X[104X
[4X[28X[128X[104X
[4X[28X 2 1 . . 1 . 1 1 1 1[128X[104X
[4X[28X 3 2 2 2 2 2 2 1 1 1[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 3a 3b 3c 3d 3e 2a 6a 6b[128X[104X
[4X[28X 2P 1a 3b 3a 3e 3d 3c 1a 3c 3e[128X[104X
[4X[28X 3P 1a 1a 1a 1a 1a 1a 2a 2a 2a[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 1 1 1 1 1 -1 -1 -1[128X[104X
[4X[28XX.2 2 A /A B -1 /B . . .[128X[104X
[4X[28XX.3 2 /A A /B -1 B . . .[128X[104X
[4X[28XX.4 1 -/A -A -A 1 -/A -1 /A A[128X[104X
[4X[28XX.5 2 -1 -1 2 -1 2 . . .[128X[104X
[4X[28XX.6 1 -A -/A -/A 1 -A -1 A /A[128X[104X
[4X[28XX.7 1 1 1 1 1 1 1 1 1[128X[104X
[4X[28XX.8 1 -/A -A -A 1 -/A 1 -/A -A[128X[104X
[4X[28XX.9 1 -A -/A -/A 1 -A 1 -A -/A[128X[104X
[4X[28X[128X[104X
[4X[28XA = -E(3)^2[128X[104X
[4X[28X = (1+Sqrt(-3))/2 = 1+b3[128X[104X
[4X[28XB = 2*E(3)[128X[104X
[4X[28X = -1+Sqrt(-3) = 2b3[128X[104X
[4X[25Xgap>[125X [27XCharacterParameters( wr )[1];[127X[104X
[4X[28X[ [ 1, 1 ], [ ], [ ] ][128X[104X
[4X[32X[104X
[1X71.21 [33X[0;0YSorted Character Tables[133X[101X
[1X71.21-1 CharacterTableWithSortedCharacters[101X
[33X[1;0Y[29X[2XCharacterTableWithSortedCharacters[102X( [3Xtbl[103X[, [3Xperm[103X] ) [32X operation[133X
[33X[0;0Yis a character table that differs from [3Xtbl[103X only by the succession of its
irreducible characters. This affects the values of the attributes [2XIrr[102X
([14X71.8-2[114X) and [2XCharacterParameters[102X ([14X71.9-7[114X). Namely, these lists are permuted
by the permutation [3Xperm[103X.[133X
[33X[0;0YIf no second argument is given then a permutation is used that yields
irreducible characters of increasing degree for the result. For the
succession of characters in the result, seeĀ [2XSortedCharacters[102X ([14X71.21-2[114X).[133X
[33X[0;0YThe result has all those attributes and properties of [3Xtbl[103X that are stored in
[2XSupportedCharacterTableInfo[102X ([14X71.3-4[114X) and do not depend on the ordering of
characters.[133X
[1X71.21-2 SortedCharacters[101X
[33X[1;0Y[29X[2XSortedCharacters[102X( [3Xtbl[103X, [3Xchars[103X[, [3Xflag[103X] ) [32X operation[133X
[33X[0;0Yis a list containing the characters [3Xchars[103X, ordered as specified by the other
arguments.[133X
[33X[0;0YThere are three possibilities to sort characters: They can be sorted
according to ascending norms ([3Xflag[103X is the string [10X"norm"[110X), to ascending
degree ([3Xflag[103X is the string [10X"degree"[110X), or both (no third argument is given),
i.e., characters with same norm are sorted according to ascending degree,
and characters with smaller norm precede those with bigger norm.[133X
[33X[0;0YRational characters in the result precede other ones with same norm and/or
same degree.[133X
[33X[0;0YThe trivial character, if contained in [3Xchars[103X, will always be sorted to the
first position.[133X
[1X71.21-3 CharacterTableWithSortedClasses[101X
[33X[1;0Y[29X[2XCharacterTableWithSortedClasses[102X( [3Xtbl[103X[, [3Xflag[103X] ) [32X operation[133X
[33X[0;0Yis a character table obtained by permutation of the classes of [3Xtbl[103X. If the
second argument [3Xflag[103X is the string [10X"centralizers"[110X then the classes of the
result are sorted according to descending centralizer orders. If the second
argument is the string [10X"representatives"[110X then the classes of the result are
sorted according to ascending representative orders. If no second argument
is given then the classes of the result are sorted according to ascending
representative orders, and classes with equal representative orders are
sorted according to descending centralizer orders.[133X
[33X[0;0YIf the second argument is a permutation then the classes of the result are
sorted by application of this permutation.[133X
[33X[0;0YThe result has all those attributes and properties of [3Xtbl[103X that are stored in
[2XSupportedCharacterTableInfo[102X ([14X71.3-4[114X) and do not depend on the ordering of
classes.[133X
[1X71.21-4 SortedCharacterTable[101X
[33X[1;0Y[29X[2XSortedCharacterTable[102X( [3Xtbl[103X, [3Xkernel[103X ) [32X function[133X
[33X[1;0Y[29X[2XSortedCharacterTable[102X( [3Xtbl[103X, [3Xnormalseries[103X ) [32X function[133X
[33X[1;0Y[29X[2XSortedCharacterTable[102X( [3Xtbl[103X, [3Xfacttbl[103X, [3Xkernel[103X ) [32X function[133X
[33X[0;0Yis a character table obtained on permutation of the classes and the
irreducibles characters of [3Xtbl[103X.[133X
[33X[0;0YThe first form sorts the classes at positions contained in the list [3Xkernel[103X
to the beginning, and sorts all characters in [10XIrr( [3Xtbl[103X[10X )[110X such that the first
characters are those that contain [3Xkernel[103X in their kernel.[133X
[33X[0;0YThe second form does the same successively for all kernels [22Xk_i[122X in the list
[22X[3Xnormalseries[103X = [ k_1, k_2, ..., k_n ][122X where [22Xk_i[122X must be a sublist of [22Xk_{i+1}[122X
for [22X1 ⤠i ⤠n-1[122X.[133X
[33X[0;0YThe third form computes the table [22XF[122X of the factor group of [3Xtbl[103X modulo the
normal subgroup formed by the classes whose positions are contained in the
list [3Xkernel[103X; [22XF[122X must be permutation equivalent to the table [3Xfacttbl[103X, in the
sense of [2XTransformingPermutationsCharacterTables[102X ([14X71.22-4[114X), otherwise [9Xfail[109X
is returned. The classes of [3Xtbl[103X are sorted such that the preimages of a
class of [22XF[122X are consecutive, and that the succession of preimages is that of
[3Xfacttbl[103X. The [2XIrr[102X ([14X71.8-2[114X) value of [3Xtbl[103X is sorted as with [10XSortCharTable( [3Xtbl[103X[10X,
[3Xkernel[103X[10X )[110X.[133X
[33X[0;0Y([13XNote[113X that the transformation is only unique up to table automorphisms of [22XF[122X,
and this need not be unique up to table automorphisms of [3Xtbl[103X.)[133X
[33X[0;0YAll rearrangements of classes and characters are stable, i.e., the relative
positions of classes and characters that are not distinguished by any
relevant property is not changed.[133X
[33X[0;0YThe result has all those attributes and properties of [3Xtbl[103X that are stored in
[2XSupportedCharacterTableInfo[102X ([14X71.3-4[114X) and do not depend on the ordering of
classes and characters.[133X
[33X[0;0YThe [2XClassPermutation[102X ([14X71.21-5[114X) value of [3Xtbl[103X is changed if necessary,
seeĀ [14X71.5[114X.[133X
[33X[0;0Y[2XSortedCharacterTable[102X uses [2XCharacterTableWithSortedClasses[102X ([14X71.21-3[114X) and
[2XCharacterTableWithSortedCharacters[102X ([14X71.21-1[114X).[133X
[1X71.21-5 ClassPermutation[101X
[33X[1;0Y[29X[2XClassPermutation[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0Yis a permutation [22XĻ[122X of classes of the character table [3Xtbl[103X. If it is stored
then class fusions into [3Xtbl[103X that are stored on other tables must be followed
by [22XĻ[122X in order to describe the correct fusion.[133X
[33X[0;0YThis attribute value is bound only if [3Xtbl[103X was obtained from another table by
permuting the classes, using [2XCharacterTableWithSortedClasses[102X ([14X71.21-3[114X) or
[2XSortedCharacterTable[102X ([14X71.21-4[114X).[133X
[33X[0;0YIt is necessary because the original table and the sorted table have the
same identifier (and the same group if known), and hence the same fusions
are valid for the two tables.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "Symmetric", 4 );[127X[104X
[4X[28XCharacterTable( "Sym(4)" )[128X[104X
[4X[25Xgap>[125X [27XDisplay( tbl );[127X[104X
[4X[28XSym(4)[128X[104X
[4X[28X[128X[104X
[4X[28X 2 3 2 3 . 2[128X[104X
[4X[28X 3 1 . . 1 .[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 2a 2b 3a 4a[128X[104X
[4X[28X 2P 1a 1a 1a 3a 2b[128X[104X
[4X[28X 3P 1a 2a 2b 1a 4a[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 -1 1 1 -1[128X[104X
[4X[28XX.2 3 -1 -1 . 1[128X[104X
[4X[28XX.3 2 . 2 -1 .[128X[104X
[4X[28XX.4 3 1 -1 . -1[128X[104X
[4X[28XX.5 1 1 1 1 1[128X[104X
[4X[25Xgap>[125X [27Xsrt1:= CharacterTableWithSortedCharacters( tbl );[127X[104X
[4X[28XCharacterTable( "Sym(4)" )[128X[104X
[4X[25Xgap>[125X [27XList( Irr( srt1 ), Degree );[127X[104X
[4X[28X[ 1, 1, 2, 3, 3 ][128X[104X
[4X[25Xgap>[125X [27Xsrt2:= CharacterTableWithSortedClasses( tbl );[127X[104X
[4X[28XCharacterTable( "Sym(4)" )[128X[104X
[4X[25Xgap>[125X [27XSizesCentralizers( tbl );[127X[104X
[4X[28X[ 24, 4, 8, 3, 4 ][128X[104X
[4X[25Xgap>[125X [27XSizesCentralizers( srt2 );[127X[104X
[4X[28X[ 24, 8, 4, 3, 4 ][128X[104X
[4X[25Xgap>[125X [27Xnsg:= ClassPositionsOfNormalSubgroups( tbl );[127X[104X
[4X[28X[ [ 1 ], [ 1, 3 ], [ 1, 3, 4 ], [ 1 .. 5 ] ][128X[104X
[4X[25Xgap>[125X [27Xsrt3:= SortedCharacterTable( tbl, nsg );[127X[104X
[4X[28XCharacterTable( "Sym(4)" )[128X[104X
[4X[25Xgap>[125X [27Xnsg:= ClassPositionsOfNormalSubgroups( srt3 );[127X[104X
[4X[28X[ [ 1 ], [ 1, 2 ], [ 1 .. 3 ], [ 1 .. 5 ] ][128X[104X
[4X[25Xgap>[125X [27XDisplay( srt3 );[127X[104X
[4X[28XSym(4)[128X[104X
[4X[28X[128X[104X
[4X[28X 2 3 3 . 2 2[128X[104X
[4X[28X 3 1 . 1 . .[128X[104X
[4X[28X[128X[104X
[4X[28X 1a 2a 3a 2b 4a[128X[104X
[4X[28X 2P 1a 1a 3a 1a 2a[128X[104X
[4X[28X 3P 1a 2a 1a 2b 4a[128X[104X
[4X[28X[128X[104X
[4X[28XX.1 1 1 1 1 1[128X[104X
[4X[28XX.2 1 1 1 -1 -1[128X[104X
[4X[28XX.3 2 2 -1 . .[128X[104X
[4X[28XX.4 3 -1 . -1 1[128X[104X
[4X[28XX.5 3 -1 . 1 -1[128X[104X
[4X[25Xgap>[125X [27XClassPermutation( srt3 );[127X[104X
[4X[28X(2,4,3)[128X[104X
[4X[32X[104X
[1X71.22 [33X[0;0YAutomorphisms and Equivalence of Character Tables[133X[101X
[1X71.22-1 MatrixAutomorphisms[101X
[33X[1;0Y[29X[2XMatrixAutomorphisms[102X( [3Xmat[103X[, [3Xmaps[103X, [3Xsubgroup[103X] ) [32X operation[133X
[33X[0;0YFor a matrix [3Xmat[103X, [2XMatrixAutomorphisms[102X returns the group of those
permutations of the columns of [3Xmat[103X that leave the set of rows of [3Xmat[103X
invariant.[133X
[33X[0;0YIf the arguments [3Xmaps[103X and [3Xsubgroup[103X are given, only the group of those
permutations is constructed that additionally fix each list in the list [3Xmaps[103X
under pointwise action [2XOnTuples[102X ([14X41.2-5[114X), and [3Xsubgroup[103X is a permutation
group that is known to be a subgroup of this group of automorphisms.[133X
[33X[0;0YEach entry in [3Xmaps[103X must be a list of same length as the rows of [3Xmat[103X. For
example, if [3Xmat[103X is a list of irreducible characters of a group then the list
of element orders of the conjugacy classes (seeĀ [2XOrdersClassRepresentatives[102X
([14X71.9-1[114X)) may be an entry in [3Xmaps[103X.[133X
[1X71.22-2 TableAutomorphisms[101X
[33X[1;0Y[29X[2XTableAutomorphisms[102X( [3Xtbl[103X, [3Xcharacters[103X[, [3Xinfo[103X] ) [32X operation[133X
[33X[0;0Y[2XTableAutomorphisms[102X returns the permutation group of those matrix
automorphisms (seeĀ [2XMatrixAutomorphisms[102X ([14X71.22-1[114X)) of the list [3Xcharacters[103X
that leave the element orders (seeĀ [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X)) and
all stored power maps (seeĀ [2XComputedPowerMaps[102X ([14X73.1-1[114X)) of the character
table [3Xtbl[103X invariant.[133X
[33X[0;0YIf [3Xcharacters[103X is closed under Galois conjugacy āthis is always fulfilled for
the list of all irreducible characters of ordinary character tablesā the
string [10X"closed"[110X may be entered as the third argument [3Xinfo[103X. Alternatively, a
known subgroup of the table automorphisms can be entered as the third
argument [3Xinfo[103X.[133X
[33X[0;0YThe attribute [2XAutomorphismsOfTable[102X ([14X71.9-4[114X) can be used to compute and store
the table automorphisms for the case that [3Xcharacters[103X equals the [2XIrr[102X ([14X71.8-2[114X)
value of [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( "Dihedral", 8 );;[127X[104X
[4X[25Xgap>[125X [27Xirrd8:= Irr( tbld8 );[127X[104X
[4X[28X[ Character( CharacterTable( "Dihedral(8)" ), [ 1, 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Dihedral(8)" ), [ 1, 1, 1, -1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Dihedral(8)" ), [ 1, -1, 1, 1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Dihedral(8)" ), [ 1, -1, 1, -1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Dihedral(8)" ), [ 2, 0, -2, 0, 0 ] ) ][128X[104X
[4X[25Xgap>[125X [27Xorders:= OrdersClassRepresentatives( tbld8 );[127X[104X
[4X[28X[ 1, 4, 2, 2, 2 ][128X[104X
[4X[25Xgap>[125X [27XMatrixAutomorphisms( irrd8 );[127X[104X
[4X[28XGroup([ (4,5), (2,4) ])[128X[104X
[4X[25Xgap>[125X [27XMatrixAutomorphisms( irrd8, [ orders ], Group( () ) );[127X[104X
[4X[28XGroup([ (4,5) ])[128X[104X
[4X[25Xgap>[125X [27XTableAutomorphisms( tbld8, irrd8 );[127X[104X
[4X[28XGroup([ (4,5) ])[128X[104X
[4X[32X[104X
[1X71.22-3 TransformingPermutations[101X
[33X[1;0Y[29X[2XTransformingPermutations[102X( [3Xmat1[103X, [3Xmat2[103X ) [32X operation[133X
[33X[0;0YLet [3Xmat1[103X and [3Xmat2[103X be matrices. [2XTransformingPermutations[102X tries to construct a
permutation [22XĻ[122X that transforms the set of rows of the matrix [3Xmat1[103X to the set
of rows of the matrix [3Xmat2[103X by permuting the columns.[133X
[33X[0;0YIf such a permutation exists, a record with the components [10Xcolumns[110X, [10Xrows[110X,
and [10Xgroup[110X is returned, otherwise [9Xfail[109X. For [10XTransformingPermutations( [3Xmat1[103X[10X,
[3Xmat2[103X[10X ) = [3Xr[103X[10X[110X [22Xā [122X [9Xfail[109X, we have [10X[3Xmat2[103X[10X = Permuted( List( [3Xmat1[103X[10X, x -> Permuted( x,
[3Xr[103X[10X.columns ) ), [3Xr[103X[10X.rows )[110X.[133X
[33X[0;0Y[3Xr[103X[10X.group[110X is the group of matrix automorphisms of [3Xmat2[103X
(seeĀ [2XMatrixAutomorphisms[102X ([14X71.22-1[114X)). This group stabilizes the
transformation in the sense that applying any of its elements to the columns
of [3Xmat2[103X preserves the set of rows of [3Xmat2[103X.[133X
[1X71.22-4 TransformingPermutationsCharacterTables[101X
[33X[1;0Y[29X[2XTransformingPermutationsCharacterTables[102X( [3Xtbl1[103X, [3Xtbl2[103X ) [32X operation[133X
[33X[0;0YLet [3Xtbl1[103X and [3Xtbl2[103X be character tables.
[2XTransformingPermutationsCharacterTables[102X tries to construct a permutation [22XĻ[122X
that transforms the set of rows of the matrix [10XIrr( [3Xtbl1[103X[10X )[110X to the set of rows
of the matrix [10XIrr( [3Xtbl2[103X[10X )[110X by permuting the columns
(seeĀ [2XTransformingPermutations[102X ([14X71.22-3[114X)), such that [22XĻ[122X transforms also the
power maps and the element orders.[133X
[33X[0;0YIf such a permutation [22XĻ[122X exists then a record with the components [10Xcolumns[110X
([22XĻ[122X), [10Xrows[110X (the permutation of [10XIrr( [3Xtbl1[103X[10X )[110X corresponding to [22XĻ[122X), and [10Xgroup[110X
(the permutation group of table automorphisms of [3Xtbl2[103X,
seeĀ [2XAutomorphismsOfTable[102X ([14X71.9-4[114X)) is returned. If no such permutation
exists, [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtblq8:= CharacterTable( "Quaternionic", 8 );;[127X[104X
[4X[25Xgap>[125X [27Xirrq8:= Irr( tblq8 );[127X[104X
[4X[28X[ Character( CharacterTable( "Q8" ), [ 1, 1, 1, 1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Q8" ), [ 1, 1, 1, -1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Q8" ), [ 1, -1, 1, 1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Q8" ), [ 1, -1, 1, -1, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "Q8" ), [ 2, 0, -2, 0, 0 ] ) ][128X[104X
[4X[25Xgap>[125X [27XOrdersClassRepresentatives( tblq8 );[127X[104X
[4X[28X[ 1, 4, 2, 4, 4 ][128X[104X
[4X[25Xgap>[125X [27XTransformingPermutations( irrd8, irrq8 );[127X[104X
[4X[28Xrec( columns := (), group := Group([ (4,5), (2,4) ]), rows := () )[128X[104X
[4X[25Xgap>[125X [27XTransformingPermutationsCharacterTables( tbld8, tblq8 );[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27Xtbld6:= CharacterTable( "Dihedral", 6 );;[127X[104X
[4X[25Xgap>[125X [27Xtbls3:= CharacterTable( "Symmetric", 3 );;[127X[104X
[4X[25Xgap>[125X [27XTransformingPermutationsCharacterTables( tbld6, tbls3 );[127X[104X
[4X[28Xrec( columns := (2,3), group := Group(()), rows := (1,3,2) )[128X[104X
[4X[32X[104X
[1X71.22-5 FamiliesOfRows[101X
[33X[1;0Y[29X[2XFamiliesOfRows[102X( [3Xmat[103X, [3Xmaps[103X ) [32X function[133X
[33X[0;0Ydistributes the rows of the matrix [3Xmat[103X into families, as follows. Two rows
of [3Xmat[103X belong to the same family if there is a permutation of columns that
maps one row to the other row. Each entry in the list [3Xmaps[103X is regarded to
form a family of length 1.[133X
[33X[0;0Y[2XFamiliesOfRows[102X returns a record with the components[133X
[8X[10Xfamreps[110X[8X[108X
[33X[0;6Ythe list of representatives for each family,[133X
[8X[10Xpermutations[110X[8X[108X
[33X[0;6Ythe list that contains at position [22Xi[122X a list of permutations that map
the members of the family with representative [10Xfamreps[110X[22X[i][122X to that
representative,[133X
[8X[10Xfamilies[110X[8X[108X
[33X[0;6Ythe list that contains at position [22Xi[122X the list of positions of members
of the family of representative [10Xfamreps[110X[22X[i][122X; (for the element [3Xmaps[103X[22X[i][122X
the only member of the family will get the number [10XLength( [3Xmat[103X[10X ) + [110X[22Xi[122X).[133X
[1X71.23 [33X[0;0YStoring Normal Subgroup Information[133X[101X
[1X71.23-1 NormalSubgroupClassesInfo[101X
[33X[1;0Y[29X[2XNormalSubgroupClassesInfo[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YLet [3Xtbl[103X be the ordinary character table of the group [22XG[122X. Many computations
for group characters of [22XG[122X involve computations in normal subgroups or factor
groups of [22XG[122X.[133X
[33X[0;0YIn some cases the character table [3Xtbl[103X is sufficient; for example questions
about a normal subgroup [22XN[122X of [22XG[122X can be answered if one knows the conjugacy
classes that form [22XN[122X, e.g., the question whether a character of [22XG[122X restricts
irreducibly to [22XN[122X. But other questions require the computation of [22XN[122X or even
more information, like the character table of [22XN[122X.[133X
[33X[0;0YIn order to do these computations only once, one stores in the group a
record with components to store normal subgroups, the corresponding lists of
conjugacy classes, and (if necessary) the factor groups, namely[133X
[8X[10Xnsg[110X[8X[108X
[33X[0;6Ylist of normal subgroups of [22XG[122X, may be incomplete,[133X
[8X[10Xnsgclasses[110X[8X[108X
[33X[0;6Yat position [22Xi[122X, the list of positions of conjugacy classes of [3Xtbl[103X
forming the [22Xi[122X-th entry of the [10Xnsg[110X component,[133X
[8X[10Xnsgfactors[110X[8X[108X
[33X[0;6Yat position [22Xi[122X, if bound, the factor group modulo the [22Xi[122X-th entry of the
[10Xnsg[110X component.[133X
[33X[0;0Y[2XNormalSubgroupClasses[102X ([14X71.23-3[114X), [2XFactorGroupNormalSubgroupClasses[102X ([14X71.23-4[114X),
and [2XClassPositionsOfNormalSubgroup[102X ([14X71.23-2[114X) each use these components, and
they are the only functions to do so.[133X
[33X[0;0YSo if you need information about a normal subgroup for that you know the
conjugacy classes, you should get it using [2XNormalSubgroupClasses[102X ([14X71.23-3[114X).
If the normal subgroup was already used it is just returned, with all the
knowledge it contains. Otherwise the normal subgroup is added to the lists,
and will be available for the next call.[133X
[33X[0;0YFor example, if you are dealing with kernels of characters using the
[2XKernelOfCharacter[102X ([14X72.8-9[114X) function you make use of this feature because
[2XKernelOfCharacter[102X ([14X72.8-9[114X) calls [2XNormalSubgroupClasses[102X ([14X71.23-3[114X).[133X
[1X71.23-2 ClassPositionsOfNormalSubgroup[101X
[33X[1;0Y[29X[2XClassPositionsOfNormalSubgroup[102X( [3Xtbl[103X, [3XN[103X ) [32X function[133X
[33X[0;0Yis the list of positions of conjugacy classes of the character table [3Xtbl[103X
that are contained in the normal subgroup [3XN[103X of the underlying group of [3Xtbl[103X.[133X
[1X71.23-3 NormalSubgroupClasses[101X
[33X[1;0Y[29X[2XNormalSubgroupClasses[102X( [3Xtbl[103X, [3Xclasses[103X ) [32X function[133X
[33X[0;0Yreturns the normal subgroup of the underlying group [22XG[122X of the ordinary
character table [3Xtbl[103X that consists of those conjugacy classes of [3Xtbl[103X whose
positions are in the list [3Xclasses[103X.[133X
[33X[0;0YIf [10XNormalSubgroupClassesInfo( [3Xtbl[103X[10X ).nsg[110X does not yet contain the required
normal subgroup, and if [10XNormalSubgroupClassesInfo( [3Xtbl[103X[10X ).normalSubgroups[110X is
bound then the result will be identical to the group in
[10XNormalSubgroupClassesInfo( [3Xtbl[103X[10X ).normalSubgroups[110X.[133X
[1X71.23-4 FactorGroupNormalSubgroupClasses[101X
[33X[1;0Y[29X[2XFactorGroupNormalSubgroupClasses[102X( [3Xtbl[103X, [3Xclasses[103X ) [32X function[133X
[33X[0;0Yis the factor group of the underlying group [22XG[122X of the ordinary character
table [3Xtbl[103X modulo the normal subgroup of [22XG[122X that consists of those conjugacy
classes of [3Xtbl[103X whose positions are in the list [3Xclasses[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:= SymmetricGroup( 4 );[127X[104X
[4X[28XSym( [ 1 .. 4 ] )[128X[104X
[4X[25Xgap>[125X [27XSetName( g, "S4" );[127X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( g );[127X[104X
[4X[28XCharacterTable( S4 )[128X[104X
[4X[25Xgap>[125X [27Xirr:= Irr( g );[127X[104X
[4X[28X[ Character( CharacterTable( S4 ), [ 1, -1, 1, 1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( S4 ), [ 3, -1, -1, 0, 1 ] ), [128X[104X
[4X[28X Character( CharacterTable( S4 ), [ 2, 0, 2, -1, 0 ] ), [128X[104X
[4X[28X Character( CharacterTable( S4 ), [ 3, 1, -1, 0, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( S4 ), [ 1, 1, 1, 1, 1 ] ) ][128X[104X
[4X[25Xgap>[125X [27Xkernel:= KernelOfCharacter( irr[3] );[127X[104X
[4X[28XGroup([ (1,2)(3,4), (1,4)(2,3) ])[128X[104X
[4X[25Xgap>[125X [27XHasNormalSubgroupClassesInfo( tbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XNormalSubgroupClassesInfo( tbl );[127X[104X
[4X[28Xrec( nsg := [ Group([ (1,2)(3,4), (1,4)(2,3) ]) ],[128X[104X
[4X[28X nsgclasses := [ [ 1, 3 ] ], nsgfactors := [ ] )[128X[104X
[4X[25Xgap>[125X [27XClassPositionsOfNormalSubgroup( tbl, kernel );[127X[104X
[4X[28X[ 1, 3 ][128X[104X
[4X[25Xgap>[125X [27XG := FactorGroupNormalSubgroupClasses( tbl, [ 1, 3 ] );;[127X[104X
[4X[25Xgap>[125X [27XNormalSubgroupClassesInfo( tbl ).nsgfactors[1] = G;[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X