# Ambiguous Class Fusions in the GAP Character Table Library

### THOMAS BREUER
Lehrstuhl D für Mathematik
RWTH, 52056 Aachen, Germany

### January 11th, 2004

This is a collection of examples showing how class fusions between character tables can be determined using the GAP system [GAP04]. In each of these examples, the fusion is ambiguous in the sense that the character tables do not determine it up to table automorphisms. Our strategy is to compute first all possibilities with the GAP function `PossibleClassFusions`, and then to use either other character tables or information about the groups for excluding some of these candidates until only one (orbit under table automorphisms) remains.
The purpose of this writeup is twofold. On the one hand, the computations are documented this way. On the other hand, the GAP code shown for the examples can be used as test input for automatic checking of the data and the functions used; therefore, each example ends with a comparison of the result with the fusion that is actually stored in the GAP Character Table Library [Bre04b].

# Contents

1 Fusions Determined by Factorization through Intermediate Subgroups
1.1 Co3N5 → Co3 (September 2002)
1.2 31:15 → B (March 2003)
1.3 SuzN3 → Suz (September 2002)
1.4 F3+N5 → F3+ (March 2002)
2 Fusions Determined by Commutative Diagrams Using Smaller Subgroups
2.1 (A4 ×O8+(2).3).2 → Fi24′ (November 2002)
2.2 A6 ×L2(8).3 → Fi24′ (November 2002)
3 Conditions Imposed by Brauer Tables
3.1 L2(16).4 → J3.2
3.2 L2(19) → J3 (April 2003)
4 Fusions Determined by Information about the Groups
4.1 U3(3).2 → Fi24′ (November 2002)
4.2 L2(13).2 → Fi24′ (September 2002)
4.3 L2(17).2 → B (March 2004)
4.4 23.L3(2) → G2(5)
4.5 The fusion from the character table of 72:2L2(7).2 into the table of marks
The examples use the GAP Character Table Library, so we first load this package.

        gap> LoadPackage( "ctbllib" );
        true

## 1 Fusions Determined by Factorization through Intermediate Subgroups

This situation clearly occurs only for nonmaximal subgroups. Interesting examples are Sylow normalizers.

### 1.1 Co3N5 → Co3 (September 2002)

Let H be the Sylow 5 normalizer in the sporadic simple group Co3. The class fusion of H into Co3 is not uniquely determined by the character tables of the two groups.

        gap> co3:= CharacterTable( "Co3" );
        CharacterTable( "Co3" )
        gap> h:= CharacterTable( "Co3N5" );
        CharacterTable( "5^(1+2):(24:2)" )
        gap> hfusco3:= PossibleClassFusions( h, co3 );;
        gap> Length( RepresentativesFusions( h, hfusco3, co3 ) );
        2

As H is not maximal in Co3, we look at those maximal subgroups of Co3 whose order is divisible by that of H.

        gap> mx:= Maxes( co3 );
        [ "McL.2", "HS", "U4(3).(2^2)_{133}", "M23", "3^5:(2xm11)", "2.S6(2)",
          "U3(5).3.2", "3^1+4:4s6", "2^4.a8", "psl(3,4):d12", "2xm12",
          "2^2.(2^7.3^2).s3", "s3xpsl(2,8).3", "a4xs5" ]
        gap> maxes:= List( mx, CharacterTable );;
        gap> filt:= Filtered( maxes, x -> Size( x ) mod Size( h ) = 0 );
        [ CharacterTable( "McL.2" ), CharacterTable( "HS" ),
          CharacterTable( "U3(5).3.2" ) ]

According to the ATLAS (see [CCN+85,pp. 34 and 100]), H occurs as the Sylow 5 normalizer in U3(5).3.2 and in McL.2; however, H is not a subgroup of HS, since otherwise H would be contained in subgroups of type U3(5).2 (see [CCN+85,p. 80]), but the only possible subgroups in these groups are too small (see [CCN+85,p. 34]).
We compute the possible class fusions from H into McL.2 and from McL.2 to Co3, and then form the compositions of these maps.

        gap> max:= filt[1];;
        gap> hfusmax:= PossibleClassFusions( h, max );;
        gap> maxfusco3:= PossibleClassFusions( max, co3 );;
        gap> comp:= [];;
        gap> for map1 in maxfusco3 do
        >      for map2 in hfusmax do
        >        AddSet( comp, CompositionMaps( map1, map2 ) );
        >      od;
        >    od;
        gap> Length( comp );
        2
        gap> reps:= RepresentativesFusions( h, comp, co3 );
        [ [ 1, 2, 3, 4, 8, 8, 7, 9, 10, 11, 17, 17, 19, 19, 22, 23, 27, 27, 30, 33,
              34, 40, 40, 40, 40, 42 ] ]

So factoring through a maximal subgroup of type McL.2 determines the fusion from H to Co3 uniquely up to table automorphisms.
Alternatively, we can use the group U3(5).3.2 as intermediate subgroup, which leads to the same result.

        gap> max:= filt[3];;
        gap> hfusmax:= PossibleClassFusions( h, max );;
        gap> maxfusco3:= PossibleClassFusions( max, co3 );;
        gap> comp:= [];;
        gap> for map1 in maxfusco3 do
        >      for map2 in hfusmax do
        >        AddSet( comp, CompositionMaps( map1, map2 ) );
        >      od;
        >    od;
        gap> reps2:= RepresentativesFusions( h, comp, co3 );;
        gap> reps2 = reps;
        true

Finally, we compare the result with the map that is stored on the library table of H.

        gap> GetFusionMap( h, co3 ) in reps;
        true

### 1.2 31:15 → B (March 2003)

The Sylow 31 normalizer H in the sporadic simple group B has the structure 31:15.

        gap> b:= CharacterTable( "B" );;
        gap> h:= CharacterTable( "31:15" );;
        gap> hfusb:= PossibleClassFusions( h, b );;
        gap> Length( RepresentativesFusions( h, hfusb, b ) );
        2

We determine the correct fusion using the fact that H is contained in a (maximal) subgroup of type Th in B.

        gap> th:= CharacterTable( "Th" );;
        gap> hfusth:= PossibleClassFusions( h, th );;
        gap> thfusb:= PossibleClassFusions( th, b );;
        gap> comp:= [];;
        gap> for map1 in hfusth do
        >      for map2 in thfusb do
        >        AddSet( comp, CompositionMaps( map2, map1 ) );
        >      od;
        >    od;
        gap> Length( comp );
        2
        gap> reps:= RepresentativesFusions( h, comp, b );
        [ [ 1, 145, 146, 82, 82, 19, 82, 7, 19, 82, 82, 19, 7, 82, 19, 82, 82 ] ]
        gap> GetFusionMap( h, b ) in reps;
        true

### 1.3 SuzN3 → Suz (September 2002)

The class fusion from the Sylow 3 normalizer into the sporadic simple group Suz is not uniquely determined by the character tables of these groups.

        gap> h:= CharacterTable( "SuzN3" );
        CharacterTable( "3^5:(3^2:SD16)" )
        gap> suz:= CharacterTable( "Suz" );
        CharacterTable( "Suz" )
        gap> hfussuz:= PossibleClassFusions( h, suz );;
        gap> Length( RepresentativesFusions( h, hfussuz, suz ) );
        2

Since H is not maximal in Suz, we try to factorize the fusion through a suitable maximal subgroup.

        gap> maxes:= List( Maxes( suz ), CharacterTable );;
        gap> filt:= Filtered( maxes, x -> Size( x ) mod Size( h ) = 0 );
        [ CharacterTable( "3_2.U4(3).2_3'" ), CharacterTable( "3^5:M11" ),
          CharacterTable( "3^2+4:2(2^2xa4)2" ) ]

The group 32.U4(3).23′ does not admit a fusion from H.

        gap> PossibleClassFusions( h, filt[1] );
        [  ]

Definitely 35:M11 contains a group isomorphic with H, because the Sylow 3 normalizer in M11 has the structure 32:SD16; using 32+4:2(22 ×A4)2 would lead to the same result as we get below. We compute the compositions of possible class fusions.

        gap> max:= filt[2];;
        gap> hfusmax:= PossibleClassFusions( h, max );;
        gap> maxfussuz:= PossibleClassFusions( max, suz );;
        gap> comp:= [];;
        gap> for map1 in hfusmax do
        >      for map2 in maxfussuz do
        >        AddSet( comp, CompositionMaps( map2, map1 ) );
        >      od;
        >    od;
        gap> repr:= RepresentativesFusions( h, comp, suz );
        [ [ 1, 2, 2, 4, 5, 4, 5, 5, 5, 5, 5, 6, 9, 9, 14, 15, 13, 16, 16, 14, 15, 13,
              13, 13, 16, 15, 14, 16, 16, 16, 21, 21, 23, 22, 29, 29, 29, 38, 39 ] ]

So the factorization determines the fusion map up to table automorphisms. We check that this map is equal to the stored one.

        gap> GetFusionMap( h, suz ) in repr;
        true

### 1.4 F3+N5 → F3+ (March 2002)

The class fusion from the table of the Sylow 5 normalizer H in the sporadic simple group F3+ into F3+ is ambiguous.

        gap> f3p:= CharacterTable( "F3+" );;
        gap> h:= CharacterTable( "F3+N5" );;
        gap> hfusf3p:= PossibleClassFusions( h, f3p );;
        gap> Length( RepresentativesFusions( h, hfusf3p, f3p ) );
        2

H is not maximal in F3+, so we look for tables of maximal subgroups that can contain H.

        gap> maxes:= List( Maxes( f3p ), CharacterTable );;
        gap> filt:= Filtered( maxes, x -> Size( x ) mod Size( h ) = 0 );
        [ CharacterTable( "Fi23" ), CharacterTable( "2.Fi22.2" ),
          CharacterTable( "(3xO8+(3):3):2" ), CharacterTable( "O10-(2)" ),
          CharacterTable( "(A4xO8+(2).3).2" ), CharacterTable( "He.2" ),
          CharacterTable( "F3+M14" ), CharacterTable( "(A5xA9):2" ) ]
        gap> possfus:= List( filt, x -> PossibleClassFusions( h, x ) );
        [ [  ], [  ], [  ], [  ],
          [ [ 1, 69, 110, 12, 80, 121, 4, 72, 113, 11, 11, 79, 79, 120, 120, 3, 71,
                  11, 79, 23, 91, 112, 120, 132, 29, 32, 97, 100, 37, 37, 105, 105,
                  139, 140, 145, 146, 155, 155, 156, 156, 44, 44, 167, 167, 48, 48,
                  171, 171, 57, 57, 180, 180, 66, 66, 189, 189 ],
              [ 1, 69, 110, 12, 80, 121, 4, 72, 113, 11, 11, 79, 79, 120, 120, 3, 71,
                  11, 79, 23, 91, 112, 120, 132, 29, 32, 97, 100, 37, 37, 105, 105,
                  140, 139, 146, 145, 156, 156, 155, 155, 44, 44, 167, 167, 48, 48,
                  171, 171, 57, 57, 180, 180, 66, 66, 189, 189 ] ], [  ], [  ], [  ] ]

We see that from the eight possible classes of maximal subgroups in F3+ that might contain H, only the group of type (A4 ×O8+(2).3).2 admits a class fusion from H. Hence we can compute the compositions of the possible fusions from H into this group with the possible fusions from this group into F3+.

        gap> max:= filt[5];
        CharacterTable( "(A4xO8+(2).3).2" )
        gap> hfusmax:= possfus[5];;
        gap> maxfusf3p:= PossibleClassFusions( max, f3p );;
        gap> comp:= [];;
        gap> for map1 in maxfusf3p do
        >      for map2 in hfusmax do
        >        AddSet( comp, CompositionMaps( map1, map2 ) );
        >      od;
        >    od;
        gap> Length( comp );
        2
        gap> repr:= RepresentativesFusions( h, comp, f3p );
        [ [ 1, 2, 4, 12, 35, 54, 3, 3, 16, 9, 9, 11, 11, 40, 40, 2, 3, 9, 11, 35, 36,
              13, 40, 90, 7, 22, 19, 20, 43, 43, 50, 50, 8, 8, 23, 23, 46, 46, 47,
              47, 10, 10, 9, 9, 10, 10, 11, 11, 26, 26, 28, 28, 67, 67, 68, 68 ] ]

Finally, we check whether the map stored in the table library is correct.

        gap> GetFusionMap( h, f3p ) in repr;
        true

Note that we did not determine the class fusion from the maximal subgroup (A4 ×O8+(2).3).2 into F3+ up to table automorphisms (see Section 2.1 for this problem), since also the ambiguous result was enough for computing the fusion from H into F3+.

## 2 Fusions Determined by Commutative Diagrams Using Smaller Subgroups

In each of the following examples, the class fusion of a maximal subgroup M of a group G is determined by considering a proper subgroup U of M whose class fusion into G can be computed, perhaps using another subgroup S of G that also contains U. |

### 2.1 (A4 ×O8+(2).3).2 → Fi24′ (November 2002)

The class fusion of the maximal subgroup M ≅ (A4 ×O8+(2).3).2 of G = Fi24′ is ambiguous.

        gap> m:= CharacterTable( "(A4xO8+(2).3).2" );;
        gap> t:= CharacterTable( "F3+" );;
        gap> mfust:= PossibleClassFusions( m, t );;
        gap> repr:= RepresentativesFusions( m, mfust, t );;
        gap> Length( repr );
        2

We first observe that the elements of order three in the normal subgroup of type A4 in M lie in the class `3A` of Fi24′.

        gap> a4inm:= Filtered( ClassPositionsOfNormalSubgroups( m ),
        >                      n -> Sum( SizesConjugacyClasses( m ){ n } ) = 12 );
        [ [ 1, 69, 110 ] ]
        gap> OrdersClassRepresentatives( m ){ a4inm[1] };
        [ 1, 2, 3 ]
        gap> List( repr, map -> map[110] );
        [ 4, 4 ]
        gap> OrdersClassRepresentatives( t ){ [ 1 .. 4 ] };
        [ 1, 2, 2, 3 ]

Let us take one such element g, say. Its normalizer S in G has the structure (3 ×O8+(3).3).2; this group is maximal in G, and its character table is available in GAP.

        gap> s:= CharacterTable( "F3+N3A" );
        CharacterTable( "(3xO8+(3):3):2" )

The intersection NM(g) = S ∩M contains a subgroup U of the type 3 ×O8+(2).3, and in the following we compute the class fusions of U into S and M, and then utilize the fact that only those class fusions from M into G are possible whose composition with the class fusion from U into M equals a composition of class fusions from U into S and from S into G.

        gap> u:= CharacterTable( "Cyclic", 3 ) * CharacterTable( "O8+(2).3" );
        CharacterTable( "C3xO8+(2).3" )
        gap> ufuss:= PossibleClassFusions( u, s );;
        gap> ufusm:= PossibleClassFusions( u, m );;
        gap> sfust:= PossibleClassFusions( s, t );;
        gap> comp:= [];;
        gap> for map1 in ufuss do
        >   for map2 in sfust do
        >     AddSet( comp, CompositionMaps( map2, map1 ) );
        >   od;
        > od;
        gap> Length( comp );
        6
        gap> filt:= Filtered( mfust,
        >     x -> ForAny( ufusm, map -> CompositionMaps( x, map ) in comp ) );;
        gap> repr:= RepresentativesFusions( m, filt, t );;
        gap> Length( repr );
        1
        gap> GetFusionMap( m, t ) in repr;
        true

So the class fusion from M into G is determined up to table automorphisms by the commutative diagram.

### 2.2 A6 ×L2(8).3 → Fi24′ (November 2002)

The class fusion of the maximal subgroup M ≅ A6 ×L2(8).3 of G = Fi24′ is ambiguous.

        gap> m:= CharacterTable( "A6xL2(8):3" );;
        gap> t:= CharacterTable( "F3+" );;
        gap> mfust:= PossibleClassFusions( m, t );;
        gap> Length( RepresentativesFusions( m, mfust, t ) );
        2

We will use the fact that the direct factor of the type A6 in M contains elements in the class `3A` of G. This fact can be shown as follows.

        gap> dppos:= ClassPositionsOfDirectProductDecompositions( m );
        [ [ [ 1, 12 .. 67 ], [ 1 .. 11 ] ] ]
        gap> List( dppos[1], l -> Sum( SizesConjugacyClasses( t ){ l } ) );
        [ 17733424133316996808705, 4545066196775803392 ]
        gap> List( dppos[1], l -> Sum( SizesConjugacyClasses( m ){ l } ) );
        [ 360, 1512 ]
        gap> 3Apos:= Position( OrdersClassRepresentatives( t ), 3 );
        4
        gap> 3Ainm:= List( mfust, map -> Position( map, 3Apos ) );
        [ 23, 23, 23, 23, 34, 34, 34, 34 ]
        gap> ForAll( 3Ainm, x -> x in dppos[1][1] );
        true

Since the normalizer of an element of order three in A6 has the form 32:2, such a `3A` element in M contains a subgroup U of the structure 32:2 ×L2(8).3 which is contained in the `3A` normalizer S in G, which has the structure (3 ×O8+(3).3).2.
(Note that all classes in the 32:2 type group are rational, and its character table is available in the GAP Character Table Library with the identifier `"3^2:2"`.)

        gap> u:= CharacterTable( "3^2:2" ) * CharacterTable( "L2(8).3" );
        CharacterTable( "3^2:2xL2(8).3" )
        gap> s:= CharacterTable( "F3+N3A" );
        CharacterTable( "(3xO8+(3):3):2" )
        gap> ufuss:= PossibleClassFusions( u, s );;
        gap> comp:= [];;
        gap> for map1 in sfust do
        >      for map2 in ufuss do
        >        AddSet( comp, CompositionMaps( map1, map2 ) );
        >      od;
        >    od;
        gap> ufusm:= PossibleClassFusions( u, m );;
        gap> filt:= Filtered( mfust,
        >               map -> ForAny( ufusm,
        >                          map2 -> CompositionMaps( map, map2 ) in comp ) );;
        gap> repr:= RepresentativesFusions( m, filt, t );;
        gap> Length( repr );
        1
        gap> GetFusionMap( m, t ) in repr;
        true

## 3 Conditions Imposed by Brauer Tables

The examples in this section show that symmetries can be broken as soon as the class fusions between two ordinary tables shall be compatible with the corresponding Brauer character tables. More precisely, we assume that the class fusion from each Brauer table to its ordinary table is already fixed; choosing these fusions consistently can be a nontrivial task, solving so-called "generality problems" may require the construction of certain modules, similar to the arguments used in 3.2 below.

### 3.1 L2(16).4 → J3.2

It can happen that Brauer tables decide ambiguities of class fusions between the corresponding ordinary tables. An easy example is the class fusion of L2(16).4 into J3.2. The ordinary tables admit four possible class fusions, of which two are essentially different.

        gap> s:= CharacterTable( "L2(16).4" );;
        gap> t:= CharacterTable( "J3.2" );;
        gap> fus:= PossibleClassFusions( s, t );
        [ [ 1, 2, 3, 6, 14, 15, 16, 2, 5, 7, 12, 5, 5, 8, 8, 13, 13 ],
          [ 1, 2, 3, 6, 14, 15, 16, 2, 5, 7, 12, 19, 19, 22, 22, 23, 23 ],
          [ 1, 2, 3, 6, 14, 16, 15, 2, 5, 7, 12, 5, 5, 8, 8, 13, 13 ],
          [ 1, 2, 3, 6, 14, 16, 15, 2, 5, 7, 12, 19, 19, 22, 22, 23, 23 ] ]
        gap> RepresentativesFusions( s, fus, t );
        [ [ 1, 2, 3, 6, 14, 15, 16, 2, 5, 7, 12, 5, 5, 8, 8, 13, 13 ],
          [ 1, 2, 3, 6, 14, 15, 16, 2, 5, 7, 12, 19, 19, 22, 22, 23, 23 ] ]

Using Brauer tables, we will see that just one fusion is admissible.
We can exclude two possible fusions by the fact that their images all lie inside the normal subgroup J3, but J3 does not contain a subgroup of type L2(16).4; so still one orbit of length two remains.

        gap> j3:= CharacterTable( "J3" );;
        gap> PossibleClassFusions( s, j3 );
        [  ]
        gap> GetFusionMap( j3, t );
        [ 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 16, 17, 17 ]
        gap> filt:= Filtered( fus,
        >          x -> not IsSubset( ClassPositionsOfDerivedSubgroup( t ), x ) );
        [ [ 1, 2, 3, 6, 14, 15, 16, 2, 5, 7, 12, 19, 19, 22, 22, 23, 23 ],
          [ 1, 2, 3, 6, 14, 16, 15, 2, 5, 7, 12, 19, 19, 22, 22, 23, 23 ] ]

Now the remaining wrong fusion is excluded by the fact that the table automorphism of J3.2 that swaps the two classes of element order 17 -which swaps two of the possible class fusions- does not live in the 2-modular table.

        gap> smod2:= s mod 2;;
        gap> tmod2:= t mod 2;;
        gap> admissible:= [];;
        gap> for map in filt do
        >      modmap:= CompositionMaps( InverseMap( GetFusionMap( tmod2, t ) ),
        >                   CompositionMaps( map, GetFusionMap( smod2, s ) ) );
        >      if not fail in Decomposition( Irr( smod2 ),
        >            List( Irr( tmod2 ), chi -> chi{ modmap } ), "nonnegative" ) then
        >        AddSet( admissible, map );
        >      fi;
        >    od;
        gap> admissible;
        [ [ 1, 2, 3, 6, 14, 16, 15, 2, 5, 7, 12, 19, 19, 22, 22, 23, 23 ] ]

The test of all available Brauer tables is implemented in the function `CTblLibTestDecompositions` of the GAP Character Table Library ([Bre04b]).

        gap> CTblLibTestDecompositions( s, fus, t ) = admissible;
        true

We see that p-modular tables alone determine the class fusion uniquely; in fact the primes 2 and 3 suffice for that.

        gap> GetFusionMap( s, t ) in admissible;
        true

### 3.2 L2(19) → J3 (April 2003)

It can happen that Brauer tables impose conditions such that ambiguities arise which are not visible if one considers only ordinary tables.
The class fusion between the ordinary character tables of L2(19) and J3 is unique up to table automorphisms.

        gap> s:= CharacterTable( "L2(19)" );;
        gap> t:= CharacterTable( "J3" );;
        gap> sfust:= PossibleClassFusions( s, t );
        [ [ 1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 20, 21 ],
          [ 1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 21, 20 ],
          [ 1, 2, 4, 6, 7, 11, 12, 10, 13, 14, 20, 21 ],
          [ 1, 2, 4, 6, 7, 11, 12, 10, 13, 14, 21, 20 ],
          [ 1, 2, 4, 6, 7, 12, 10, 11, 13, 14, 20, 21 ],
          [ 1, 2, 4, 6, 7, 12, 10, 11, 13, 14, 21, 20 ],
          [ 1, 2, 4, 7, 6, 10, 11, 12, 14, 13, 20, 21 ],
          [ 1, 2, 4, 7, 6, 10, 11, 12, 14, 13, 21, 20 ],
          [ 1, 2, 4, 7, 6, 11, 12, 10, 14, 13, 20, 21 ],
          [ 1, 2, 4, 7, 6, 11, 12, 10, 14, 13, 21, 20 ],
          [ 1, 2, 4, 7, 6, 12, 10, 11, 14, 13, 20, 21 ],
          [ 1, 2, 4, 7, 6, 12, 10, 11, 14, 13, 21, 20 ] ]
        gap> fusreps:= RepresentativesFusions( s, sfust, t );
        [ [ 1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 20, 21 ] ]

The Galois automorphism that permutes the three classes of element order 9 in the tables of (L2(19) and) J3 does not live in characteristic 19. For example, the unique irreducible Brauer character of degree 110 in the 19-modular table of J3 is ϕ3, and the value of this character on the class `9A` is `-1+2y9+&4`.

        gap> tmod19:= t mod 19;
        BrauerTable( "J3", 19 )
        gap> deg110:= Filtered( Irr( tmod19 ), phi -> phi[1] = 110 );
        [ Character( BrauerTable( "J3", 19 ), [ 110, -2, 5, 2, 2, 0, 0, 1, 0,
              -2*E(9)^2+E(9)^3-E(9)^4-E(9)^5+E(9)^6-2*E(9)^7,
              E(9)^2+E(9)^3-E(9)^4-E(9)^5+E(9)^6+E(9)^7,
              E(9)^2+E(9)^3+2*E(9)^4+2*E(9)^5+E(9)^6+E(9)^7, -2, -2, -1, 0, 0,
              E(17)+E(17)^2+E(17)^4+E(17)^8+E(17)^9+E(17)^13+E(17)^15+E(17)^16,
              E(17)^3+E(17)^5+E(17)^6+E(17)^7+E(17)^10+E(17)^11+E(17)^12+E(17)^14 ] )
         ]
        gap> 9A:= Position( OrdersClassRepresentatives( tmod19 ), 9 );
        10
        gap> deg110[1][ 9A ];
        -2*E(9)^2+E(9)^3-E(9)^4-E(9)^5+E(9)^6-2*E(9)^7
        gap> AtlasIrrationality( "-1+2y9+&4" ) = deg110[1][ 9A ];
        true

It turns out that four of the twelve possible class fusions are not compatible with the 19-modular tables.

        gap> smod19:= s mod 19;
        BrauerTable( "L2(19)", 19 )
        gap> compatible:= [];;
        gap> for map in sfust do
        >      comp:= CompositionMaps( InverseMap( GetFusionMap( tmod19, t ) ),
        >      CompositionMaps( map, GetFusionMap( smod19, s ) ) );
        >      rest:= List( Irr( tmod19 ), phi -> phi{ comp } );
        >      if not fail in Decomposition( Irr( smod19 ), rest, "nonnegative" ) then
        >        Add( compatible, map );
        >      fi;
        >    od;
        gap> compatible;
        [ [ 1, 2, 4, 6, 7, 11, 12, 10, 13, 14, 20, 21 ],
          [ 1, 2, 4, 6, 7, 11, 12, 10, 13, 14, 21, 20 ],
          [ 1, 2, 4, 6, 7, 12, 10, 11, 13, 14, 20, 21 ],
          [ 1, 2, 4, 6, 7, 12, 10, 11, 13, 14, 21, 20 ],
          [ 1, 2, 4, 7, 6, 11, 12, 10, 14, 13, 20, 21 ],
          [ 1, 2, 4, 7, 6, 11, 12, 10, 14, 13, 21, 20 ],
          [ 1, 2, 4, 7, 6, 12, 10, 11, 14, 13, 20, 21 ],
          [ 1, 2, 4, 7, 6, 12, 10, 11, 14, 13, 21, 20 ] ]

Moreover, the subgroups of those table automorphisms of the ordinary tables that leave the set of compatible fusions invariant make two orbits on this set. Indeed, the two orbits belong to essentially different decompositions of the restriction of ϕ3.

        gap> reps:= RepresentativesFusions( s, compatible, t );
        [ [ 1, 2, 4, 6, 7, 11, 12, 10, 13, 14, 20, 21 ],
          [ 1, 2, 4, 6, 7, 12, 10, 11, 13, 14, 20, 21 ] ]
        gap> compatiblemod19:= List( reps, map -> CompositionMaps(
        >        InverseMap( GetFusionMap( tmod19, t ) ),
        >        CompositionMaps( map, GetFusionMap( smod19, s ) ) ) );
        [ [ 1, 2, 4, 6, 7, 11, 12, 10, 13, 14 ],
          [ 1, 2, 4, 6, 7, 12, 10, 11, 13, 14 ] ]
        gap> rest:= List( compatiblemod19, map -> Irr( tmod19 )[3]{ map } );;
        gap> dec:= Decomposition( Irr( smod19 ), rest, "nonnegative" );
        [ [ 0, 0, 1, 2, 1, 2, 2, 1, 0, 1 ], [ 0, 2, 0, 2, 0, 1, 2, 0, 2, 1 ] ]
        gap> List( Irr( smod19 ), phi -> phi[1] );
        [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 ]

In order to decide which class fusion is correct, we take the matrix representation of J3 that affords ϕ3, restrict it to L2(19), which is the second maximal subgroup of J3, and compute the composition factors. For that, we use a representation from the ATLAS of Group Representations [Wil], and access it via the GAP package AtlasRep ([Bre04a]).

        gap> LoadPackage( "atlasrep" );
        true
        gap> prog:= AtlasStraightLineProgram( "J3", "maxes", 2 );
        rec( program := <straight line program>, standardization := 1,
          identifier := [ "J3", "J3G1-max2W1", 1 ] )
        gap> gens:= OneAtlasGeneratingSet( "J3", Characteristic, 19, Dimension, 110 );
        rec( generators := [ < immutable compressed matrix 110x110 over GF(19) >,
              < immutable compressed matrix 110x110 over GF(19) > ],
          standardization := 1,
          identifier := [ "J3", [ "J3G1-f19r110B0.m1", "J3G1-f19r110B0.m2" ], 1, 19 ]
         )
        gap> restgens:= ResultOfStraightLineProgram( prog.program, gens.generators );
        [ < immutable compressed matrix 110x110 over GF(19) >,
          < immutable compressed matrix 110x110 over GF(19) > ]
        gap> module:= GModuleByMats( restgens, GF( 19 ) );;
        gap> facts:= SMTX.CollectedFactors( module );;
        gap> Length( facts );
        7
        gap> List( facts, x -> x[1].dimension );
        [ 5, 7, 9, 11, 13, 15, 19 ]
        gap> List( facts, x -> x[2] );
        [ 1, 2, 1, 2, 2, 1, 1 ]

This means that there are seven pairwise nonisomorphic composition factors, the smallest one of dimension five. In other words, the first of the two maps is the correct one. Let us check whether this map equals the one that is stored on the library table.

        gap> GetFusionMap( s, t ) = reps[1];
        true

## 4 Fusions Determined by Information about the Groups

In the examples in this section, character theoretic arguments do not suffice for determining the class fusions. So we use computations with the groups in question or information about these groups beyond the character table, and perhaps additionally character theoretic arguments.
The group representations are taken from the ATLAS of Group Representations [Wil] and are accessed via the GAP package AtlasRep ([Bre04a]).

        gap> LoadPackage( "atlasrep" );
        true

### 4.1 U3(3).2 → Fi24′ (November 2002)

The group G = Fi24′ contains a maximal subgroup H of type U3(3).2. From the character tables of G and H, one gets a lot of essentially different possibilities (and additionally this takes quite some time). We use the description of H as the normalizer in G of a U3(3) type subgroup containing elements in the classes `2B`, `3D`, `3E`, `4C`, `4C`, `6J`, `7B`, `8C`, and `12M` (see [BN95]).

        gap> t:= CharacterTable( "F3+" );
        CharacterTable( "F3+" )
        gap> s:= CharacterTable( "U3(3).2" );
        CharacterTable( "U3(3).2" )
        gap> tnames:= ClassNames( t, "ATLAS" );
        [ "1A", "2A", "2B", "3A", "3B", "3C", "3D", "3E", "4A", "4B", "4C", "5A",
          "6A", "6B", "6C", "6D", "6E", "6F", "6G", "6H", "6I", "6J", "6K", "7A",
          "7B", "8A", "8B", "8C", "9A", "9B", "9C", "9D", "9E", "9F", "10A", "10B",
          "11A", "12A", "12B", "12C", "12D", "12E", "12F", "12G", "12H", "12I",
          "12J", "12K", "12L", "12M", "13A", "14A", "14B", "15A", "15B", "15C",
          "16A", "17A", "18A", "18B", "18C", "18D", "18E", "18F", "18G", "18H",
          "20A", "20B", "21A", "21B", "21C", "21D", "22A", "23A", "23B", "24A",
          "24B", "24C", "24D", "24E", "24F", "24G", "26A", "27A", "27B", "27C",
          "28A", "29A", "29B", "30A", "30B", "33A", "33B", "35A", "36A", "36B",
          "36C", "36D", "39A", "39B", "39C", "39D", "42A", "42B", "42C", "45A",
          "45B", "60A" ]
        gap> OrdersClassRepresentatives( s );
        [ 1, 2, 3, 3, 4, 4, 6, 7, 8, 12, 2, 4, 6, 8, 12, 12 ]
        gap> sfust:= List( [ "1A", "2B", "3D", "3E", "4C", "4C", "6J", "7B", "8C",
        >                    "12M" ], x -> Position( tnames, x ) );
        [ 1, 3, 7, 8, 11, 11, 22, 25, 28, 50 ]
        gap> sfust:= PossibleClassFusions( s, t, rec( fusionmap:= sfust ) );
        [ [ 1, 3, 7, 8, 11, 11, 22, 25, 28, 50, 3, 9, 23, 28, 43, 43 ],
          [ 1, 3, 7, 8, 11, 11, 22, 25, 28, 50, 3, 11, 23, 28, 50, 50 ] ]
        gap> OrdersClassRepresentatives( s );
        [ 1, 2, 3, 3, 4, 4, 6, 7, 8, 12, 2, 4, 6, 8, 12, 12 ]

So we still have two possibilities, which differ on the outer classes of element order 4 and 12.
Our idea is to take a subgroup U of H that contains such elements, and to compute the possible class fusions of U into G, via the factorization through a suitable maximal subgroup M of G.
We take U = NH(〈g 〉) where g is an element in the first class of order three elements of H; this is a maximal subgroup of H, of order 216.

        gap> Maxes( s );
        [ "U3(3)", "3^(1+2):SD16", "L3(2).2", "2^(1+4).S3", "4^2:D12" ]
        gap> SizesCentralizers( s );
        [ 12096, 192, 216, 18, 96, 32, 24, 7, 8, 12, 48, 48, 6, 8, 12, 12 ]
        gap> u:= CharacterTable( Maxes( s )[2] );;
        gap> ufuss:= GetFusionMap( u, s );
        [ 1, 2, 11, 3, 4, 5, 12, 7, 13, 9, 9, 15, 16, 10 ]

Candidates for M are those subgroups of G that contain elements in the class `3D` of G whose centralizer is the full `3D` centralizer in G.

        gap> 3Dcentralizer:= SizesCentralizers( t )[7];
        153055008
        gap> cand:= [];;
        gap> for name in Maxes( t ) do
        >      m:= CharacterTable( name );
        >      mfust:= GetFusionMap( m, t );
        >      if ForAny( [ 1 .. Length( mfust ) ],
        >          i -> mfust[i] = 7 and SizesCentralizers( m )[i] = 3Dcentralizer )
        >      then
        >        Add( cand, m );
        >      fi;
        >    od;
        gap> cand;
        [ CharacterTable( "3^7.O7(3)" ), CharacterTable( "3^2.3^4.3^8.(A5x2A4).2" ) ]

For these two groups M, we show that the possible class fusions from U to G via M factorize through H only if the second possible class fusion from H to G is chosen.

        gap> possufust:= List( sfust, x -> CompositionMaps( x, ufuss ) );
        [ [ 1, 3, 3, 7, 8, 11, 9, 22, 23, 28, 28, 43, 43, 50 ],
          [ 1, 3, 3, 7, 8, 11, 11, 22, 23, 28, 28, 50, 50, 50 ] ]
        gap> m:= cand[1];;
        gap> ufusm:= PossibleClassFusions( u, m );;
        gap> Length( ufusm );
        242
        gap> comp:= List( ufusm, x -> CompositionMaps( GetFusionMap( m, t ), x ) );;
        gap> Intersection( possufust, comp );
        [ [ 1, 3, 3, 7, 8, 11, 11, 22, 23, 28, 28, 50, 50, 50 ] ]
        gap> m:= cand[2];;
        gap> ufusm:= PossibleClassFusions( u, m );;
        gap> Length( ufusm );
        256
        gap> comp:= List( ufusm, x -> CompositionMaps( GetFusionMap( m, t ), x ) );;
        gap> Intersection( possufust, comp );
        [ [ 1, 3, 3, 7, 8, 11, 11, 22, 23, 28, 28, 50, 50, 50 ] ]

Finally, we check that the correct fusion is stored in the GAP Character Table Library.

        gap> GetFusionMap( s, t ) = sfust[2];
        true

### 4.2 L2(13).2 → Fi24′ (September 2002)

The class fusion of maximal subgroups U of type L2(13).2 in G = Fi24′ is ambiguous.

        gap> t:= CharacterTable( "F3+" );;
        gap> u:= CharacterTable( "L2(13).2" );;
        gap> fus:= PossibleClassFusions( u, t );;
        gap> repr:= RepresentativesFusions( u, fus, t );;
        gap> Length( repr );
        3

In [LW91,p. 155], it is stated that U′ contains elements in the classes `2B`, `3D`, and `7B` of G. (Note that the two conjugacy classes of groups isomorphic to U have the same class fusion because the outer automorphism of G fixes the relevant classes.)

        gap> filt:= Filtered( repr, x -> t.2b in x and t.3d in x and t.7b in x );
        [ [ 1, 3, 7, 22, 25, 25, 25, 51, 3, 9, 43, 43, 53, 53, 53 ],
          [ 1, 3, 7, 22, 25, 25, 25, 51, 3, 11, 50, 50, 53, 53, 53 ] ]
        gap> ClassNames( t ){ [ 43, 50 ] };
        [ "12f", "12m" ]

So we have to decide whether U contains elements in the class `12F` or in `12M` of G.
The order 12 elements in question lie inside subgroups of type 13 : 12 in U. These subgroups are clearly contained in the Sylow 13 normalizers of G, which are contained in maximal subgroups of type (32:2 ×G2(3)).2 in G; the class fusion of the latter groups is unique up to table automorphisms.

        gap> pos:= Position( OrdersClassRepresentatives( t ), 13 );
        51
        gap> SizesCentralizers( t )[ pos ];
        234
        gap> ClassOrbit( t, pos );
        [ 51 ]
        gap> cand:= [];;
        gap> for name in Maxes( t ) do
        >      m:= CharacterTable( name );
        >      pos:= Position( OrdersClassRepresentatives( m ), 13 );
        >      if pos <> fail and
        >         SizesCentralizers( m )[ pos ] = 234
        >         and ClassOrbit( m, pos ) = [ pos ] then
        >        Add( cand, m );
        >      fi;
        >    od;
        gap> cand;
        [ CharacterTable( "(3^2:2xG2(3)).2" ) ]
        gap> s:= cand[1];;
        gap> sfust:= PossibleClassFusions( s, t );;

As no 13:12 type subgroup is contained in the derived subgroup of (32:2 ×G2(3)).2, we look at the elements of order 12 in the outer half.

        gap> der:= ClassPositionsOfDerivedSubgroup( s );;
        gap> outer:= Difference( [ 1 .. NrConjugacyClasses( s ) ], der );;
        gap> sfust:= PossibleClassFusions( s, t );;
        gap> imgs:= Set( Flat( List( sfust, x -> x{ outer } ) ) );
        [ 2, 3, 10, 11, 15, 17, 18, 19, 21, 22, 26, 44, 45, 49, 50, 52, 62, 83, 87,
          98 ]
        gap> t.12f in imgs;
        false
        gap> t.12m in imgs;
        true

So L2(13).2 \L2(13) does not contain `12F` elements of G, i. e., we have determined the class fusion of U in G.
Finally, we check whether the correct fusion is stored in the GAP Character Table Library.

        gap> GetFusionMap( u, t ) = filt[2];
        true

### 4.3 L2(17).2 → B (March 2004)

The sporadic simple group B contains a maximal subgroup U of the type L2(17).2 whose class fusion is ambiguous.

        gap> b:= CharacterTable( "B" );;
        gap> u:= CharacterTable( "L2(17).2" );;
        gap> ufusb:= PossibleClassFusions( u, b );
        [ [ 1, 5, 7, 15, 42, 42, 47, 47, 47, 91, 4, 30, 89, 89, 89, 89, 97, 97, 97 ],
          [ 1, 5, 7, 15, 44, 44, 46, 46, 46, 91, 5, 29, 90, 90, 90, 90, 96, 96, 96 ],
          [ 1, 5, 7, 15, 44, 44, 47, 47, 47, 91, 5, 29, 90, 90, 90, 90, 95, 95, 95 ] ]

According to [Wil99,Prop. 11.1], U contains elements in the classes `8M` and `9A` of B. This determines the fusion map.

        gap> names:= ClassNames( b, "ATLAS" );;
        gap> pos:= List( [ "8M", "9A" ], x -> Position( names, x ) );
        [ 44, 46 ]
        gap> ufusb:= Filtered( ufusb, map -> IsSubset( map, pos ) );
        [ [ 1, 5, 7, 15, 44, 44, 46, 46, 46, 91, 5, 29, 90, 90, 90, 90, 96, 96, 96 ] ]

We check that this map is stored on the lilbrary table.

        gap> GetFusionMap( u, b ) = ufusb[1];
        true

### 4.4 23.L3(2) → G2(5)

The Chevalley group G = G2(5) contains a maximal subgroup U of the type 23.L3(2) whose class fusion is ambiguous.

        gap> t:= CharacterTable( "G2(5)" );;
        gap> s:= CharacterTable( "2^3.L3(2)" );;
        gap> sfust:= PossibleClassFusions( s, t );;
        gap> RepresentativesFusions( s, sfust, t );
        [ [ 1, 2, 2, 5, 6, 4, 13, 16, 17, 15, 15 ],
          [ 1, 2, 2, 5, 6, 4, 14, 16, 17, 15, 15 ] ]

So the question is whether U contains elements in the class `6B` or `6C` of G (position 13 or 14 in the ATLAS table). We use a permutation representation of G, restrict it to U, and compute the centralizer in G of an element of order 6 in U.

        gap> gens:= OneAtlasGeneratingSet( "G2(5)" );;
        gap> g:= Group( gens.generators );;
        gap> prg:= AtlasStraightLineProgram( "G2(5)", "maxes", 7 );;
        gap> subgens:= ResultOfStraightLineProgram( prg.program, gens.generators );;
        gap> u:= Group( gens.generators );;
        gap> repeat
        >      x:= Random( u );
        >    until Order( x ) = 6;
        gap> siz:= Size( Centralizer( g, x ) );
        36
        gap> Filtered( [ 1 .. NrConjugacyClasses( t ) ],
        >              i -> SizesCentralizers( t )[i] = siz );
        [ 14 ]

So U contains `6C` elements in G2(5).

        gap> GetFusionMap( s, t ) in Filtered( sfust, map -> 14 in map );
        true

### 4.5 The fusion from the character table of 72:2L2(7).2 into the table of marks

It can happen that the class fusion from the ordinary character table of a group G into the table of marks of G is not unique up to table automorphisms of the character table of G.
As an example, consider G = 72:2L2(7).2, a maximal subgroup in the sporadic simple group He.
G contains four classes of cyclic subgroups of order 7. One contains the elements in the normal subgroup of type 72, and the other three are preimages of the order 7 elements in the factor group L2(7). The conjugacy classes of nonidentity elements in the latter three classes split into two Galois conjugates each, which are permuted cyclicly by the table automorphisms of the character table of G, but on which the stabilizer of one class acts trivially. This means that determining one of the three classes determines also the other two.

        gap> tbl:= CharacterTable( "7^2:2psl(2,7)" );
        CharacterTable( "7^2:2psl(2,7)" )
        gap> tom:= TableOfMarks( FusionToTom( tbl ).name );
        TableOfMarks( "7^2:2L2(7)" )
        gap> fus:= PossibleFusionsCharTableTom( tbl, tom );
        [ [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 10, 9, 16, 7, 10, 9, 8, 16 ],
          [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 9, 8, 10, 16, 7, 8, 10, 9, 16 ],
          [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 10, 9, 8, 16, 7, 9, 8, 10, 16 ],
          [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 9, 10, 16, 7, 9, 10, 8, 16 ],
          [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 10, 8, 9, 16, 7, 8, 9, 10, 16 ],
          [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 9, 10, 8, 16, 7, 10, 8, 9, 16 ] ]
        gap> reps:= RepresentativesFusions( tbl, fus, Group(()) );
        [ [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 9, 10, 16, 7, 9, 10, 8, 16 ],
          [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 10, 9, 16, 7, 10, 9, 8, 16 ] ]
        gap> AutomorphismsOfTable( tbl );
        Group([ (9,14)(10,17)(11,15)(12,16)(13,18), (7,8), (10,11,12)(15,16,17) ])
        gap> OrdersClassRepresentatives( tbl );
        [ 1, 7, 2, 4, 3, 6, 8, 8, 7, 7, 7, 7, 14, 7, 7, 7, 7, 14 ]
        gap> perms1:= PermCharsTom( reps[1], tom );;
        gap> perms2:= PermCharsTom( reps[2], tom );;
        gap> perms1 = perms2;
        false
        gap> Set( perms1 ) = Set( perms2 );
        true

The table of marks of G does not distinguish the three classes of cyclic subgroups, there are permutations of rows and columns that act as an S3 on them.
Note that an S3 acts on the classes in question in the rational character table. So it is due to the irrationalities in the character table that it contains more information.

        gap> Display( tbl );
        7^2:2psl(2,7)

              2  4  .  4  3  1  1  3  3   1   .   .   .   1   1   .   .   .   1
              3  1  .  1  .  1  1  .  .   .   .   .   .   .   .   .   .   .   .
              7  3  3  1  .  .  .  .  .   2   2   2   2   1   2   2   2   2   1

                1a 7a 2a 4a 3a 6a 8a 8b  7b  7c  7d  7e 14a  7f  7g  7h  7i 14b
             2P 1a 7a 1a 2a 3a 3a 4a 4a  7b  7c  7d  7e  7b  7f  7g  7h  7i  7f
             3P 1a 7a 2a 4a 1a 2a 8b 8a  7f  7i  7g  7h 14b  7b  7d  7e  7c 14a
             5P 1a 7a 2a 4a 3a 6a 8b 8a  7f  7i  7g  7h 14b  7b  7d  7e  7c 14a
             7P 1a 1a 2a 4a 3a 6a 8a 8b  1a  1a  1a  1a  2a  1a  1a  1a  1a  2a
            11P 1a 7a 2a 4a 3a 6a 8b 8a  7b  7c  7d  7e 14a  7f  7g  7h  7i 14b
            13P 1a 7a 2a 4a 3a 6a 8b 8a  7f  7i  7g  7h 14b  7b  7d  7e  7c 14a

        X.1      1  1  1  1  1  1  1  1   1   1   1   1   1   1   1   1   1   1
        X.2      3  3  3 -1  .  .  1  1   B   B   B   B   B  /B  /B  /B  /B  /B
        X.3      3  3  3 -1  .  .  1  1  /B  /B  /B  /B  /B   B   B   B   B   B
        X.4      6  6  6  2  .  .  .  .  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
        X.5      7  7  7 -1  1  1 -1 -1   .   .   .   .   .   .   .   .   .   .
        X.6      8  8  8  . -1 -1  .  .   1   1   1   1   1   1   1   1   1   1
        X.7      4  4 -4  .  1 -1  .  .  -B  -B  -B  -B   B -/B -/B -/B -/B  /B
        X.8      4  4 -4  .  1 -1  .  . -/B -/B -/B -/B  /B  -B  -B  -B  -B   B
        X.9      6  6 -6  .  .  .  A -A  -1  -1  -1  -1   1  -1  -1  -1  -1   1
        X.10     6  6 -6  .  .  . -A  A  -1  -1  -1  -1   1  -1  -1  -1  -1   1
        X.11     8  8 -8  . -1  1  .  .   1   1   1   1  -1   1   1   1   1  -1
        X.12    48 -1  .  .  .  .  .  .   6  -1  -1  -1   .   6  -1  -1  -1   .
        X.13    48 -1  .  .  .  .  .  .   C  -1  /C  /D   .  /C   C   D  -1   .
        X.14    48 -1  .  .  .  .  .  .   C  /C  /D  -1   .  /C   D  -1   C   .
        X.15    48 -1  .  .  .  .  .  .  /C   D  -1   C   .   C  -1  /C  /D   .
        X.16    48 -1  .  .  .  .  .  .   C  /D  -1  /C   .  /C  -1   C   D   .
        X.17    48 -1  .  .  .  .  .  .  /C   C   D  -1   .   C  /D  -1  /C   .
        X.18    48 -1  .  .  .  .  .  .  /C  -1   C   D   .   C  /C  /D  -1   .

        A = E(8)-E(8)^3
          = ER(2) = r2
        B = E(7)+E(7)^2+E(7)^4
          = (-1+ER(-7))/2 = b7
        C = 2*E(7)+2*E(7)^2+2*E(7)^4
          = -1+ER(-7) = 2b7
        D = -3*E(7)-3*E(7)^2-2*E(7)^3-3*E(7)^4-2*E(7)^5-2*E(7)^6
          = (5-ER(-7))/2 = 2-b7
        gap> mat:= MatTom( tom );;
        gap> mataut:= MatrixAutomorphisms( mat );;
        gap> Print( mataut, "\n" );
        Group( [ (11,12)(23,24)(27,28)(46,47)(53,54)(56,57),
          ( 9,10)(20,21)(31,32)(38,39), ( 8, 9)(20,22)(31,33)(38,40) ] )
        gap> RepresentativesFusions( Group( () ), reps, mataut );
        [ [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 9, 10, 16, 7, 9, 10, 8, 16 ] ]

We could say that thus the fusion is unique up to table automorphisms and automorphisms of the table of marks. But since a group is associated with the table of marks, we compute the character table from the group, and decide which class fusion is correct.

        gap> g:= UnderlyingGroup( tom );;
        gap> tg:= CharacterTable( g );;
        gap> tgfustom:= FusionCharTableTom( tg, tom );
        [ 1, 6, 2, 3, 5, 16, 7, 8, 10, 9, 7, 8, 10, 9, 16, 4, 13, 13 ]
        gap> trans:= TransformingPermutationsCharacterTables( tg, tbl );;
        gap> tblfustom:= Permuted( tgfustom, trans.columns );
        [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 10, 9, 16, 7, 10, 9, 8, 16 ]
        gap> orbits:= List( reps, map -> OrbitFusions( AutomorphismsOfTable( tbl ),
        >                                              map, Group( () ) ) );;
        gap> PositionProperty( orbits, orb -> tblfustom in orb );
        2
        gap> PositionProperty( orbits, orb -> FusionToTom( tbl ).map in orb );
        2

So we see that the second one of the possibilities above is the right one.

## References

[BN95]
  Thomas Breuer and Simon P. Norton, Improvements to the Atlas, London Math. Soc. Monographs, vol. 11, pp. 297-327, Oxford University Press, 1995.
[Bre04a]
  Thomas Breuer, Manual for the GAP 4 Package AtlasRep, Version 1.2, Lehrstuhl D für Mathematik, Rheinisch Westfälische Technische Hochschule, Aachen, Germany, 2004.
[Bre04b]
  Thomas Breuer, Manual for the GAP Character Table Library, Version 1.1, Lehrstuhl D für Mathematik, Rheinisch Westfälische Technische Hochschule, Aachen, Germany, 2004.
[CCN+85]
  J[ohn] H. Conway, R[obert] T. Curtis, S[imon] P. Norton, R[ichard] A. Parker, and R[obert] A. Wilson, Atlas of finite groups, Oxford University Press, 1985.
[GAP04]
  The GAP Group, GAP - Groups, Algorithms, and Programming, Version 4.4, 2004, `http://www.gap-system.org`.
[LW91]
  Stephen A. Linton and Robert A. Wilson, The maximal subgroups of the Fischer groups Fi24 and Fi′24, Proc. London Math. Soc. (3) 63 (1991), no. 1, 113-164.
[Wil]
  Robert A. Wilson, ATLAS of Finite Group Representations, `http://www.mat.bham.ac.uk/atlas/`.
[Wil99]
  Robert A. Wilson, The maximal subgroups of the Baby Monster, I, J. Algebra 211 (1999), 1-14.

File translated from TEX by TTH, version 3.55.
On 31 Mar 2004, 10:53.