Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


SSL ambigfus.xml   Interaktion und
PortierbarkeitXML

 

<!-- %W  ambigfus.xml    GAP 4 package CTblLib              Thomas Breuer -->

<!-- add example for ambiguous fusion LyN5 -> LyM5 (known via construction -->

<Chapter Label="chap:ambigfus">
<Heading>Ambiguous Class Fusions in the &GAP; Character Table Library</Heading>

Date: January 11th, 2004

<P/>

This is a collection of examples showing how class fusions between character
tables can be determined using the &GAP; system <Cite Key="GAP"/>.
In each of these examples, the fusion is <E>ambiguous</E> 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
<Ref Func="PossibleClassFusions" BookName="ref"/>,
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.

<P/>

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 <Cite Key="CTblLib"/>.

<P/>

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

<P/>

<Example><![CDATA[
gap> LoadPackage( "ctbllib", false );
true
]]></Example>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:GAP_Utilities">
<Heading>Some &GAP; Utilities</Heading>

The function <C>SetOfComposedClassFusions</C> takes two list of class fusions,
where the first list consists of fusions between the character tables of
the groups <M>H</M> and <M>G</M>, say,
and the second list consists of class fusions between the character tables
of the groups <M>U</M> and <M>H</M>, say;
the return value is the set of compositions of each map in the first list
with each map in the second list (via
<Ref Func="CompositionMaps" BookName="ref"/>).

<P/>

Note that the returned list may be a proper subset of the set of
all possible class fusions between <M>U</M> and <M>G</M>,
which can be computed with
<Ref Func="PossibleClassFusions" BookName="ref"/>.

<P/>

<Example><![CDATA[
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;;
]]></Example>

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Fusions_Determined_by_Intermediate_Subgroups">
<Heading>Fusions Determined by Factorization through Intermediate Subgroups</Heading>

<P/>

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


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:Co_3N5_in_Co_3">
<Heading><M>Co_3N5 \rightarrow Co_3</M> (September 2002)</Heading>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

As <M>H</M> is not maximal in <M>Co_3</M>,
we look at those maximal subgroups of <M>Co_3</M>
whose order is divisible by that of <M>H</M>.

<P/>

<Example><![CDATA[
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" ) ]
]]></Example>

<P/>

According to the &ATLAS;
(see <Cite Key="CCN85" Where="pp. 34 and 100"/>),
<M>H</M> occurs as the Sylow <M>5</M> normalizer in <M>U_3(5).3.2</M>
and in <M>McL.2</M>;
however, <M>H</M> is not a subgroup of <M>HS</M>,
since otherwise <M>H</M> would be contained in subgroups of type
<M>U_3(5).2</M>
(see <Cite Key="CCN85" Where="p. 80"/>),
but the only possible subgroups in these groups are too small
(see <Cite Key="CCN85" Where="p. 34"/>).

<P/>

We compute the possible class fusions from <M>H</M> into <M>McL.2</M>
and from <M>McL.2</M> to <M>Co_3</M>,
and then form the compositions of these maps.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

So factoring through a maximal subgroup of type <M>McL.2</M>
determines the fusion from <M>H</M> to <M>Co_3</M>
uniquely up to table automorphisms.

<P/>

Alternatively, we can use the group <M>U_3(5).3.2</M> as intermediate
subgroup, which leads to the same result.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( h, co3 ) in reps;
true
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:31:15_in_B">
<Heading><M>31:15 \rightarrow B</M> (March 2003)</Heading>

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

<P/>

<Example><![CDATA[
gap> b:= CharacterTable( "B" );;
gap> h:= CharacterTable( "31:15" );;
gap> hfusb:= PossibleClassFusions( h, b );;
gap> Length( RepresentativesFusions( h, hfusb, b ) );
2
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:SuzN3_in_Suz">
<Heading><M>SuzN3 \rightarrow Suz</M> (September 2002)</Heading>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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" ) ]
]]></Example>

<P/>

The group <M>3_2.U_4(3).2_3^{\prime}</M> does not admit a fusion from <M>H</M>.

<P/>

<Example><![CDATA[
gap> PossibleClassFusions( h, filt[1] );
[  ]
]]></Example>

<P/>

Definitely <M>3^5:M_{11}</M> contains a group isomorphic with <M>H</M>,
because the Sylow <M>3</M> normalizer in <M>M_{11}</M> has the structure
<M>3^2:SD_{16}</M>;
using <M>3^{2+4}:2(2^2 \times A_4)2</M> would lead to the same result as
we get below.
We compute the compositions of possible class fusions.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( h, suz ) in repr;
true
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:F3+N5_in_F3+">
<Heading><M>F_{{3+}}N5 \rightarrow F_{{3+}}</M> (March 2002)</Heading>

The class fusion from the table of the Sylow <M>5</M> normalizer <M>H</M>
in the sporadic simple group <M>F_{{3+}}</M> into <M>F_{{3+}}</M> is ambiguous.

<P/>

<Example><![CDATA[
gap> f3p:= CharacterTable( "F3+" );;
gap> h:= CharacterTable( "F3+N5" );;
gap> hfusf3p:= PossibleClassFusions( h, f3p );;
gap> Length( RepresentativesFusions( h, hfusf3p, f3p ) );
2
]]></Example>

<P/>

<M>H</M> is not maximal in <M>F_{{3+}}</M>,
so we look for tables of maximal subgroups that can contain <M>H</M>.

<P/>

<Example><![CDATA[
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 ] ], [  ], [  ], [  ] ]
]]></Example>

<P/>

We see that from the eight possible classes of maximal subgroups in
<M>F_{{3+}}</M> that might contain <M>H</M>,
only the group of type <M>(A_4 \times O_8^+(2).3).2</M>
admits a class fusion from <M>H</M>.
Hence we can compute the compositions of the possible fusions from <M>H</M>
into this group with the possible fusions from this group into <M>F_{{3+}}</M>.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( h, f3p ) in repr;
true
]]></Example>

<P/>

Note that we did <E>not</E> determine the class fusion from the
maximal subgroup <M>(A_4 \times O_8^+(2).3).2</M> into <M>F_{{3+}}</M>
up to table automorphisms
(see Section <Ref Subsect="subsect:A4xO8p2d32fusf3p"/> for this problem),
since also the ambiguous result was enough for computing the fusion from
<M>H</M> into <M>F_{{3+}}</M>.

</Subsection>
</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Fusions_Determined_Using_Commutative_Diagrams">
<Heading>Fusions Determined Using Commutative Diagrams Involving Smaller
Subgroups</Heading>

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

<P/>

<Alt Only='HTML'><![CDATA[
<center>
<img src="ambigfus1.png" alt="setup: some subgroups of G"/>
</center>
]]></Alt>

<Alt Only='Text'>
<Verb>
                                G
                               ╱ ╲
                              ╱   ╲
                             M     S
                              ╲   ╱
                               ╲ ╱
                                .
                                │
                                U
                                │
                                │
                                1
</Verb>
</Alt>

<Alt Only='LaTeX'>
<!-- BP ambigfus1 -->
<![CDATA[
\setlength{\unitlength}{3pt}
\begin{center}
\begin{picture}(40,30)(-10,0)
\put(10, 5){\circle*{1}}
\put(10,10){\circle{1}} \put(13,10){\makebox(0,0){$U$}}
\put(10,15){\circle{1}}
\put( 5,20){\circle{1}} \put(2,20){\makebox(0,0){$M$}}
\put(15,20){\circle{1}} \put(17,20){\makebox(0,0){$S$}}
\put(10,25){\circle*{1}} \put(10,28){\makebox(0,0){$G$}}
\put(10, 5){\line(0,1){10}}
\put(10,15){\line(-1,1){5}}
\put(10,15){\line(1,1){5}}
\put( 5,20){\line(1,1){5}}
\put(15,20){\line(-1,1){5}}
\end{picture}
\end{center}
]]>
<!-- EP -->
</Alt>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:BN7">
<Heading><M>BN7 \rightarrow B</M> (March 2002)</Heading>

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

<P/>

<Example><![CDATA[
gap> b:= CharacterTable( "B" );
CharacterTable( "B" )
gap> h:= CharacterTable( "BN7" );
CharacterTable( "BN7" )
gap> hfusb:= PossibleClassFusions( h, b );;
gap> Length( RepresentativesFusions( h, hfusb, b ) );
2
]]></Example>

<P/>

Let us consider a maximal subgroup of the type <M>Th</M> in <M>B</M>
(cf. <Cite Key="CCN85" Where="p. 217"/>).
By <Cite Key="CCN85" Where="p. 177"/>,
the Sylow <M>7</M> normalizers in <M>Th</M> are maximal subgroups of <M>Th</M>
and have the structure <M>7^2:(3 \times 2S_4)</M>.
Let <M>U</M> be such a subgroup.

<P/>

Note that the only maximal subgroups of <M>Th</M> whose order is divisible by
the order of a Sylow <M>7</M> subgroup of <M>B</M> have the types
<M>{}^3D_4(2).3</M> and <M>7^2:(3 \times 2S_4)</M>,
and the Sylow <M>7</M> normalizers in the former groups have the structure
<M>7^2:(3 \times 2A_4)</M>, cf. <Cite Key="CCN85" Where="p. 89"/>.

<P/>

<Example><![CDATA[
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)" ]
]]></Example>

<P/>

The class fusion of <M>U</M> into <M>B</M> via <M>Th</M> is
uniquely determined by the character tables of these groups.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

The condition that the class fusion of <M>U</M> into <M>B</M> factors through <M>H</M>
determines the class fusion of <M>H</M> into <M>B</M> up to table automorphisms.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( h, b ) in filt;
true
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:A4xO8p2d32fusf3p">
<Heading><M>(A_4 \times O_8^+(2).3).2 \rightarrow Fi_{24}^{\prime}</M> (November 2002)</Heading>

The class fusion of the maximal subgroup
<M>M \cong (A_4 \times O_8^+(2).3).2</M> of <M>G = Fi_{24}^{\prime}</M>
is ambiguous.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

We first observe that the elements of order three in the normal subgroup
of type <M>A_4</M> in <M>M</M> lie in the class <C>3A</C> of <M>Fi_{24}^{\prime}</M>.

<P/>

<Example><![CDATA[
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 ]
]]></Example>

<P/>

Let us take one such element <M>g</M>, say.
Its normalizer <M>S</M> in <M>G</M> has the structure <M>(3 \times O_8^+(3).3).2</M>;
this group is maximal in <M>G</M>, and its character table is available in &GAP;.

<P/>

<Example><![CDATA[
gap> s:= CharacterTable( "F3+N3A" );
CharacterTable( "(3xO8+(3):3):2" )
]]></Example>

<P/>

The intersection <M>N_M(g) = S \cap M</M> contains a subgroup <M>U</M> of the type
<M>3 \times O_8^+(2).3</M>,
and in the following we compute the class fusions of <M>U</M> into <M>S</M> and <M>M</M>,
and then utilize the fact that only those class fusions from <M>M</M> into <M>G</M>
are possible whose composition with the class fusion from <M>U</M> into <M>M</M>
equals a composition of class fusions from <M>U</M> into <M>S</M>
and from <M>S</M> into <M>G</M>.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:A_6xL_2(8).3_in_Fi24">
<Heading><M>A_6 \times L_2(8).3 \rightarrow Fi_{24}^{\prime}</M> (November 2002)</Heading>

The class fusion of the maximal subgroup <M>M \cong A_6 \times L_2(8).3</M>
of <M>G = Fi_{24}^{\prime}</M> is ambiguous.

<P/>

<Example><![CDATA[
gap> m:= CharacterTable( "A6xL2(8):3" );;
gap> t:= CharacterTable( "F3+" );;
gap> mfust:= PossibleClassFusions( m, t );;
gap> Length( RepresentativesFusions( m, mfust, t ) );
2
]]></Example>

<P/>

We will use the fact that the direct factor of the type <M>A_6</M> in <M>M</M>
contains elements in the class <C>3A</C> of <M>G</M>.
This fact can be shown as follows.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

Since the normalizer of an element of order three in <M>A_6</M> has the form
<M>3^2:2</M>,
such a <C>3A</C> element in <M>M</M> contains a subgroup <M>U</M> of the structure
<M>3^2:2 \times L_2(8).3</M> which is contained in the <C>3A</C> normalizer <M>S</M> in <M>G</M>,
which has the structure <M>(3 \times O_8^+(3).3).2</M>.

<P/>

(Note that all classes in the <M>3^2:2</M> type group are rational,
and its character table is available in the &GAP; Character Table Library
with the identifier <C>"3^2:2"</C>.)

<P/>

<Example><![CDATA[
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
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:BM14">
<Heading><M>(3^2:D_8 \times U_4(3).2^2).2 \rightarrow B</M> (June 2007)</Heading>

Let <M>G</M> be a maximal subgroup of the type <M>(3^2:D_8 \times U_4(3).2^2).2</M>
in the sporadic simple group <M>B</M>,
cf. <Cite Key="CCN85" Where="p. 217"/>.
Computing the class fusion of <M>G</M> into <M>B</M> just from the character tables
of the two groups takes extremely long.
So we use additional information.

<P/>

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

<P/>

The class fusion from <M>N</M> into <M>B</M> is uniquely determined by the
character tables.

<P/>

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

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

We get two equivalent possibilities,
and need to consider only one of them.
For lifting it to a map between <M>G \cap N</M> and <M>N</M>,
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.)

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

The lift is unique.
Since we lift a class fusion to direct products,
we could also <Q>extend</Q> 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.

<P/>

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

<P/>

Next we compute the class fusions from <M>G \cap N</M> to <M>G</M>.
We get two equivalent solutions.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( tblg, b ) in gfusb;
true
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:MM24">
<Heading><M>7^{1+4}:(3 \times 2.S_7) \rightarrow M</M> (May 2009)</Heading>

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

<P/>

<Example><![CDATA[
gap> tblu:= CharacterTable( "7^(1+4):(3x2.S7)" );;
gap> m:= CharacterTable( "M" );;
gap> ufusm:= PossibleClassFusions( tblu, m );;
gap> Length( RepresentativesFusions( tblu, ufusm, m ) );
2
]]></Example>

<P/>

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

<P/>

For that, we use representations from the &ATLAS; of Group
Representations <Cite Key="AGRv3"/>, and access these representations
via the &GAP; package <Package>AtlasRep</Package> (<Cite Key="AtlasRep"/>).

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<!-- Compare tables and fusions with the ones in the library! -->

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:3^7.O_7(3):2_in_Fi24">
<Heading><M>3^7.O_7(3):2 \rightarrow Fi_{24}</M> (November 2010)</Heading>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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" ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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 ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

Now we compute the possible class fusions from <M>S</M> into <M>G</M>,
and the compositions of these maps with the possible class fusions
from <M>U</M> into <M>S</M>.

<P/>

<Example><![CDATA[
gap> sfust:= PossibleClassFusions( s, t );;
gap> comp:= SetOfComposedClassFusions( sfust, ufuss );;
gap> Length( comp );
8
]]></Example>

<P/>

It turns out that only one orbit of the possible class fusions from <M>M</M> to
<M>G</M> is compatible with these possible class fusions from <M>U</M> to <M>G</M>.

<P/>

<Example><![CDATA[
gap> filt:= Filtered( mfust, map2 -> ForAny( ufusm, map1 ->
>        CompositionMaps( map2, map1 ) in comp ) );;
gap> Length( filt );
4
gap> Length( RepresentativesFusions( m, filt, t ) );
1
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( m, t ) in filt;
true
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:2E62N3C_in_2E62">
<Heading><M>{}^2E_6(2)N3C \rightarrow {}^2E_6(2)</M> (January 2019)</Heading>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

The class fusion of <M>N</M> in <M>G</M> is ambiguous.

<P/>

<Example><![CDATA[
gap> rep:= RepresentativesFusions( n, nfust, t );;
gap> Length( rep );
4
]]></Example>

<P/>

We use the fact that <M>g</M> is contained in a subgroup
<M>S \cong Fi_{22}</M> of <M>G</M>, <M>\ldots</M>

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

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

Composing the class fusions of <M>U</M> in <M>N</M> and
<M>N</M> in <M>G</M> must be equal to the composition of the class fusions
of <M>U</M> in <M>S</M> and <M>S</M> in <M>G</M>.
This reduces the number of candidates for the fusion of <M>N</M> in <M>G</M>
from four to two.

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( n, t ) = inter[1];
true
]]></Example>

<P/>

<E>Remark:</E>

<P/>

Note that the structure of <M>N</M> is <M>3^{1+6}:2^{3+6}:3^2:2</M>,
as is stated in <Cite Key="AtlasImpII"/>.
The structure <M>3^{1+6}.2^{3+6}.(S_3 \times 3)</M> claimed in the
&ATLAS; <Cite Key="CCN85" Where="p. 191"/> is wrong,
as we can read off for example from the fact that <M>N</M> has exactly
two linear characters.

<P/>

<Example><![CDATA[
gap> Length( LinearCharacters( n ) );
2
]]></Example>

</Subsection>
</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Fusions_Determined_Using_Factor_Groups">
<Heading>Fusions Determined Using Commutative Diagrams Involving Factor
Groups</Heading>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:3.A_7_in_3.Suz">
<Heading><M>3.A_7 \rightarrow 3.Suz</M> (December 2010)</Heading>

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

<P/>

<Example><![CDATA[
gap> t:= CharacterTable( "Suz" );;
gap> 3t:= CharacterTable( "3.Suz" );;
gap> s:= CharacterTable( "A7" );;
gap> 3s:= CharacterTable( "3.A7" );;
gap> PossibleClassFusions( s, 3t );
[  ]
]]></Example>

<P/>

The class fusion of <M>3.A_7</M> into <M>3.Suz</M> is ambiguous.

<P/>

<Example><![CDATA[
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 ]
]]></Example>

<P/>

We see that the possible fusions in the second orbit avoid the centre of
<M>3.Suz</M>.
Since the preimages in <M>3.Suz</M> of the <M>A_7</M> type subgroups of <M>Suz</M>
contain the centre of <M>3.Suz</M>, 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 <M>3.A_7</M>, <M>3.Suz</M>, and their factors <M>A_7</M> and <M>Suz</M>.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

So the class fusion of maximal <M>3.A_7</M> type subgroups of <M>3.Suz</M> is
determined up to table automorphisms.
One of these fusions is stored on the table of <M>3.A_7</M>.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

Also the class fusions in the other orbit belong to subgroups of type
<M>3.A_7</M> in <M>3.Suz</M>.
Note that <M>Suz</M> contains maximal subgroups of the type
<M>3_2.U_4(3).2_3^{\prime}</M>
(see <Cite Key="CCN85" Where="p. 131"/>),
and the <M>A_7</M> type subgroups of <M>U_4(3)</M>
(see <Cite Key="CCN85" Where="p. 52"/>)
lift to groups of the type <M>3.A_7</M> in <M>3_2.U_4(3)</M> because
<M>3_2.U_4(3)</M> does not admit a class fusion from <M>A_7</M>.
The preimages in <M>3.Suz</M> of the <M>3.A_7</M> type subgroups of <M>Suz</M>
have the structure <M>3 \times 3.A_7</M>.

<P/>

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

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:S6_in_U4(2)">
<Heading><M>S_6 \rightarrow U_4(2)</M> (September 2011)</Heading>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

However, the two possible fusions from <M>2.U</M> to <M>2.G</M> are lifts of the
same class fusion from <M>U</M> to <M>G</M>.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

The library table of <M>U</M> stores the class fusion to <M>G</M> that is
compatible with the stored factor fusion from <M>2.U</M> to <M>U</M>.

<P/>

<Example><![CDATA[
gap> GetFusionMap( s, t ) in induced;
true
]]></Example>

</Subsection>
</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Fusions Determined Using Commutative Diagrams Involving
Automorphic Extensions">
<Heading>Fusions Determined Using Commutative Diagrams Involving
Automorphic Extensions</Heading>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:u383to2e62">
<Heading><M>U_3(8).3_1 \rightarrow {}^2E_6(2)</M> (December 2010)</Heading>

According to the &ATLAS; (see <Cite Key="CCN85" Where="p. 191"/>),
the group <M>G = {}^2E_6(2)</M> contains a maximal subgroup <M>U</M>
of the type <M>U_3(8).3_1</M>.
The class fusion of <M>U</M> into <M>G</M> is ambiguous.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

In the automorphic extension <M>G.2 = {}^2E_6(2).2</M> of <M>G</M>,
the subgroup <M>U</M> extends to a group <M>U.2</M> of the type <M>U_3(8).6</M>
(again, see  <Cite Key="CCN85" Where="p. 191"/>).
The class fusion of <M>U.2</M> into <M>G.2</M>
is unique up to table automorphisms.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

Only half of the possible class fusions from <M>U</M> into <M>G</M> are compatible
with the embeddings of <M>U</M> into <M>G.2</M> via <M>U.2</M> and <M>G</M>,
and the compatible maps form one orbit under table automorphisms.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

None of the possible class fusions from <M>U</M> to <M>U.2</M> fuses classes
at odd positions in the interval from <M>31</M> to <M>36</M> with classes at
even positions.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

This suffices to exclude the <Q>bad</Q> fusion candidates
because no further fusion of the relevant classes of <M>G</M>
happens in <M>G.2</M>.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

(The same holds for the fusion of the relevant classes of <M>U.2</M> in
<M>G.2</M>.)

<P/>

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

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( s, t ) in filt;
true
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:L3421-in-U62">
<Heading><M>L_3(4).2_1 \rightarrow U_6(2)</M> (December 2010)</Heading>

According to the &ATLAS; (see <Cite Key="CCN85" Where="p. 115"/>),
the group <M>G = U_6(2)</M> contains a maximal subgroup <M>U</M> of the type
<M>L_3(4).2_1</M>.
The class fusion of <M>U</M> into <M>G</M> is ambiguous.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

In the automorphic extension <M>G.3 = U_6(2).3</M> of <M>G</M>,
the subgroup <M>U</M> extends to a group <M>U.3</M> of the type <M>L_3(4).6</M>
(again, see  <Cite Key="CCN85" Where="p. 115"/>).
The class fusion of <M>U.3</M> into <M>G.3</M>
is unique up to table automorphisms.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

Here the argument used in Section <Ref Subsect="subsect:u383to2e62"/>
does not work,
because all possible class fusions from <M>U</M> into <M>G</M> are compatible
with the embeddings of <M>U</M> into <M>G.3</M> via <M>U.3</M> and <M>G</M>.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

These classes of <M>U</M> fuse into some of the classes <M>10</M> to <M>12</M> of <M>G</M>.
In <M>G.3</M>, these three classes fuse into one class.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> GetFusionMap( s, t ) in filt;
true
]]></Example>

</Subsection>
</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Conditions Imposed by Brauer Tables">
<Heading>Conditions Imposed by Brauer Tables</Heading>

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 <Q>generality problems</Q> may require the construction
of certain modules, similar to the arguments used
in <Ref Subsect="subsect:generality"/> below.


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:L2(16).4_in_J3.2">
<Heading><M>L_2(16).4 \rightarrow J_3.2</M> (January 2004)</Heading>

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

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

Using Brauer tables, we will see that just one fusion is admissible.

<P/>

We can exclude two possible fusions by the fact that their images all
lie inside the normal subgroup <M>J_3</M>, but <M>J_3</M> does not contain a subgroup
of type <M>L_2(16).4</M>; so still one orbit of length two remains.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
gap> smod2:= s mod 2;;
gap> tmod2:= t mod 2;;
gap> admissible:= [];;  modmap:= "dummy";;
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 ] ]
]]></Example>

<P/>

The test of all available Brauer tables is implemented in the function
<C>CTblLib.Test.Decompositions</C> of the &GAP; Character Table Library
(<Cite Key="CTblLib"/>).

<P/>

<Example><![CDATA[
gap> CTblLib.Test.Decompositions( s, fus, t ) = admissible;
true
]]></Example>

<P/>

We see that <M>p</M>-modular tables alone determine the class fusion uniquely;
in fact the primes <M>2</M> and <M>3</M> suffice for that.
<P/>
<Example><![CDATA[
gap> GetFusionMap( s, t ) in admissible;
true
]]></Example>

<P/>

<E>Remark:</E>

<P/>

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

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:L2(17)_in_S8(2)">
<Heading><M>L_2(17) \rightarrow S_8(2)</M> (July 2004)</Heading>

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

<P/>

<Example><![CDATA[
gap> m:= CharacterTable( "L2(17)" );;
gap> t:= CharacterTable( "S8(2)" );;
gap> mfust:= PossibleClassFusions( m, t );;
gap> Length( RepresentativesFusions( m, mfust, t ) );
4
]]></Example>

<P/>

The Brauer tables for <M>M</M> and <M>G</M> determine the class fusion up to
table automorphisms.

<P/>

<Example><![CDATA[
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
]]></Example>

</Subsection>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Subsection Label="subsect:generality">
<Heading><M>L_2(19) \rightarrow J_3</M> (April 2003)</Heading>

It can happen that Brauer tables impose conditions such that ambiguities
arise which are not visible if one considers only ordinary tables.

<P/>

The class fusion between the ordinary character tables of <M>L_2(19)</M>
and <M>J_3</M> is unique up to table automorphisms.

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

The Galois automorphism that permutes the three classes of element order <M>9</M>
in the tables of (<M>L_2(19)</M> and) <M>J_3</M> does not live in characteristic <M>19</M>.
For example, the unique irreducible Brauer character of degree <M>110</M>
in the <M>19</M>-modular table of <M>J_3</M> is <M>\varphi_3</M>,
and the value of this character on the class <C>9A</C> is <C>-1+2y9+&4</C>.

<P/>

<Example><![CDATA[
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
]]></Example>

<P/>

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

<P/>

<Example><![CDATA[
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 ] ]
]]></Example>

<P/>

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 <M>\varphi_3</M>.

<P/>

<Example><![CDATA[
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 ], 
--> --------------------

--> maximum size reached

--> --------------------

100%


¤ Dauer der Verarbeitung: 0.52 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge