GAP (CTblLibXpls) - Chapter 9: Ambiguous Class Fusions in the GAP Character Table Library

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

9 Ambiguous Class Fusions in the GAP Character Table Library
9.1 Some GAP Utilities
9.2 Fusions Determined by Factorization through Intermediate Subgroups
9.2-1 \(Co_3N5 \rightarrow Co_3\) (September 2002)
9.2-2 \(31:15 \rightarrow B\) (March 2003)
9.2-3 \(SuzN3 \rightarrow Suz\) (September 2002)
9.2-4 \(F_{{3+}}N5 \rightarrow F_{{3+}}\) (March 2002)
9.3 Fusions Determined Using Commutative Diagrams Involving Smaller Subgroups
9.3-1 \(BN7 \rightarrow B\) (March 2002)
9.3-2 \((A_4 \times O_8^+(2).3).2 \rightarrow Fi_{24}^{\prime}\) (November 2002)
9.3-3 \(A_6 \times L_2(8).3 \rightarrow Fi_{24}^{\prime}\) (November 2002)
9.3-4 \((3^2:D_8 \times U_4(3).2^2).2 \rightarrow B\) (June 2007)
9.3-5 \(7^{1+4}:(3 \times 2.S_7) \rightarrow M\) (May 2009)
9.3-6 \(3^7.O_7(3):2 \rightarrow Fi_{24}\) (November 2010)
9.3-7 \({}^2E_6(2)N3C \rightarrow {}^2E_6(2)\) (January 2019)
9.4 Fusions Determined Using Commutative Diagrams Involving Factor Groups
9.4-1 \(3.A_7 \rightarrow 3.Suz\) (December 2010)
9.4-2 \(S_6 \rightarrow U_4(2)\) (September 2011)
9.5 Fusions Determined Using Commutative Diagrams Involving Automorphic Extensions
9.5-1 \(U_3(8).3_1 \rightarrow {}^2E_6(2)\) (December 2010)
9.5-2 \(L_3(4).2_1 \rightarrow U_6(2)\) (December 2010)
9.6 Conditions Imposed by Brauer Tables
9.6-1 \(L_2(16).4 \rightarrow J_3.2\) (January 2004)
9.6-2 \(L_2(17) \rightarrow S_8(2)\) (July 2004)
9.6-3 \(L_2(19) \rightarrow J_3\) (April 2003)
9.7 Fusions Determined by Information about the Groups
9.7-1 \(U_3(3).2 \rightarrow Fi_{24}^{\prime}\) (November 2002)
9.7-2 \(L_2(13).2 \rightarrow Fi_{24}^{\prime}\) (September 2002)
9.7-3 \(M_{11} \rightarrow B\) (April 2009)
9.7-4 \(L_2(11):2 \rightarrow B\) (April 2009)
9.7-5 \(L_3(3) \rightarrow B\) (April 2009)
9.7-6 \(L_2(17).2 \rightarrow B\) (March 2004)
9.7-7 \(L_2(49).2_3 \rightarrow B\) (June 2006)
9.7-8 \(2^3.L_3(2) \rightarrow G_2(5)\) (January 2004)
9.7-9 \(5^{{1+4}}.2^{{1+4}}.A_5.4 \rightarrow B\) (April 2009)
9.7-10 The fusion from the character table of \(7^2:2L_2(7).2\) into the table of marks (January 2004)
9.7-11 \(3 \times U_4(2) \rightarrow 3_1.U_4(3)\) (March 2010)
9.7-12 \(2.3^4.2^3.S_4 \rightarrow 2.A12\) (September 2011)
9.7-13 \(127:7 \rightarrow L_7(2)\) (January 2012)
9.7-14 \(L_2(59) \rightarrow M\) (May 2009)
9.7-15 \(L_2(71) \rightarrow M\) (May 2009)
9.7-16 \(L_2(41) \rightarrow M\) (April 2012)

### 9 Ambiguous Class Fusions in the GAP Character Table Library

Date: January 11th, 2004

This is a collection of examples showing how class fusions between character tables can be determined using the GAP system [GAP21]. 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` (Reference: 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 [Bre22].

The examples use the GAP Character Table Library, so we first load this package.

    gap> LoadPackage( "ctbllib", false );
    true

#### 9.1 Some GAP Utilities

The function `SetOfComposedClassFusions` takes two list of class fusions, where the first list consists of fusions between the character tables of the groups \(H\) and \(G\), say, and the second list consists of class fusions between the character tables of the groups \(U\) and \(H\), say; the return value is the set of compositions of each map in the first list with each map in the second list (via `CompositionMaps` (Reference: CompositionMaps)).

Note that the returned list may be a proper subset of the set of all possible class fusions between \(U\) and \(G\), which can be computed with `PossibleClassFusions` (Reference: PossibleClassFusions).

    gap> SetOfComposedClassFusions:= function( hfusg, ufush )
    >     local result, map1, map2;
    >     result:= [];;
    >     for map2 in hfusg do
    >       for map1 in ufush do
    >         AddSet( result, CompositionMaps( map2, map1 ) );
    >       od;
    >     od;
    >     return result;
    > end;;

#### 9.2 Fusions Determined by Factorization through Intermediate Subgroups

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

##### 9.2-1 \(Co_3N5 \rightarrow Co_3\) (September 2002)

Let \(H\) be the Sylow \(5\) normalizer in the sporadic simple group \(Co_3\). The class fusion of \(H\) into \(Co_3\) 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 \(Co_3\), we look at those maximal subgroups of \(Co_3\) 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", "L3(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 \(U_3(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 \(U_3(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 \(Co_3\), and then form the compositions of these maps.

    gap> max:= filt[1];;
    gap> hfusmax:= PossibleClassFusions( h, max );;
    gap> maxfusco3:= PossibleClassFusions( max, co3 );;
    gap> comp:= SetOfComposedClassFusions( maxfusco3, hfusmax );;
    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 \(Co_3\) uniquely up to table automorphisms.

Alternatively, we can use the group \(U_3(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:= SetOfComposedClassFusions( maxfusco3, hfusmax );;
    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

##### 9.2-2 \(31:15 \rightarrow 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:= SetOfComposedClassFusions( thfusb, hfusth );;
    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

##### 9.2-3 \(SuzN3 \rightarrow 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 \(3_2.U_4(3).2_3^{\prime}\) does not admit a fusion from \(H\).

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

Definitely \(3^5:M_{11}\) contains a group isomorphic with \(H\), because the Sylow \(3\) normalizer in \(M_{11}\) has the structure \(3^2:SD_{16}\); using \(3^{2+4}:2(2^2 \times A_4)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:= SetOfComposedClassFusions( maxfussuz, hfusmax );;
    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

##### 9.2-4 \(F_{{3+}}N5 \rightarrow F_{{3+}}\) (March 2002)

The class fusion from the table of the Sylow \(5\) normalizer \(H\) in the sporadic simple group \(F_{{3+}}\) into \(F_{{3+}}\) 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 \(F_{{3+}}\), 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 \(F_{{3+}}\) that might contain \(H\), only the group of type \((A_4 \times O_8^+(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 \(F_{{3+}}\).

    gap> max:= filt[5];
    CharacterTable( "(A4xO8+(2).3).2" )
    gap> hfusmax:= possfus[5];;
    gap> maxfusf3p:= PossibleClassFusions( max, f3p );;
    gap> comp:= SetOfComposedClassFusions( maxfusf3p, hfusmax );;
    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 \((A_4 \times O_8^+(2).3).2\) into \(F_{{3+}}\) up to table automorphisms (see Section 9.3-2 for this problem), since also the ambiguous result was enough for computing the fusion from \(H\) into \(F_{{3+}}\).

#### 9.3 Fusions Determined Using Commutative Diagrams Involving Smaller Subgroups

In each of the following examples, the class fusion of a (not necessarily maximal) subgroup \(M\) of a group \(G\) into \(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\).

##### 9.3-1 \(BN7 \rightarrow B\) (March 2002)

Let \(H\) be a Sylow \(7\) normalizer in the sporadic simple group \(B\). The class fusion of \(H\) into \(B\) is not uniquely determined by the character tables of the two groups.

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

Let us consider a maximal subgroup of the type \(Th\) in \(B\) (cf. [CCN+85, p. 217]). By [CCN+85, p. 177], the Sylow \(7\) normalizers in \(Th\) are maximal subgroups of \(Th\) and have the structure \(7^2:(3 \times 2S_4)\). Let \(U\) be such a subgroup.

Note that the only maximal subgroups of \(Th\) whose order is divisible by the order of a Sylow \(7\) subgroup of \(B\) have the types \({}^3D_4(2).3\) and \(7^2:(3 \times 2S_4)\), and the Sylow \(7\) normalizers in the former groups have the structure \(7^2:(3 \times 2A_4)\), cf. [CCN+85, p. 89].

    gap> Number( Factors( Size( b ) ), x -> x = 7 );
    2
    gap> th:= CharacterTable( "Th" );
    CharacterTable( "Th" )
    gap> Filtered( Maxes( th ), x -> Size( CharacterTable( x ) ) mod 7^2 = 0 );
    [ "3D4(2).3", "7^2:(3x2S4)" ]

The class fusion of \(U\) into \(B\) via \(Th\) is uniquely determined by the character tables of these groups.

    gap> thn7:= CharacterTable( "ThN7" );
    CharacterTable( "7^2:(3x2S4)" )
    gap> comp:= SetOfComposedClassFusions( PossibleClassFusions( th, b ),
    >               PossibleClassFusions( thn7, th ) );
    [ [ 1, 31, 7, 7, 5, 28, 28, 17, 72, 72, 6, 6, 7, 28, 27, 27, 109,
          109, 17, 45, 45, 72, 72, 127, 127, 127, 127 ] ]

The condition that the class fusion of \(U\) into \(B\) factors through \(H\) determines the class fusion of \(H\) into \(B\) up to table automorphisms.

    gap> thn7fush:= PossibleClassFusions( thn7, h );;
    gap> filt:= Filtered( hfusb, x ->
    >               ForAny( thn7fush, y -> CompositionMaps( x, y ) in comp ) );;
    gap> Length( RepresentativesFusions( h, filt, b ) );
    1

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

    gap> GetFusionMap( h, b ) in filt;
    true

##### 9.3-2 \((A_4 \times O_8^+(2).3).2 \rightarrow Fi_{24}^{\prime}\) (November 2002)

The class fusion of the maximal subgroup \(M \cong (A_4 \times O_8^+(2).3).2\) of \(G = Fi_{24}^{\prime}\) 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 \(A_4\) in \(M\) lie in the class `3A` of \(Fi_{24}^{\prime}\).

    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 \times O_8^+(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 \(N_M(g) = S \cap M\) contains a subgroup \(U\) of the type \(3 \times O_8^+(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:= SetOfComposedClassFusions( sfust, ufuss );;
    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.

##### 9.3-3 \(A_6 \times L_2(8).3 \rightarrow Fi_{24}^{\prime}\) (November 2002)

The class fusion of the maximal subgroup \(M \cong A_6 \times L_2(8).3\) of \(G = Fi_{24}^{\prime}\) 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 \(A_6\) 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 \(A_6\) has the form \(3^2:2\), such a `3A` element in \(M\) contains a subgroup \(U\) of the structure \(3^2:2 \times L_2(8).3\) which is contained in the `3A` normalizer \(S\) in \(G\), which has the structure \((3 \times O_8^+(3).3).2\).

(Note that all classes in the \(3^2: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:= SetOfComposedClassFusions( sfust, ufuss );;
    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

##### 9.3-4 \((3^2:D_8 \times U_4(3).2^2).2 \rightarrow B\) (June 2007)

Let \(G\) be a maximal subgroup of the type \((3^2:D_8 \times U_4(3).2^2).2\) in the sporadic simple group \(B\), cf. [CCN+85, p. 217]. Computing the class fusion of \(G\) into \(B\) just from the character tables of the two groups takes extremely long. So we use additional information.

According to [CCN+85, p. 217], \(G\) is the normalizer in \(B\) of an elementary abelian group \(\langle x, y \rangle\) of order \(9\), with \(x, y\) in the class `3A` of \(B\), and \(N = N_B(\langle x \rangle)\) has the structure \(S_3 \times Fi_{22}.2\). The intersection \(G \cap N\) has the structure \(S_3 \times S_3 \times U_4(3).2^2\), which is the direct product of \(S_3\) and the normalizer in \(Fi_{22}.2\) of a `3A` element of \(Fi_{22}.2\), see [CCN+85, p. 163]. Thus we may use that the class fusions from \(G \cap N\) into \(B\) through \(G\) or \(N\) coincide.

The class fusion from \(N\) into \(B\) is uniquely determined by the character tables.

    gap> b:= CharacterTable( "B" );;
    gap> n:= CharacterTable( "BN3A" );
    CharacterTable( "S3xFi22.2" )
    gap> nfusb:= PossibleClassFusions( n, b );;
    gap> Length( nfusb );
    1
    gap> nfusb:= nfusb[1];;

The computation of the class fusion from \(G \cap N\) into \(N\) is sped up by computing first the class fusion modulo the direct factor \(S_3\), and then lifting these fusion maps.

    gap> fi222:= CharacterTable( "Fi22.2" );;
    gap> fi222n3a:= CharacterTable( "S3xU4(3).(2^2)_{122}" );;
    gap> s3:= CharacterTable( "S3" );;
    gap> inter:= s3 * fi222n3a;;
    gap> intermods3fusnmods3:= PossibleClassFusions( fi222n3a, fi222 );;
    gap> Length( intermods3fusnmods3 );
    2
    gap> Length( RepresentativesFusions( fi222n3a, intermods3fusnmods3, fi222 ) );
    1

We get two equivalent possibilities, and need to consider only one of them. For lifting it to a map between \(G \cap N\) and \(N\), the safe way is to use the fusion map between the two factors for computing an approximation. (Additionally, we could interpret the known maps as fusions between two subgroups, and use this for improving the approximation, but in this case the speedup is not worth the effort.)

    gap> interfusn:= CompositionMaps( InverseMap( GetFusionMap( n, fi222 ) ),
    >        CompositionMaps( intermods3fusnmods3[1],
    >            GetFusionMap( inter, fi222n3a ) ) );;
    gap> interfusn:= PossibleClassFusions( inter, n,
    >        rec( fusionmap:= interfusn, quick:= true ) );;
    gap> Length( interfusn );
    1

The lift is unique. Since we lift a class fusion to direct products, we could also "extend" the fusion directly. But note that this would assume the ordering of classes in character tables of direct products. This alternative would work as follows.

    gap> nccl:= NrConjugacyClasses( fi222 );;
    gap> interfusn[1] = Concatenation( List( [ 0 .. 2 ],
    >                       i -> intermods3fusnmods3[1] + i * nccl ) );
    true

Next we compute the class fusions from \(G \cap N\) to \(G\). We get two equivalent solutions.

    gap> tblg:= CharacterTable( "BM14" );
    CharacterTable( "(3^2:D8xU4(3).2^2).2" )
    gap> interfusg:= PossibleClassFusions( inter, tblg );;
    gap> Length( interfusg );
    2
    gap> Length( RepresentativesFusions( inter, interfusg, tblg ) );
    1

The approximation of the class fusion from \(G\) to \(B\) is computed by composing the known maps. Because we have chosen one of the two possible maps from \(G \cap N\) to \(N\), here we consider the two possibilities. From these approximations, we compute the possible class fusions.

    gap> interfusb:= CompositionMaps( nfusb, interfusn[1] );;
    gap> approx:= List( interfusg,
    >        map -> CompositionMaps( interfusb, InverseMap( map ) ) );;
    gap> gfusb:= Set( Concatenation( List( approx,
    >                     map -> PossibleClassFusions( tblg, b,
    >                                rec( fusionmap:= map ) ) ) ) );;
    gap> Length( gfusb );
    4
    gap> Length( RepresentativesFusions( tblg, gfusb, b ) );
    1

Finally, we compare the result with the class fusion that is stored on the library table.

    gap> GetFusionMap( tblg, b ) in gfusb;
    true

##### 9.3-5 \(7^{1+4}:(3 \times 2.S_7) \rightarrow M\) (May 2009)

The class fusion of the maximal subgroup \(U\) of type \(7^{1+4}:(3 \times 2.S_7)\) of the Monster group \(M\) into \(M\) is ambiguous.

    gap> tblu:= CharacterTable( "7^(1+4):(3x2.S7)" );;
    gap> m:= CharacterTable( "M" );;
    gap> ufusm:= PossibleClassFusions( tblu, m );;
    gap> Length( RepresentativesFusions( tblu, ufusm, m ) );
    2

The subgroup \(U\) contains a Sylow \(7\)-subgroup of \(M\), and the only maximal subgroups of \(M\) with this property are the class of \(U\) and another class of subgroups, of the type \(7^{2+1+2}:GL_2(7)\). Moreover, it turns out that the Sylow \(7\) normalizers in the subgroups in both classes have the same order, hence they are the Sylow \(7\) normalizers in \(M\).

For that, we use representations from the Atlas of Group Representations [WWT+], and access these representations via the GAP package AtlasRep ([WPN+19]).

    gap> LoadPackage( "atlasrep", false );
    true
    gap> g1:= AtlasGroup( "7^(2+1+2):GL2(7)" );;
    gap> s1:= SylowSubgroup( g1, 7 );;
    gap> n1:= Normalizer( g1, s1 );;
    gap> g2:= AtlasGroup( "7^(1+4):(3x2.S7)" );;
    gap> s2:= SylowSubgroup( g2, 7 );;
    gap> n2:= Normalizer( g2, s2 );;
    gap> Size( n1 ) = Size( n2 );
    true
    gap> ( Size( m ) / Size( s1 ) ) mod 7 <> 0;
    true

So let \(N\) be a Sylow \(7\) normalizer in \(U\), and choose a subgroup \(S\) of the type \(7^{2+1+2}:GL_2(7)\) that contains \(N\).

We compute the character table of \(N\). Computing the possible class fusions of \(N\) into \(M\) directly yields two possibilities, but the class fusion of \(N\) into \(M\) via \(S\) is uniquely determined by the character tables.

    gap> tbln:= CharacterTable( Image( IsomorphismPcGroup( n1 ) ) );;
    gap> tbls:= CharacterTable( "7^(2+1+2):GL2(7)" );;
    gap> nfusm:= PossibleClassFusions( tbln, m );;
    gap> Length( RepresentativesFusions( tbln, nfusm, m ) );
    2
    gap> nfuss:= PossibleClassFusions( tbln, tbls );;
    gap> sfusm:= PossibleClassFusions( tbls, m );;
    gap> nfusm:= SetOfComposedClassFusions( sfusm, nfuss );;
    gap> Length( nfusm );
    1

Now we use the condition that the class fusions from \(N\) into \(M\) factors through \(U\). This determines the class fusion of \(U\) into \(M\) up to table automorphisms.

    gap> nfusu:= PossibleClassFusions( tbln, tblu );;
    gap> ufusm:= Filtered( ufusm, map2 -> ForAny( nfusu,
    >        map1 -> CompositionMaps( map2, map1 ) in nfusm ) );;
    gap> Length( RepresentativesFusions( tblu, ufusm, m ) );
    1

Let \(C\) be the centralizer in \(U\) of the normal subgroup of order \(7\); note that \(C\) is the `7B` centralizer on \(M\). We can use the information about the class fusion of \(U\) into \(M\) for determining the class fusion of \(C\) into \(M\). The class fusion of \(C\) into \(M\) is not determined by the character tables, but the class fusion of \(C\) into \(U\) is determined up to table automorphisms, so the same holds for the class fusion of \(C\) into \(M\).

    gap> tblc:= CharacterTable( "MC7B" );
    CharacterTable( "7^1+4.2A7" )
    gap> cfusm:= PossibleClassFusions( tblc, m );;
    gap> Length( RepresentativesFusions( tblc, cfusm, m ) );
    2
    gap> cfusu:= PossibleClassFusions( tblc, tblu );;
    gap> cfusm:= SetOfComposedClassFusions( ufusm, cfusu );;
    gap> Length( RepresentativesFusions( tblc, cfusm, m ) );
    1

##### 9.3-6 \(3^7.O_7(3):2 \rightarrow Fi_{24}\) (November 2010)

The class fusion of the maximal subgroup \(M \cong 3^7.O_7(3):2\) of \(G = Fi_{24} = F_{{3+}}.2\) is ambiguous.

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

We will use the fact that the elementary abelian normal subgroup of order \(3^7\) in \(M\) contains an element \(x\), say, in the class `3A` of \(G\). This fact can be shown as follows.

    gap> nsg:= ClassPositionsOfNormalSubgroups( m );
    [ [ 1 ], [ 1 .. 4 ], [ 1 .. 158 ], [ 1 .. 291 ] ]
    gap> Sum( SizesConjugacyClasses( m ){ nsg[2] } );
    2187
    gap> 3^7;
    2187
    gap> rest:= Set( mfust, map -> map{ nsg[2] } );
    [ [ 1, 4, 5, 6 ] ]
    gap> List( rest, l -> ClassNames( t, "Atlas" ){ l } );
    [ [ "1A", "3A", "3B", "3C" ] ]

The normalizer \(S\) of \(\langle x \rangle\) in \(G\) has the form \(S_3 \times O_8^+(3):S_3\), and the order of \(U = S \cap M = N_M( \langle x \rangle)\) is \(53059069440\), so \(U\) has index \(3360\) in \(S\).

    gap> s:= CharacterTable( "F3+.2N3A" );
    CharacterTable( "S3xO8+(3):S3" )
    gap> PowerMap( m, 2 )[4];
    4
    gap> size_u:= 2 * SizesCentralizers( m )[ 2 ];
    53059069440
    gap> Size( s ) / size_u;
    3360

Using the list of maximal subgroups of \(O_8^+(3)\), we see that only the maximal subgroups of the type \(3^6:L_4(3)\) have index dividing \(3360\) in \(O_8^+(3)\). (There are three classes of such subgroups.) This implies that \(U\) contains a subgroup of the type \(S_3 \times 3^6:L_4(3)\).

    gap> o8p3:= CharacterTable( "O8+(3)" );;
    gap> mx:= List( Maxes( o8p3 ), CharacterTable );;
    gap> filt:= Filtered( mx, x -> 3360 mod Index( o8p3, x ) = 0 );
    [ CharacterTable( "3^6:L4(3)" ), CharacterTable( "O8+(3)M8" ),
      CharacterTable( "O8+(3)M9" ) ]
    gap> List( filt, x -> Index( o8p3, x ) );
    [ 1120, 1120, 1120 ]

We compute the possible class fusions from \(U\) into \(M\) and \(S\) in two steps, because this is faster. First the possible class fusions from \(U^{\prime\prime} \cong 3^6:L_4(3)\) into \(M\) and \(S\) are computed, and then these fusions are used to derive approximations for the fusions from \(U\) into \(M\) and \(S\).

    gap> uu:= filt[1];;
    gap> u:= CharacterTable( "Symmetric", 3 ) * uu;
    CharacterTable( "Sym(3)x3^6:L4(3)" )
    gap> uufusm:= PossibleClassFusions( uu, m );;
    gap> Length( uufusm );
    8
    gap> approx:= List( uufusm, map -> CompositionMaps( map,
    >                   InverseMap( GetFusionMap( uu, u ) ) ) );;
    gap> ufusm:= Concatenation( List( approx, map ->
    >        PossibleClassFusions( u, m, rec( fusionmap:= map ) ) ) );;
    gap> Length( ufusm );
    8
    gap> uufuss:= PossibleClassFusions( uu, s );;
    gap> Length( uufuss );
    8
    gap> approx:= List( uufuss, map -> CompositionMaps( map,
    >              InverseMap( GetFusionMap( uu, u ) ) ) );;
    gap> ufuss:= Concatenation( List( approx, map ->
    >   PossibleClassFusions( u, s, rec( fusionmap:= map ) ) ) );;
    gap> Length( ufuss );
    8

Now we compute the possible class fusions from \(S\) into \(G\), and the compositions of these maps with the possible class fusions from \(U\) into \(S\).

    gap> sfust:= PossibleClassFusions( s, t );;
    gap> comp:= SetOfComposedClassFusions( sfust, ufuss );;
    gap> Length( comp );
    8

It turns out that only one orbit of the possible class fusions from \(M\) to \(G\) is compatible with these possible class fusions from \(U\) to \(G\).

    gap> filt:= Filtered( mfust, map2 -> ForAny( ufusm, map1 ->
    >        CompositionMaps( map2, map1 ) in comp ) );;
    gap> Length( filt );
    4
    gap> Length( RepresentativesFusions( m, filt, t ) );
    1

The class fusion stored in the GAP Character Table Library is one of them.

    gap> GetFusionMap( m, t ) in filt;
    true

##### 9.3-7 \({}^2E_6(2)N3C \rightarrow {}^2E_6(2)\) (January 2019)

Let \(G = {}^2E_6(2)\), and \(g \in G\) in the conjugacy class `3C`. Using a permutation representation of \(G\), Frank Lübeck has computed a representation and the character table of the maximal subgroup \(N = N_G(\langle g \rangle)\) of \(G\).

    gap> t:= CharacterTable( "2E6(2)" );;
    gap> pos3CinG:= Position( ClassNames( t ), "3c" );
    7
    gap> n:= CharacterTable( "2E6(2)N3C" );;
    gap> nclasses:= SizesConjugacyClasses( n );;
    gap> pos3CinN:= Filtered( [ 1 .. NrConjugacyClasses( n ) ],
    >                         i -> nclasses[i] = 2 );
    [ 2 ]
    gap> nfust:= PossibleClassFusions( n, t );;
    gap> ForAll( nfust, x -> x[ pos3CinN[1] ] = pos3CinG );
    true
    gap> Size( n ) = 2 * SizesCentralizers( t )[ pos3CinG ];
    true
    gap> ForAll( Irr( n ), x -> IsInt( x[ pos3CinN[1] ] ) );
    true

The class fusion of \(N\) in \(G\) is ambiguous.

    gap> rep:= RepresentativesFusions( n, nfust, t );;
    gap> Length( rep );
    4

We use the fact that \(g\) is contained in a subgroup \(S \cong Fi_{22}\) of \(G\), \(\ldots\)

    gap> s:= CharacterTable( "Fi22" );;
    gap> sfust:= PossibleClassFusions( s, t );;
    gap> ForAll( sfust, x -> x[6] = pos3CinG );
    true
    gap> pos3CinS:= 6;;

\(\ldots\) and that \(U = N_S(\langle g \rangle) \cong 3^{1+6}:2^{3+4}:3^2:2\) is a maximal subgroup of \(S\) whose character table is available. Thus \(U \leq N\), of index four.

    gap> u:= CharacterTable( Maxes( s )[11] );
    CharacterTable( "3^(1+6):2^(3+4):3^2:2" )
    gap> uclasses:= SizesConjugacyClasses( u );;
    gap> pos3CinU:= Filtered( [ 1 .. NrConjugacyClasses( u ) ],
    >                         i -> uclasses[i] = 2 );
    [ 2 ]
    gap> ufuss:= PossibleClassFusions( u, s );;
    gap> ForAll( ufuss, x -> x[ pos3CinU[1] ] = pos3CinS );
    true
    gap> Size( n ) / Size( u );
    4

Composing the class fusions of \(U\) in \(N\) and \(N\) in \(G\) must be equal to the composition of the class fusions of \(U\) in \(S\) and \(S\) in \(G\). This reduces the number of candidates for the fusion of \(N\) in \(G\) from four to two.

    gap> ufusn:= PossibleClassFusions( u, n );;
    gap> comp:= SetOfComposedClassFusions( sfust, ufuss );;
    gap> good:= Filtered( nfust, map2 -> ForAny( ufusn,
    >               map1 -> CompositionMaps( map2, map1 ) in comp ) );;
    gap> Length( good );
    1728
    gap> goodrep:= RepresentativesFusions( n, good, t );;
    gap> Length( goodrep );
    2

Next we use the fact that \(g\) and thus \(N\) is invariant under an outer automorphism \(\alpha\), say, of order three of \(G\). Note that such an automorphism acts nontrivially on the conjugacy classes of \(G\), for example because the class fusion of \(G\) into \(G.3 = \langle G, \alpha \rangle\) shows the existence of orbits of length three, and that the permutation action of \(\alpha\) on the classes of \(G\) is given by the unique subgroup of order three in the group of table automorphisms of \(G\).

    gap> tfust3:= GetFusionMap( t, CharacterTable( "2E6(2).3" ) );;
    gap> Number( InverseMap( tfust3 ), IsList );
    14
    gap> autt:= AutomorphismsOfTable( t );;
    gap> ord3:= Filtered( autt, x -> Order( x ) = 3 );;
    gap> Length( ord3 );
    2
    gap> alpha:= ord3[1];;
    gap> pos3CinG ^ alpha = pos3CinG;
    true

The character table of \(N\) has \(26\) table automorphisms of order three. We do not know which of them (or perhaps the identity permutation) is induced by the restriction \(\alpha_N\) of \(\alpha\) to \(N\), but the embedding \(\iota\colon N \rightarrow G\) satisfies \(\alpha \circ \iota = \iota \circ \alpha_N\), and we can check each fusion candidate for the existence of a candidate for \(\alpha_N\) such that this relation holds.

    gap> autn:= AutomorphismsOfTable( n );;
    gap> ord3:= Filtered( autn, x -> Order( x ) = 3 );;
    gap> Length( ord3 );
    26
    gap> Add( ord3, () );
    gap> filt:= Filtered( rep, map -> ForAny( ord3, beta ->
    > OnTuples( map, alpha ) = Permuted( map, beta ) ) );;
    gap> Length( filt );
    2

Again, the number of candidates for the fusion of \(N\) in \(G\) is reduced from four to two. Moreover, we are lucky because only one candidate satifies also the first criterion we have checked.

    gap> inter:= Intersection( good, filt );
    [ [ 1, 7, 5, 6, 7, 2, 3, 4, 27, 30, 24, 32, 25, 26, 9, 11, 12, 13,
          10, 14, 19, 19, 19, 16, 17, 18, 21, 58, 61, 62, 67, 68, 69, 57,
          72, 59, 75, 76, 77, 78, 79, 80, 64, 65, 66, 60, 81, 82, 5, 6,
          7, 6, 7, 7, 7, 7, 6, 7, 6, 7, 7, 24, 25, 27, 26, 28, 30, 29,
          31, 32, 31, 32, 32, 32, 32, 31, 32, 31, 32, 51, 52, 52, 52, 52,
          74, 76, 77, 77, 75, 74, 76, 74, 75, 99, 100, 101, 102, 4, 20,
          29, 31, 32, 36, 36, 42, 42, 39, 40, 41, 49, 49, 49, 49, 49, 49,
          71, 112, 112, 114, 115, 116 ] ]

The class fusion stored in the GAP Character Table Library is this candidate.

    gap> GetFusionMap( n, t ) = inter[1];
    true

Remark:

Note that the structure of \(N\) is \(3^{1+6}:2^{3+6}:3^2:2\), as is stated in [Nor]. The structure \(3^{1+6}.2^{3+6}.(S_3 \times 3)\) claimed in the Atlas [CCN+85, p. 191] is wrong, as we can read off for example from the fact that \(N\) has exactly two linear characters.

    gap> Length( LinearCharacters( n ) );
    2

#### 9.4 Fusions Determined Using Commutative Diagrams Involving Factor Groups

##### 9.4-1 \(3.A_7 \rightarrow 3.Suz\) (December 2010)

The maximal subgroups of type \(A_7\) in the sporadic simple Suzuki group \(Suz\) lift to groups of the type \(3.A_7\) in \(3.Suz\). This can be seen from the fact that \(3.Suz\) does not admit a class fusion from \(A_7\).

    gap> t:= CharacterTable( "Suz" );;
    gap> 3t:= CharacterTable( "3.Suz" );;
    gap> s:= CharacterTable( "A7" );;
    gap> 3s:= CharacterTable( "3.A7" );;
    gap> PossibleClassFusions( s, 3t );
    [  ]

The class fusion of \(3.A_7\) into \(3.Suz\) is ambiguous.

    gap> 3sfus3t:= PossibleClassFusions( 3s, 3t );;
    gap> Length( 3sfus3t );
    6
    gap> RepresentativesFusions( 3s, 3sfus3t, 3t );
    [ [ 1, 2, 3, 7, 8, 9, 16, 16, 26, 27, 28, 32, 33, 34, 47, 47, 47, 48,
          49, 50, 48, 49, 50 ],
      [ 1, 11, 12, 4, 36, 37, 13, 16, 23, 82, 83, 32, 100, 101, 44, 38,
          41, 48, 112, 116, 48, 115, 113 ] ]
    gap> ClassPositionsOfCentre( 3t );
    [ 1, 2, 3 ]

We see that the possible fusions in the second orbit avoid the centre of \(3.Suz\). Since the preimages in \(3.Suz\) of the \(A_7\) type subgroups of \(Suz\) contain the centre of \(3.Suz\), we know that the class fusion of these preimages belong to the first orbit. This can be formalized by checking the commutativity of the diagram of fusions between \(3.A_7\), \(3.Suz\), and their factors \(A_7\) and \(Suz\).

    gap> sfust:= PossibleClassFusions( s, t );;
    gap> Length( sfust );
    1
    gap> filt:= Filtered( 3sfus3t, map -> CompositionMaps( GetFusionMap( 3t, t ),
    >                                         map )
    >               = CompositionMaps( sfust[1], GetFusionMap( 3s, s ) ) );
    [ [ 1, 2, 3, 7, 8, 9, 16, 16, 26, 27, 28, 32, 33, 34, 47, 47, 47, 48,
          49, 50, 48, 49, 50 ],
      [ 1, 3, 2, 7, 9, 8, 16, 16, 26, 28, 27, 32, 34, 33, 47, 47, 47, 48,
          50, 49, 48, 50, 49 ] ]

So the class fusion of maximal \(3.A_7\) type subgroups of \(3.Suz\) is determined up to table automorphisms. One of these fusions is stored on the table of \(3.A_7\).

    gap> RepresentativesFusions( 3s, filt, 3t );
    [ [ 1, 2, 3, 7, 8, 9, 16, 16, 26, 27, 28, 32, 33, 34, 47, 47, 47, 48,
          49, 50, 48, 49, 50 ] ]
    gap> GetFusionMap( 3s, 3t ) in filt;
    true

Also the class fusions in the other orbit belong to subgroups of type \(3.A_7\) in \(3.Suz\). Note that \(Suz\) contains maximal subgroups of the type \(3_2.U_4(3).2_3^{\prime}\) (see [CCN+85, p. 131]), and the \(A_7\) type subgroups of \(U_4(3)\) (see [CCN+85, p. 52]) lift to groups of the type \(3.A_7\) in \(3_2.U_4(3)\) because \(3_2.U_4(3)\) does not admit a class fusion from \(A_7\). The preimages in \(3.Suz\) of the \(3.A_7\) type subgroups of \(Suz\) have the structure \(3 \times 3.A_7\).

    gap> u:= CharacterTable( "3_2.U4(3)" );;
    gap> PossibleClassFusions( s, u );
    [  ]
    gap> Length( PossibleClassFusions( 3s, u ) );
    8

##### 9.4-2 \(S_6 \rightarrow U_4(2)\) (September 2011)

The simple group \(G = U_4(2)\) contains a maximal subgroup \(U\) of type \(S_6\). The class fusion from \(U\) to \(G\) is unique up to table automorphisms.

    gap> s:= CharacterTable( "S6" );
    CharacterTable( "A6.2_1" )
    gap> t:= CharacterTable( "U4(2)" );
    CharacterTable( "U4(2)" )
    gap> sfust:= PossibleClassFusions( s, t );
    [ [ 1, 3, 6, 7, 9, 10, 3, 2, 9, 16, 15 ],
      [ 1, 3, 7, 6, 9, 10, 2, 3, 9, 15, 16 ] ]
    gap> Length( RepresentativesFusions( s, sfust, t ) );
    1

In the double cover \(2.G\) of \(G\), \(U\) lifts to the double cover \(2.U\) of \(U\) (which is unique up to isomorphism). Also the class fusion from \(2.U\) to \(2.G\) is unique up to table automorphisms.

    gap> 2t:= CharacterTable( "2.U4(2)" );
    CharacterTable( "2.U4(2)" )
    gap> 2s:= CharacterTable( "2.A6.2_1" );
    CharacterTable( "2.A6.2_1" )
    gap> 2sfus2t:= PossibleClassFusions( 2s, 2t );
    [ [ 1, 2, 4, 11, 12, 9, 10, 15, 16, 17, 3, 4, 15, 24, 25, 26, 26 ],
      [ 1, 2, 4, 11, 12, 9, 10, 15, 16, 17, 3, 4, 15, 25, 24, 26, 26 ] ]
    gap> Length( RepresentativesFusions( 2s, 2sfus2t, 2t ) );
    1

However, the two possible fusions from \(2.U\) to \(2.G\) are lifts of the same class fusion from \(U\) to \(G\).

    gap> 2sfuss:= GetFusionMap( 2s, s );
    [ 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 10, 11, 11 ]
    gap> 2tfust:= GetFusionMap( 2t, t );;
    gap> induced:= Set( 2sfus2t, x -> CompositionMaps( 2tfust,
    >      CompositionMaps( x, InverseMap( 2sfuss ) ) ) );
    [ [ 1, 3, 7, 6, 9, 10, 2, 3, 9, 15, 16 ] ]

The point is that the outer automorphism of \(S_6\) that makes the two fusions from \(U\) to \(G\) equivalent does not lift to \(2.U\), and that we have silently assumed a fixed factor fusion from \(2.U\) to \(U\). Note that composing this factor fusion with the automorphism of \(U\) would also yield a factor fusion, and w. r. t. the commutative diagram involving this factor fusion, the other possible class fusion from \(U\) to \(G\) is induced by the possible fusions from \(2.U\) to \(2.G\).

    gap> auts:= AutomorphismsOfTable( s );
    Group([ (3,4)(7,8)(10,11) ])
    gap> other:= OnTuples( 2sfuss, GeneratorsOfGroup( auts )[1] );
    [ 1, 1, 2, 4, 4, 3, 3, 5, 6, 6, 8, 7, 9, 11, 11, 10, 10 ]
    gap> Set( 2sfus2t, x -> CompositionMaps( 2tfust,
    >      CompositionMaps( x, InverseMap( other ) ) ) );
    [ [ 1, 3, 6, 7, 9, 10, 3, 2, 9, 16, 15 ] ]

The library table of \(U\) stores the class fusion to \(G\) that is compatible with the stored factor fusion from \(2.U\) to \(U\).

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

#### 9.5 Fusions Determined Using Commutative Diagrams Involving Automorphic Extensions

##### 9.5-1 \(U_3(8).3_1 \rightarrow {}^2E_6(2)\) (December 2010)

According to the Atlas (see [CCN+85, p. 191]), the group \(G = {}^2E_6(2)\) contains a maximal subgroup \(U\) of the type \(U_3(8).3_1\). The class fusion of \(U\) into \(G\) is ambiguous.

    gap> s:= CharacterTable( "U3(8).3_1" );;
    gap> t:= CharacterTable( "2E6(2)" );;
    gap> sfust:= PossibleClassFusions( s, t );;
    gap> Length( sfust );
    24
    gap> Length( RepresentativesFusions( s, sfust, t ) );
    2

In the automorphic extension \(G.2 = {}^2E_6(2).2\) of \(G\), the subgroup \(U\) extends to a group \(U.2\) of the type \(U_3(8).6\) (again, see [CCN+85, p. 191]). The class fusion of \(U.2\) into \(G.2\) is unique up to table automorphisms.

    gap> s2:= CharacterTable( "U3(8).6" );;
    gap> t2:= CharacterTable( "2E6(2).2" );;
    gap> s2fust2:= PossibleClassFusions( s2, t2 );;
    gap> Length( s2fust2 );
    2
    gap> Length( RepresentativesFusions( s2, s2fust2, t2 ) );
    1

Only half of the possible class fusions from \(U\) into \(G\) are compatible with the embeddings of \(U\) into \(G.2\) via \(U.2\) and \(G\), and the compatible maps form one orbit under table automorphisms.

    gap> sfuss2:= PossibleClassFusions( s, s2 );;
    gap> comp:= SetOfComposedClassFusions( s2fust2, sfuss2 );;
    gap> tfust2:= PossibleClassFusions( t, t2 );;
    gap> filt:= Filtered( sfust, map -> ForAny( tfust2,
    >               map2 -> CompositionMaps( map2, map ) in comp ) );;
    gap> Length( filt );
    12
    gap> Length( RepresentativesFusions( s, filt, t ) );
    1

Let us see which classes of \(U\) and \(G\) are involved in the disambiguation of the class fusion. The "good" fusion candidates differ from the excluded ones on the classes at the positions \(31\) to \(36\): Under all possible class fusions, two pairs of classes are mapped to the classes \(81\) and \(82\) of \(G\); from these classes, the excluded maps fuse classes at odd positions with classes at even positions, whereas the "good" class fusions do not have this property.

    gap> Set( filt, x -> x{ [ 31 .. 36 ] } );
    [ [ 74, 74, 81, 82, 81, 82 ], [ 74, 74, 82, 81, 82, 81 ],
      [ 81, 82, 74, 74, 81, 82 ], [ 81, 82, 81, 82, 74, 74 ],
      [ 82, 81, 74, 74, 82, 81 ], [ 82, 81, 82, 81, 74, 74 ] ]
    gap> Set( Difference( sfust, filt ), x -> x{ [ 31 .. 36 ] } );
    [ [ 74, 74, 81, 82, 82, 81 ], [ 74, 74, 82, 81, 81, 82 ],
      [ 81, 82, 74, 74, 82, 81 ], [ 81, 82, 82, 81, 74, 74 ],
      [ 82, 81, 74, 74, 81, 82 ], [ 82, 81, 81, 82, 74, 74 ] ]

None of the possible class fusions from \(U\) to \(U.2\) fuses classes at odd positions in the interval from \(31\) to \(36\) with classes at even positions.

    gap> Set( sfuss2, x -> x{ [ 31 .. 36 ] } );
    [ [ 28, 29, 30, 31, 30, 31 ], [ 29, 28, 31, 30, 31, 30 ],
      [ 30, 31, 28, 29, 30, 31 ], [ 30, 31, 30, 31, 28, 29 ],
      [ 31, 30, 29, 28, 31, 30 ], [ 31, 30, 31, 30, 29, 28 ] ]

This suffices to exclude the "bad" fusion candidates because no further fusion of the relevant classes of \(G\) happens in \(G.2\).

    gap> List( tfust2, x -> x{ [ 74, 81, 82 ] } );
    [ [ 65, 70, 71 ], [ 65, 70, 71 ], [ 65, 71, 70 ], [ 65, 71, 70 ],
      [ 65, 70, 71 ], [ 65, 70, 71 ], [ 65, 71, 70 ], [ 65, 71, 70 ],
      [ 65, 70, 71 ], [ 65, 70, 71 ], [ 65, 71, 70 ], [ 65, 71, 70 ] ]

(The same holds for the fusion of the relevant classes of \(U.2\) in \(G.2\).)

    gap> List( s2fust2, x -> x{ [ 28 .. 31 ] } );
    [ [ 65, 65, 70, 71 ], [ 65, 65, 71, 70 ] ]

Finally, we check that a correct map is stored on the library table.

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

##### 9.5-2 \(L_3(4).2_1 \rightarrow U_6(2)\) (December 2010)

According to the Atlas (see [CCN+85, p. 115]), the group \(G = U_6(2)\) contains a maximal subgroup \(U\) of the type \(L_3(4).2_1\). The class fusion of \(U\) into \(G\) is ambiguous.

    gap> s:= CharacterTable( "L3(4).2_1" );;
    gap> t:= CharacterTable( "U6(2)" );;
    gap> sfust:= PossibleClassFusions( s, t );;
    gap> Length( sfust );
    27
    gap> Length( RepresentativesFusions( s, sfust, t ) );
    3

In the automorphic extension \(G.3 = U_6(2).3\) of \(G\), the subgroup \(U\) extends to a group \(U.3\) of the type \(L_3(4).6\) (again, see [CCN+85, p. 115]). The class fusion of \(U.3\) into \(G.3\) is unique up to table automorphisms.

    gap> s3:= CharacterTable( "L3(4).6" );;
    gap> t3:= CharacterTable( "U6(2).3" );;
    gap> s3fust3:= PossibleClassFusions( s3, t3 );;
    gap> Length( s3fust3 );
    2
    gap> Length( RepresentativesFusions( s3, s3fust3, t3 ) );
    1

Here the argument used in Section 9.5-1 does not work, because all possible class fusions from \(U\) into \(G\) are compatible with the embeddings of \(U\) into \(G.3\) via \(U.3\) and \(G\).

    gap> sfuss3:= PossibleClassFusions( s, s3 );;
    gap> comp:= SetOfComposedClassFusions( s3fust3, sfuss3 );;
    gap> tfust3:= PossibleClassFusions( t, t3 );;
    gap> sfust = Filtered( sfust, map -> ForAny( tfust3,
    >                map2 -> CompositionMaps( map2, map ) in comp ) );
    true

Consider the elements of order four in \(U\). There are three such classes inside \(U^{\prime} \cong L_3(4)\), which fuse to one class of \(U.3\).

    gap> OrdersClassRepresentatives( s );
    [ 1, 2, 3, 4, 4, 4, 5, 7, 2, 4, 6, 8, 8, 8 ]
    gap> sfuss3;
    [ [ 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 9, 10, 10, 10 ] ]

These classes of \(U\) fuse into some of the classes \(10\) to \(12\) of \(G\). In \(G.3\), these three classes fuse into one class.

    gap> Set( sfust, map -> map{ [ 4 .. 6 ] } );
    [ [ 10, 10, 10 ], [ 10, 10, 11 ], [ 10, 10, 12 ], [ 10, 11, 10 ],
      [ 10, 11, 11 ], [ 10, 11, 12 ], [ 10, 12, 10 ], [ 10, 12, 11 ],
      [ 10, 12, 12 ], [ 11, 10, 10 ], [ 11, 10, 11 ], [ 11, 10, 12 ],
      [ 11, 11, 10 ], [ 11, 11, 11 ], [ 11, 11, 12 ], [ 11, 12, 10 ],
      [ 11, 12, 11 ], [ 11, 12, 12 ], [ 12, 10, 10 ], [ 12, 10, 11 ],
      [ 12, 10, 12 ], [ 12, 11, 10 ], [ 12, 11, 11 ], [ 12, 11, 12 ],
      [ 12, 12, 10 ], [ 12, 12, 11 ], [ 12, 12, 12 ] ]
    gap> Set( tfust3, map -> map{ [ 10 .. 12 ] } );
    [ [ 10, 10, 10 ] ]

This means that the automorphism \(\alpha\) of \(G\) that is induced by the action of \(G.3\) permutes the classes \(10\) to \(12\) of \(G\) transitively. The fact that \(U\) extends to \(U.3\) in \(G.3\) means that \(U\) is invariant under \(\alpha\). This implies that \(U\) contains either no elements from the classes \(10\) to \(12\) or elements from all of these classes. The possible class fusions from \(U\) to \(G\) satisfying this condition form one orbit under table automprhisms.

    gap> Filtered( sfust, map -> Intersection( map, [ 10 .. 12 ] ) = [] );
    [  ]
    gap> filt:= Filtered( sfust, map -> IsSubset( map, [ 10 .. 12 ] ) );
    [ [ 1, 3, 7, 10, 11, 12, 15, 24, 4, 14, 23, 26, 27, 28 ],
      [ 1, 3, 7, 10, 12, 11, 15, 24, 4, 14, 23, 26, 28, 27 ],
      [ 1, 3, 7, 11, 10, 12, 15, 24, 4, 14, 23, 27, 26, 28 ],
      [ 1, 3, 7, 11, 12, 10, 15, 24, 4, 14, 23, 27, 28, 26 ],
      [ 1, 3, 7, 12, 10, 11, 15, 24, 4, 14, 23, 28, 26, 27 ],
      [ 1, 3, 7, 12, 11, 10, 15, 24, 4, 14, 23, 28, 27, 26 ] ]
    gap> Length( RepresentativesFusions( s, filt, t ) );
    1

Finally, we check that a correct map is stored on the library table.

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

#### 9.6 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 9.6-3 below.

##### 9.6-1 \(L_2(16).4 \rightarrow J_3.2\) (January 2004)

It can happen that Brauer tables decide ambiguities of class fusions between the corresponding ordinary tables. An easy example is the class fusion of \(L_2(16).4\) into \(J_3.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 \(J_3\), but \(J_3\) does not contain a subgroup of type \(L_2(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 \(J_3.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 `CTblLib.Test.Decompositions` of the GAP Character Table Library ([Bre22]).

    gap> CTblLib.Test.Decompositions( 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

Remark:

In May 2015, the \(19\)-modular character table of \(J_3\) has been corrected, by swapping the two classes of element order \(17\). Since the class fusion of \(L_2(16).4\) into \(J_3.2\) is uniquely determined by the \(2\)-modular tables of \(L_2(16).4\) and \(J_3.2\) and since this class fusion has been compatible with the previous version of the \(19\)-modular table of \(J_3\), the correction does not affect the above arguments.

##### 9.6-2 \(L_2(17) \rightarrow S_8(2)\) (July 2004)

The class fusion of the maximal subgroup \(M \cong L_2(17)\) of \(G = S_8(2)\) is ambiguous.

    gap> m:= CharacterTable( "L2(17)" );;
    gap> t:= CharacterTable( "S8(2)" );;
    gap> mfust:= PossibleClassFusions( m, t );;
    gap> Length( RepresentativesFusions( m, mfust, t ) );
    4

The Brauer tables for \(M\) and \(G\) determine the class fusion up to table automorphisms.

    gap> filt:= CTblLib.Test.Decompositions( m, mfust, t );;
    gap> repr:= RepresentativesFusions( m, filt, t );;
    gap> Length( repr );
    1
    gap> GetFusionMap( m, t ) in repr;
    true

##### 9.6-3 \(L_2(19) \rightarrow J_3\) (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 \(L_2(19)\) and \(J_3\) 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 (\(L_2(19)\) and) \(J_3\) does not live in characteristic \(19\). For example, the unique irreducible Brauer character of degree \(110\) in the \(19\)-modular table of \(J_3\) is \(\varphi_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)^3+E(17)^5+E(17)^6+E(17)^7+E(17)^10+E(17)^11+E(17)^12
             +E(17)^14,
          E(17)+E(17)^2+E(17)^4+E(17)^8+E(17)^9+E(17)^13+E(17)^15+E(17)^16
         ] ) ]
    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 \(\varphi_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 \(J_3\) that affords \(\varphi_3\), restrict it to \(L_2(19)\), which is the second maximal subgroup of \(J_3\), and compute the composition factors. For that, we use a representation from the Atlas of Group Representations [WWT+], and access it via the GAP package AtlasRep ([WPN+19]).

    gap> LoadPackage( "atlasrep", false );
    true
    gap> prog:= AtlasProgram( "J3", "maxes", 2 );
    rec( groupname := "J3", identifier := [ "J3", "J3G1-max2W1", 1 ],
      program := <straight line program>, size := 3420,
      standardization := 1, subgroupname := "L2(19)", version := "1" )
    gap> gens:= OneAtlasGeneratingSetInfo( "J3", Characteristic, 19,
    >               Dimension, 110 );;
    gap> gens:= AtlasGenerators( gens );
    rec( contents := "core", dim := 110,
      generators := [ < immutable compressed matrix 110x110 over GF(19) >,
          < immutable compressed matrix 110x110 over GF(19) > ],
      groupname := "J3", id := "",
      identifier := [ "J3", [ "J3G1-f19r110B0.m1", "J3G1-f19r110B0.m2" ],
          1, 19 ], repname := "J3G1-f19r110B0", repnr := 35,
      ring := GF(19), size := 50232960, standardization := 1,
      type := "matff" )
    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

Remark:

In May 2015, the \(19\)-modular character table of \(J_3\) has been corrected, by swapping the two classes of element order \(17\). This affects the above computations only in one place, where the values of the character `deg110` are shown.

#### 9.7 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 [WWT+] and are accessed via the GAP package AtlasRep ([WPN+19]).

    gap> LoadPackage( "atlasrep", false );
    true

##### 9.7-1 \(U_3(3).2 \rightarrow Fi_{24}^{\prime}\) (November 2002)

The group \(G = Fi_{24}^{\prime}\) contains a maximal subgroup \(H\) of type \(U_3(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 \(U_3(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 = N_H(\langle g \rangle)\) 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

##### 9.7-2 \(L_2(13).2 \rightarrow Fi_{24}^{\prime}\) (September 2002)

The class fusion of maximal subgroups \(U\) of type \(L_2(13).2\) in \(G = Fi_{24}^{\prime}\) 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^{\prime}\) 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 \((3^2:2 \times G_2(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 \((3^2:2 \times G_2(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 \(L_2(13).2 \setminus L_2(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

##### 9.7-3 \(M_{11} \rightarrow B\) (April 2009)

The sporadic simple group \(B\) contains a maximal subgroup \(M\) of the type \(M_{11}\) whose class fusion is ambiguous.

    gap> b:= CharacterTable( "B" );;
    gap> m11:= CharacterTable( "M11" );;
    gap> m11fusb:= PossibleClassFusions( m11, b );;
    gap> Length( m11fusb );
    31
    gap> CompositionMaps( ClassNames( b, "ATLAS" ), Parametrized( m11fusb ) );
    [ "1A", [ "2B", "2D" ], [ "3A", "3B" ],
      [ "4B", "4E", "4G", "4H", "4J" ], [ "5A", "5B" ],
      [ "6C", "6E", "6H", "6I", "6J" ],
      [ "8B", "8E", "8G", "8J", "8K", "8L", "8M", "8N" ],
      [ "8B", "8E", "8G", "8J", "8K", "8L", "8M", "8N" ], "11A", "11A" ]

According to [Wil93a, Thm. 12.1], \(M\) contains no `5A` elements of \(B\). By the proof of [Wil99, Prop. 4.1], the involutions in any \(S_5\) type subgroup \(U\) of \(M\) lie in the class `2C` or `2D` of \(B\), and since the possible class fusions of \(M\) computed above admit only involutions in the class `2B` or `2D`, all involutions of \(U\) lie in the class `2D`. Again by the proof of [Wil99, Prop. 4.1], \(U\) is contained in a maximal subgroup of type \(Th\) in \(B\).

Now we use the embedding of \(U\) into \(B\) via \(M\) and \(Th\) for determining the class fusion of \(M\) into \(B\). The class fusion of the embedding of \(U\) via \(Th\) is uniquely determined.

    gap> th:= CharacterTable( "Th" );;
    gap> s5:= CharacterTable( "S5" );;
    gap> s5fusth:= PossibleClassFusions( s5, th );
    [ [ 1, 2, 4, 8, 2, 7, 11 ] ]
    gap> thfusb:= PossibleClassFusions( th, b );;
    gap> s5fusb:= Set( thfusb, x -> CompositionMaps( x, s5fusth[1] ) );
    [ [ 1, 5, 7, 19, 5, 17, 29 ] ]

Also the class fusion of \(U\) into \(M\) is unique, and this determines the class fusion of \(M\) into \(B\).

    gap> s5fusm11:= PossibleClassFusions( s5, m11 );
    [ [ 1, 2, 3, 5, 2, 4, 6 ] ]
    gap> m11fusb:= Filtered( m11fusb,
    >                  map -> CompositionMaps( map, s5fusm11[1] ) = s5fusb[1] );
    [ [ 1, 5, 7, 17, 19, 29, 45, 45, 54, 54 ] ]
    gap> CompositionMaps( ClassNames( b, "ATLAS" ), m11fusb[1] );
    [ "1A", "2D", "3B", "4J", "5B", "6J", "8N", "8N", "11A", "11A" ]

(Using the information that the \(M_{10}\) type subgroups of \(M\) are also contained in \(Th\) type subgroups would not have helped us, since these subgroups do not contain elements of order \(6\), and two possibilities would have remained.)

##### 9.7-4 \(L_2(11):2 \rightarrow B\) (April 2009)

The sporadic simple group \(B\) contains a maximal subgroup \(L\) of the type \(L_2(11):2\) whose class fusion is ambiguous.

    gap> b:= CharacterTable( "B" );;
    gap> l:= CharacterTable( "L2(11).2" );;
    gap> lfusb:= PossibleClassFusions( l, b );;
    gap> Length( lfusb );
    16
    gap> CompositionMaps( ClassNames( b, "ATLAS" ), Parametrized( lfusb ) );
    [ "1A", [ "2B", "2D" ], [ "3A", "3B" ], [ "5A", "5B" ],
      [ "5A", "5B" ], [ "6C", "6H", "6I", "6J" ], "11A", [ "2C", "2D" ],
      [ "4D", "4E", "4F", "4G", "4H", "4J" ], [ "10C", "10E", "10F" ],
      [ "10C", "10E", "10F" ],
      [ "12E", "12F", "12H", "12I", "12J", "12L", "12N", "12P", "12Q",
          "12R", "12S" ],
      [ "12E", "12F", "12H", "12I", "12J", "12L", "12N", "12P", "12Q",
          "12R", "12S" ] ]

According to [Wil93a, Thm. 12.1], \(L\) contains no `5A` elements of \(B\). By the proof of [Wil99, Prop. 4.1], \(B\) contains exactly one class of \(L_2(11)\) type subgroups with this property. Hence the subgroup \(U\) of index two in \(L\) is contained in a maximal subgroup \(M\) of type \(M_{11}\) in \(B\), whose class fusion was determined in Section 9.7-3.

In the same way as we proceeded in Section 9.7-3, we use the embedding of \(U\) into \(B\) via \(L\) and \(M\) for determining the class fusion of \(L\) into \(B\).

    gap> m:= CharacterTable( "M11" );;
    gap> u:= CharacterTable( "L2(11)" );;
    gap> ufusm:= PossibleClassFusions( u, m );;
    gap> mfusb:= GetFusionMap( m, b );;
    gap> ufusb:= Set( ufusm, x -> CompositionMaps( mfusb, x ) );
    [ [ 1, 5, 7, 19, 19, 29, 54, 54 ] ]
    gap> ufusl:= PossibleClassFusions( u, l );
    [ [ 1, 2, 3, 4, 5, 6, 7, 7 ], [ 1, 2, 3, 5, 4, 6, 7, 7 ] ]
    gap> lfusb:= Filtered( lfusb,
    >              map2 -> ForAny( ufusl,
    >                        map1 -> CompositionMaps( map2, map1 ) in ufusb ) );
    [ [ 1, 5, 7, 19, 19, 29, 54, 5, 15, 53, 53, 73, 73 ] ]

##### 9.7-5 \(L_3(3) \rightarrow B\) (April 2009)

The sporadic simple group \(B\) contains a maximal subgroup \(T\) of the type \(L_3(3)\) whose class fusion is ambiguous.

    gap> b:= CharacterTable( "B" );;
    gap> t:= CharacterTable( "L3(3)" );;
    gap> tfusb:= PossibleClassFusions( t, b );;
    gap> Length( tfusb );
    36

According to [Wil99, Section 9], \(T\) contains a subgroup \(U\) of the type \(3^2:2S_4\) that is contained also in a maximal subgroup \(M\) of the type \(3^2.3^3.3^6.(S_4 \times 2S_4)\). So we throw away the possible fusions from \(T\) to \(B\) that are not compatible with the compositions of the embeddings of \(U\) into \(B\) via \(T\) and \(M\).

    gap> m:= CharacterTable( "3^2.3^3.3^6.(S4x2S4)" );;
    gap> g:= PSL(3,3);;
    gap> mx:= MaximalSubgroupClassReps( g );;
    gap> u:= First( mx, x -> Size( x ) = 432 );;
    gap> u:= CharacterTable( u );;
    gap> ufusm:= PossibleClassFusions( u, m );;
    gap> ufust:= PossibleClassFusions( u, t );;
    gap> mfusb:= GetFusionMap( m, b );;
    gap> ufusb:= Set( ufusm, map -> CompositionMaps( mfusb, map ) );;
    gap> tfusb:= Filtered( tfusb, map -> ForAny( ufust,
    >        map2 -> CompositionMaps( map, map2 ) in ufusb ) );;
    gap> tfusb;
    [ [ 1, 5, 6, 7, 12, 27, 41, 41, 75, 75, 75, 75 ],
      [ 1, 5, 7, 6, 12, 28, 41, 41, 75, 75, 75, 75 ],
      [ 1, 5, 7, 7, 12, 28, 41, 41, 75, 75, 75, 75 ],
      [ 1, 5, 7, 7, 12, 29, 41, 41, 75, 75, 75, 75 ],
      [ 1, 5, 7, 7, 17, 29, 45, 45, 75, 75, 75, 75 ] ]

Now we use that \(T\) does not contain `4E` elements of \(B\) (again see [Wil99, Section 9]). Thus the last of the five candidates is the correct class fusion.

    gap> ClassNames( b, "ATLAS" ){ [ 12, 17 ] };
    [ "4E", "4J" ]

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

    gap> GetFusionMap( t, b ) = tfusb[5];
    true

##### 9.7-6 \(L_2(17).2 \rightarrow B\) (March 2004)

The sporadic simple group \(B\) contains a maximal subgroup \(U\) of the type \(L_2(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 library table.

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

##### 9.7-7 \(L_2(49).2_3 \rightarrow B\) (June 2006)

The sporadic simple group \(B\) contains a class of maximal subgroups of the type \(L_2(49).2_3\) (a non-split extension of \(L_2(49)\), see [Wil93b, Theorem 2]). Let \(U\) be such a subgroup. The class fusion of \(U\) in \(B\) is not determined by the character tables of \(U\) and \(B\).

    gap> u:= CharacterTable( "L2(49).2_3" );;
    gap> b:= CharacterTable( "B" );;
    gap> ufusb:= PossibleClassFusions( u, b );;
    gap> Length( RepresentativesFusions( u, ufusb, b ) );
    2
    gap> ufusb;
    [ [ 1, 5, 7, 15, 19, 28, 31, 42, 42, 71, 125, 125, 128, 128, 128,
          128, 128, 15, 71, 71, 89, 89, 89, 89 ],
      [ 1, 5, 7, 15, 19, 28, 31, 42, 42, 71, 125, 125, 128, 128, 128,
          128, 128, 17, 72, 72, 89, 89, 89, 89 ] ]

We show that the fusion is determined by the embeddings of the Sylow \(7\) normalizer \(N\), say, of \(U\) into \(U\) and into the Sylow \(7\) normalizer of \(B\). (Note that the fusion of the latter group into \(B\) has been determined in Section 9.3-1.)

For that, we compute the character table of \(N\) from a representation of \(U\). Note that \(U\) is a non-split extension of the simple group \(L_2(49)\) by the product of a diagonal automorphism and a field automorphism. In [Wil93b], the structure of \(N\) is described as \(7^2:(3 \times Q_{16})\).

    gap> g:= SL( 2, 49 );;
    gap> gens:= GeneratorsOfGroup( g );;
    gap> f:= GF(49);;
    gap> mats:= List( gens, x -> IdentityMat( 4, f ) );;
    gap> for i in [ 1 .. Length( gens ) ] do
    >      mats[i]{ [ 1, 2 ] }{ [ 1, 2 ] }:= gens[i];
    >      mats[i]{ [ 3, 4 ] }{ [ 3, 4 ] }:= List( gens[i],
    >                                              x -> List( x, y -> y^7 ) );
    >    od;
    gap> fieldaut:= PermutationMat( (1,3)(2,4), 4, f );;
    gap> diagaut:= IdentityMat( 4, f );;
    gap> diagaut[1][1]:= Z(49);;
    gap> diagaut[3][3]:= Z(49)^7;;
    gap> g:= Group( Concatenation( mats, [ fieldaut * diagaut ] ) );;
    gap> v:= [ 1, 0, 0, 0 ] * Z(7)^0;;
    gap> orb:= Orbit( g, v, OnLines );;
    gap> act:= Action( g, orb, OnLines );;
    gap> n:= Normalizer( act, SylowSubgroup( act, 7 ) );;
    gap> ntbl:= CharacterTable( n );;

Now we compute the possible class fusions of \(N\) into \(B\), via the Sylow \(7\) normalizer in \(B\).

    gap> bn7:= CharacterTable( "BN7" );;
    gap> nfusbn7:= PossibleClassFusions( ntbl, bn7 );;
    gap> Length( RepresentativesFusions( ntbl, nfusbn7, bn7 ) );
    3
    gap> nfusb:= SetOfComposedClassFusions( PossibleClassFusions( bn7, b ),
    >                                       nfusbn7 );;
    gap> Length( RepresentativesFusions( ntbl, nfusb, b ) );
    5

Although there are several possibilities, this information is enough to exclude one of the possible fusions of \(U\) into \(B\).

    gap> nfusu:= PossibleClassFusions( ntbl, u );;
    gap> Length( nfusu );
    4
    gap> filt:= Filtered( ufusb,
    >              x -> ForAny( nfusu, y -> CompositionMaps( x, y ) in nfusb ) );
    [ [ 1, 5, 7, 15, 19, 28, 31, 42, 42, 71, 125, 125, 128, 128, 128,
          128, 128, 17, 72, 72, 89, 89, 89, 89 ] ]
    gap> ClassNames( b, "ATLAS" ){ filt[1] };
    [ "1A", "2D", "3B", "4H", "5B", "6I", "7A", "8K", "8K", "12Q", "24L",
      "24L", "25A", "25A", "25A", "25A", "25A", "4J", "12R", "12R",
      "16G", "16G", "16G", "16G" ]

So the class fusion of \(U\) into \(B\) can be described by the property that the elements of order four inside and outside the simple subgroup \(L_2(49)\) are not conjugate in \(B\).

We check that the correct map is stored on the library table.

    gap> GetFusionMap( u, b ) in filt;
    true

Let us confirm that the two groups of the types \(L_2(49).2_1\) and \(L_2(49).2_2\) cannot occur as subgroups of \(B\). First we show that \(L_2(49).2_1\) is isomorphic with PGL\((2,49)\), an extension of \(L_2(49)\) by a diagonal automorphism, and \(L_2(49).2_2\) is an extension by a field automorphism.

    gap> NrConjugacyClasses( u );  NrConjugacyClasses( act );
    24
    24
    gap> u:= CharacterTable( "L2(49).2_1" );;
    gap> g:= Group( Concatenation( mats, [ diagaut ] ) );;
    gap> orb:= Orbit( g, v, OnLines );;
    gap> act:= Action( g, orb, OnLines );;
    gap> Size(act );
    117600
    gap> NrConjugacyClasses( u );  NrConjugacyClasses( act );
    51
    51
    gap> u:= CharacterTable( "L2(49).2_2" );;
    gap> g:= Group( Concatenation( mats, [ fieldaut ] ) );;
    gap> orb:= Orbit( g, v, OnLines );;
    gap> act:= Action( g, orb, OnLines );;
    gap> NrConjugacyClasses( u );  NrConjugacyClasses( act );
    27
    27

The group \(L_2(49).2_1\) can be excluded because no class fusion into \(B\) is possible.

    gap> PossibleClassFusions( CharacterTable( "L2(49).2_1" ), b );
    [  ]

For \(L_2(49).2_2\), it is not that easy. We would get several possible class fusions into \(B\). However, the Sylow \(7\) normalizer of \(L_2(49).2_2\) does not admit a class fusion into the Sylow \(7\) normalizer of \(B\).

    gap> n:= Normalizer( act, SylowSubgroup( act, 7 ) );;
    gap> Length( PossibleClassFusions( CharacterTable( n ), bn7 ) );
    0

##### 9.7-8 \(2^3.L_3(2) \rightarrow G_2(5)\) (January 2004)

The Chevalley group \(G = G_2(5)\) contains a maximal subgroup \(U\) of the type \(2^3.L_3(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 ] ]
    gap> OrdersClassRepresentatives( s );
    [ 1, 2, 2, 4, 4, 3, 6, 8, 8, 7, 7 ]

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 a suitable element of order \(6\) in \(U\).

    gap> g:= AtlasGroup( "G2(5)" );;
    gap> u:= AtlasSubgroup( "G2(5)", 7 );;
    gap> Size( u );
    1344
    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 \(G_2(5)\).

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

##### 9.7-9 \(5^{{1+4}}.2^{{1+4}}.A_5.4 \rightarrow B\) (April 2009)

The sporadic simple group \(B\) contains a maximal subgroup \(M\) of the type \(5^{{1+4}}.2^{{1+4}}.A_5.4\) whose class fusion is ambiguous.

    gap> b:= CharacterTable( "B" );;
    gap> m:= CharacterTable( "5^(1+4).2^(1+4).A5.4" );;
    gap> mfusb:= PossibleClassFusions( m, b );;
    gap> Length( mfusb );
    4
    gap> repres:= RepresentativesFusions( m, mfusb, b );;
    gap> Length( repres );
    2

The restriction of the unique irreducible character of degree \(4\,371\) distinguishes the two possibilities,

    gap> char:= Filtered( Irr( b ), x -> x[1] = 4371 );;
    gap> Length( char );
    1
    gap> rest:= List( repres, map -> char[1]{ map } );;
    gap> scprs:= MatScalarProducts( m, Irr( m ), rest );;
    gap> constit:= List( scprs,
    >                x -> Filtered( [1 .. Length(x) ], i -> x[i] <> 0 ) );
    [ [ 2, 27, 60, 63, 73, 74, 75, 79, 82 ],
      [ 2, 27, 60, 63, 70, 72, 75, 79, 84 ] ]
    gap> List( constit, x -> List( Irr( m ){ x }, Degree ) );
    [ [ 1, 6, 384, 480, 400, 400, 500, 1000, 1200 ],
      [ 1, 6, 384, 480, 100, 300, 500, 1000, 1600 ] ]

The database [WWT+] contains the \(3\)-modular reduction of the irreducible representation of degree \(4\,371\) and also a straight line program for restricting this representation to \(M\). We access these data via the GAP package AtlasRep (see [WPN+19]), and compute the composition factors of the natural module of this restriction.

    gap> g:= AtlasSubgroup( "B", Dimension, 4371, Ring, GF(3), 21 );;
    gap> module:= GModuleByMats( GeneratorsOfGroup( g ), GF(3) );;
    gap> dec:= MTX.CompositionFactors( module );;
    gap> SortedList( List( dec, x -> x.dimension ) );
    [ 1, 6, 100, 384, 400, 400, 400, 480, 1000, 1200 ]

We see that exactly one ordinary constituent does not stay irreducible upon restriction to characteristic \(3\). Thus the first of the two possible class fusions is the correct one.

##### 9.7-10 The fusion from the character table of \(7^2:2L_2(7).2\) into the table of marks (January 2004)

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 = 7^2:2L_2(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 \(7^2\), and the other three are preimages of the order \(7\) elements in the factor group \(L_2(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( tbl );
    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 \(S_3\) on them.

Note that an \(S_3\) 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   .   .   .
          3  1  .  1  .  1  1  .  .   .   .   .   .   .   .   .   .   .
          7  3  3  1  .  .  .  .  .   2   2   2   2   1   2   2   2   2

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

    X.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
    X.3      3  3  3 -1  .  .  1  1  /B  /B  /B  /B  /B   B   B   B   B
    X.4      6  6  6  2  .  .  .  .  -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
    X.7      4  4 -4  .  1 -1  .  .  -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
    X.9      6  6 -6  .  .  .  A -A  -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
    X.11     8  8 -8  . -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

          2   1
          3   .
          7   1

            14b
         2P  7f
         3P 14a
         5P 14a
         7P  2a
        11P 14b
        13P 14a

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

    A = E(8)-E(8)^3
      = Sqrt(2) = r2
    B = E(7)+E(7)^2+E(7)^4
      = (-1+Sqrt(-7))/2 = b7
    C = 2*E(7)+2*E(7)^2+2*E(7)^4
      = -1+Sqrt(-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-Sqrt(-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 );;
    gap> trans:= TransformingPermutationsCharacterTables( tg, tbl );;
    gap> tblfustom:= Permuted( tgfustom, trans.columns );;
    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.

##### 9.7-11 \(3 \times U_4(2) \rightarrow 3_1.U_4(3)\) (March 2010)

According to the Atlas (see [CCN+85, p. 52]), the simple group \(U_4(3)\) contains two classes of maximal subgroups of the type \(U_4(2)\). The class fusion of \(U_4(2)\) into \(U_4(3)\) is unique up to table automorphisms.

    gap> u42:= CharacterTable( "U4(2)" );;
    gap> u43:= CharacterTable( "U4(3)" );;
    gap> u42fusu43:= PossibleClassFusions( u42, u43 );;
    gap> Length( u42fusu43 );
    4
    gap> Length( RepresentativesFusions( u42, u42fusu43, u43 ) );
    1

More precisely, take the outer automorphism group of \(U_4(3)\), which is a dihedral group of order eight, and consider the subgroup generated by its central involution (this automorphism is denoted by \(2_1\) in the Atlas) and another involution called \(2_3\) in the Atlas. This subgroup is a Klein four group that induces a permutation group on the classes of \(U_4(3)\) and thus acts on the four possible class fusions of \(U_4(2)\) into \(U_4(3)\). In fact, this action is transitive.

The automorphism \(2_1\) swaps each pair of mutually inverse classes of order nine, that is, `9A` is swapped with `9B` and `9C` is swapped with `9D`. All \(U_4(2)\) type subgroups of \(U_4(3)\) are invariant under this automorphism, they extend to subgroups of the type \(U_4(2).2\) in \(U_4(3).2_1\).

    gap> u43_21:= CharacterTable( "U4(3).2_1" );;
    gap> fus1:= GetFusionMap( u43, u43_21 );
    [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 17, 17,
      18 ]
    gap> act1:= Filtered( InverseMap( fus1 ), IsList );
    [ [ 16, 17 ], [ 18, 19 ] ]
    gap> CompositionMaps( ClassNames( u43, "Atlas" ), act1 );
    [ [ "9A", "9B" ], [ "9C", "9D" ] ]

The automorphism \(2_3\) swaps `6B` with `6C`, `9A` with `9C`, and `9B` with `9D`. The two classes of \(U_4(2)\) type subgroups of \(U_4(3)\) are swapped by this automorphism.

    gap> u43_23:= CharacterTable( "U4(3).2_3" );;
    gap> fus3:= GetFusionMap( u43, u43_23 );
    [ 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 10, 11, 11, 12, 13, 14, 13, 14,
      15 ]
    gap> act3:= Filtered( InverseMap( fus3 ), IsList );
    [ [ 4, 5 ], [ 11, 12 ], [ 13, 14 ], [ 16, 18 ], [ 17, 19 ] ]
    gap> CompositionMaps( ClassNames( u43, "Atlas" ), act3 );
    [ [ "3B", "3C" ], [ "6B", "6C" ], [ "7A", "7B" ], [ "9A", "9C" ],
      [ "9B", "9D" ] ]

The Atlas states that the permutation character induced by the first class of \(U_4(2)\) type subgroups is `1a+35a+90a`, which means that the subgroups in this class contain `9A` and `9B` elements. Then the permutation character induced by the second class of \(U_4(2)\) type subgroups is `1a+35b+90a`, and the subgroups in this class contain `9C` and `9D` elements.

So we choose appropriate fusions for the two classes of maximal \(U_4(2)\) type subgroups.

    gap> firstfus:= First( u42fusu43, x -> IsSubset( x, [ 16, 17 ] ) );
    [ 1, 2, 2, 3, 3, 5, 4, 7, 8, 9, 10, 10, 12, 12, 11, 12, 16, 17, 20,
      20 ]
    gap> secondfus:= First( u42fusu43, x -> IsSubset( x, [ 18, 19 ] ) );
    [ 1, 2, 2, 3, 3, 4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 11, 18, 19, 20,
      20 ]

Let us now consider the central extension \(3_1.U_4(3)\). Since the Schur multiplier of \(U_4(2)\) has order two, the \(U_4(2)\) type subgroups of \(U_4(3)\) lift to groups of the structure \(3 \times U_4(2)\) in \(3_1.U_4(3)\). There are eight possible class fusions from \(3 \times U_4(2)\) to \(3_1.U_4(3)\), in two orbits of length four under the action of table automorphisms.

    gap> 3u42:= CharacterTable( "Cyclic", 3 ) * u42;
    CharacterTable( "C3xU4(2)" )
    gap> 3u43:= CharacterTable( "3_1.U4(3)" );
    CharacterTable( "3_1.U4(3)" )
    gap> 3u42fus3u43:= PossibleClassFusions( 3u42, 3u43 );;
    gap> Length( 3u42fus3u43 );
    8
    gap> Length( RepresentativesFusions( 3u42, 3u42fus3u43, 3u43 ) );
    2

More precisely, each of the four fusions from \(U_4(2)\) to \(U_4(3)\) has exactly two lifts. The four lifts of those fusions from \(U_4(2)\) to \(U_4(3)\) with `9A` and `9B` in their image form one orbit under the action of table automorphisms. The other orbit consists of the lifts of those fusions with `9C` and `9D` in their image.

    gap> inducedmaps:= List( 3u42fus3u43, map -> CompositionMaps(
    >        GetFusionMap( 3u43, u43 ), CompositionMaps( map,
    >        InverseMap( GetFusionMap( 3u42, u42 ) ) ) ) );;
    gap> List( inducedmaps, map -> Position( u42fusu43, map ) );
    [ 1, 1, 2, 2, 4, 4, 3, 3 ]

This solves the ambiguity: Fusions from each of the two orbits occur, and we can assign them to the two classes of subgroups by the choice of the fusions from \(U_4(2)\) to \(U_4(3)\).

The reason for the asymmetry is that the automorphism \(2_3\) of \(U_4(3)\) does not lift to \(3_1.U_4(3)\). Note that each of the classes `9A`, `9B` of \(U_4(3)\) has three preimages in \(3_1.U_4(3)\), whereas each of the classes `9C`, `9D` has only one preimage.

In fact the two classes of \(3 \times U_4(2)\) type subgroups of \(3_1.U_4(3)\) behave differently. For example, inducing the irreducible characters of a \(3 \times U_4(2)\) type subgroup in the first class of maximal subgroups of \(3_1.U_4(3)\) yields no irreducible character, whereas the two irreducible characters of degree \(630\) are obtained by inducing the irreducible characters of a subgroup in the second class.

    gap> rep:= RepresentativesFusions( 3u42, 3u42fus3u43, 3u43 );
    [ [ 1, 4, 4, 7, 7, 10, 13, 15, 18, 21, 24, 24, 27, 27, 30, 27, 48,
          49, 50, 50, 2, 5, 5, 8, 8, 11, 13, 16, 19, 22, 25, 25, 28, 28,
          31, 28, 48, 49, 51, 51, 3, 6, 6, 9, 9, 12, 13, 17, 20, 23, 26,
          26, 29, 29, 32, 29, 48, 49, 52, 52 ],
      [ 1, 4, 4, 8, 9, 13, 10, 15, 18, 21, 25, 26, 31, 32, 27, 30, 46,
          44, 51, 52, 2, 5, 5, 9, 7, 13, 11, 16, 19, 22, 26, 24, 32, 30,
          28, 31, 47, 42, 52, 50, 3, 6, 6, 7, 8, 13, 12, 17, 20, 23, 24,
          25, 30, 31, 29, 32, 45, 43, 50, 51 ] ]
    gap> irr:= Irr( 3u42 );;
    gap> ind:= InducedClassFunctionsByFusionMap( 3u42, 3u43, irr, rep[1] );;
    gap> Intersection( ind, Irr( 3u43 ) );
    [ Character( CharacterTable( "3_1.U4(3)" ),
      [ 630, 630*E(3)^2, 630*E(3), 6, 6*E(3)^2, 6*E(3), 9, 9*E(3)^2,
          9*E(3), -9, -9*E(3)^2, -9*E(3), 0, 0, 2, 2*E(3)^2, 2*E(3), -2,
          -2*E(3)^2, -2*E(3), 0, 0, 0, -3, -3*E(3)^2, -3*E(3), 3,
          3*E(3)^2, 3*E(3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, -1, -E(3)^2, -E(3) ] ),
      Character( CharacterTable( "3_1.U4(3)" ),
      [ 630, 630*E(3), 630*E(3)^2, 6, 6*E(3), 6*E(3)^2, 9, 9*E(3),
          9*E(3)^2, -9, -9*E(3), -9*E(3)^2, 0, 0, 2, 2*E(3), 2*E(3)^2,
          -2, -2*E(3), -2*E(3)^2, 0, 0, 0, -3, -3*E(3), -3*E(3)^2, 3,
          3*E(3), 3*E(3)^2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, -1, -E(3), -E(3)^2 ] ) ]
    gap> ind:= InducedClassFunctionsByFusionMap( 3u42, 3u43, irr, rep[2] );;
    gap> Intersection( ind, Irr( 3u43 ) );
    [  ]

For \(6_1.U_4(3)\) and \(12_1.U_4(3)\), one gets the same phenomenon: We have two orbits of class fusions, one corresponding to each of the two classes of subgroups of the type \(3 \times 4 Y 2.U_4(2)\). We get \(10\) irreducible induced characters from a subgroup in the second class (four faithful ones, four with kernel of order two, and the two abovementioned degree \(630\) characters with kernel of order four) and no irreducible character from a subgroup in the first class.

##### 9.7-12 \(2.3^4.2^3.S_4 \rightarrow 2.A12\) (September 2011)

The double cover \(G\) of the alternating group \(A_{12}\) contains a maximal subgroup \(M\) of the type \(2.3^4.2^3.S_4\) whose class fusion is ambiguous.

    gap> 2a12:= CharacterTable( "2.A12" );;
    gap> mtbl:= CharacterTable( "2.3^4.2^3.S4" );;
    gap> mtblfus2a12:= PossibleClassFusions( mtbl, 2a12 );;
    gap> Length( mtblfus2a12 );
    32
    gap> repres:= RepresentativesFusions( mtbl, mtblfus2a12, 2a12 );;
    gap> Length( repres );
    2

We decide the question which of the essentially different two possible class fusion is the right one, by explicitly constructing \(M\) as a subgroup of \(G\).

For that, let \(\pi\) denote the natural epimorphism from \(G\) to \(A_{12}\), and note that \(\pi(M)\) can be described as the intersection of a \(S_3 \wp S_4\) type subgroup of \(S_{12}\) with \(A_{12}\). Further note that the generators for \(G\) and \(A_{12}\) provided by [WWT+] are compatible in the sense that \(\pi\) can be defined by mapping the generators of \(G\) to those of \(A_{12}\).

We need \(\pi\) only for computing one preimage of each given element. Therefore, we represent \(\pi\) implicitly by two epimorphisms from a free group to \(G\) and \(A_{12}\), respectively, in order to avoid that GAPprecomputes a lot of unnecessary information for \(G\). This way, computing a preimage of an element of \(A_{12}\) under \(\pi\) is cheap. However, computing the preimage of a subgroup of \(A_{12}\) would be very expensive. So we construct the subgroup of \(G\) that is generated by preimages of a set of generators of \(\pi(M)\); later we see that this subgroup is in fact equal to \(M\).

    gap> g:= AtlasGroup( "A12" );
    Group([ (1,2,3), (2,3,4,5,6,7,8,9,10,11,12) ])
    gap> 2g:= AtlasGroup( "2.A12" );
    <matrix group of size 479001600 with 2 generators>
    gap> f:= FreeGroup( 2 );;
    gap> pi1:= GroupHomomorphismByImagesNC( f, 2g, GeneratorsOfGroup( f ),
    >              GeneratorsOfGroup( 2g ) );;
    gap> pi2:= GroupHomomorphismByImagesNC( f, g, GeneratorsOfGroup( f ),
    >              GeneratorsOfGroup( g ) );;
    gap> w:= WreathProduct( SymmetricGroup( 3 ), SymmetricGroup(4) );
    <permutation group of size 31104 with 10 generators>
    gap> NrMovedPoints( w );
    12
    gap> s:= Intersection( w, g );  Size( s );
    <permutation group with 8 generators>
    15552
    gap> m:= SubgroupNC( 2g, List( SmallGeneratingSet( s ),
    >            x -> ImagesRepresentative( pi1,
    >                   PreImagesRepresentative( pi2, x ) ) ) );;

Now we compute the character table of \(M\), using a faithful permutation representation of \(M\).

    gap> iso:= IsomorphismPermGroup( m );;
    gap> t:= CharacterTable( Image( iso ) );;
    gap> Size( t );
    31104
    gap> trans:= TransformingPermutationsCharacterTables( mtbl, t );;
    gap> IsRecord( trans );
    true

Now let us see where the two fusion candidates differ.

    gap> para:= Parametrized( repres );
    [ 1, 2, 6, 10, 8, 12, 7, 11, 9, 13, 5, 5, 17, 17, 17, 17, 3, 4, 24,
      22, 27, 25, 12, 10, 13, 11, 28, 29, 35, 37, 39, 36, 38, 40, 5, 23,
      28, 29, 26, 14, 14, 16, 16, 33, 34, [ 33, 34 ], [ 33, 34 ], 49, 49,
      48, 48 ]
    gap> PositionsProperty( para, IsList );
    [ 46, 47 ]
    gap> List( repres, map -> map{ [ 44 .. 47 ] } );
    [ [ 33, 34, 33, 34 ], [ 33, 34, 34, 33 ] ]

So the question is whether the elements in class 44 are conjugate in \(G\) to the elements in class 46 or in class 47. In order to answer this question, we compute preimages of the relevant class representatives in the matrix group \(M\).

    gap> positions:= OnTuples( [ 44 .. 47 ], trans.columns );;
    gap> classreps:= List( ConjugacyClasses( t ){ positions },
    >        c -> PreImagesRepresentative( iso, Representative( c ) ) );;
    gap> traces:= List( classreps, TraceMat );
    gap> List( traces, x -> Position( traces, x ) );
    [ 1, 2, 2, 1 ]

We are lucky, already the traces of the elements allow us to decide which pairs of elements are \(G\)-conjugate; there is no need for an explicit (and expensive) conjugacy test in the matrix group \(G\).

Finally, we check whether the stored fusion is correct.

    gap> good:= First( repres,
    >                  map -> map{ [ 44 .. 47 ] } = [ 33, 34, 34, 33 ] );;
    gap> GetFusionMap( mtbl, 2a12 ) = good;
    true

##### 9.7-13 \(127:7 \rightarrow L_7(2)\) (January 2012)

The simple group \(G = L_7(2)\) contains a maximal subgroup \(M\) of the type \(127:7\) (the normalizer of an extension field type subgroup GL\((1,2^7)\)) whose class fusion is ambiguous.

    gap> t:= CharacterTable( "L7(2)" );;
    gap> s:= CharacterTable( "127:7" );;
    gap> fus:= PossibleClassFusions( s, t );;
    gap> repr:= RepresentativesFusions( s, fus, t );
    [ [ 1, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
          112, 113, 114, 115, 117, 116, 76, 76, 77, 76, 77, 77 ],
      [ 1, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
          112, 113, 114, 115, 117, 116, 83, 83, 83, 83, 83, 83 ] ]

The two fusion candidates differ only for elements of order \(7\).

    gap> diff:= Filtered( [ 1 .. Length( repr[1] ) ],
    >                     i -> repr[1][i] <> repr[2][i] );
    [ 20, 21, 22, 23, 24, 25 ]
    gap> OrdersClassRepresentatives( s ){ diff };
    [ 7, 7, 7, 7, 7, 7 ]
    gap> List( repr, l -> l{ diff } );
    [ [ 76, 76, 77, 76, 77, 77 ], [ 83, 83, 83, 83, 83, 83 ] ]
    gap> SizesCentralizers( t ){ [ 76, 77, 83 ] };
    [ 3528, 3528, 49 ]

We can decide which candidate is the correct one if we know the centralizer order in G of the elements of order \(7\) in \(M\). So we compute this centralizer order.

    gap> g:= Image( IsomorphismPermGroup( GL(7,2) ) );;
    gap> repeat x:= Random( g ); until Order(x) = 127;
    gap> n:= Normalizer( g, SubgroupNC( g, [ x ] ) );;
    gap> Size( n ) / 127;
    7
    gap> repeat x:= Random( n ); until Order( x ) = 7;
    gap> c:= Centralizer( g, x );;
    gap> Size( c );
    49

We see that the second candidate is the fusion from \(M\) into \(G\).

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

##### 9.7-14 \(L_2(59) \rightarrow M\) (May 2009)

The sporadic simple Monster group \(M\) contains a maximal subgroup \(G\) of the type \(L_2(59)\), see [HW04]. The class fusion of \(G\) into \(M\) is ambiguous.

    gap> t:= CharacterTable( "M" );;
    gap> s:= CharacterTable( "L2(59)" );;
    gap> fus:= PossibleClassFusions( s, t );;
    gap> repr:= RepresentativesFusions( s, fus, t );
    [ [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 98, 52, 32, 52, 14, 12, 98, 52, 32, 5, 98, 12, 98, 52, 3 ],
      [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 100, 50, 30, 50, 15, 11, 100, 50, 30, 4, 100, 11, 100, 50,
          3 ],
      [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 101, 51, 30, 51, 14, 11, 101, 51, 30, 5, 101, 11, 101, 51,
          3 ],
      [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 102, 53, 32, 53, 18, 12, 102, 53, 32, 6, 102, 12, 102, 53,
          3 ],
      [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 104, 52, 33, 52, 17, 12, 104, 52, 33, 5, 104, 12, 104, 52,
          3 ] ]

The candidates differ on the classes of element order \(30\).

    gap> ord:= OrdersClassRepresentatives( s );;
    gap> ord30:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = 30 );
    [ 18, 24, 28, 30 ]
    gap> List( repr, x -> x{ ord30 } );
    [ [ 98, 98, 98, 98 ], [ 100, 100, 100, 100 ], [ 101, 101, 101, 101 ],
      [ 102, 102, 102, 102 ], [ 104, 104, 104, 104 ] ]

According to [HW04], \(G\) contains elements in the class `30G` of \(M\). This determines the class fusion up to Galois automorphisms.

    gap> pos:= Position( ClassNames( t, "Atlas" ), "30G" );;
    gap> good:= Filtered( fus, map -> pos in map );
    [ [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 104, 52, 33, 52, 17, 12, 104, 52, 33, 5, 104, 12, 104, 52,
          3 ],
      [ 1, 153, 152, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 104, 52, 33, 52, 17, 12, 104, 52, 33, 5, 104, 12, 104, 52,
          3 ] ]
    gap> repr:= RepresentativesFusions( s, good, t );
    [ [ 1, 152, 153, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
          97, 104, 52, 33, 52, 17, 12, 104, 52, 33, 5, 104, 12, 104, 52,
          3 ] ]
    gap> GetFusionMap( s, t ) = repr[1];
    true

##### 9.7-15 \(L_2(71) \rightarrow M\) (May 2009)

The sporadic simple Monster group \(M\) contains a maximal subgroup \(G\) of the type \(L_2(71)\), see [HW08]. The class fusion of \(G\) into \(M\) is ambiguous.

    gap> t:= CharacterTable( "M" );;
    gap> s:= CharacterTable( "L2(71)" );;
    gap> fus:= PossibleClassFusions( s, t );;
    gap> repr:= RepresentativesFusions( s, fus, t );
    [ [ 1, 169, 170, 112, 112, 112, 112, 19, 112, 11, 112, 112, 19, 112,
          112, 112, 11, 19, 112, 112, 114, 60, 36, 27, 114, 17, 114, 27,
          7, 60, 114, 5, 114, 60, 36, 27, 114, 3 ],
      [ 1, 169, 170, 112, 112, 112, 112, 19, 112, 11, 112, 112, 19, 112,
          112, 112, 11, 19, 112, 112, 115, 61, 36, 28, 115, 17, 115, 28,
          7, 61, 115, 5, 115, 61, 36, 28, 115, 3 ],
      [ 1, 169, 170, 112, 112, 112, 112, 19, 112, 11, 112, 112, 19, 112,
          112, 112, 11, 19, 112, 112, 117, 61, 43, 28, 117, 17, 117, 28,
          9, 61, 117, 5, 117, 61, 43, 28, 117, 3 ],
      [ 1, 169, 170, 113, 113, 113, 113, 20, 113, 12, 113, 113, 20, 113,
          113, 113, 12, 20, 113, 113, 114, 60, 36, 27, 114, 17, 114, 27,
          7, 60, 114, 5, 114, 60, 36, 27, 114, 3 ],
      [ 1, 169, 170, 113, 113, 113, 113, 20, 113, 12, 113, 113, 20, 113,
          113, 113, 12, 20, 113, 113, 115, 61, 36, 28, 115, 17, 115, 28,
          7, 61, 115, 5, 115, 61, 36, 28, 115, 3 ],
      [ 1, 169, 170, 113, 113, 113, 113, 20, 113, 12, 113, 113, 20, 113,
          113, 113, 12, 20, 113, 113, 117, 61, 43, 28, 117, 17, 117, 28,
          9, 61, 117, 5, 117, 61, 43, 28, 117, 3 ] ]

The candidates differ on the classes of the element orders \(7\) and \(36\).

    gap> ord:= OrdersClassRepresentatives( s );;
    gap> ord36:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = 36 );
    [ 21, 25, 27, 31, 33, 37 ]
    gap> List( repr, x -> x{ ord36 } );
    [ [ 114, 114, 114, 114, 114, 114 ], [ 115, 115, 115, 115, 115, 115 ],
      [ 117, 117, 117, 117, 117, 117 ], [ 114, 114, 114, 114, 114, 114 ],
      [ 115, 115, 115, 115, 115, 115 ], [ 117, 117, 117, 117, 117, 117 ] ]

According to [NW02, Table 3], \(G\) contains elements in the classes `7B` and `36D` of \(M\). This determines the class fusion up to Galois automorphisms.

    gap> pos1:= Position( ClassNames( t, "Atlas" ), "7B" );;
    gap> pos2:= Position( ClassNames( t, "Atlas" ), "36D" );;
    gap> pos:= [ pos1, pos2 ];;
    gap> good:= Filtered( fus, map -> IsSubset( map, pos ) );
    [ [ 1, 169, 170, 113, 113, 113, 113, 20, 113, 12, 113, 113, 20, 113,
          113, 113, 12, 20, 113, 113, 117, 61, 43, 28, 117, 17, 117, 28,
          9, 61, 117, 5, 117, 61, 43, 28, 117, 3 ],
      [ 1, 170, 169, 113, 113, 113, 113, 20, 113, 12, 113, 113, 20, 113,
          113, 113, 12, 20, 113, 113, 117, 61, 43, 28, 117, 17, 117, 28,
          9, 61, 117, 5, 117, 61, 43, 28, 117, 3 ] ]
    gap> repr:= RepresentativesFusions( s, good, t );
    [ [ 1, 169, 170, 113, 113, 113, 113, 20, 113, 12, 113, 113, 20, 113,
          113, 113, 12, 20, 113, 113, 117, 61, 43, 28, 117, 17, 117, 28,
          9, 61, 117, 5, 117, 61, 43, 28, 117, 3 ] ]
    gap> GetFusionMap( s, t ) = repr[1];
    true

##### 9.7-16 \(L_2(41) \rightarrow M\) (April 2012)

The sporadic simple Monster group \(M\) contains a maximal subgroup \(G\) of the type \(L_2(41)\), see [NW13]. The class fusion of \(G\) into \(M\) is ambiguous.

    gap> t:= CharacterTable( "M" );;
    gap> s:= CharacterTable( "L2(41)" );;
    gap> fus:= PossibleClassFusions( s, t );;
    gap> repr:= RepresentativesFusions( s, fus, t );
    [ [ 1, 127, 127, 64, 30, 64, 11, 7, 30, 64, 11, 64, 3, 70, 70, 19,
          70, 70, 19, 4, 70, 19, 70 ],
      [ 1, 127, 127, 64, 30, 64, 11, 7, 30, 64, 11, 64, 3, 72, 72, 19,
          72, 72, 19, 6, 72, 19, 72 ],
      [ 1, 127, 127, 64, 30, 64, 11, 7, 30, 64, 11, 64, 3, 73, 73, 20,
          73, 73, 20, 5, 73, 20, 73 ],
      [ 1, 127, 127, 66, 33, 66, 12, 7, 33, 66, 12, 66, 3, 72, 72, 19,
          72, 72, 19, 6, 72, 19, 72 ],
      [ 1, 127, 127, 66, 33, 66, 12, 7, 33, 66, 12, 66, 3, 73, 73, 20,
          73, 73, 20, 5, 73, 20, 73 ],
      [ 1, 127, 127, 67, 30, 67, 11, 10, 30, 67, 11, 67, 3, 72, 72, 19,
          72, 72, 19, 6, 72, 19, 72 ],
      [ 1, 127, 127, 67, 30, 67, 11, 10, 30, 67, 11, 67, 3, 73, 73, 20,
          73, 73, 20, 5, 73, 20, 73 ],
      [ 1, 127, 127, 68, 32, 68, 12, 10, 32, 68, 12, 68, 3, 72, 72, 19,
          72, 72, 19, 6, 72, 19, 72 ],
      [ 1, 127, 127, 68, 32, 68, 12, 10, 32, 68, 12, 68, 3, 73, 73, 20,
          73, 73, 20, 5, 73, 20, 73 ],
      [ 1, 127, 127, 69, 33, 69, 12, 9, 33, 69, 12, 69, 3, 72, 72, 19,
          72, 72, 19, 6, 72, 19, 72 ],
      [ 1, 127, 127, 69, 33, 69, 12, 9, 33, 69, 12, 69, 3, 73, 73, 20,
          73, 73, 20, 5, 73, 20, 73 ] ]

The candidates differ on the classes of the element orders \(3\)–\(8\).

    gap> ambig:= Parametrized( repr );;
    gap> ambigpos:= PositionsProperty( ambig, IsList );
    [ 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22,
      23 ]
    gap> Set( OrdersClassRepresentatives( t ){ ambigpos } );
    [ 3, 4, 5, 6, 7, 8 ]

According to [NW13, Theorem 3], \(G\) contains elements in the classes `3B` and `4C` of \(M\). This determines the class fusion uniquely.

    gap> pos1:= Position( ClassNames( t, "Atlas" ), "3B" );;
    gap> pos2:= Position( ClassNames( t, "Atlas" ), "4C" );;
    gap> pos:= [ pos1, pos2 ];;
    gap> good:= Filtered( fus, map -> IsSubset( map, pos ) );
    [ [ 1, 127, 127, 69, 33, 69, 12, 9, 33, 69, 12, 69, 3, 73, 73, 20,
          73, 73, 20, 5, 73, 20, 73 ] ]
    gap> GetFusionMap( s, t ) = good[1];
    true

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind

generated by GAPDoc2HTML