
| 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/chap73.txt |
[1X73 [33X[0;0YMaps Concerning Character Tables[133X[101X
[33X[0;0YBesides the characters, [13Xpower maps[113X are an important part of a character
table, see Section [14X73.1[114X. Often their computation is not easy, and if the
table has no access to the underlying group then in general they cannot be
obtained from the matrix of irreducible characters; so it is useful to store
them on the table.[133X
[33X[0;0YIf not only a single table is considered but different tables of a group and
a subgroup or of a group and a factor group are used, also [13Xclass fusion maps[113X
(see Section [14X73.3[114X) must be known to get information about the embedding or
simply to induce or restrict characters, see Section [14X72.9[114X).[133X
[33X[0;0YThese are examples of functions from conjugacy classes which will be called
[13Xmaps[113X in the following. (This should not be confused with the term mapping,
cf. Chapter [14X32[114X.) In [5XGAP[105X, maps are represented by lists. Also each character,
each list of element orders, of centralizer orders, or of class lengths are
maps, and the list returned by [2XListPerm[102X ([14X42.5-1[114X), when this function is
called with a permutation of classes, is a map.[133X
[33X[0;0YWhen maps are constructed without access to a group, often one only knows
that the image of a given class is contained in a set of possible images, e.
g., that the image of a class under a subgroup fusion is in the set of all
classes with the same element order. Using further information, such as
centralizer orders, power maps and the restriction of characters, the sets
of possible images can be restricted further. In many cases, at the end the
images are uniquely determined.[133X
[33X[0;0YBecause of this approach, many functions in this chapter work not only with
maps but with [13Xparametrized maps[113X (or [13Xparamaps[113X for short). More about
parametrized maps can be found in Section [14X73.5[114X.[133X
[33X[0;0YThe implementation follows [Bre91], a description of the main ideas together
with several examples can be found in [Bre99].[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
[1X73.1 [33X[0;0YPower Maps[133X[101X
[33X[0;0YThe [22Xn[122X-th power map of a character table is represented by a list that stores
at position [22Xi[122X the position of the class containing the [22Xn[122X-th powers of the
elements in the [22Xi[122X-th class. The [22Xn[122X-th power map can be composed from the
power maps of the prime divisors of [22Xn[122X, so usually only power maps for primes
are actually stored in the character table.[133X
[33X[0;0YFor an ordinary character table [3Xtbl[103X with access to its underlying group [22XG[122X,
the [22Xp[122X-th power map of [3Xtbl[103X can be computed using the identification of the
conjugacy classes of [22XG[122X with the classes of [3Xtbl[103X. For an ordinary character
table without access to a group, in general the [22Xp[122X-th power maps (and hence
also the element orders) for prime divisors [22Xp[122X of the group order are not
uniquely determined by the matrix of irreducible characters. So only
necessary conditions can be checked in this case, which in general yields
only a list of several possibilities for the desired power map. Character
tables of the [5XGAP[105X character table library store all [22Xp[122X-th power maps for
prime divisors [22Xp[122X of the group order.[133X
[33X[0;0YPower maps of Brauer tables can be derived from the power maps of the
underlying ordinary tables.[133X
[33X[0;0YFor (computing and) accessing the [22Xn[122X-th power map of a character table,
[2XPowerMap[102X ([14X73.1-1[114X) can be used; if the [22Xn[122X-th power map cannot be uniquely
determined then [2XPowerMap[102X ([14X73.1-1[114X) returns [9Xfail[109X.[133X
[33X[0;0YThe list of all possible [22Xp[122X-th power maps of a table in the sense that
certain necessary conditions are satisfied can be computed with
[2XPossiblePowerMaps[102X ([14X73.1-2[114X). This provides a default strategy, the
subroutines are listed in Section [14X73.6[114X.[133X
[1X73.1-1 PowerMap[101X
[33X[1;0Y[29X[2XPowerMap[102X( [3Xtbl[103X, [3Xn[103X[, [3Xclass[103X] ) [32X operation[133X
[33X[1;0Y[29X[2XPowerMapOp[102X( [3Xtbl[103X, [3Xn[103X[, [3Xclass[103X] ) [32X operation[133X
[33X[1;0Y[29X[2XComputedPowerMaps[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YCalled with first argument a character table [3Xtbl[103X and second argument an
integer [3Xn[103X, [2XPowerMap[102X returns the [3Xn[103X-th power map of [3Xtbl[103X. This is a list
containing at position [22Xi[122X the position of the class of [3Xn[103X-th powers of the
elements in the [22Xi[122X-th class of [3Xtbl[103X.[133X
[33X[0;0YIf the additional third argument [3Xclass[103X is present then the position of [3Xn[103X-th
powers of the [3Xclass[103X-th class is returned.[133X
[33X[0;0YIf the [3Xn[103X-th power map is not uniquely determined by [3Xtbl[103X then [9Xfail[109X is
returned. This can happen only if [3Xtbl[103X has no access to its underlying group.[133X
[33X[0;0YThe power maps of [3Xtbl[103X that were computed already by [2XPowerMap[102X are stored in
[3Xtbl[103X as value of the attribute [2XComputedPowerMaps[102X, the [22Xn[122X-th power map at
position [22Xn[122X. [2XPowerMap[102X checks whether the desired power map is already stored,
computes it using the operation [2XPowerMapOp[102X if it is not yet known, and
stores it. So methods for the computation of power maps can be installed for
the operation [2XPowerMapOp[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "L3(2)" );;[127X[104X
[4X[25Xgap>[125X [27XComputedPowerMaps( tbl );[127X[104X
[4X[28X[ , [ 1, 1, 3, 2, 5, 6 ], [ 1, 2, 1, 4, 6, 5 ],,,, [128X[104X
[4X[28X [ 1, 2, 3, 4, 1, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XPowerMap( tbl, 5 );[127X[104X
[4X[28X[ 1, 2, 3, 4, 6, 5 ][128X[104X
[4X[25Xgap>[125X [27XComputedPowerMaps( tbl );[127X[104X
[4X[28X[ , [ 1, 1, 3, 2, 5, 6 ], [ 1, 2, 1, 4, 6, 5 ],, [ 1, 2, 3, 4, 6, 5 ],[128X[104X
[4X[28X , [ 1, 2, 3, 4, 1, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XPowerMap( tbl, 137, 2 );[127X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[1X73.1-2 PossiblePowerMaps[101X
[33X[1;0Y[29X[2XPossiblePowerMaps[102X( [3Xtbl[103X, [3Xp[103X[, [3Xoptions[103X] ) [32X operation[133X
[33X[0;0YFor the ordinary character table [3Xtbl[103X of the group [22XG[122X, say, and a prime
integer [3Xp[103X, [2XPossiblePowerMaps[102X returns the list of all maps that have the
following properties of the [22Xp[122X-th power map of [3Xtbl[103X. (Representative orders
are used only if the [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X) value of [3Xtbl[103X is
known.[133X
[31X1[131X [33X[0;6YFor class [22Xi[122X, the centralizer order of the image is a multiple of the
[22Xi[122X-th centralizer order; if the elements in the [22Xi[122X-th class have order
coprime to [22Xp[122X then the centralizer orders of class [22Xi[122X and its image are
equal.[133X
[31X2[131X [33X[0;6YLet [22Xn[122X be the order of elements in class [22Xi[122X. If [3Xprime[103X divides [22Xn[122X then the
images have order [22Xn/p[122X; otherwise the images have order [22Xn[122X. These
criteria are checked in [2XInitPowerMap[102X ([14X73.6-1[114X).[133X
[31X3[131X [33X[0;6YFor each character [22Xχ[122X of [22XG[122X and each element [22Xg[122X in [22XG[122X, the values [22Xχ(g^p)[122X
and [10XGaloisCyc[110X[22X( χ(g), p )[122X are algebraic integers that are congruent
modulo [22Xp[122X; if [22Xp[122X does not divide the element order of [22Xg[122X then the two
values are equal. This congruence is checked for the characters
specified below in the discussion of the [3Xoptions[103X argument; For linear
characters [22Xλ[122X among these characters, the condition [22Xχ(g)^p = χ(g^p)[122X is
checked. The corresponding function is [2XCongruences[102X ([14X73.6-2[114X).[133X
[31X4[131X [33X[0;6YFor each character [22Xχ[122X of [22XG[122X, the kernel is a normal subgroup [22XN[122X, and [22Xg^p
∈ N[122X for all [22Xg ∈ N[122X; moreover, if [22XN[122X has index [22Xp[122X in [22XG[122X then [22Xg^p ∈ N[122X for
all [22Xg ∈ G[122X, and if the index of [22XN[122X in [22XG[122X is coprime to [22Xp[122X then [22Xg^p not ∈ N[122X
for each [22Xg not ∈ N[122X. These conditions are checked for the kernels of
all characters [22Xχ[122X specified below, the corresponding function is
[2XConsiderKernels[102X ([14X73.6-3[114X).[133X
[31X5[131X [33X[0;6YIf [22Xp[122X is larger than the order [22Xm[122X of an element [22Xg ∈ G[122X then the class of
[22Xg^p[122X is determined by the power maps for primes dividing the residue of
[22Xp[122X modulo [22Xm[122X. If these power maps are stored in the [2XComputedPowerMaps[102X
([14X73.1-1[114X) value of [3Xtbl[103X then this information is used. This criterion is
checked in [2XConsiderSmallerPowerMaps[102X ([14X73.6-4[114X).[133X
[31X6[131X [33X[0;6YFor each character [22Xχ[122X of [22XG[122X, the symmetrization [22Xψ[122X defined by [22Xψ(g) =
(χ(g)^p - χ(g^p))/p[122X is a character. This condition is checked for the
kernels of all characters [22Xχ[122X specified below, the corresponding
function is [2XPowerMapsAllowedBySymmetrizations[102X ([14X73.6-6[114X).[133X
[33X[0;0YIf [3Xtbl[103X is a Brauer table, the possibilities are computed from those for the
underlying ordinary table.[133X
[33X[0;0YThe optional argument [3Xoptions[103X, if given, must be a record that may have the
following components:[133X
[8X[10Xchars[110X[8X:[108X
[33X[0;6Ya list of characters which are used for the check of the criteria 3.,
4., and 6.; the default is [10XIrr( [3Xtbl[103X[10X )[110X,[133X
[8X[10Xpowermap[110X[8X:[108X
[33X[0;6Ya parametrized map which is an approximation of the desired map[133X
[8X[10Xdecompose[110X[8X:[108X
[33X[0;6Ya Boolean; a [9Xtrue[109X value indicates that all constituents of the
symmetrizations of [10Xchars[110X computed for criterion 6. lie in [10Xchars[110X, so
the symmetrizations can be decomposed into elements of [10Xchars[110X; the
default value of [10Xdecompose[110X is [9Xtrue[109X if [10Xchars[110X is not bound and [10XIrr( [3Xtbl[103X[10X
)[110X is known, otherwise [9Xfalse[109X,[133X
[8X[10Xquick[110X[8X:[108X
[33X[0;6Ya Boolean; if [9Xtrue[109X then the subroutines are called with value [9Xtrue[109X for
the argument [3Xquick[103X; especially, as soon as only one candidate remains
this candidate is returned immediately; the default value is [9Xfalse[109X,[133X
[8X[10Xparameters[110X[8X:[108X
[33X[0;6Ya record with components [10Xmaxamb[110X, [10Xminamb[110X and [10Xmaxlen[110X which control the
subroutine [2XPowerMapsAllowedBySymmetrizations[102X ([14X73.6-6[114X); it only uses
characters with current indeterminateness up to [10Xmaxamb[110X, tests
decomposability only for characters with current indeterminateness at
least [10Xminamb[110X, and admits a branch according to a character only if
there is one with at most [10Xmaxlen[110X possible symmetrizations.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "U4(3).4" );;[127X[104X
[4X[25Xgap>[125X [27XPossiblePowerMaps( tbl, 2 );[127X[104X
[4X[28X[ [ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, 6, 14, 9, 1, 1, 2, 2, 3, 4, [128X[104X
[4X[28X 5, 6, 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, 18, 18, [128X[104X
[4X[28X 18, 20, 20, 20, 20, 22, 22, 24, 24, 25, 26, 28, 28, 29, 29 ] ][128X[104X
[4X[32X[104X
[1X73.1-3 ElementOrdersPowerMap[101X
[33X[1;0Y[29X[2XElementOrdersPowerMap[102X( [3Xpowermap[103X ) [32X function[133X
[33X[0;0YLet [3Xpowermap[103X be a nonempty list containing at position [22Xp[122X, if bound, the [22Xp[122X-th
power map of a character table or group. [2XElementOrdersPowerMap[102X returns a
list of the same length as each entry in [3Xpowermap[103X, with entry at position [22Xi[122X
equal to the order of elements in class [22Xi[122X if this order is uniquely
determined by [3Xpowermap[103X, and equal to an unknown (see Chapter [14X74[114X) otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "U4(3).4" );;[127X[104X
[4X[25Xgap>[125X [27Xknown:= ComputedPowerMaps( tbl );;[127X[104X
[4X[25Xgap>[125X [27XLength( known );[127X[104X
[4X[28X7[128X[104X
[4X[25Xgap>[125X [27Xsub:= ShallowCopy( known );; Unbind( sub[7] );[127X[104X
[4X[25Xgap>[125X [27XElementOrdersPowerMap( sub );[127X[104X
[4X[28X[ 1, 2, 3, 3, 3, 4, 4, 5, 6, 6, Unknown(1), Unknown(2), 8, 9, 12, 2, [128X[104X
[4X[28X 2, 4, 4, 6, 6, 6, 8, 10, 12, 12, 12, Unknown(3), Unknown(4), 4, 4, [128X[104X
[4X[28X 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 20, 20, 24, 24, [128X[104X
[4X[28X Unknown(5), Unknown(6), Unknown(7), Unknown(8) ][128X[104X
[4X[25Xgap>[125X [27Xord:= ElementOrdersPowerMap( known );[127X[104X
[4X[28X[ 1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 12, 2, 2, 4, 4, 6, 6, 6, [128X[104X
[4X[28X 8, 10, 12, 12, 12, 14, 14, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, [128X[104X
[4X[28X 12, 12, 12, 12, 20, 20, 24, 24, 28, 28, 28, 28 ][128X[104X
[4X[25Xgap>[125X [27Xord = OrdersClassRepresentatives( tbl );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X73.1-4 PowerMapByComposition[101X
[33X[1;0Y[29X[2XPowerMapByComposition[102X( [3Xtbl[103X, [3Xn[103X ) [32X function[133X
[33X[0;0Y[3Xtbl[103X must be a nearly character table, and [3Xn[103X a positive integer. If the power
maps for all prime divisors of [3Xn[103X are stored in the [2XComputedPowerMaps[102X
([14X73.1-1[114X) list of [3Xtbl[103X then [2XPowerMapByComposition[102X returns the [3Xn[103X-th power map
of [3Xtbl[103X. Otherwise [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "U4(3).4" );; exp:= Exponent( tbl );[127X[104X
[4X[28X2520[128X[104X
[4X[25Xgap>[125X [27XPowerMapByComposition( tbl, exp );[127X[104X
[4X[28X[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, [128X[104X
[4X[28X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, [128X[104X
[4X[28X 1, 1, 1, 1, 1, 1, 1, 1, 1 ][128X[104X
[4X[25Xgap>[125X [27XLength( ComputedPowerMaps( tbl ) );[127X[104X
[4X[28X7[128X[104X
[4X[25Xgap>[125X [27XPowerMapByComposition( tbl, 11 );[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27XPowerMap( tbl, 11 );;[127X[104X
[4X[25Xgap>[125X [27XPowerMapByComposition( tbl, 11 );[127X[104X
[4X[28X[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, [128X[104X
[4X[28X 20, 21, 22, 23, 24, 26, 25, 27, 28, 29, 31, 30, 33, 32, 35, 34, 37, [128X[104X
[4X[28X 36, 39, 38, 41, 40, 43, 42, 45, 44, 47, 46, 49, 48, 51, 50, 53, 52 ][128X[104X
[4X[32X[104X
[1X73.2 [33X[0;0YOrbits on Sets of Possible Power Maps[133X[101X
[33X[0;0YThe permutation group of matrix automorphisms (see [2XMatrixAutomorphisms[102X
([14X71.22-1[114X)) acts on the possible power maps returned by [2XPossiblePowerMaps[102X
([14X73.1-2[114X) by permuting a list via [2XPermuted[102X ([14X21.20-18[114X) and then mapping the
images via [2XOnPoints[102X ([14X41.2-1[114X). Note that by definition, the group of [13Xtable[113X
automorphisms acts trivially.[133X
[1X73.2-1 OrbitPowerMaps[101X
[33X[1;0Y[29X[2XOrbitPowerMaps[102X( [3Xmap[103X, [3Xpermgrp[103X ) [32X function[133X
[33X[0;0Yreturns the orbit of the power map [3Xmap[103X under the action of the permutation
group [3Xpermgrp[103X via a combination of [2XPermuted[102X ([14X21.20-18[114X) and [2XOnPoints[102X
([14X41.2-1[114X).[133X
[1X73.2-2 RepresentativesPowerMaps[101X
[33X[1;0Y[29X[2XRepresentativesPowerMaps[102X( [3Xlistofmaps[103X, [3Xpermgrp[103X ) [32X function[133X
[33X[0;0Yreturns a list of orbit representatives of the power maps in the list
[3Xlistofmaps[103X under the action of the permutation group [3Xpermgrp[103X via a
combination of [2XPermuted[102X ([14X21.20-18[114X) and [2XOnPoints[102X ([14X41.2-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "3.McL" );;[127X[104X
[4X[25Xgap>[125X [27Xgrp:= MatrixAutomorphisms( Irr( tbl ) ); Size( grp );[127X[104X
[4X[28X<permutation group with 5 generators>[128X[104X
[4X[28X32[128X[104X
[4X[25Xgap>[125X [27Xposs:= PossiblePowerMaps( CharacterTable( "3.McL" ), 3 );[127X[104X
[4X[28X[ [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, [128X[104X
[4X[28X 4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 9, 8, 37, [128X[104X
[4X[28X 37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, [128X[104X
[4X[28X 49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ], [128X[104X
[4X[28X [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, [128X[104X
[4X[28X 4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37, [128X[104X
[4X[28X 37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, [128X[104X
[4X[28X 49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ] ][128X[104X
[4X[25Xgap>[125X [27Xreps:= RepresentativesPowerMaps( poss, grp );[127X[104X
[4X[28X[ [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, [128X[104X
[4X[28X 4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37, [128X[104X
[4X[28X 37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, [128X[104X
[4X[28X 49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ] ][128X[104X
[4X[25Xgap>[125X [27Xorb:= OrbitPowerMaps( reps[1], grp );[127X[104X
[4X[28X[ [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, [128X[104X
[4X[28X 4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 8, 9, 37, [128X[104X
[4X[28X 37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, [128X[104X
[4X[28X 49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ], [128X[104X
[4X[28X [ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, [128X[104X
[4X[28X 4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, 9, 8, 37, [128X[104X
[4X[28X 37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, 52, 49, 49, [128X[104X
[4X[28X 49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ] ][128X[104X
[4X[25Xgap>[125X [27XParametrized( orb );[127X[104X
[4X[28X[ 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 11, 11, 11, 14, 14, 14, 17, 17, 17, [128X[104X
[4X[28X 4, 4, 4, 4, 4, 4, 29, 29, 29, 26, 26, 26, 32, 32, 32, [ 8, 9 ], [128X[104X
[4X[28X [ 8, 9 ], 37, 37, 37, 40, 40, 40, 43, 43, 43, 11, 11, 11, 52, 52, [128X[104X
[4X[28X 52, 49, 49, 49, 14, 14, 14, 14, 14, 14, 37, 37, 37, 37, 37, 37 ][128X[104X
[4X[32X[104X
[1X73.3 [33X[0;0YClass Fusions between Character Tables[133X[101X
[33X[0;0YFor a group [22XG[122X and a subgroup [22XH[122X of [22XG[122X, the fusion map between the character
table of [22XH[122X and the character table of [22XG[122X is represented by a list that stores
at position [22Xi[122X the position of the [22Xi[122X-th class of the table of [22XH[122X in the
classes list of the table of [22XG[122X.[133X
[33X[0;0YFor ordinary character tables [3Xtbl1[103X and [3Xtbl2[103X of [22XH[122X and [22XG[122X, with access to the
groups [22XH[122X and [22XG[122X, the class fusion between [3Xtbl1[103X and [3Xtbl2[103X can be computed using
the identifications of the conjugacy classes of [22XH[122X with the classes of [3Xtbl1[103X
and the conjugacy classes of [22XG[122X with the classes of [3Xtbl2[103X. For two ordinary
character tables without access to an underlying group, or in the situation
that the group stored in [3Xtbl1[103X is not physically a subgroup of the group
stored in [3Xtbl2[103X but an isomorphic copy, in general the class fusion is not
uniquely determined by the information stored on the tables such as
irreducible characters and power maps. So only necessary conditions can be
checked in this case, which in general yields only a list of several
possibilities for the desired class fusion. Character tables of the [5XGAP[105X
character table library store various class fusions that are regarded as
important, for example fusions from maximal subgroups
(see [2XComputedClassFusions[102X ([14X73.3-2[114X) and [2XMaxes[102X ([14XCTblLib: Maxes[114X) in the manual
for the [5XGAP[105X Character Table Library).[133X
[33X[0;0YClass fusions between Brauer tables can be derived from the class fusions
between the underlying ordinary tables. The class fusion from a Brauer table
to the underlying ordinary table is stored when the Brauer table is
constructed from the ordinary table, so no method is needed to compute such
a fusion.[133X
[33X[0;0YFor (computing and) accessing the class fusion between two character tables,
[2XFusionConjugacyClasses[102X ([14X73.3-1[114X) can be used; if the class fusion cannot be
uniquely determined then [2XFusionConjugacyClasses[102X ([14X73.3-1[114X) returns [9Xfail[109X.[133X
[33X[0;0YThe list of all possible class fusion between two tables in the sense that
certain necessary conditions are satisfied can be computed with
[2XPossibleClassFusions[102X ([14X73.3-6[114X). This provides a default strategy, the
subroutines are listed in Section [14X73.7[114X.[133X
[33X[0;0YIt should be noted that all the following functions except
[2XFusionConjugacyClasses[102X ([14X73.3-1[114X) deal only with the situation of class
fusions from subgroups. The computation of [13Xfactor fusions[113X from a character
table to the table of a factor group is not dealt with here. Since the
ordinary character table of a group [22XG[122X determines the character tables of all
factor groups of [22XG[122X, the factor fusion to a given character table of a factor
group of [22XG[122X is determined up to table automorphisms (see [2XAutomorphismsOfTable[102X
([14X71.9-4[114X)) once the class positions of the kernel of the natural epimorphism
have been fixed.[133X
[1X73.3-1 [33X[0;0YFusionConjugacyClasses[133X[101X
[33X[1;0Y[29X[2XFusionConjugacyClasses[102X( [3Xtbl1[103X, [3Xtbl2[103X ) [32X operation[133X
[33X[1;0Y[29X[2XFusionConjugacyClasses[102X( [3XH[103X, [3XG[103X ) [32X operation[133X
[33X[1;0Y[29X[2XFusionConjugacyClasses[102X( [3Xhom[103X[, [3Xtbl1[103X, [3Xtbl2[103X] ) [32X operation[133X
[33X[1;0Y[29X[2XFusionConjugacyClassesOp[102X( [3Xtbl1[103X, [3Xtbl2[103X ) [32X operation[133X
[33X[1;0Y[29X[2XFusionConjugacyClassesOp[102X( [3Xhom[103X ) [32X attribute[133X
[33X[0;0YCalled with two character tables [3Xtbl1[103X and [3Xtbl2[103X, [2XFusionConjugacyClasses[102X
returns the fusion of conjugacy classes between [3Xtbl1[103X and [3Xtbl2[103X. (If one of
the tables is a Brauer table, it will delegate this task to the underlying
ordinary table.)[133X
[33X[0;0YCalled with two groups [3XH[103X and [3XG[103X where [3XH[103X is a subgroup of [3XG[103X,
[2XFusionConjugacyClasses[102X returns the fusion of conjugacy classes between [3XH[103X and
[3XG[103X. This is done by delegating to the ordinary character tables of [3XH[103X and [3XG[103X,
since class fusions are stored only for character tables and not for groups.[133X
[33X[0;0YNote that the returned class fusion refers to the ordering of conjugacy
classes in the character tables if the arguments are character tables and to
the ordering of conjugacy classes in the groups if the arguments are groups
(see [2XConjugacyClasses[102X ([14X71.6-2[114X)).[133X
[33X[0;0YCalled with a group homomorphism [3Xhom[103X, [2XFusionConjugacyClasses[102X returns the
fusion of conjugacy classes between the preimage and the image of [3Xhom[103X;
contrary to the two cases above, also factor fusions can be handled by this
variant. If [3Xhom[103X is the only argument then the class fusion refers to the
ordering of conjugacy classes in the groups. If the character tables of
preimage and image are given as [3Xtbl1[103X and [3Xtbl2[103X, respectively (each table with
its group stored), then the fusion refers to the ordering of classes in
these tables.[133X
[33X[0;0YIf no class fusion exists or if the class fusion is not uniquely determined,
[9Xfail[109X is returned; this may happen when [2XFusionConjugacyClasses[102X is called with
two character tables that do not know compatible underlying groups.[133X
[33X[0;0YMethods for the computation of class fusions can be installed for the
operation [2XFusionConjugacyClassesOp[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xs4:= SymmetricGroup( 4 );[127X[104X
[4X[28XSym( [ 1 .. 4 ] )[128X[104X
[4X[25Xgap>[125X [27Xtbls4:= CharacterTable( s4 );;[127X[104X
[4X[25Xgap>[125X [27Xd8:= SylowSubgroup( s4, 2 );[127X[104X
[4X[28XGroup([ (1,2), (3,4), (1,3)(2,4) ])[128X[104X
[4X[25Xgap>[125X [27XFusionConjugacyClasses( d8, s4 );[127X[104X
[4X[28X[ 1, 2, 3, 3, 5 ][128X[104X
[4X[25Xgap>[125X [27Xtbls5:= CharacterTable( "S5" );;[127X[104X
[4X[25Xgap>[125X [27XFusionConjugacyClasses( CharacterTable( "A5" ), tbls5 );[127X[104X
[4X[28X[ 1, 2, 3, 4, 4 ][128X[104X
[4X[25Xgap>[125X [27XFusionConjugacyClasses(CharacterTable("A5"), CharacterTable("J1"));[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27XPossibleClassFusions(CharacterTable("A5"), CharacterTable("J1"));[127X[104X
[4X[28X[ [ 1, 2, 3, 4, 5 ], [ 1, 2, 3, 5, 4 ] ][128X[104X
[4X[32X[104X
[1X73.3-2 ComputedClassFusions[101X
[33X[1;0Y[29X[2XComputedClassFusions[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YThe class fusions from the character table [3Xtbl[103X that have been computed
already by [2XFusionConjugacyClasses[102X ([14X73.3-1[114X) or explicitly stored by
[2XStoreFusion[102X ([14X73.3-4[114X) are stored in the [2XComputedClassFusions[102X list of [3Xtbl1[103X.
Each entry of this list is a record with the following components.[133X
[8X[10Xname[110X[8X[108X
[33X[0;6Ythe [2XIdentifier[102X ([14X71.9-8[114X) value of the character table to which the
fusion maps,[133X
[8X[10Xmap[110X[8X[108X
[33X[0;6Ythe list of positions of image classes,[133X
[8X[10Xtext[110X[8X (optional)[108X
[33X[0;6Ya string giving additional information about the fusion map, for
example whether the map is uniquely determined by the character
tables,[133X
[8X[10Xspecification[110X[8X (optional, rarely used)[108X
[33X[0;6Ya value that distinguishes different fusions between the same tables.[133X
[33X[0;0YNote that stored fusion maps may differ from the maps returned by
[2XGetFusionMap[102X ([14X73.3-3[114X) and the maps entered by [2XStoreFusion[102X ([14X73.3-4[114X) if the
table [3Xdestination[103X has a nonidentity [2XClassPermutation[102X ([14X71.21-5[114X) value. So if
one fetches a fusion map from a table [3Xtbl1[103X to a table [3Xtbl2[103X via access to the
data in the [2XComputedClassFusions[102X list of [3Xtbl1[103X then the stored value must be
composed with the [2XClassPermutation[102X ([14X71.21-5[114X) value of [3Xtbl2[103X in order to
obtain the correct class fusion. (If one handles fusions only via
[2XGetFusionMap[102X ([14X73.3-3[114X) and [2XStoreFusion[102X ([14X73.3-4[114X) then this adjustment is made
automatically.)[133X
[33X[0;0YFusions are identified via the [2XIdentifier[102X ([14X71.9-8[114X) value of the destination
table and not by this table itself because many fusions between character
tables in the [5XGAP[105X character table library are stored on library tables, and
it is not desirable to load together with a library table also all those
character tables that occur as destinations of fusions from this table.[133X
[33X[0;0YFor storing fusions and accessing stored fusions, see also [2XGetFusionMap[102X
([14X73.3-3[114X), [2XStoreFusion[102X ([14X73.3-4[114X). For accessing the identifiers of tables that
store a fusion into a given character table, see [2XNamesOfFusionSources[102X
([14X73.3-5[114X).[133X
[1X73.3-3 GetFusionMap[101X
[33X[1;0Y[29X[2XGetFusionMap[102X( [3Xsource[103X, [3Xdestination[103X[, [3Xspecification[103X] ) [32X function[133X
[33X[0;0YFor two ordinary character tables [3Xsource[103X and [3Xdestination[103X, [2XGetFusionMap[102X
checks whether the [2XComputedClassFusions[102X ([14X73.3-2[114X) list of [3Xsource[103X contains a
record with [10Xname[110X component [10XIdentifier( [3Xdestination[103X[10X )[110X, and returns returns
the [10Xmap[110X component of the first such record. [10XGetFusionMap( [3Xsource[103X[10X,
[3Xdestination[103X[10X, [3Xspecification[103X[10X )[110X fetches that fusion map for which the record
additionally has the [10Xspecification[110X component [3Xspecification[103X.[133X
[33X[0;0YIf both [3Xsource[103X and [3Xdestination[103X are Brauer tables, first the same is done,
and if no fusion map was found then [2XGetFusionMap[102X looks whether a fusion map
between the ordinary tables is stored; if so then the fusion map between
[3Xsource[103X and [3Xdestination[103X is stored on [3Xsource[103X, and then returned.[133X
[33X[0;0YIf no appropriate fusion is found, [2XGetFusionMap[102X returns [9Xfail[109X. For the
computation of class fusions, see [2XFusionConjugacyClasses[102X ([14X73.3-1[114X).[133X
[1X73.3-4 StoreFusion[101X
[33X[1;0Y[29X[2XStoreFusion[102X( [3Xsource[103X, [3Xfusion[103X, [3Xdestination[103X ) [32X function[133X
[33X[0;0YFor two character tables [3Xsource[103X and [3Xdestination[103X, [2XStoreFusion[102X stores the
fusion [3Xfusion[103X from [3Xsource[103X to [3Xdestination[103X in the [2XComputedClassFusions[102X
([14X73.3-2[114X) list of [3Xsource[103X, and adds the [2XIdentifier[102X ([14X71.9-8[114X) string of
[3Xdestination[103X to the [2XNamesOfFusionSources[102X ([14X73.3-5[114X) list of [3Xdestination[103X.[133X
[33X[0;0Y[3Xfusion[103X can either be a fusion map (that is, the list of positions of the
image classes) or a record as described in [2XComputedClassFusions[102X ([14X73.3-2[114X).[133X
[33X[0;0YIf fusions to [3Xdestination[103X are already stored on [3Xsource[103X then another fusion
can be stored only if it has a record component [10Xspecification[110X that
distinguishes it from the stored fusions. In the case of such an ambiguity,
[2XStoreFusion[102X raises an error.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbld8:= CharacterTable( d8 );;[127X[104X
[4X[25Xgap>[125X [27XComputedClassFusions( tbld8 );[127X[104X
[4X[28X[ rec( map := [ 1, 2, 3, 3, 5 ], name := "CT1" ) ][128X[104X
[4X[25Xgap>[125X [27XIdentifier( tbls4 );[127X[104X
[4X[28X"CT1"[128X[104X
[4X[25Xgap>[125X [27XGetFusionMap( tbld8, tbls4 );[127X[104X
[4X[28X[ 1, 2, 3, 3, 5 ][128X[104X
[4X[25Xgap>[125X [27XGetFusionMap( tbls4, tbls5 );[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27Xposs:= PossibleClassFusions( tbls4, tbls5 );[127X[104X
[4X[28X[ [ 1, 5, 2, 3, 6 ] ][128X[104X
[4X[25Xgap>[125X [27XStoreFusion( tbls4, poss[1], tbls5 );[127X[104X
[4X[25Xgap>[125X [27XGetFusionMap( tbls4, tbls5 );[127X[104X
[4X[28X[ 1, 5, 2, 3, 6 ][128X[104X
[4X[32X[104X
[1X73.3-5 NamesOfFusionSources[101X
[33X[1;0Y[29X[2XNamesOfFusionSources[102X( [3Xtbl[103X ) [32X attribute[133X
[33X[0;0YFor a character table [3Xtbl[103X, [2XNamesOfFusionSources[102X returns the list of
identifiers of all those character tables that are known to have fusions to
[3Xtbl[103X stored. The [2XNamesOfFusionSources[102X value is updated whenever a fusion to
[3Xtbl[103X is stored using [2XStoreFusion[102X ([14X73.3-4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XNamesOfFusionSources( tbls4 );[127X[104X
[4X[28X[ "CT2" ][128X[104X
[4X[25Xgap>[125X [27XIdentifier( CharacterTable( d8 ) );[127X[104X
[4X[28X"CT2"[128X[104X
[4X[32X[104X
[1X73.3-6 PossibleClassFusions[101X
[33X[1;0Y[29X[2XPossibleClassFusions[102X( [3Xsubtbl[103X, [3Xtbl[103X[, [3Xoptions[103X] ) [32X operation[133X
[33X[0;0YFor two ordinary character tables [3Xsubtbl[103X and [3Xtbl[103X of the groups [22XH[122X and [22XG[122X, say,
[2XPossibleClassFusions[102X returns the list of all maps that have the following
properties of class fusions from [3Xsubtbl[103X to [3Xtbl[103X.[133X
[31X1[131X [33X[0;6YFor class [22Xi[122X, the centralizer order of the image in [22XG[122X is a multiple of
the [22Xi[122X-th centralizer order in [22XH[122X, and the element orders in the [22Xi[122X-th
class and its image are equal. These criteria are checked in
[2XInitFusion[102X ([14X73.7-1[114X).[133X
[31X2[131X [33X[0;6YThe class fusion commutes with power maps. This is checked using
[2XTestConsistencyMaps[102X ([14X73.5-12[114X).[133X
[31X3[131X [33X[0;6YIf the permutation character of [22XG[122X corresponding to the action of [22XG[122X on
the cosets of [22XH[122X is specified (see the discussion of the [3Xoptions[103X
argument below) then it prescribes for each class [22XC[122X of [22XG[122X the number of
elements of [22XH[122X fusing into [22XC[122X. The corresponding function is
[2XCheckPermChar[102X ([14X73.7-2[114X).[133X
[31X4[131X [33X[0;6YThe table automorphisms of [3Xtbl[103X (see [2XAutomorphismsOfTable[102X ([14X71.9-4[114X)) are
used in order to compute only orbit representatives. (But note that
the list returned by [2XPossibleClassFusions[102X contains the full orbits.)[133X
[31X5[131X [33X[0;6YFor each character [22Xχ[122X of [22XG[122X, the restriction to [22XH[122X via the class fusion
is a character of [22XH[122X. This condition is checked for all characters
specified below, the corresponding function is
[2XFusionsAllowedByRestrictions[102X ([14X73.7-4[114X).[133X
[31X6[131X [33X[0;6YThe class multiplication coefficients in [3Xsubtbl[103X do not exceed the
corresponding coefficients in [3Xtbl[103X. This is checked in
[2XConsiderStructureConstants[102X ([14X73.3-7[114X), see also the comment on the
parameter [10Xverify[110X below.[133X
[33X[0;0YIf [3Xsubtbl[103X and [3Xtbl[103X are Brauer tables then the possibilities are computed from
those for the underlying ordinary tables.[133X
[33X[0;0YThe optional argument [3Xoptions[103X must be a record that may have the following
components:[133X
[8X[10Xchars[110X[8X[108X
[33X[0;6Ya list of characters of [3Xtbl[103X which are used for the check of 5.; the
default is [10XIrr( [3Xtbl[103X[10X )[110X,[133X
[8X[10Xsubchars[110X[8X[108X
[33X[0;6Ya list of characters of [3Xsubtbl[103X which are constituents of the
restrictions of [10Xchars[110X, the default is [10XIrr( [3Xsubtbl[103X[10X )[110X,[133X
[8X[10Xfusionmap[110X[8X[108X
[33X[0;6Ya parametrized map which is an approximation of the desired map,[133X
[8X[10Xdecompose[110X[8X[108X
[33X[0;6Ya Boolean; a [9Xtrue[109X value indicates that all constituents of the
restrictions of [10Xchars[110X computed for criterion 5. lie in [10Xsubchars[110X, so
the restrictions can be decomposed into elements of [10Xsubchars[110X; the
default value of [10Xdecompose[110X is [9Xtrue[109X if [10Xsubchars[110X is not bound and [10XIrr(
[3Xsubtbl[103X[10X )[110X is known, otherwise [9Xfalse[109X,[133X
[8X[10Xpermchar[110X[8X[108X
[33X[0;6Y(a values list of) a permutation character; only those fusions
affording that permutation character are computed,[133X
[8X[10Xquick[110X[8X[108X
[33X[0;6Ya Boolean; if [9Xtrue[109X then the subroutines are called with value [9Xtrue[109X for
the argument [3Xquick[103X; especially, as soon as only one possibility
remains then this possibility is returned immediately; the default
value is [9Xfalse[109X,[133X
[8X[10Xverify[110X[8X[108X
[33X[0;6Ya Boolean; if [9Xfalse[109X then [2XConsiderStructureConstants[102X ([14X73.3-7[114X) is called
only if more than one orbit of possible class fusions exists, under
the action of the groups of table automorphisms; the default value is
[9Xfalse[109X (because the computation of the structure constants is usually
very time consuming, compared with checking the other criteria),[133X
[8X[10Xparameters[110X[8X[108X
[33X[0;6Ya record with components [10Xmaxamb[110X, [10Xminamb[110X and [10Xmaxlen[110X (and perhaps some
optional components) which control the subroutine
[2XFusionsAllowedByRestrictions[102X ([14X73.7-4[114X); it only uses characters with
current indeterminateness up to [10Xmaxamb[110X, tests decomposability only for
characters with current indeterminateness at least [10Xminamb[110X, and admits
a branch according to a character only if there is one with at most
[10Xmaxlen[110X possible restrictions.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "U3(3)" );; tbl:= CharacterTable( "J4" );;[127X[104X
[4X[25Xgap>[125X [27XPossibleClassFusions( subtbl, tbl );[127X[104X
[4X[28X[ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 5, 5, 6, 10, 13, 12, 14, 14, 21, 21 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 15, 15, 22, 22 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 16, 16, 22, 22 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 6, 6, 6, 10, 13, 12, 15, 15, 22, 22 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 6, 6, 6, 10, 13, 12, 16, 16, 22, 22 ] ][128X[104X
[4X[32X[104X
[1X73.3-7 ConsiderStructureConstants[101X
[33X[1;0Y[29X[2XConsiderStructureConstants[102X( [3Xsubtbl[103X, [3Xtbl[103X, [3Xfusions[103X, [3Xquick[103X ) [32X function[133X
[33X[0;0YLet [3Xsubtbl[103X and [3Xtbl[103X be ordinary character tables and [3Xfusions[103X be a list of
possible class fusions from [3Xsubtbl[103X to [3Xtbl[103X. [2XConsiderStructureConstants[102X
returns the list of those maps [22Xσ[122X in [3Xfusions[103X with the property that for all
triples [22X(i,j,k)[122X of class positions, [10XClassMultiplicationCoefficient[110X[22X( [3Xsubtbl[103X,
i, j, k )[122X is not bigger than [10XClassMultiplicationCoefficient[110X[22X( [3Xtbl[103X, σ[i],
σ[j], σ[k] )[122X; see [2XClassMultiplicationCoefficient[102X ([14X71.12-7[114X) for the
definition of class multiplication coefficients/structure constants.[133X
[33X[0;0YThe argument [3Xquick[103X must be a Boolean; if it is [9Xtrue[109X then only those triples
are checked for which for which at least two entries in [3Xfusions[103X have
different images.[133X
[1X73.4 [33X[0;0YOrbits on Sets of Possible Class Fusions[133X[101X
[33X[0;0YThe permutation groups of table automorphisms (see [2XAutomorphismsOfTable[102X
([14X71.9-4[114X)) of the subgroup table [3Xsubtbl[103X and the supergroup table [3Xtbl[103X act on
the possible class fusions from [3Xsubtbl[103X to [3Xtbl[103X that are returned by
[2XPossibleClassFusions[102X ([14X73.3-6[114X), the former by permuting a list via [2XPermuted[102X
([14X21.20-18[114X), the latter by mapping the images via [2XOnPoints[102X ([14X41.2-1[114X).[133X
[33X[0;0YIf a set of possible fusions with certain properties was computed that are
not invariant under the full groups of table automorphisms then only a
smaller group acts on this set. This may happen for example if a permutation
character or if an explicit approximation of the fusion map was prescribed
in the call of [2XPossibleClassFusions[102X ([14X73.3-6[114X).[133X
[1X73.4-1 OrbitFusions[101X
[33X[1;0Y[29X[2XOrbitFusions[102X( [3Xsubtblautomorphisms[103X, [3Xfusionmap[103X, [3Xtblautomorphisms[103X ) [32X function[133X
[33X[0;0Yreturns the orbit of the class fusion map [3Xfusionmap[103X under the actions of the
permutation groups [3Xsubtblautomorphisms[103X and [3Xtblautomorphisms[103X of automorphisms
of the character table of the subgroup and the supergroup, respectively.[133X
[1X73.4-2 RepresentativesFusions[101X
[33X[1;0Y[29X[2XRepresentativesFusions[102X( [3Xsubtbl[103X, [3Xlistofmaps[103X, [3Xtbl[103X ) [32X function[133X
[33X[0;0YLet [3Xlistofmaps[103X be a list of class fusions from the character table [3Xsubtbl[103X to
the character table [3Xtbl[103X. [2XRepresentativesFusions[102X returns a list of orbit
representatives of the class fusions under the action of maximal admissible
subgroups of the table automorphism groups of these character tables.[133X
[33X[0;0YInstead of the character tables [3Xsubtbl[103X and [3Xtbl[103X, also the permutation groups
of their table automorphisms (see [2XAutomorphismsOfTable[102X ([14X71.9-4[114X)) may be
entered.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xfus:= GetFusionMap( subtbl, tbl );[127X[104X
[4X[28X[ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ][128X[104X
[4X[25Xgap>[125X [27Xorb:= OrbitFusions( AutomorphismsOfTable( subtbl ), fus,[127X[104X
[4X[25X>[125X [27X AutomorphismsOfTable( tbl ) );[127X[104X
[4X[28X[ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 5, 5, 6, 10, 13, 12, 14, 14, 21, 21 ] ][128X[104X
[4X[25Xgap>[125X [27Xrep:= RepresentativesFusions( subtbl, orb, tbl );[127X[104X
[4X[28X[ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ] ][128X[104X
[4X[32X[104X
[1X73.5 [33X[0;0YParametrized Maps[133X[101X
[33X[0;0YA [13Xparametrized map[113X is a list whose [22Xi[122X-th entry is either unbound (which means
that nothing is known about the image(s) of the [22Xi[122X-th class) or the image of
the [22Xi[122X-th class (i.e., an integer for fusion maps, power maps, element orders
etc., and a cyclotomic for characters), or a list of possible images of the
[22Xi[122X-th class. In this sense, maps are special parametrized maps. We often
identify a parametrized map [3Xparamap[103X with the set of all maps [3Xmap[103X with the
property that either [10X[3Xmap[103X[10X[i] = [3Xparamap[103X[10X[i][110X or [10X[3Xmap[103X[10X[i][110X is contained in the list
[10X[3Xparamap[103X[10X[i][110X; we say then that [3Xmap[103X is contained in [3Xparamap[103X.[133X
[33X[0;0YThis definition implies that parametrized maps cannot be used to describe
sets of maps where lists are possible images. An exception are strings which
naturally arise as images when class names are considered. So strings and
lists of strings are allowed in parametrized maps, and character constants
(see Chapter [14X27[114X) are not allowed in maps.[133X
[1X73.5-1 CompositionMaps[101X
[33X[1;0Y[29X[2XCompositionMaps[102X( [3Xparamap2[103X, [3Xparamap1[103X[, [3Xclass[103X] ) [32X function[133X
[33X[0;0YThe composition of two parametrized maps [3Xparamap1[103X, [3Xparamap2[103X is defined as
the parametrized map [3Xcomp[103X that contains all compositions [22Xf_2 ∘ f_1[122X of
elements [22Xf_1[122X of [3Xparamap1[103X and [22Xf_2[122X of [3Xparamap2[103X. For example, the composition
of a character [22Xχ[122X of a group [22XG[122X by a parametrized class fusion map from a
subgroup [22XH[122X to [22XG[122X is the parametrized map that contains all restrictions of [22Xχ[122X
by elements of the parametrized fusion map.[133X
[33X[0;0Y[10XCompositionMaps([3Xparamap2[103X[10X, [3Xparamap1[103X[10X)[110X is a parametrized map with entry
[10XCompositionMaps([3Xparamap2[103X[10X, [3Xparamap1[103X[10X, [3Xclass[103X[10X)[110X at position [3Xclass[103X. If
[10X[3Xparamap1[103X[10X[[3Xclass[103X[10X][110X is an integer then [10XCompositionMaps([3Xparamap2[103X[10X, [3Xparamap1[103X[10X,
[3Xclass[103X[10X)[110X is equal to [10X[3Xparamap2[103X[10X[ [3Xparamap1[103X[10X[ [3Xclass[103X[10X ] ][110X. Otherwise it is the union
of [10X[3Xparamap2[103X[10X[[3Xi[103X[10X][110X for [3Xi[103X in [10X[3Xparamap1[103X[10X[ [3Xclass[103X[10X ][110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmap1:= [ 1, [ 2 .. 4 ], [ 4, 5 ], 1 ];;[127X[104X
[4X[25Xgap>[125X [27Xmap2:= [ [ 1, 2 ], 2, 2, 3, 3 ];;[127X[104X
[4X[25Xgap>[125X [27XCompositionMaps( map2, map1 );[127X[104X
[4X[28X[ [ 1, 2 ], [ 2, 3 ], 3, [ 1, 2 ] ][128X[104X
[4X[25Xgap>[125X [27XCompositionMaps( map1, map2 );[127X[104X
[4X[28X[ [ 1, 2, 3, 4 ], [ 2, 3, 4 ], [ 2, 3, 4 ], [ 4, 5 ], [ 4, 5 ] ][128X[104X
[4X[32X[104X
[1X73.5-2 InverseMap[101X
[33X[1;0Y[29X[2XInverseMap[102X( [3Xparamap[103X ) [32X function[133X
[33X[0;0YFor a parametrized map [3Xparamap[103X, [2XInverseMap[102X returns a mutable parametrized
map whose [22Xi[122X-th entry is unbound if [22Xi[122X is not in the image of [3Xparamap[103X, equal
to [22Xj[122X if [22Xi[122X is (in) the image of [10X[3Xparamap[103X[10X[[3Xj[103X[10X][110X exactly for [22Xj[122X, and equal to the
set of all preimages of [22Xi[122X under [3Xparamap[103X otherwise.[133X
[33X[0;0YWe have [10XCompositionMaps( [3Xparamap[103X[10X, InverseMap( [3Xparamap[103X[10X ) )[110X the identity map.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "2.A5" );; f:= CharacterTable( "A5" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= GetFusionMap( tbl, f );[127X[104X
[4X[28X[ 1, 1, 2, 3, 3, 4, 4, 5, 5 ][128X[104X
[4X[25Xgap>[125X [27Xinv:= InverseMap( fus );[127X[104X
[4X[28X[ [ 1, 2 ], 3, [ 4, 5 ], [ 6, 7 ], [ 8, 9 ] ][128X[104X
[4X[25Xgap>[125X [27XCompositionMaps( fus, inv );[127X[104X
[4X[28X[ 1, 2, 3, 4, 5 ][128X[104X
[4X[25Xgap>[125X [27X# transfer a power map ``up'' to the factor group[127X[104X
[4X[25Xgap>[125X [27Xpow:= PowerMap( tbl, 2 );[127X[104X
[4X[28X[ 1, 1, 2, 4, 4, 8, 8, 6, 6 ][128X[104X
[4X[25Xgap>[125X [27XCompositionMaps( fus, CompositionMaps( pow, inv ) );[127X[104X
[4X[28X[ 1, 1, 3, 5, 4 ][128X[104X
[4X[25Xgap>[125X [27Xlast = PowerMap( f, 2 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27X# transfer a power map of the factor group ``down'' to the group[127X[104X
[4X[25Xgap>[125X [27XCompositionMaps( inv, CompositionMaps( PowerMap( f, 2 ), fus ) );[127X[104X
[4X[28X[ [ 1, 2 ], [ 1, 2 ], [ 1, 2 ], [ 4, 5 ], [ 4, 5 ], [ 8, 9 ], [128X[104X
[4X[28X [ 8, 9 ], [ 6, 7 ], [ 6, 7 ] ][128X[104X
[4X[32X[104X
[1X73.5-3 ProjectionMap[101X
[33X[1;0Y[29X[2XProjectionMap[102X( [3Xfusionmap[103X ) [32X function[133X
[33X[0;0YFor a map [3Xfusionmap[103X, [2XProjectionMap[102X returns a parametrized map whose [22Xi[122X-th
entry is unbound if [22Xi[122X is not in the image of [3Xfusionmap[103X, and equal to [22Xj[122X if [22Xj[122X
is the smallest position such that [22Xi[122X is the image of [3Xfusionmap[103X[10X[[110X[22Xj[122X[10X][110X.[133X
[33X[0;0YWe have [10XCompositionMaps( [3Xfusionmap[103X[10X, ProjectionMap( [3Xfusionmap[103X[10X ) )[110X the
identity map, i.e., first projecting and then fusing yields the identity.
Note that [3Xfusionmap[103X must [13Xnot[113X be a parametrized map.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XProjectionMap( [ 1, 1, 1, 2, 2, 2, 3, 4, 5, 5, 5, 6, 6, 6 ] );[127X[104X
[4X[28X[ 1, 4, 7, 8, 9, 12 ][128X[104X
[4X[32X[104X
[1X73.5-4 Indirected[101X
[33X[1;0Y[29X[2XIndirected[102X( [3Xcharacter[103X, [3Xparamap[103X ) [32X function[133X
[33X[0;0YFor a map [3Xcharacter[103X and a parametrized map [3Xparamap[103X, [2XIndirected[102X returns a
parametrized map whose entry at position [22Xi[122X is [3Xcharacter[103X[10X[ [110X[3Xparamap[103X[10X[[110X[22Xi[122X[10X] ][110X if
[3Xparamap[103X[10X[[110X[22Xi[122X[10X][110X is an integer, and an unknown (see Chapter [14X74[114X) otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "M12" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= [ 1, 3, 4, [ 6, 7 ], 8, 10, [ 11, 12 ], [ 11, 12 ],[127X[104X
[4X[25X>[125X [27X [ 14, 15 ], [ 14, 15 ] ];;[127X[104X
[4X[25Xgap>[125X [27XList( Irr( tbl ){ [ 1 .. 6 ] }, x -> Indirected( x, fus ) );[127X[104X
[4X[28X[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [128X[104X
[4X[28X [ 11, 3, 2, Unknown(9), 1, 0, Unknown(10), Unknown(11), 0, 0 ], [128X[104X
[4X[28X [ 11, 3, 2, Unknown(12), 1, 0, Unknown(13), Unknown(14), 0, 0 ], [128X[104X
[4X[28X [ 16, 0, -2, 0, 1, 0, 0, 0, Unknown(15), Unknown(16) ], [128X[104X
[4X[28X [ 16, 0, -2, 0, 1, 0, 0, 0, Unknown(17), Unknown(18) ], [128X[104X
[4X[28X [ 45, -3, 0, 1, 0, 0, -1, -1, 1, 1 ] ][128X[104X
[4X[32X[104X
[1X73.5-5 Parametrized[101X
[33X[1;0Y[29X[2XParametrized[102X( [3Xlist[103X ) [32X function[133X
[33X[0;0YFor a list [3Xlist[103X of (parametrized) maps of the same length, [2XParametrized[102X
returns the smallest parametrized map containing all elements of [3Xlist[103X.[133X
[33X[0;0Y[2XParametrized[102X is the inverse function to [2XContainedMaps[102X ([14X73.5-6[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XParametrized( [ [ 1, 2, 3, 4, 5 ], [ 1, 3, 2, 4, 5 ],[127X[104X
[4X[25X>[125X [27X [ 1, 2, 3, 4, 6 ] ] );[127X[104X
[4X[28X[ 1, [ 2, 3 ], [ 2, 3 ], 4, [ 5, 6 ] ][128X[104X
[4X[32X[104X
[1X73.5-6 ContainedMaps[101X
[33X[1;0Y[29X[2XContainedMaps[102X( [3Xparamap[103X ) [32X function[133X
[33X[0;0YFor a parametrized map [3Xparamap[103X, [2XContainedMaps[102X returns the set of all maps
contained in [3Xparamap[103X.[133X
[33X[0;0Y[2XContainedMaps[102X is the inverse function to [2XParametrized[102X ([14X73.5-5[114X) in the sense
that [10XParametrized( ContainedMaps( [3Xparamap[103X[10X ) )[110X is equal to [3Xparamap[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XContainedMaps( [ 1, [ 2, 3 ], [ 2, 3 ], 4, [ 5, 6 ] ] );[127X[104X
[4X[28X[ [ 1, 2, 2, 4, 5 ], [ 1, 2, 2, 4, 6 ], [ 1, 2, 3, 4, 5 ], [128X[104X
[4X[28X [ 1, 2, 3, 4, 6 ], [ 1, 3, 2, 4, 5 ], [ 1, 3, 2, 4, 6 ], [128X[104X
[4X[28X [ 1, 3, 3, 4, 5 ], [ 1, 3, 3, 4, 6 ] ][128X[104X
[4X[32X[104X
[1X73.5-7 UpdateMap[101X
[33X[1;0Y[29X[2XUpdateMap[102X( [3Xcharacter[103X, [3Xparamap[103X, [3Xindirected[103X ) [32X function[133X
[33X[0;0YLet [3Xcharacter[103X be a map, [3Xparamap[103X a parametrized map, and [3Xindirected[103X a
parametrized map that is contained in [10XCompositionMaps( [3Xcharacter[103X[10X, [3Xparamap[103X[10X )[110X.[133X
[33X[0;0YThen [2XUpdateMap[102X changes [3Xparamap[103X to the parametrized map containing exactly
the maps whose composition with [3Xcharacter[103X is equal to [3Xindirected[103X.[133X
[33X[0;0YIf a contradiction is detected then [9Xfalse[109X is returned immediately, otherwise
[9Xtrue[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable("S4(4).2");; tbl:= CharacterTable("He");;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );;[127X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 2, [ 2, 3 ], 4, 4, [ 7, 8 ], [ 7, 8 ], 9, 9, 9, [ 10, 11 ], [128X[104X
[4X[28X [ 10, 11 ], 18, 18, 25, 25, [ 26, 27 ], [ 26, 27 ], 2, [ 6, 7 ], [128X[104X
[4X[28X [ 6, 7 ], [ 6, 7, 8 ], 10, 10, 17, 17, 18, [ 19, 20 ], [ 19, 20 ] ][128X[104X
[4X[25Xgap>[125X [27Xchi:= Irr( tbl )[2];[127X[104X
[4X[28XCharacter( CharacterTable( "He" ), [ 51, 11, 3, 6, 0, 3, 3, -1, 1, 2, [128X[104X
[4X[28X 0, 3*E(7)+3*E(7)^2+3*E(7)^4, 3*E(7)^3+3*E(7)^5+3*E(7)^6, 2, [128X[104X
[4X[28X E(7)+E(7)^2+2*E(7)^3+E(7)^4+2*E(7)^5+2*E(7)^6, [128X[104X
[4X[28X 2*E(7)+2*E(7)^2+E(7)^3+2*E(7)^4+E(7)^5+E(7)^6, 1, 1, 0, 0, [128X[104X
[4X[28X -E(7)-E(7)^2-E(7)^4, -E(7)^3-E(7)^5-E(7)^6, E(7)+E(7)^2+E(7)^4, [128X[104X
[4X[28X E(7)^3+E(7)^5+E(7)^6, 1, 0, 0, -1, -1, 0, 0, E(7)+E(7)^2+E(7)^4, [128X[104X
[4X[28X E(7)^3+E(7)^5+E(7)^6 ] )[128X[104X
[4X[25Xgap>[125X [27Xfilt:= Filtered( Irr( subtbl ), x -> x[1] = 50 );[127X[104X
[4X[28X[ Character( CharacterTable( "S4(4).2" ), [128X[104X
[4X[28X [ 50, 10, 10, 2, 5, 5, -2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, -1, [128X[104X
[4X[28X 10, 2, 2, 2, 1, 1, 0, 0, 0, -1, -1 ] ), [128X[104X
[4X[28X Character( CharacterTable( "S4(4).2" ), [128X[104X
[4X[28X [ 50, 10, 10, 2, 5, 5, -2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, -1, [128X[104X
[4X[28X -10, -2, -2, -2, -1, -1, 0, 0, 0, 1, 1 ] ) ][128X[104X
[4X[25Xgap>[125X [27XUpdateMap( chi, fus, filt[1] + TrivialCharacter( subtbl ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 2, 3, 4, 4, 8, 7, 9, 9, 9, 10, 10, 18, 18, 25, 25, [128X[104X
[4X[28X [ 26, 27 ], [ 26, 27 ], 2, [ 6, 7 ], [ 6, 7 ], [ 6, 7 ], 10, 10, [128X[104X
[4X[28X 17, 17, 18, [ 19, 20 ], [ 19, 20 ] ][128X[104X
[4X[32X[104X
[1X73.5-8 MeetMaps[101X
[33X[1;0Y[29X[2XMeetMaps[102X( [3Xparamap1[103X, [3Xparamap2[103X ) [32X function[133X
[33X[0;0YFor two parametrized maps [3Xparamap1[103X and [3Xparamap2[103X, [2XMeetMaps[102X changes [3Xparamap1[103X
such that the image of class [22Xi[122X is the intersection of [3Xparamap1[103X[10X[[110X[22Xi[122X[10X][110X and
[3Xparamap2[103X[10X[[110X[22Xi[122X[10X][110X.[133X
[33X[0;0YIf this implies that no images remain for a class, the position of such a
class is returned. If no such inconsistency occurs, [2XMeetMaps[102X returns [9Xtrue[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmap1:= [ [ 1, 2 ], [ 3, 4 ], 5, 6, [ 7, 8, 9 ] ];;[127X[104X
[4X[25Xgap>[125X [27Xmap2:= [ [ 1, 3 ], [ 3, 4 ], [ 5, 6 ], 6, [ 8, 9, 10 ] ];;[127X[104X
[4X[25Xgap>[125X [27XMeetMaps( map1, map2 ); map1;[127X[104X
[4X[28Xtrue[128X[104X
[4X[28X[ 1, [ 3, 4 ], 5, 6, [ 8, 9 ] ][128X[104X
[4X[32X[104X
[1X73.5-9 CommutativeDiagram[101X
[33X[1;0Y[29X[2XCommutativeDiagram[102X( [3Xparamap1[103X, [3Xparamap2[103X, [3Xparamap3[103X, [3Xparamap4[103X[, [3Ximprovements[103X] ) [32X function[133X
[33X[0;0YLet [3Xparamap1[103X, [3Xparamap2[103X, [3Xparamap3[103X, [3Xparamap4[103X be parametrized maps covering
parametrized maps [22Xf_1[122X, [22Xf_2[122X, [22Xf_3[122X, [22Xf_4[122X with the property that [10XCompositionMaps[110X[22X(
f_2, f_1 )[122X is equal to [10XCompositionMaps[110X[22X( f_4, f_3 )[122X.[133X
[33X[0;0Y[2XCommutativeDiagram[102X checks this consistency, and changes the arguments such
that all possible images are removed that cannot occur in the parametrized
maps [22Xf_i[122X.[133X
[33X[0;0YThe return value is [9Xfail[109X if an inconsistency was found. Otherwise a record
with the components [10Ximp1[110X, [10Ximp2[110X, [10Ximp3[110X, [10Ximp4[110X is returned, each bound to the
list of positions where the corresponding parametrized map was changed,[133X
[33X[0;0YThe optional argument [3Ximprovements[103X must be a record with components [10Ximp1[110X,
[10Ximp2[110X, [10Ximp3[110X, [10Ximp4[110X. If such a record is specified then only diagrams are
considered where entries of the [22Xi[122X-th component occur as preimages of the
[22Xi[122X-th parametrized map.[133X
[33X[0;0YWhen an inconsistency is detected, [2XCommutativeDiagram[102X immediately returns
[9Xfail[109X. Otherwise a record is returned that contains four lists [10Ximp1[110X, [22X...[122X,
[10Ximp4[110X: The [22Xi[122X-th component is the list of classes where the [22Xi[122X-th argument was
changed.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmap1:= [[ 1, 2, 3 ], [ 1, 3 ]];; map2:= [[ 1, 2 ], 1, [ 1, 3 ]];;[127X[104X
[4X[25Xgap>[125X [27Xmap3:= [ [ 2, 3 ], 3 ];; map4:= [ , 1, 2, [ 1, 2 ] ];;[127X[104X
[4X[25Xgap>[125X [27Ximp:= CommutativeDiagram( map1, map2, map3, map4 );[127X[104X
[4X[28Xrec( imp1 := [ 2 ], imp2 := [ 1 ], imp3 := [ ], imp4 := [ ] )[128X[104X
[4X[25Xgap>[125X [27Xmap1; map2; map3; map4;[127X[104X
[4X[28X[ [ 1, 2, 3 ], 1 ][128X[104X
[4X[28X[ 2, 1, [ 1, 3 ] ][128X[104X
[4X[28X[ [ 2, 3 ], 3 ][128X[104X
[4X[28X[ , 1, 2, [ 1, 2 ] ][128X[104X
[4X[25Xgap>[125X [27Ximp2:= CommutativeDiagram( map1, map2, map3, map4, imp );[127X[104X
[4X[28Xrec( imp1 := [ ], imp2 := [ ], imp3 := [ ], imp4 := [ ] )[128X[104X
[4X[32X[104X
[1X73.5-10 CheckFixedPoints[101X
[33X[1;0Y[29X[2XCheckFixedPoints[102X( [3Xinside1[103X, [3Xbetween[103X, [3Xinside2[103X ) [32X function[133X
[33X[0;0YLet [3Xinside1[103X, [3Xbetween[103X, [3Xinside2[103X be parametrized maps, where [3Xbetween[103X is assumed
to map each fixed point of [3Xinside1[103X (that is, [3Xinside1[103X[10X[[110X[22Xi[122X[10X] = [110X[3Xi[103X) to a fixed
point of [3Xinside2[103X (that is, [3Xbetween[103X[10X[[110X[22Xi[122X[10X][110X is either an integer that is fixed by
[3Xinside2[103X or a list that has nonempty intersection with the union of its
images under [3Xinside2[103X). [2XCheckFixedPoints[102X changes [3Xbetween[103X and [3Xinside2[103X by
removing all those entries violate this condition.[133X
[33X[0;0YWhen an inconsistency is detected, [2XCheckFixedPoints[102X immediately returns
[9Xfail[109X. Otherwise the list of positions is returned where changes occurred.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "L4(3).2_2" );;[127X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "O7(3)" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );; fus{ [ 48, 49 ] };[127X[104X
[4X[28X[ [ 54, 55, 56, 57 ], [ 54, 55, 56, 57 ] ][128X[104X
[4X[25Xgap>[125X [27XCheckFixedPoints( ComputedPowerMaps( subtbl )[5], fus,[127X[104X
[4X[25X>[125X [27X ComputedPowerMaps( tbl )[5] );[127X[104X
[4X[28X[ 48, 49 ][128X[104X
[4X[25Xgap>[125X [27Xfus{ [ 48, 49 ] };[127X[104X
[4X[28X[ [ 56, 57 ], [ 56, 57 ] ][128X[104X
[4X[32X[104X
[1X73.5-11 TransferDiagram[101X
[33X[1;0Y[29X[2XTransferDiagram[102X( [3Xinside1[103X, [3Xbetween[103X, [3Xinside2[103X[, [3Ximprovements[103X] ) [32X function[133X
[33X[0;0YLet [3Xinside1[103X, [3Xbetween[103X, [3Xinside2[103X be parametrized maps covering parametrized
maps [22Xm_1[122X, [22Xf[122X, [22Xm_2[122X with the property that [10XCompositionMaps[110X[22X( m_2, f )[122X is equal
to [10XCompositionMaps[110X[22X( f, m_1 )[122X.[133X
[33X[0;0Y[2XTransferDiagram[102X checks this consistency, and changes the arguments such that
all possible images are removed that cannot occur in the parametrized maps
[22Xm_i[122X and [22Xf[122X.[133X
[33X[0;0YSo [2XTransferDiagram[102X is similar to [2XCommutativeDiagram[102X ([14X73.5-9[114X), but [3Xbetween[103X
occurs twice in each diagram checked.[133X
[33X[0;0YIf a record [3Ximprovements[103X with fields [10Ximpinside1[110X, [10Ximpbetween[110X, and [10Ximpinside2[110X
is specified, only those diagrams with elements of [10Ximpinside1[110X as preimages
of [3Xinside1[103X, elements of [10Ximpbetween[110X as preimages of [3Xbetween[103X or elements of
[10Ximpinside2[110X as preimages of [3Xinside2[103X are considered.[133X
[33X[0;0YWhen an inconsistency is detected, [2XTransferDiagram[102X immediately returns [9Xfail[109X.
Otherwise a record is returned that contains three lists [10Ximpinside1[110X,
[10Ximpbetween[110X, and [10Ximpinside2[110X of positions where the arguments were changed.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "2F4(2)" );; tbl:= CharacterTable( "Ru" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );;[127X[104X
[4X[25Xgap>[125X [27Xpermchar:= Sum( Irr( tbl ){ [ 1, 5, 6 ] } );;[127X[104X
[4X[25Xgap>[125X [27XCheckPermChar( subtbl, tbl, fus, permchar );; fus;[127X[104X
[4X[28X[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, [128X[104X
[4X[28X [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [128X[104X
[4X[28X [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ][128X[104X
[4X[25Xgap>[125X [27Xtr:= TransferDiagram(PowerMap( subtbl, 2), fus, PowerMap(tbl, 2));[127X[104X
[4X[28Xrec( impbetween := [ 12, 23 ], impinside1 := [ ], impinside2 := [ ] [128X[104X
[4X[28X )[128X[104X
[4X[25Xgap>[125X [27Xtr:= TransferDiagram(PowerMap(subtbl, 3), fus, PowerMap( tbl, 3 ));[127X[104X
[4X[28Xrec( impbetween := [ 14, 24, 25 ], impinside1 := [ ], [128X[104X
[4X[28X impinside2 := [ ] )[128X[104X
[4X[25Xgap>[125X [27Xtr:= TransferDiagram( PowerMap(subtbl, 3), fus, PowerMap(tbl, 3),[127X[104X
[4X[25X>[125X [27X tr );[127X[104X
[4X[28Xrec( impbetween := [ ], impinside1 := [ ], impinside2 := [ ] )[128X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, [ 25, 26 ], [128X[104X
[4X[28X [ 25, 26 ], 5, 5, 6, 8, 14, 13, 19, 19, [ 25, 26 ], [ 25, 26 ], 27, [128X[104X
[4X[28X 27 ][128X[104X
[4X[32X[104X
[1X73.5-12 TestConsistencyMaps[101X
[33X[1;0Y[29X[2XTestConsistencyMaps[102X( [3Xpowermap1[103X, [3Xfusionmap[103X, [3Xpowermap2[103X[, [3Xfusimp[103X] ) [32X function[133X
[33X[0;0YLet [3Xpowermap1[103X and [3Xpowermap2[103X be lists of parametrized maps, and [3Xfusionmap[103X a
parametrized map, such that for each [22Xi[122X, the [22Xi[122X-th entry in [3Xpowermap1[103X,
[3Xfusionmap[103X, and the [22Xi[122X-th entry in [3Xpowermap2[103X (if bound) are valid arguments
for [2XTransferDiagram[102X ([14X73.5-11[114X). So a typical situation for applying
[2XTestConsistencyMaps[102X is that [3Xfusionmap[103X is an approximation of a class fusion,
and [3Xpowermap1[103X, [3Xpowermap2[103X are the lists of power maps of the subgroup and the
group.[133X
[33X[0;0Y[2XTestConsistencyMaps[102X repeatedly applies [2XTransferDiagram[102X ([14X73.5-11[114X) to these
arguments for all [22Xi[122X until no more changes occur.[133X
[33X[0;0YIf a list [3Xfusimp[103X is specified then only those diagrams with elements of
[3Xfusimp[103X as preimages of [3Xfusionmap[103X are considered.[133X
[33X[0;0YWhen an inconsistency is detected, [2XTestConsistencyMaps[102X immediately returns
[9Xfalse[109X. Otherwise [9Xtrue[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "2F4(2)" );; tbl:= CharacterTable( "Ru" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );;[127X[104X
[4X[25Xgap>[125X [27Xpermchar:= Sum( Irr( tbl ){ [ 1, 5, 6 ] } );;[127X[104X
[4X[25Xgap>[125X [27XCheckPermChar( subtbl, tbl, fus, permchar );; fus;[127X[104X
[4X[28X[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, [128X[104X
[4X[28X [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [128X[104X
[4X[28X [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ][128X[104X
[4X[25Xgap>[125X [27XTestConsistencyMaps( ComputedPowerMaps( subtbl ), fus,[127X[104X
[4X[25X>[125X [27X ComputedPowerMaps( tbl ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, [ 25, 26 ], [128X[104X
[4X[28X [ 25, 26 ], 5, 5, 6, 8, 14, 13, 19, 19, [ 25, 26 ], [ 25, 26 ], 27, [128X[104X
[4X[28X 27 ][128X[104X
[4X[25Xgap>[125X [27XIndeterminateness( fus );[127X[104X
[4X[28X16[128X[104X
[4X[32X[104X
[1X73.5-13 Indeterminateness[101X
[33X[1;0Y[29X[2XIndeterminateness[102X( [3Xparamap[103X ) [32X function[133X
[33X[0;0YFor a parametrized map [3Xparamap[103X, [2XIndeterminateness[102X returns the number of maps
contained in [3Xparamap[103X, that is, the product of lengths of lists in [3Xparamap[103X
denoting lists of several images.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIndeterminateness([ 1, [ 2, 3 ], [ 4, 5 ], [ 6, 7, 8, 9, 10 ], 11 ]);[127X[104X
[4X[28X20[128X[104X
[4X[32X[104X
[1X73.5-14 PrintAmbiguity[101X
[33X[1;0Y[29X[2XPrintAmbiguity[102X( [3Xlist[103X, [3Xparamap[103X ) [32X function[133X
[33X[0;0YFor each map in the list [3Xlist[103X, [2XPrintAmbiguity[102X prints its position in [3Xlist[103X,
the indeterminateness (see [2XIndeterminateness[102X ([14X73.5-13[114X)) of the composition
with the parametrized map [3Xparamap[103X, and the list of positions where a list of
images occurs in this composition.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xparamap:= [ 1, [ 2, 3 ], [ 3, 4 ], [ 2, 3, 4 ], 5 ];;[127X[104X
[4X[25Xgap>[125X [27Xlist:= [ [ 1, 1, 1, 1, 1 ], [ 1, 1, 2, 2, 3 ], [ 1, 2, 3, 4, 5 ] ];;[127X[104X
[4X[25Xgap>[125X [27XPrintAmbiguity( list, paramap );[127X[104X
[4X[28X1 1 [ ][128X[104X
[4X[28X2 4 [ 2, 4 ][128X[104X
[4X[28X3 12 [ 2, 3, 4 ][128X[104X
[4X[32X[104X
[1X73.5-15 ContainedSpecialVectors[101X
[33X[1;0Y[29X[2XContainedSpecialVectors[102X( [3Xtbl[103X, [3Xchars[103X, [3Xparacharacter[103X, [3Xfunc[103X ) [32X function[133X
[33X[1;0Y[29X[2XIntScalarProducts[102X( [3Xtbl[103X, [3Xchars[103X, [3Xcandidate[103X ) [32X function[133X
[33X[1;0Y[29X[2XNonnegIntScalarProducts[102X( [3Xtbl[103X, [3Xchars[103X, [3Xcandidate[103X ) [32X function[133X
[33X[1;0Y[29X[2XContainedPossibleVirtualCharacters[102X( [3Xtbl[103X, [3Xchars[103X, [3Xparacharacter[103X ) [32X function[133X
[33X[1;0Y[29X[2XContainedPossibleCharacters[102X( [3Xtbl[103X, [3Xchars[103X, [3Xparacharacter[103X ) [32X function[133X
[33X[0;0YLet [3Xtbl[103X be an ordinary character table, [3Xchars[103X a list of class functions (or
values lists), [3Xparacharacter[103X a parametrized class function of [3Xtbl[103X, and [3Xfunc[103X
a function that expects the three arguments [3Xtbl[103X, [3Xchars[103X, and a values list of
a class function, and that returns either [9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0Y[2XContainedSpecialVectors[102X returns the list of all those elements [3Xvec[103X of
[3Xparacharacter[103X that have integral norm, have integral scalar product with the
principal character of [3Xtbl[103X, and that satisfy [3Xfunc[103X[10X( [110X[3Xtbl[103X, [3Xchars[103X, [3Xvec[103X [10X) = [110X[9Xtrue[109X.[133X
[33X[0;0YTwo special cases of [3Xfunc[103X are the check whether the scalar products in [3Xtbl[103X
between the vector [3Xvec[103X and all lists in [3Xchars[103X are integers or nonnegative
integers, respectively. These functions are accessible as global variables
[2XIntScalarProducts[102X and [2XNonnegIntScalarProducts[102X, and
[2XContainedPossibleVirtualCharacters[102X and [2XContainedPossibleCharacters[102X provide
access to these special cases of [2XContainedSpecialVectors[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "HSM12" );; tbl:= CharacterTable( "HS" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );;[127X[104X
[4X[25Xgap>[125X [27Xrest:= CompositionMaps( Irr( tbl )[8], fus );[127X[104X
[4X[28X[ 231, [ -9, 7 ], [ -9, 7 ], [ -9, 7 ], 6, 15, 15, [ -1, 15 ], [128X[104X
[4X[28X [ -1, 15 ], 1, [ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ -2, 0 ], [128X[104X
[4X[28X [ 1, 2 ], [ 1, 2 ], [ 1, 2 ], 0, 0, 1, 0, 0, 0, 0 ][128X[104X
[4X[25Xgap>[125X [27Xirr:= Irr( subtbl );;[127X[104X
[4X[25Xgap>[125X [27X# no further condition[127X[104X
[4X[25Xgap>[125X [27Xcont1:= ContainedSpecialVectors( subtbl, irr, rest,[127X[104X
[4X[25X>[125X [27X function( tbl, chars, vec ) return true; end );;[127X[104X
[4X[25Xgap>[125X [27XLength( cont1 );[127X[104X
[4X[28X24[128X[104X
[4X[25Xgap>[125X [27X# require scalar products to be integral[127X[104X
[4X[25Xgap>[125X [27Xcont2:= ContainedSpecialVectors( subtbl, irr, rest,[127X[104X
[4X[25X>[125X [27X IntScalarProducts );[127X[104X
[4X[28X[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, -9, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, 7, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ] ][128X[104X
[4X[25Xgap>[125X [27X# additionally require scalar products to be nonnegative[127X[104X
[4X[25Xgap>[125X [27Xcont3:= ContainedSpecialVectors( subtbl, irr, rest,[127X[104X
[4X[25X>[125X [27X NonnegIntScalarProducts );[127X[104X
[4X[28X[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ] ][128X[104X
[4X[25Xgap>[125X [27Xcont2 = ContainedPossibleVirtualCharacters( subtbl, irr, rest );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xcont3 = ContainedPossibleCharacters( subtbl, irr, rest );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X73.5-16 CollapsedMat[101X
[33X[1;0Y[29X[2XCollapsedMat[102X( [3Xmat[103X, [3Xmaps[103X ) [32X function[133X
[33X[0;0Yis a record with the components[133X
[8X[10Xfusion[110X[8X[108X
[33X[0;6Yfusion that collapses those columns of [3Xmat[103X that are equal in [3Xmat[103X and
also for all maps in the list [3Xmaps[103X,[133X
[8X[10Xmat[110X[8X[108X
[33X[0;6Ythe image of [3Xmat[103X under that fusion.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmat:= [ [ 1, 1, 1, 1 ], [ 2, -1, 0, 0 ], [ 4, 4, 1, 1 ] ];;[127X[104X
[4X[25Xgap>[125X [27Xcoll:= CollapsedMat( mat, [] );[127X[104X
[4X[28Xrec( fusion := [ 1, 2, 3, 3 ], [128X[104X
[4X[28X mat := [ [ 1, 1, 1 ], [ 2, -1, 0 ], [ 4, 4, 1 ] ] )[128X[104X
[4X[25Xgap>[125X [27XList( last.mat, x -> x{ last.fusion } ) = mat;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xcoll:= CollapsedMat( mat, [ [ 1, 1, 1, 2 ] ] );[127X[104X
[4X[28Xrec( fusion := [ 1, 2, 3, 4 ], [128X[104X
[4X[28X mat := [ [ 1, 1, 1, 1 ], [ 2, -1, 0, 0 ], [ 4, 4, 1, 1 ] ] )[128X[104X
[4X[32X[104X
[1X73.5-17 ContainedDecomposables[101X
[33X[1;0Y[29X[2XContainedDecomposables[102X( [3Xconstituents[103X, [3Xmoduls[103X, [3Xparachar[103X, [3Xfunc[103X ) [32X function[133X
[33X[1;0Y[29X[2XContainedCharacters[102X( [3Xtbl[103X, [3Xconstituents[103X, [3Xparachar[103X ) [32X function[133X
[33X[0;0YFor these functions, let [3Xconstituents[103X be a list of [13Xrational[113X class functions,
[3Xmoduls[103X a list of positive integers, [3Xparachar[103X a parametrized rational class
function, [3Xfunc[103X a function that returns either [9Xtrue[109X or [9Xfalse[109X when called with
(a values list of) a class function, and [3Xtbl[103X a character table.[133X
[33X[0;0Y[2XContainedDecomposables[102X returns the set of all elements [22Xχ[122X of [3Xparachar[103X that
satisfy [3Xfunc[103X[22X( χ ) =[122X [9Xtrue[109X and that lie in the [22Xℤ[122X-lattice spanned by
[3Xconstituents[103X, modulo [3Xmoduls[103X. The latter means they lie in the [22Xℤ[122X-lattice
spanned by [3Xconstituents[103X and the set [22X{ [3Xmoduls[103X[i] ⋅ e_i; 1 ≤ i ≤ n }[122X where [22Xn[122X
is the length of [3Xparachar[103X and [22Xe_i[122X is the [22Xi[122X-th standard basis vector.[133X
[33X[0;0YOne application of [2XContainedDecomposables[102X is the following. [3Xconstituents[103X is
a list of (values lists of) rational characters of an ordinary character
table [3Xtbl[103X, [3Xmoduls[103X is the list of centralizer orders of [3Xtbl[103X
(see [2XSizesCentralizers[102X ([14X71.9-2[114X)), and [3Xfunc[103X checks whether a vector in the
lattice mentioned above has nonnegative integral scalar product in [3Xtbl[103X with
all entries of [3Xconstituents[103X. This situation is handled by
[2XContainedCharacters[102X. Note that the entries of the result list are [13Xnot[113X
necessary linear combinations of [3Xconstituents[103X, and they are [13Xnot[113X necessarily
characters of [3Xtbl[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "HSM12" );; tbl:= CharacterTable( "HS" );;[127X[104X
[4X[25Xgap>[125X [27Xrat:= RationalizedMat( Irr( subtbl ) );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );;[127X[104X
[4X[25Xgap>[125X [27Xrest:= CompositionMaps( Irr( tbl )[8], fus );[127X[104X
[4X[28X[ 231, [ -9, 7 ], [ -9, 7 ], [ -9, 7 ], 6, 15, 15, [ -1, 15 ], [128X[104X
[4X[28X [ -1, 15 ], 1, [ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ -2, 0 ], [128X[104X
[4X[28X [ 1, 2 ], [ 1, 2 ], [ 1, 2 ], 0, 0, 1, 0, 0, 0, 0 ][128X[104X
[4X[25Xgap>[125X [27X# compute all vectors in the lattice[127X[104X
[4X[25Xgap>[125X [27XContainedDecomposables( rat, SizesCentralizers( subtbl ), rest,[127X[104X
[4X[25X>[125X [27X ReturnTrue );[127X[104X
[4X[28X[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, -9, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, 7, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ] ][128X[104X
[4X[25Xgap>[125X [27X# compute only those vectors that are characters[127X[104X
[4X[25Xgap>[125X [27XContainedDecomposables( rat, SizesCentralizers( subtbl ), rest,[127X[104X
[4X[25X>[125X [27X x -> NonnegIntScalarProducts( subtbl, Irr( subtbl ), x ) );[127X[104X
[4X[28X[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ], [128X[104X
[4X[28X [ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, [128X[104X
[4X[28X 0, 1, 0, 0, 0, 0 ] ][128X[104X
[4X[32X[104X
[1X73.6 [33X[0;0YSubroutines for the Construction of Power Maps[133X[101X
[33X[0;0YIn the argument lists of the functions [2XCongruences[102X ([14X73.6-2[114X), [2XConsiderKernels[102X
([14X73.6-3[114X), and [2XConsiderSmallerPowerMaps[102X ([14X73.6-4[114X), [3Xtbl[103X is an ordinary
character table, [3Xchars[103X a list of (values lists of) characters of [3Xtbl[103X, [3Xprime[103X
a prime integer, [3Xapproxmap[103X a parametrized map that is an approximation for
the [3Xprime[103X-th power map of [3Xtbl[103X (e.g., a list returned by [2XInitPowerMap[102X
([14X73.6-1[114X), and [3Xquick[103X a Boolean.[133X
[33X[0;0YThe [3Xquick[103X value [9Xtrue[109X means that only those classes are considered for which
[3Xapproxmap[103X lists more than one possible image.[133X
[1X73.6-1 InitPowerMap[101X
[33X[1;0Y[29X[2XInitPowerMap[102X( [3Xtbl[103X, [3Xprime[103X ) [32X function[133X
[33X[0;0YFor an ordinary character table [3Xtbl[103X and a prime [3Xprime[103X, [2XInitPowerMap[102X returns
a parametrized map that is a first approximation of the [3Xprime[103X-th powermap of
[3Xtbl[103X, using the conditions 1. and 2. listed in the description of
[2XPossiblePowerMaps[102X ([14X73.1-2[114X).[133X
[33X[0;0YIf there are classes for which no images are possible, according to these
criteria, then [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xt:= CharacterTable( "U4(3).4" );;[127X[104X
[4X[25Xgap>[125X [27Xpow:= InitPowerMap( t, 2 );[127X[104X
[4X[28X[ 1, 1, 3, 4, 5, [ 2, 16 ], [ 2, 16, 17 ], 8, 3, [ 3, 4 ], [128X[104X
[4X[28X [ 11, 12 ], [ 11, 12 ], [ 6, 7, 18, 19, 30, 31, 32, 33 ], 14, [128X[104X
[4X[28X [ 9, 20 ], 1, 1, 2, 2, 3, [ 3, 4, 5 ], [ 3, 4, 5 ], [128X[104X
[4X[28X [ 6, 7, 18, 19, 30, 31, 32, 33 ], 8, 9, 9, [ 9, 10, 20, 21, 22 ], [128X[104X
[4X[28X [ 11, 12 ], [ 11, 12 ], 16, 16, [ 2, 16 ], [ 2, 16 ], 17, 17, [128X[104X
[4X[28X [ 6, 18, 30, 31, 32, 33 ], [ 6, 18, 30, 31, 32, 33 ], [128X[104X
[4X[28X [ 6, 7, 18, 19, 30, 31, 32, 33 ], [ 6, 7, 18, 19, 30, 31, 32, 33 ], [128X[104X
[4X[28X 20, 20, [ 9, 20 ], [ 9, 20 ], [ 9, 10, 20, 21, 22 ], [128X[104X
[4X[28X [ 9, 10, 20, 21, 22 ], 24, 24, [ 15, 25, 26, 40, 41, 42, 43 ], [128X[104X
[4X[28X [ 15, 25, 26, 40, 41, 42, 43 ], [ 28, 29 ], [ 28, 29 ], [ 28, 29 ], [128X[104X
[4X[28X [ 28, 29 ] ][128X[104X
[4X[32X[104X
[1X73.6-2 Congruences[101X
[33X[1;0Y[29X[2XCongruences[102X( [3Xtbl[103X, [3Xchars[103X, [3Xapproxmap[103X, [3Xprime[103X, [3Xquick[103X ) [32X function[133X
[33X[0;0Y[2XCongruences[102X replaces the entries of [3Xapproxmap[103X by improved values, according
to condition 3. listed in the description of [2XPossiblePowerMaps[102X ([14X73.1-2[114X).[133X
[33X[0;0YFor each class for which no images are possible according to the tests, the
new value of [3Xapproxmap[103X is an empty list. [2XCongruences[102X returns [9Xtrue[109X if no such
inconsistencies occur, and [9Xfalse[109X otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCongruences( t, Irr( t ), pow, 2, false ); pow;[127X[104X
[4X[28Xtrue[128X[104X
[4X[28X[ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, [ 6, 7 ], 14, 9, 1, 1, 2, 2, [128X[104X
[4X[28X 3, 4, 5, [ 6, 7 ], 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, [128X[104X
[4X[28X 18, [ 18, 19 ], [ 18, 19 ], 20, 20, 20, 20, 22, 22, 24, 24, [128X[104X
[4X[28X [ 25, 26 ], [ 25, 26 ], 28, 28, 29, 29 ][128X[104X
[4X[32X[104X
[1X73.6-3 ConsiderKernels[101X
[33X[1;0Y[29X[2XConsiderKernels[102X( [3Xtbl[103X, [3Xchars[103X, [3Xapproxmap[103X, [3Xprime[103X, [3Xquick[103X ) [32X function[133X
[33X[0;0Y[2XConsiderKernels[102X replaces the entries of [3Xapproxmap[103X by improved values,
according to condition 4. listed in the description of [2XPossiblePowerMaps[102X
([14X73.1-2[114X).[133X
[33X[0;0Y[2XCongruences[102X ([14X73.6-2[114X) returns [9Xtrue[109X if the orders of the kernels of all
characters in [3Xchars[103X divide the order of the group of [3Xtbl[103X, and [9Xfalse[109X
otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xt:= CharacterTable( "A7.2" );; init:= InitPowerMap( t, 2 );[127X[104X
[4X[28X[ 1, 1, 3, 4, [ 2, 9, 10 ], 6, 3, 8, 1, 1, [ 2, 9, 10 ], 3, [ 3, 4 ], [128X[104X
[4X[28X 6, [ 7, 12 ] ][128X[104X
[4X[25Xgap>[125X [27XConsiderKernels( t, Irr( t ), init, 2, false );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xinit;[127X[104X
[4X[28X[ 1, 1, 3, 4, 2, 6, 3, 8, 1, 1, 2, 3, [ 3, 4 ], 6, 7 ][128X[104X
[4X[32X[104X
[1X73.6-4 ConsiderSmallerPowerMaps[101X
[33X[1;0Y[29X[2XConsiderSmallerPowerMaps[102X( [3Xtbl[103X, [3Xapproxmap[103X, [3Xprime[103X, [3Xquick[103X ) [32X function[133X
[33X[0;0Y[2XConsiderSmallerPowerMaps[102X replaces the entries of [3Xapproxmap[103X by improved
values, according to condition 5. listed in the description of
[2XPossiblePowerMaps[102X ([14X73.1-2[114X).[133X
[33X[0;0Y[2XConsiderSmallerPowerMaps[102X returns [9Xtrue[109X if each class admits at least one
image after the checks, otherwise [9Xfalse[109X is returned. If no element orders of
[3Xtbl[103X are stored (see [2XOrdersClassRepresentatives[102X ([14X71.9-1[114X)) then [9Xtrue[109X is
returned without any tests.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xt:= CharacterTable( "3.A6" );; init:= InitPowerMap( t, 5 );[127X[104X
[4X[28X[ 1, [ 2, 3 ], [ 2, 3 ], 4, [ 5, 6 ], [ 5, 6 ], [ 7, 8 ], [ 7, 8 ], [128X[104X
[4X[28X 9, [ 10, 11 ], [ 10, 11 ], 1, [ 2, 3 ], [ 2, 3 ], 1, [ 2, 3 ], [128X[104X
[4X[28X [ 2, 3 ] ][128X[104X
[4X[25Xgap>[125X [27XIndeterminateness( init );[127X[104X
[4X[28X4096[128X[104X
[4X[25Xgap>[125X [27XConsiderSmallerPowerMaps( t, init, 5, false );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIndeterminateness( init );[127X[104X
[4X[28X256[128X[104X
[4X[32X[104X
[1X73.6-5 MinusCharacter[101X
[33X[1;0Y[29X[2XMinusCharacter[102X( [3Xcharacter[103X, [3Xprimepowermap[103X, [3Xprime[103X ) [32X function[133X
[33X[0;0YLet [3Xcharacter[103X be (the list of values of) a class function [22Xχ[122X, [3Xprime[103X a prime
integer [22Xp[122X, and [3Xprimepowermap[103X a parametrized map that is an approximation of
the [22Xp[122X-th power map for the character table of [22Xχ[122X. [2XMinusCharacter[102X returns the
parametrized map of values of [22Xχ^{p-}[122X, which is defined by [22Xχ^{p-}(g) = (
χ(g)^p - χ(g^p) ) / p[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "S7" );; pow:= InitPowerMap( tbl, 2 );;[127X[104X
[4X[25Xgap>[125X [27Xpow;[127X[104X
[4X[28X[ 1, 1, 3, 4, [ 2, 9, 10 ], 6, 3, 8, 1, 1, [ 2, 9, 10 ], 3, [ 3, 4 ], [128X[104X
[4X[28X 6, [ 7, 12 ] ][128X[104X
[4X[25Xgap>[125X [27Xchars:= Irr( tbl ){ [ 2 .. 5 ] };;[127X[104X
[4X[25Xgap>[125X [27XList( chars, x -> MinusCharacter( x, pow, 2 ) );[127X[104X
[4X[28X[ [ 0, 0, 0, 0, [ 0, 1 ], 0, 0, 0, 0, 0, [ 0, 1 ], 0, 0, 0, [ 0, 1 ] ][128X[104X
[4X[28X , [128X[104X
[4X[28X [ 15, -1, 3, 0, [ -2, -1, 0 ], 0, -1, 1, 5, -3, [ 0, 1, 2 ], -1, 0, [128X[104X
[4X[28X 0, [ 0, 1 ] ], [128X[104X
[4X[28X [ 15, -1, 3, 0, [ -1, 0, 2 ], 0, -1, 1, 5, -3, [ 1, 2, 4 ], -1, 0, [128X[104X
[4X[28X 0, 1 ], [128X[104X
[4X[28X [ 190, -2, 1, 1, [ 0, 2 ], 0, 1, 1, -10, -10, [ 0, 2 ], -1, -1, 0, [128X[104X
[4X[28X [ -1, 0 ] ] ][128X[104X
[4X[32X[104X
[1X73.6-6 PowerMapsAllowedBySymmetrizations[101X
[33X[1;0Y[29X[2XPowerMapsAllowedBySymmetrizations[102X( [3Xtbl[103X, [3Xsubchars[103X, [3Xchars[103X, [3Xapproxmap[103X, [3Xprime[103X, [3Xparameters[103X ) [32X function[133X
[33X[0;0YLet [3Xtbl[103X be an ordinary character table, [3Xprime[103X a prime integer, [3Xapproxmap[103X a
parametrized map that is an approximation of the [3Xprime[103X-th power map of [3Xtbl[103X
(e.g., a list returned by [2XInitPowerMap[102X ([14X73.6-1[114X), [3Xchars[103X and [3Xsubchars[103X two
lists of (values lists of) characters of [3Xtbl[103X, and [3Xparameters[103X a record with
components [10Xmaxlen[110X, [10Xminamb[110X, [10Xmaxamb[110X (three integers), [10Xquick[110X (a Boolean), and
[10Xcontained[110X (a function). Usual values of [10Xcontained[110X are [2XContainedCharacters[102X
([14X73.5-17[114X) or [2XContainedPossibleCharacters[102X ([14X73.5-15[114X).[133X
[33X[0;0Y[2XPowerMapsAllowedBySymmetrizations[102X replaces the entries of [3Xapproxmap[103X by
improved values, according to condition 6. listed in the description of
[2XPossiblePowerMaps[102X ([14X73.1-2[114X).[133X
[33X[0;0YMore precisely, the strategy used is as follows.[133X
[33X[0;0YFirst, for each [22Xχ ∈ [3Xchars[103X[122X, let [10Xminus:= MinusCharacter([110X[22Xχ[122X[10X, [3Xapproxmap[103X[10X, [3Xprime[103X[10X)[110X.[133X
[30X [33X[0;6YIf [10XIndeterminateness( minus )[110X[22X= 1[122X and [10X[3Xparameters[103X[10X.quick = false[110X then the
scalar products of [10Xminus[110X with [3Xsubchars[103X are checked; if not all scalar
products are nonnegative integers then an empty list is returned,
otherwise [22Xχ[122X is deleted from the list of characters to inspect.[133X
[30X [33X[0;6YOtherwise if [10XIndeterminateness( minus )[110X is smaller than
[10X[3Xparameters[103X[10X.minamb[110X then [22Xχ[122X is deleted from the list of characters.[133X
[30X [33X[0;6YIf [10X[3Xparameters[103X[10X.minamb[110X [22X≤[122X [10XIndeterminateness( minus )[110X [22X≤[122X [10X[3Xparameters[103X[10X.maxamb[110X
then construct the list of contained class functions [10Xposs:=
[3Xparameters[103X[10X.contained([3Xtbl[103X[10X, [3Xsubchars[103X[10X, minus)[110X and [10XParametrized( poss )[110X,
and improve the approximation of the power map using [2XUpdateMap[102X
([14X73.5-7[114X).[133X
[33X[0;0YIf this yields no further immediate improvements then we branch. If there is
a character from [3Xchars[103X left with less or equal [10X[3Xparameters[103X[10X.maxlen[110X possible
symmetrizations, compute the union of power maps allowed by these
possibilities. Otherwise we choose a class [22XC[122X such that the possible
symmetrizations of a character in [3Xchars[103X differ at [22XC[122X, and compute recursively
the union of all allowed power maps with image at [22XC[122X fixed in the set given
by the current approximation of the power map.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "U4(3).4" );;[127X[104X
[4X[25Xgap>[125X [27Xpow:= InitPowerMap( tbl, 2 );;[127X[104X
[4X[25Xgap>[125X [27XCongruences( tbl, Irr( tbl ), pow, 2 );; pow;[127X[104X
[4X[28X[ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, [ 6, 7 ], 14, 9, 1, 1, 2, 2, [128X[104X
[4X[28X 3, 4, 5, [ 6, 7 ], 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, [128X[104X
[4X[28X 18, [ 18, 19 ], [ 18, 19 ], 20, 20, 20, 20, 22, 22, 24, 24, [128X[104X
[4X[28X [ 25, 26 ], [ 25, 26 ], 28, 28, 29, 29 ][128X[104X
[4X[25Xgap>[125X [27XPowerMapsAllowedBySymmetrizations( tbl, Irr( tbl ), Irr( tbl ),[127X[104X
[4X[25X>[125X [27X pow, 2, rec( maxlen:= 10, contained:= ContainedPossibleCharacters,[127X[104X
[4X[25X>[125X [27X minamb:= 2, maxamb:= infinity, quick:= false ) );[127X[104X
[4X[28X[ [ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, 6, 14, 9, 1, 1, 2, 2, 3, 4, [128X[104X
[4X[28X 5, 6, 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, 18, 18, [128X[104X
[4X[28X 18, 20, 20, 20, 20, 22, 22, 24, 24, 25, 26, 28, 28, 29, 29 ] ][128X[104X
[4X[32X[104X
[1X73.7 [33X[0;0YSubroutines for the Construction of Class Fusions[133X[101X
[1X73.7-1 InitFusion[101X
[33X[1;0Y[29X[2XInitFusion[102X( [3Xsubtbl[103X, [3Xtbl[103X ) [32X function[133X
[33X[0;0YFor two ordinary character tables [3Xsubtbl[103X and [3Xtbl[103X, [2XInitFusion[102X returns a
parametrized map that is a first approximation of the class fusion from
[3Xsubtbl[103X to [3Xtbl[103X, using condition 1. listed in the description of
[2XPossibleClassFusions[102X ([14X73.3-6[114X).[133X
[33X[0;0YIf there are classes for which no images are possible, according to this
criterion, then [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "2F4(2)" );; tbl:= CharacterTable( "Ru" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );[127X[104X
[4X[28X[ 1, 2, 2, 4, [ 5, 6 ], [ 5, 6, 7, 8 ], [ 5, 6, 7, 8 ], [ 9, 10 ], [128X[104X
[4X[28X 11, 14, 14, [ 13, 14, 15 ], [ 16, 17 ], [ 18, 19 ], 20, [ 25, 26 ], [128X[104X
[4X[28X [ 25, 26 ], [ 5, 6 ], [ 5, 6 ], [ 5, 6 ], [ 5, 6, 7, 8 ], [128X[104X
[4X[28X [ 13, 14, 15 ], [ 13, 14, 15 ], [ 18, 19 ], [ 18, 19 ], [ 25, 26 ], [128X[104X
[4X[28X [ 25, 26 ], [ 27, 28, 29 ], [ 27, 28, 29 ] ][128X[104X
[4X[32X[104X
[1X73.7-2 CheckPermChar[101X
[33X[1;0Y[29X[2XCheckPermChar[102X( [3Xsubtbl[103X, [3Xtbl[103X, [3Xapproxmap[103X, [3Xpermchar[103X ) [32X function[133X
[33X[0;0Y[2XCheckPermChar[102X replaces the entries of the parametrized map [3Xapproxmap[103X by
improved values, according to condition 3. listed in the description of
[2XPossibleClassFusions[102X ([14X73.3-6[114X).[133X
[33X[0;0Y[2XCheckPermChar[102X returns [9Xtrue[109X if no inconsistency occurred, and [9Xfalse[109X
otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xpermchar:= Sum( Irr( tbl ){ [ 1, 5, 6 ] } );;[127X[104X
[4X[25Xgap>[125X [27XCheckPermChar( subtbl, tbl, fus, permchar ); fus;[127X[104X
[4X[28Xtrue[128X[104X
[4X[28X[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, [128X[104X
[4X[28X [ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [128X[104X
[4X[28X [ 18, 19 ], [ 25, 26 ], [ 25, 26 ], 27, 27 ][128X[104X
[4X[32X[104X
[1X73.7-3 ConsiderTableAutomorphisms[101X
[33X[1;0Y[29X[2XConsiderTableAutomorphisms[102X( [3Xapproxmap[103X, [3Xgrp[103X ) [32X function[133X
[33X[0;0Y[2XConsiderTableAutomorphisms[102X replaces the entries of the parametrized map
[3Xapproxmap[103X by improved values, according to condition 4. listed in the
description of [2XPossibleClassFusions[102X ([14X73.3-6[114X).[133X
[33X[0;0YAfterwards exactly one representative of fusion maps (contained in
[3Xapproxmap[103X) in each orbit under the action of the permutation group [3Xgrp[103X is
contained in the modified parametrized map.[133X
[33X[0;0Y[2XConsiderTableAutomorphisms[102X returns the list of positions where [3Xapproxmap[103X was
changed.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XConsiderTableAutomorphisms( fus, AutomorphismsOfTable( tbl ) );[127X[104X
[4X[28X[ 16 ][128X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20, [128X[104X
[4X[28X 25, [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [ 18, 19 ], [128X[104X
[4X[28X [ 25, 26 ], [ 25, 26 ], 27, 27 ][128X[104X
[4X[32X[104X
[1X73.7-4 FusionsAllowedByRestrictions[101X
[33X[1;0Y[29X[2XFusionsAllowedByRestrictions[102X( [3Xsubtbl[103X, [3Xtbl[103X, [3Xsubchars[103X, [3Xchars[103X, [3Xapproxmap[103X, [3Xparameters[103X ) [32X function[133X
[33X[0;0YLet [3Xsubtbl[103X and [3Xtbl[103X be ordinary character tables, [3Xsubchars[103X and [3Xchars[103X two
lists of (values lists of) characters of [3Xsubtbl[103X and [3Xtbl[103X, respectively,
[3Xapproxmap[103X a parametrized map that is an approximation of the class fusion of
[3Xsubtbl[103X in [3Xtbl[103X, and [3Xparameters[103X a record with the mandatory components [10Xmaxlen[110X,
[10Xminamb[110X, [10Xmaxamb[110X (three integers), [10Xquick[110X (a Boolean), and [10Xcontained[110X (a
function, usual values are [2XContainedCharacters[102X ([14X73.5-17[114X) or
[2XContainedPossibleCharacters[102X ([14X73.5-15[114X)); optional components of the
[3Xparameters[103X record are [10Xtestdec[110X (the function that tests the decomposability,
the default is [2XNonnegIntScalarProducts[102X ([14X73.5-15[114X)), [10Xpowermaps[110X (the power paps
of [3Xsubtbl[103X that shall be used for compatibility checks, the default is the
[2XComputedPowerMaps[102X ([14X73.1-1[114X) value), [10Xsubpowermaps[110X (the power paps of [3Xtbl[103X that
shall be used for compatibility checks, the default is the [2XComputedPowerMaps[102X
([14X73.1-1[114X) value).[133X
[33X[0;0Y[2XFusionsAllowedByRestrictions[102X replaces the entries of [3Xapproxmap[103X by improved
values, according to condition 5. listed in the description of
[2XPossibleClassFusions[102X ([14X73.3-6[114X).[133X
[33X[0;0YMore precisely, the strategy used is as follows.[133X
[33X[0;0YFirst, for each [22Xχ ∈ [3Xchars[103X[122X, let [10Xrestricted:= CompositionMaps( [110X[22Xχ[122X[10X, [3Xapproxmap[103X[10X )[110X.[133X
[30X [33X[0;6YIf [10XIndeterminateness( restricted )[110X[22X= 1[122X and [10X[3Xparameters[103X[10X.quick = false[110X
then the scalar products of [10Xrestricted[110X with [3Xsubchars[103X are checked; if
not all scalar products are nonnegative integers then an empty list is
returned, otherwise [22Xχ[122X is deleted from the list of characters to
inspect.[133X
[30X [33X[0;6YOtherwise if [10XIndeterminateness( minus )[110X is smaller than
[10X[3Xparameters[103X[10X.minamb[110X then [22Xχ[122X is deleted from the list of characters.[133X
[30X [33X[0;6YIf [10X[3Xparameters[103X[10X.minamb[110X [22X≤[122X [10XIndeterminateness( restricted )[110X [22X≤[122X
[10X[3Xparameters[103X[10X.maxamb[110X then construct [10Xposs:= [3Xparameters[103X[10X.contained( [3Xsubtbl[103X[10X,
[3Xsubchars[103X[10X, restricted )[110X and [10XParametrized( poss )[110X, and improve the
approximation of the fusion map using [2XUpdateMap[102X ([14X73.5-7[114X).[133X
[33X[0;0YIf this yields no further immediate improvements then we branch. If there is
a character from [3Xchars[103X left with less or equal [3Xparameters[103X[10X.maxlen[110X possible
restrictions, compute the union of fusion maps allowed by these
possibilities. Otherwise we choose a class [22XC[122X such that the possible
restrictions of a character in [3Xchars[103X differ at [22XC[122X, and compute recursively
the union of all allowed fusion maps with image at [22XC[122X fixed in the set given
by the current approximation of the fusion map.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xsubtbl:= CharacterTable( "U3(3)" );; tbl:= CharacterTable( "J4" );;[127X[104X
[4X[25Xgap>[125X [27Xfus:= InitFusion( subtbl, tbl );;[127X[104X
[4X[25Xgap>[125X [27XTestConsistencyMaps( ComputedPowerMaps( subtbl ), fus,[127X[104X
[4X[25X>[125X [27X ComputedPowerMaps( tbl ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 4, 4, [ 5, 6 ], [ 5, 6 ], [ 5, 6 ], 10, [ 12, 13 ], [128X[104X
[4X[28X [ 12, 13 ], [ 14, 15, 16 ], [ 14, 15, 16 ], [ 21, 22 ], [ 21, 22 ] ][128X[104X
[4X[25Xgap>[125X [27XConsiderTableAutomorphisms( fus, AutomorphismsOfTable( tbl ) );[127X[104X
[4X[28X[ 9 ][128X[104X
[4X[25Xgap>[125X [27Xfus;[127X[104X
[4X[28X[ 1, 2, 4, 4, [ 5, 6 ], [ 5, 6 ], [ 5, 6 ], 10, 12, [ 12, 13 ], [128X[104X
[4X[28X [ 14, 15, 16 ], [ 14, 15, 16 ], [ 21, 22 ], [ 21, 22 ] ][128X[104X
[4X[25Xgap>[125X [27XFusionsAllowedByRestrictions( subtbl, tbl, Irr( subtbl ),[127X[104X
[4X[25X>[125X [27X Irr( tbl ), fus, rec( maxlen:= 10,[127X[104X
[4X[25X>[125X [27X contained:= ContainedPossibleCharacters, minamb:= 2,[127X[104X
[4X[25X>[125X [27X maxamb:= infinity, quick:= false ) );[127X[104X
[4X[28X[ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 15, 15, 22, 22 ], [128X[104X
[4X[28X [ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 16, 16, 22, 22 ] ][128X[104X
[4X[32X[104X