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


Quelle  chap9.html

  Sprache: HTML
 

 products/Sources/formale Sprachen/GAP/pkg/ctbllib/doc2/chap9.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (CTblLibXpls) - Chapter 9: Ambiguous Class Fusions in the GAP Character Table Library</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap9"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chap10.html">10</a>  <a href="chap11.html">11</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap8.html">[Previous Chapter]</a>    <a href="chap10.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap9_mj.html">[MathJax on]</a></p>
<p><a id="X7A03A83E87FB1189" name="X7A03A83E87FB1189"></a></p>
<div class="ChapSects"><a href="chap9.html#X7A03A83E87FB1189">9 <span class="Heading">Ambiguous Class Fusions in the <strong class="pkg">GAP</strong> Character Table Library</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X784492877DB04FE9">9.1 <span class="Heading">Some <strong class="pkg">GAP</strong> Utilities</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X7EA839057D3AD3B4">9.2 <span class="Heading">Fusions Determined by Factorization through Intermediate Subgroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X78DCEEFD85FF1EE2">9.2-1 <span class="Heading"><span class="SimpleMath">Co_3N5 → Co_3</span> (September 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X86BCEA907EC4C833">9.2-2 <span class="Heading"><span class="SimpleMath">31:15 → B</span> (March 2003)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7C719F527831F35A">9.2-3 <span class="Heading"><span class="SimpleMath">SuzN3 → Suz</span> (September 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X828879F481EF30DD">9.2-4 <span class="Heading"><span class="SimpleMath">F_{3+}N5 → F_{3+}</span> (March 2002)</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X7981579278F81AC6">9.3 <span class="Heading">Fusions Determined Using Commutative Diagrams Involving Smaller
Subgroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7F5186E28201B027">9.3-1 <span class="Heading"><span class="SimpleMath">BN7 → B</span> (March 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X79710B137B5BB1B8">9.3-2 <span class="Heading"><span class="SimpleMath">(A_4 × O_8^+(2).3).2 → Fi_24^'</span> (November 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X85822C647B29117B">9.3-3 <span class="Heading"><span class="SimpleMath">A_6 × L_2(8).3 → Fi_24^'</span> (November 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X81A607758682D9A9">9.3-4 <span class="Heading"><span class="SimpleMath">(3^2:D_8 × U_4(3).2^2).2 → B</span> (June 2007)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7962DD4387D63675">9.3-5 <span class="Heading"><span class="SimpleMath">7^1+4:(3 × 2.S_7) → M</span> (May 2009)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X860B6C30812DE3FC">9.3-6 <span class="Heading"><span class="SimpleMath">3^7.O_7(3):2 → Fi_24</span> (November 2010)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7C3AC42F8342EE2E">9.3-7 <span class="Heading"><span class="SimpleMath">^2E_6(2)N3C → ^2E_6(2)</span> (January 2019)</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X84F966E2824F5D52">9.4 <span class="Heading">Fusions Determined Using Commutative Diagrams Involving Factor
Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7F2B104686509CAA">9.4-1 <span class="Heading"><span class="SimpleMath">3.A_7 → 3.Suz</span> (December 2010)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X82FB71647D37F4FD">9.4-2 <span class="Heading"><span class="SimpleMath">S_6 → U_4(2)</span> (September 2011)</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X7CFBC41B818A318C">9.5 <span class="Heading">Fusions Determined Using Commutative Diagrams Involving
Automorphic Extensions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7E91F8707BA93081">9.5-1 <span class="Heading"><span class="SimpleMath">U_3(8).3_1 → ^2E_6(2)</span> (December 2010)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X81B37EF378E89E00">9.5-2 <span class="Heading"><span class="SimpleMath">L_3(4).2_1 → U_6(2)</span> (December 2010)</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X85E2A6F480026C95">9.6 <span class="Heading">Conditions Imposed by Brauer Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7ACC7F588213D5D5">9.6-1 <span class="Heading"><span class="SimpleMath">L_2(16).4 → J_3.2</span> (January 2004)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7ACB86CB82ED49D1">9.6-2 <span class="Heading"><span class="SimpleMath">L_2(17) → S_8(2)</span> (July 2004)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7DED4C437D479226">9.6-3 <span class="Heading"><span class="SimpleMath">L_2(19) → J_3</span> (April 2003)</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap9.html#X8225D9FA80A7D20F">9.7 <span class="Heading">Fusions Determined by Information about the Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7AE2962E82B4C814">9.7-1 <span class="Heading"><span class="SimpleMath">U_3(3).2 → Fi_24^'</span> (November 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X83061094871EE241">9.7-2 <span class="Heading"><span class="SimpleMath">L_2(13).2 → Fi_24^'</span> (September 2002)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7E9C203C7C4D709D">9.7-3 <span class="Heading"><span class="SimpleMath">M_11 → B</span> (April 2009)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X85821D748716DC7E">9.7-4 <span class="Heading"><span class="SimpleMath">L_2(11):2 → B</span> (April 2009)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X828D81487F57D612">9.7-5 <span class="Heading"><span class="SimpleMath">L_3(3) → B</span> (April 2009)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7B4E13337D66020F">9.7-6 <span class="Heading"><span class="SimpleMath">L_2(17).2 → B</span> (March 2004)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X8528432A84851F7B">9.7-7 <span class="Heading"><span class="SimpleMath">L_2(49).2_3 → B</span> (June 2006)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7EAD52AA7A28D956">9.7-8 <span class="Heading"><span class="SimpleMath">2^3.L_3(2) → G_2(5)</span> (January 2004)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X79617107849A6CEA">9.7-9 <span class="Heading"><span class="SimpleMath">5^{1+4}.2^{1+4}.A_5.4 → B</span> (April 2009)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X85C48EEB7B711C09">9.7-10 <span class="Heading">The fusion from the character table of <span class="SimpleMath">7^2:2L_2(7).2</span>
into the table of marks (January 2004)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7B1C689C7EFD07CB">9.7-11 <span class="Heading"><span class="SimpleMath">3 × U_4(2) → 3_1.U_4(3)</span> (March 2010)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7A94F78C792122D5">9.7-12 <span class="Heading"><span class="SimpleMath">2.3^4.2^3.S_4 → 2.A12</span> (September 2011)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X7E2AF30C7E8F89F9">9.7-13 <span class="Heading"><span class="SimpleMath">127:7 → L_7(2)</span> (January 2012)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X80051B297DF244CF">9.7-14 <span class="Heading"><span class="SimpleMath">L_2(59) → M</span> (May 2009) – Do not use this!</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X8409DA2E83A41ABE">9.7-15 <span class="Heading"><span class="SimpleMath">L_2(71) → M</span> (May 2009)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap9.html#X78B3B1BE7A2CA4D1">9.7-16 <span class="Heading"><span class="SimpleMath">L_2(41) → M</span> (April 2012)</span></a>
</span>
</div></div>
</div>

<h3>9 <span class="Heading">Ambiguous Class Fusions in the <strong class="pkg">GAP</strong> Character Table Library</span></h3>

<p>Date: January 11th, 2004</p>

<p>This is a collection of examples showing how class fusions between character tables can be determined using the <strong class="pkg">GAP</strong> system <a href="chapBib.html#biBGAP">[GAP24]</a>. In each of these examples, the fusion is <em>ambiguous</em> 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 <strong class="pkg">GAP</strong> function <code class="func">PossibleClassFusions</code> (<a href="../../../doc/ref/chap73.html#X7883271F7F26356E"><span class="RefLink">Reference: PossibleClassFusions</span></a>), 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>

<p>The purpose of this writeup is twofold. On the one hand, the computations are documented this way. On the other hand, the <strong class="pkg">GAP</strongcode 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 <strong class="pkg">GAP</strong> Character Table Library <a href="chapBib.html#biBCTblLib">[Bre25]</a>.</p>

<p>The examples use the <strong class="pkg">GAP</strong> Character Table Library, so we first load this package.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">LoadPackage( "ctbllib", false );</span>
true
</pre></div>

<p><a id="X784492877DB04FE9" name="X784492877DB04FE9"></a></p>

<h4>9.1 <span class="Heading">Some <strong class="pkg">GAP</strong> Utilities</span></h4>

<p>The function <code class="code">SetOfComposedClassFusions</code> takes two list of class fusions, where the first list consists of fusions between the character tables of the groups <span class="SimpleMath">H</span> and <span class="SimpleMath">G</span>, say, and the second list consists of class fusions between the character tables of the groups <span class="SimpleMath">U</span> and <span class="SimpleMath">H</span>, say; the return value is the set of compositions of each map in the first list with each map in the second list (via <code class="func">CompositionMaps</code> (<a href="../../../doc/ref/chap73.html#X8740C1397C6A96C8"><span class="RefLink">Reference: CompositionMaps</span></a>)).</p>

<p>Note that the returned list may be a proper subset of the set of all possible class fusions between <span class="SimpleMath">U</span> and <span class="SimpleMath">G</span>, which can be computed with <code class="func">PossibleClassFusions</code> (<a href="../../../doc/ref/chap73.html#X7883271F7F26356E"><span class="RefLink">Reference: PossibleClassFusions</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetOfComposedClassFusions:= function( hfusg, ufush )</span>
<span class="GAPprompt">></span> <span class="GAPinput">    local result, map1, map2;</span>
<span class="GAPprompt">></span> <span class="GAPinput">    result:= [];;</span>
<span class="GAPprompt">></span> <span class="GAPinput">    for map2 in hfusg do</span>
<span class="GAPprompt">></span> <span class="GAPinput">      for map1 in ufush do</span>
<span class="GAPprompt">></span> <span class="GAPinput">        AddSet( result, CompositionMaps( map2, map1 ) );</span>
<span class="GAPprompt">></span> <span class="GAPinput">      od;</span>
<span class="GAPprompt">></span> <span class="GAPinput">    od;</span>
<span class="GAPprompt">></span> <span class="GAPinput">    return result;</span>
<span class="GAPprompt">></span> <span class="GAPinput">end;;</span>
</pre></div>

<p><a id="X7EA839057D3AD3B4" name="X7EA839057D3AD3B4"></a></p>

<h4>9.2 <span class="Heading">Fusions Determined by Factorization through Intermediate Subgroups</span></h4>

<p>This situation clearly occurs only for nonmaximal subgroups. Interesting examples are Sylow normalizers.</p>

<p><a id="X78DCEEFD85FF1EE2" name="X78DCEEFD85FF1EE2"></a></p>

<h5>9.2-1 <span class="Heading"><span class="SimpleMath">Co_3N5 → Co_3</span> (September 2002)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">co3:= CharacterTable( "Co3" );</span>
CharacterTable( "Co3" )
<span class="GAPprompt">gap></span> <span class="GAPinput">h:= CharacterTable( "Co3N5" );</span>
CharacterTable( "5^(1+2):(24:2)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusco3:= PossibleClassFusions( h, co3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( h, hfusco3, co3 ) );</span>
2
</pre></div>

<p>As <span class="SimpleMath">H</span> is not maximal in <span class="SimpleMath">Co_3</span>, we look at those maximal subgroups of <span class="SimpleMath">Co_3</span> whose order is divisible by that of <span class="SimpleMath">H</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">mx:= Maxes( co3 );</span>
"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" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">maxes:= List( mx, CharacterTable );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( maxes, x -> Size( x ) mod Size( h ) = 0 );</span>
[ CharacterTable( "McL.2" ), CharacterTable( "HS" ), 
  CharacterTable( "U3(5).3.2" ) ]
</pre></div>

<p>According to the <strong class="pkg">Atlas</strong> (see <a href="chapBib.html#biBCCN85">[CCN+85, pp. 34 and 100]</a>), <span class="SimpleMath">H</span> occurs as the Sylow <span class="SimpleMath">5</span> normalizer in <span class="SimpleMath">U_3(5).3.2</span> and in <span class="SimpleMath">McL.2</span>; however, <span class="SimpleMath">H</span> is not a subgroup of <span class="SimpleMath">HS</span>, since otherwise <span class="SimpleMath">H</span> would be contained in subgroups of type <span class="SimpleMath">U_3(5).2</span> (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 80]</a>), but the only possible subgroups in these groups are too small (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 34]</a>).</p>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">max:= filt[1];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusmax:= PossibleClassFusions( h, max );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">maxfusco3:= PossibleClassFusions( max, co3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( maxfusco3, hfusmax );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( comp );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">reps:= RepresentativesFusions( h, comp, co3 );</span>
[ [ 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 ] ]
</pre></div>

<p>So factoring through a maximal subgroup of type <span class="SimpleMath">McL.2</span> determines the fusion from <span class="SimpleMath">H</span> to <span class="SimpleMath">Co_3</span> uniquely up to table automorphisms.</p>

<p>Alternatively, we can use the group <span class="SimpleMath">U_3(5).3.2</span> as intermediate subgroup, which leads to the same result.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">max:= filt[3];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusmax:= PossibleClassFusions( h, max );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">maxfusco3:= PossibleClassFusions( max, co3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( maxfusco3, hfusmax );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">reps2:= RepresentativesFusions( h, comp, co3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">reps2 = reps;</span>
true
</pre></div>

<p>Finally, we compare the result with the map that is stored on the library table of <span class="SimpleMath">H</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( h, co3 ) in reps;</span>
true
</pre></div>

<p><a id="X86BCEA907EC4C833" name="X86BCEA907EC4C833"></a></p>

<h5>9.2-2 <span class="Heading"><span class="SimpleMath">31:15 → B</span> (March 2003)</span></h5>

<p>The Sylow <span class="SimpleMath">31</span> normalizer <span class="SimpleMath">H</span> in the sporadic simple group <span class="SimpleMath">B</span> has the structure <span class="SimpleMath">31:15</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">h:= CharacterTable( "31:15" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusb:= PossibleClassFusions( h, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( h, hfusb, b ) );</span>
2
</pre></div>

<p>We determine the correct fusion using the fact that <span class="SimpleMath">H</span> is contained in a (maximal) subgroup of type <span class="SimpleMath">Th</span> in <span class="SimpleMath">B</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">th:= CharacterTable( "Th" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusth:= PossibleClassFusions( h, th );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">thfusb:= PossibleClassFusions( th, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( thfusb, hfusth );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( comp );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">reps:= RepresentativesFusions( h, comp, b );</span>
[ [ 1, 145, 146, 82, 82, 19, 82, 7, 19, 82, 82, 19, 7, 82, 19, 82, 82 
     ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( h, b ) in reps;</span>
true
</pre></div>

<p><a id="X7C719F527831F35A" name="X7C719F527831F35A"></a></p>

<h5>9.2-3 <span class="Heading"><span class="SimpleMath">SuzN3 → Suz</span> (September 2002)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">h:= CharacterTable( "SuzN3" );</span>
CharacterTable( "3^5:(3^2:SD16)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">suz:= CharacterTable( "Suz" );</span>
CharacterTable( "Suz" )
<span class="GAPprompt">gap></span> <span class="GAPinput">hfussuz:= PossibleClassFusions( h, suz );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( h, hfussuz, suz ) );</span>
2
</pre></div>

<p>Since <span class="SimpleMath">H</span> is not maximal in <span class="SimpleMath">Suz</span>, we try to factorize the fusion through a suitable maximal subgroup.</p>


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

<p>The group <span class="SimpleMath">3_2.U_4(3).2_3^'</span> does not admit a fusion from <span class="SimpleMath">H</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">PossibleClassFusions( h, filt[1] );</span>
[  ]
</pre></div>

<p>Definitely <span class="SimpleMath">3^5:M_11</span> contains a group isomorphic with <span class="SimpleMath">H</span>, because the Sylow <span class="SimpleMath">3</span> normalizer in <span class="SimpleMath">M_11</span> has the structure <span class="SimpleMath">3^2:SD_16</span>; using <span class="SimpleMath">3^2+4:2(2^2 × A_4)2</span> would lead to the same result as we get below. We compute the compositions of possible class fusions.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">max:= filt[2];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusmax:= PossibleClassFusions( h, max );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">maxfussuz:= PossibleClassFusions( max, suz );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( maxfussuz, hfusmax );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( h, comp, suz );</span>
[ [ 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 ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( h, suz ) in repr;</span>
true
</pre></div>

<p><a id="X828879F481EF30DD" name="X828879F481EF30DD"></a></p>

<h5>9.2-4 <span class="Heading"><span class="SimpleMath">F_{3+}N5 → F_{3+}</span> (March 2002)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">f3p:= CharacterTable( "F3+" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">h:= CharacterTable( "F3+N5" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusf3p:= PossibleClassFusions( h, f3p );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( h, hfusf3p, f3p ) );</span>
2
</pre></div>

<p><span class="SimpleMath">H</span> is not maximal in <span class="SimpleMath">F_{3+}</span>, so we look for tables of maximal subgroups that can contain <span class="SimpleMath">H</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">maxes:= List( Maxes( f3p ), CharacterTable );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( maxes, x -> Size( x ) mod Size( h ) = 0 );</span>
[ 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" ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">possfus:= List( filt, x -> PossibleClassFusions( h, x ) );</span>
[ [  ], [  ], [  ], [  ], 
  [ [ 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 ] ], [  ], [  ], [  ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">max:= filt[5];</span>
CharacterTable( "(A4xO8+(2).3).2" )
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusmax:= possfus[5];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">maxfusf3p:= PossibleClassFusions( max, f3p );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( maxfusf3p, hfusmax );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( comp );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( h, comp, f3p );</span>
[ [ 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 ] ]
</pre></div>

<p>Finally, we check whether the map stored in the table library is correct.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( h, f3p ) in repr;</span>
true
</pre></div>

<p>Note that we did <em>not</em> determine the class fusion from the maximal subgroup <span class="SimpleMath">(A_4 × O_8^+(2).3).2</span> into <span class="SimpleMath">F_{3+}</span> up to table automorphisms (see Section <a href="chap9.html#X79710B137B5BB1B8"><span class="RefLink">9.3-2</span></a> for this problem), since also the ambiguous result was enough for computing the fusion from <span class="SimpleMath">H</span> into <span class="SimpleMath">F_{3+}</span>.</p>

<p><a id="X7981579278F81AC6" name="X7981579278F81AC6"></a></p>

<h4>9.3 <span class="Heading">Fusions Determined Using Commutative Diagrams Involving Smaller
Subgroups</span></h4>

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

<p><center> <img src="ambigfus1.png" alt="setup: some subgroups of G"/> </center></p>

<p><a id="X7F5186E28201B027" name="X7F5186E28201B027"></a></p>

<h5>9.3-1 <span class="Heading"><span class="SimpleMath">BN7 → B</span> (March 2002)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );</span>
CharacterTable( "B" )
<span class="GAPprompt">gap></span> <span class="GAPinput">h:= CharacterTable( "BN7" );</span>
CharacterTable( "BN7" )
<span class="GAPprompt">gap></span> <span class="GAPinput">hfusb:= PossibleClassFusions( h, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( h, hfusb, b ) );</span>
2
</pre></div>

<p>Let us consider a maximal subgroup of the type <span class="SimpleMath">Th</span> in <span class="SimpleMath">B</span> (cf. <a href="chapBib.html#biBCCN85">[CCN+85, p. 217]</a>). By <a href="chapBib.html#biBCCN85">[CCN+85, p. 177]</a>, the Sylow <span class="SimpleMath">7</span> normalizers in <span class="SimpleMath">Th</span> are maximal subgroups of <span class="SimpleMath">Th</span> and have the structure <span class="SimpleMath">7^2:(3 × 2S_4)</span>. Let <span class="SimpleMath">U</span> be such a subgroup.</p>

<p>Note that the only maximal subgroups of <span class="SimpleMath">Th</span> whose order is divisible by the order of a Sylow <span class="SimpleMath">7</span> subgroup of <span class="SimpleMath">B</span> have the types <span class="SimpleMath">^3D_4(2).3</span> and <span class="SimpleMath">7^2:(3 × 2S_4)</span>, and the Sylow <span class="SimpleMath">7</span> normalizers in the former groups have the structure <span class="SimpleMath">7^2:(3 × 2A_4)</span>, cf. <a href="chapBib.html#biBCCN85">[CCN+85, p. 89]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Number( Factors( Size( b ) ), x -> x = 7 );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">th:= CharacterTable( "Th" );</span>
CharacterTable( "Th" )
<span class="GAPprompt">gap></span> <span class="GAPinput">Filtered( Maxes( th ), x -> Size( CharacterTable( x ) ) mod 7^2 = 0 );</span>
"3D4(2).3""7^2:(3x2S4)" ]
</pre></div>

<p>The class fusion of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span> via <span class="SimpleMath">Th</span> is uniquely determined by the character tables of these groups.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">thn7:= CharacterTable( "ThN7" );</span>
CharacterTable( "7^2:(3x2S4)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( PossibleClassFusions( th, b ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">              PossibleClassFusions( thn7, th ) );</span>
[ [ 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 ] ]
</pre></div>

<p>The condition that the class fusion of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span> factors through <span class="SimpleMath">H</span> determines the class fusion of <span class="SimpleMath">H</span> into <span class="SimpleMath">B</span> up to table automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">thn7fush:= PossibleClassFusions( thn7, h );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( hfusb, x -></span>
<span class="GAPprompt">></span> <span class="GAPinput">              ForAny( thn7fush, y -> CompositionMaps( x, y ) in comp ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( h, filt, b ) );</span>
1
</pre></div>

<p>Finally, we compare the result with the map that is stored on the library table of <span class="SimpleMath">H</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( h, b ) in filt;</span>
true
</pre></div>

<p><a id="X79710B137B5BB1B8" name="X79710B137B5BB1B8"></a></p>

<h5>9.3-2 <span class="Heading"><span class="SimpleMath">(A_4 × O_8^+(2).3).2 → Fi_24^'</span> (November 2002)</span></h5>

<p>The class fusion of the maximal subgroup <span class="SimpleMath">M ≅ (A_4 × O_8^+(2).3).2</spanof <span class="SimpleMath">G = Fi_24^'</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "(A4xO8+(2).3).2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "F3+" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mfust:= PossibleClassFusions( m, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( m, mfust, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repr );</span>
2
</pre></div>

<p>We first observe that the elements of order three in the normal subgroup of type <span class="SimpleMath">A_4</span> in <span class="SimpleMath">M</span> lie in the class <code class="code">3A</code> of <span class="SimpleMath">Fi_24^'</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a4inm:= Filtered( ClassPositionsOfNormalSubgroups( m ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                     n -> Sum( SizesConjugacyClasses( m ){ n } ) = 12 );</span>
[ [ 1, 69, 110 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( m ){ a4inm[1] };</span>
[ 1, 2, 3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( repr, map -> map[110] );</span>
[ 4, 4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( t ){ [ 1 .. 4 ] };</span>
[ 1, 2, 2, 3 ]
</pre></div>

<p>Let us take one such element <span class="SimpleMath">g</span>, say. Its normalizer <span class="SimpleMath">S</span> in <span class="SimpleMath">G</span> has the structure <span class="SimpleMath">(3 × O_8^+(3).3).2</span>; this group is maximal in <span class="SimpleMath">G</span>, and its character table is available in <strong class="pkg">GAP</strong>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "F3+N3A" );</span>
CharacterTable( "(3xO8+(3):3):2" )
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( "Cyclic", 3 ) * CharacterTable( "O8+(2).3" );</span>
CharacterTable( "C3xO8+(2).3" )
<span class="GAPprompt">gap></span> <span class="GAPinput">ufuss:= PossibleClassFusions( u, s );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= PossibleClassFusions( u, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( sfust, ufuss );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( comp );</span>
6
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( mfust,</span>
<span class="GAPprompt">></span> <span class="GAPinput">    x -> ForAny( ufusm, map -> CompositionMaps( x, map ) in comp ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( m, filt, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repr );</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( m, t ) in repr;</span>
true
</pre></div>

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

<p><a id="X85822C647B29117B" name="X85822C647B29117B"></a></p>

<h5>9.3-3 <span class="Heading"><span class="SimpleMath">A_6 × L_2(8).3 → Fi_24^'</span> (November 2002)</span></h5>

<p>The class fusion of the maximal subgroup <span class="SimpleMath">M ≅ A_6 × L_2(8).3</span> of <span class="SimpleMath">G = Fi_24^'</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "A6xL2(8):3" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "F3+" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mfust:= PossibleClassFusions( m, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( m, mfust, t ) );</span>
2
</pre></div>

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


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

<p>Since the normalizer of an element of order three in <span class="SimpleMath">A_6</span> has the form <span class="SimpleMath">3^2:2</span>, such a <code class="code">3A</code> element in <span class="SimpleMath">M</span> contains a subgroup <span class="SimpleMath">U</span> of the structure <span class="SimpleMath">3^2:2 × L_2(8).3</span> which is contained in the <code class="code">3A</code> normalizer <span class="SimpleMath">S</span> in <span class="SimpleMath">G</span>, which has the structure <span class="SimpleMath">(3 × O_8^+(3).3).2</span>.</p>

<p>(Note that all classes in the <span class="SimpleMath">3^2:2</span> type group are rational, and its character table is available in the <strong class="pkg">GAP</strong> Character Table Library with the identifier <code class="code">"3^2:2"</code>.)</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( "3^2:2" ) * CharacterTable( "L2(8).3" );</span>
CharacterTable( "3^2:2xL2(8).3" )
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "F3+N3A" );</span>
CharacterTable( "(3xO8+(3):3):2" )
<span class="GAPprompt">gap></span> <span class="GAPinput">ufuss:= PossibleClassFusions( u, s );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( sfust, ufuss );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= PossibleClassFusions( u, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( mfust,</span>
<span class="GAPprompt">></span> <span class="GAPinput">              map -> ForAny( ufusm,</span>
<span class="GAPprompt">></span> <span class="GAPinput">                         map2 -> CompositionMaps( map, map2 ) in comp ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( m, filt, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repr );</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( m, t ) in repr;</span>
true
</pre></div>

<p><a id="X81A607758682D9A9" name="X81A607758682D9A9"></a></p>

<h5>9.3-4 <span class="Heading"><span class="SimpleMath">(3^2:D_8 × U_4(3).2^2).2 → B</span> (June 2007)</span></h5>

<p>Let <span class="SimpleMath">G</span> be a maximal subgroup of the type <span class="SimpleMath">(3^2:D_8 × U_4(3).2^2).2</span> in the sporadic simple group <span class="SimpleMath">B</span>, cf. <a href="chapBib.html#biBCCN85">[CCN+85, p. 217]</a>. Computing the class fusion of <span class="SimpleMath">G</span> into <span class="SimpleMath">B</span> just from the character tables of the two groups takes extremely long. So we use additional information.</p>

<p>According to <a href="chapBib.html#biBCCN85">[CCN+85, p. 217]</a>, <span class="SimpleMath">G</span> is the normalizer in <span class="SimpleMath">B</span> of an elementary abelian group <span class="SimpleMath">⟨ x, y ⟩</span> of order <span class="SimpleMath">9</span>, with <span class="SimpleMath">x, y</span> in the class <code class="code">3A</code> of <span class="SimpleMath">B</span>, and <span class="SimpleMath">N = N_B(⟨ x ⟩)</span> has the structure <span class="SimpleMath">S_3 × Fi_22.2</span>. The intersection <span class="SimpleMath">G ∩ N</span> has the structure <span class="SimpleMath">S_3 × S_3 × U_4(3).2^2</span>, which is the direct product of <span class="SimpleMath">S_3</span> and the normalizer in <span class="SimpleMath">Fi_22.2</span> of a <code class="code">3A</code> element of <span class="SimpleMath">Fi_22.2</span>, see <a href="chapBib.html#biBCCN85">[CCN+85, p. 163]</a>. Thus we may use that the class fusions from <span class="SimpleMath">G ∩ N</span> into <span class="SimpleMath">B</span> through <span class="SimpleMath">G</span> or <span class="SimpleMath">N</span> coincide.</p>

<p>The class fusion from <span class="SimpleMath">N</span> into <span class="SimpleMath">B</span> is uniquely determined by the character tables.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:= CharacterTable( "BN3A" );</span>
CharacterTable( "S3xFi22.2" )
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusb:= PossibleClassFusions( n, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( nfusb );</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusb:= nfusb[1];;</span>
</pre></div>

<p>The computation of the class fusion from <span class="SimpleMath">G ∩ N</span> into <span class="SimpleMath">N</span> is sped up by computing first the class fusion modulo the direct factor <span class="SimpleMath">S_3</span>, and then lifting these fusion maps.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">fi222:= CharacterTable( "Fi22.2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fi222n3a:= CharacterTable( "S3xU4(3).(2^2)_{122}" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s3:= CharacterTable( "S3" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">inter:= s3 * fi222n3a;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">intermods3fusnmods3:= PossibleClassFusions( fi222n3a, fi222 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( intermods3fusnmods3 );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( fi222n3a, intermods3fusnmods3, fi222 ) );</span>
1
</pre></div>

<p>We get two equivalent possibilities, and need to consider only one of them. For lifting it to a map between <span class="SimpleMath">G ∩ N</span> and <span class="SimpleMath">N</span>, 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>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">interfusn:= CompositionMaps( InverseMap( GetFusionMap( n, fi222 ) ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">       CompositionMaps( intermods3fusnmods3[1],</span>
<span class="GAPprompt">></span> <span class="GAPinput">           GetFusionMap( inter, fi222n3a ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">interfusn:= PossibleClassFusions( inter, n,</span>
<span class="GAPprompt">></span> <span class="GAPinput">       rec( fusionmap:= interfusn, quick:= true ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( interfusn );</span>
1
</pre></div>

<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>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">nccl:= NrConjugacyClasses( fi222 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">interfusn[1] = Concatenation( List( [ 0 .. 2 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput">                      i -> intermods3fusnmods3[1] + i * nccl ) );</span>
true
</pre></div>

<p>Next we compute the class fusions from <span class="SimpleMath">G ∩ N</span> to <span class="SimpleMath">G</span>. We get two equivalent solutions.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">tblg:= CharacterTable( "BM14" );</span>
CharacterTable( "(3^2:D8xU4(3).2^2).2" )
<span class="GAPprompt">gap></span> <span class="GAPinput">interfusg:= PossibleClassFusions( inter, tblg );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( interfusg );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( inter, interfusg, tblg ) );</span>
1
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">interfusb:= CompositionMaps( nfusb, interfusn[1] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">approx:= List( interfusg,</span>
<span class="GAPprompt">></span> <span class="GAPinput">       map -> CompositionMaps( interfusb, InverseMap( map ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gfusb:= Set( Concatenation( List( approx,</span>
<span class="GAPprompt">></span> <span class="GAPinput">                    map -> PossibleClassFusions( tblg, b,</span>
<span class="GAPprompt">></span> <span class="GAPinput">                               rec( fusionmap:= map ) ) ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( gfusb );</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( tblg, gfusb, b ) );</span>
1
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( tblg, b ) in gfusb;</span>
true
</pre></div>

<p><a id="X7962DD4387D63675" name="X7962DD4387D63675"></a></p>

<h5>9.3-5 <span class="Heading"><span class="SimpleMath">7^1+4:(3 × 2.S_7) → M</span> (May 2009)</span></h5>

<p>The class fusion of the maximal subgroup <span class="SimpleMath">U</span> of type <span class="SimpleMath">7^1+4:(3 × 2.S_7)</span> of the Monster group <span class="SimpleMath">M</span> into <span class="SimpleMath">M</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">tblu:= CharacterTable( "7^(1+4):(3x2.S7)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "M" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= PossibleClassFusions( tblu, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( tblu, ufusm, m ) );</span>
2
</pre></div>

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

<p>For that, we use representations from the <strong class="pkg">Atlas</strong> of Group Representations <a href="chapBib.html#biBAGRv3">[WWT+]</a>, and access these representations via the <strong class="pkg">GAP</strong> package <strong class="pkg">AtlasRep</strong> (<a href="chapBib.html#biBAtlasRep">[WPN+22]</a>).</p>


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

<p>So let <span class="SimpleMath">N</span> be a Sylow <span class="SimpleMath">7</span> normalizer in <span class="SimpleMath">U</span>, and choose a subgroup <span class="SimpleMath">S</span> of the type <span class="SimpleMath">7^2+1+2:GL_2(7)</span> that contains <span class="SimpleMath">N</span>.</p>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">tbln:= CharacterTable( Image( IsomorphismPcGroup( n1 ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tbls:= CharacterTable( "7^(2+1+2):GL2(7)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusm:= PossibleClassFusions( tbln, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( tbln, nfusm, m ) );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">nfuss:= PossibleClassFusions( tbln, tbls );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfusm:= PossibleClassFusions( tbls, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusm:= SetOfComposedClassFusions( sfusm, nfuss );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( nfusm );</span>
1
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusu:= PossibleClassFusions( tbln, tblu );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= Filtered( ufusm, map2 -> ForAny( nfusu, </span>
<span class="GAPprompt">></span> <span class="GAPinput">       map1 -> CompositionMaps( map2, map1 ) in nfusm ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( tblu, ufusm, m ) );</span>
1
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">tblc:= CharacterTable( "MC7B" );                             </span>
CharacterTable( "7^1+4.2A7" )
<span class="GAPprompt">gap></span> <span class="GAPinput">cfusm:= PossibleClassFusions( tblc, m );;             </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( tblc, cfusm, m ) );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">cfusu:= PossibleClassFusions( tblc, tblu );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">cfusm:= SetOfComposedClassFusions( ufusm, cfusu );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( tblc, cfusm, m ) );</span>
1
</pre></div>

<p><a id="X860B6C30812DE3FC" name="X860B6C30812DE3FC"></a></p>

<h5>9.3-6 <span class="Heading"><span class="SimpleMath">3^7.O_7(3):2 → Fi_24</span> (November 2010)</span></h5>

<p>The class fusion of the maximal subgroup <span class="SimpleMath">M ≅ 3^7.O_7(3):2</span> of <span class="SimpleMath">G = Fi_24 = F_{3+}.2</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "3^7.O7(3):2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "F3+.2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mfust:= PossibleClassFusions( m, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( m, mfust, t ) );</span>
2
</pre></div>

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


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

<p>The normalizer <span class="SimpleMath">S</span> of <span class="SimpleMath">⟨ x ⟩</span> in <span class="SimpleMath">G</span> has the form <span class="SimpleMath">S_3 × O_8^+(3):S_3</span>, and the order of <span class="SimpleMath">U = S ∩ M = N_M( ⟨ x ⟩)</span> is <span class="SimpleMath">53059069440</span>, so <span class="SimpleMath">U</span> has index <span class="SimpleMath">3360</span> in <span class="SimpleMath">S</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "F3+.2N3A" );</span>
CharacterTable( "S3xO8+(3):S3" )
<span class="GAPprompt">gap></span> <span class="GAPinput">PowerMap( m, 2 )[4];</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">size_u:= 2 * SizesCentralizers( m )[ 2 ];</span>
53059069440
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( s ) / size_u;</span>
3360
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">o8p3:= CharacterTable( "O8+(3)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mx:= List( Maxes( o8p3 ), CharacterTable );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( mx, x -> 3360 mod Index( o8p3, x ) = 0 );</span>
[ CharacterTable( "3^6:L4(3)" ), CharacterTable( "O8+(3)M8" ), 
  CharacterTable( "O8+(3)M9" ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( filt, x -> Index( o8p3, x ) );</span>
[ 1120, 1120, 1120 ]
</pre></div>

<p>We compute the possible class fusions from <span class="SimpleMath">U</span> into <span class="SimpleMath">M</span> and <span class="SimpleMath">S</span> in two steps, because this is faster. First the possible class fusions from <span class="SimpleMath">U^'' ≅ 3^6:L_4(3)</span> into <span class="SimpleMath">M</span> and <span class="SimpleMath">S</span> are computed, and then these fusions are used to derive approximations for the fusions from <span class="SimpleMath">U</span> into <span class="SimpleMath">M</span> and <span class="SimpleMath">S</span>.</p>


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

<p>Now we compute the possible class fusions from <span class="SimpleMath">S</span> into <span class="SimpleMath">G</span>, and the compositions of these maps with the possible class fusions from <span class="SimpleMath">U</span> into <span class="SimpleMath">S</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( sfust, ufuss );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( comp );</span>
8
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( mfust, map2 -> ForAny( ufusm, map1 -></span>
<span class="GAPprompt">></span> <span class="GAPinput">       CompositionMaps( map2, map1 ) in comp ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( filt );</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( m, filt, t ) );</span>
1
</pre></div>

<p>The class fusion stored in the <strong class="pkg">GAP</strong> Character Table Library is one of them.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( m, t ) in filt;</span>
true
</pre></div>

<p><a id="X7C3AC42F8342EE2E" name="X7C3AC42F8342EE2E"></a></p>

<h5>9.3-7 <span class="Heading"><span class="SimpleMath">^2E_6(2)N3C → ^2E_6(2)</span> (January 2019)</span></h5>

<p>Let <span class="SimpleMath">G = ^2E_6(2)</span>, and <span class="SimpleMath">g ∈ G</span> in the conjugacy class <code class="code">3C</code>. Using a permutation representation of <span class="SimpleMath">G</span>, Frank Lübeck has computed a representation and the character table of the maximal subgroup <span class="SimpleMath">N = N_G(⟨ g ⟩)</span> of <span class="SimpleMath">G</span>.</p>


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

<p>The class fusion of <span class="SimpleMath">N</span> in <span class="SimpleMath">G</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">rep:= RepresentativesFusions( n, nfust, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( rep );</span>
4
</pre></div>

<p>We use the fact that <span class="SimpleMath">g</span> is contained in a subgroup <span class="SimpleMath">S ≅ Fi_22</span> of <span class="SimpleMath">G</span>, <span class="SimpleMath">...</span></p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "Fi22" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ForAll( sfust, x -> x[6] = pos3CinG );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">pos3CinS:= 6;;</span>
</pre></div>

<p><span class="SimpleMath">...</span> and that <span class="SimpleMath">U = N_S(⟨ g ⟩) ≅ 3^1+6:2^3+4:3^2:2</span> is a maximal subgroup of <span class="SimpleMath">S</span> whose character table is available. Thus <span class="SimpleMath">U ≤ N</span>, of index four.</p>


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

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusn:= PossibleClassFusions( u, n );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( sfust, ufuss );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">good:= Filtered( nfust, map2 -> ForAny( ufusn,</span>
<span class="GAPprompt">></span> <span class="GAPinput">              map1 -> CompositionMaps( map2, map1 ) in comp ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( good );</span>
1728
<span class="GAPprompt">gap></span> <span class="GAPinput">goodrep:= RepresentativesFusions( n, good, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( goodrep );</span>
2
</pre></div>

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


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

<p>The character table of <span class="SimpleMath">N</span> has <span class="SimpleMath">26</spantable automorphisms of order three. We do not know which of them (or perhaps the identity permutation) is induced by the restriction <span class="SimpleMath">α_N</span> of <span class="SimpleMath">α</span> to <span class="SimpleMath">N</span>, but the embedding <span class="SimpleMath">ι: N → G</span> satisfies <span class="SimpleMath">α ∘ ι = ι ∘ α_N</span>, and we can check each fusion candidate for the existence of a candidate for <span class="SimpleMath">α_N</span> such that this relation holds.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">autn:= AutomorphismsOfTable( n );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ord3:= Filtered( autn, x -> Order( x ) = 3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( ord3 );</span>
26
<span class="GAPprompt">gap></span> <span class="GAPinput">Add( ord3, () );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( rep, map -> ForAny( ord3, beta -></span>
<span class="GAPprompt">></span> <span class="GAPinput">OnTuples( map, alpha ) = Permuted( map, beta ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( filt );</span>
2
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">inter:= Intersection( good, filt );</span>
[ [ 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 ] ]
</pre></div>

<p>The class fusion stored in the <strong class="pkg">GAP</strong> Character Table Library is this candidate.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( n, t ) = inter[1];</span>
true
</pre></div>

<p><em>Remark:</em></p>

<p>Note that the structure of <span class="SimpleMath">N</span> is <span class="SimpleMath">3^1+6:2^3+6:3^2:2</span>, as is stated in <a href="chapBib.html#biBAtlasImpII">[Nor]</a>. The structure <span class="SimpleMath">3^1+6.2^3+6.(S_3 × 3)</span> claimed in the <strong class="pkg">Atlas</strong> <a href="chapBib.html#biBCCN85">[CCN+85, p. 191]</a> is wrong, as we can read off for example from the fact that <span class="SimpleMath">N</span> has exactly two linear characters.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( LinearCharacters( n ) );</span>
2
</pre></div>

<p><a id="X84F966E2824F5D52" name="X84F966E2824F5D52"></a></p>

<h4>9.4 <span class="Heading">Fusions Determined Using Commutative Diagrams Involving Factor
Groups</span></h4>

<p><a id="X7F2B104686509CAA" name="X7F2B104686509CAA"></a></p>

<h5>9.4-1 <span class="Heading"><span class="SimpleMath">3.A_7 → 3.Suz</span> (December 2010)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "Suz" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">3t:= CharacterTable( "3.Suz" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "A7" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">3s:= CharacterTable( "3.A7" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PossibleClassFusions( s, 3t );</span>
[  ]
</pre></div>

<p>The class fusion of <span class="SimpleMath">3.A_7</span> into <span class="SimpleMath">3.Suz</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">3sfus3t:= PossibleClassFusions( 3s, 3t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( 3sfus3t );</span>
6
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentativesFusions( 3s, 3sfus3t, 3t );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ClassPositionsOfCentre( 3t );</span>
[ 1, 2, 3 ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( sfust );</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( 3sfus3t, map -> CompositionMaps( GetFusionMap( 3t, t ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                                        map )</span>
<span class="GAPprompt">></span> <span class="GAPinput">              = CompositionMaps( sfust[1], GetFusionMap( 3s, s ) ) );</span>
[ [ 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 ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentativesFusions( 3s, filt, 3t );</span>
[ [ 1, 2, 3, 7, 8, 9, 16, 16, 26, 27, 28, 32, 33, 34, 47, 47, 47, 48, 
      49, 50, 48, 49, 50 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( 3s, 3t ) in filt;</span>
true
</pre></div>

<p>Also the class fusions in the other orbit belong to subgroups of type <span class="SimpleMath">3.A_7</span> in <span class="SimpleMath">3.Suz</span>. Note that <span class="SimpleMath">Suz</span> contains maximal subgroups of the type <span class="SimpleMath">3_2.U_4(3).2_3^'</span> (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 131]</a>), and the <span class="SimpleMath">A_7</span> type subgroups of <span class="SimpleMath">U_4(3)</span> (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 52]</a>) lift to groups of the type <span class="SimpleMath">3.A_7</span> in <span class="SimpleMath">3_2.U_4(3)</span> because <span class="SimpleMath">3_2.U_4(3)</span> does not admit a class fusion from <span class="SimpleMath">A_7</span>. The preimages in <span class="SimpleMath">3.Suz</span> of the <span class="SimpleMath">3.A_7</span> type subgroups of <span class="SimpleMath">Suz</span> have the structure <span class="SimpleMath">3 × 3.A_7</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( "3_2.U4(3)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PossibleClassFusions( s, u );</span>
[  ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( PossibleClassFusions( 3s, u ) );</span>
8
</pre></div>

<p><a id="X82FB71647D37F4FD" name="X82FB71647D37F4FD"></a></p>

<h5>9.4-2 <span class="Heading"><span class="SimpleMath">S_6 → U_4(2)</span> (September 2011)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "S6" );</span>
CharacterTable( "A6.2_1" )
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "U4(2)" );</span>
CharacterTable( "U4(2)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );</span>
[ [ 1, 3, 6, 7, 9, 10, 3, 2, 9, 16, 15 ], 
  [ 1, 3, 7, 6, 9, 10, 2, 3, 9, 15, 16 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s, sfust, t ) );</span>
1
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">2t:= CharacterTable( "2.U4(2)" );</span>
CharacterTable( "2.U4(2)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">2s:= CharacterTable( "2.A6.2_1" );</span>
CharacterTable( "2.A6.2_1" )
<span class="GAPprompt">gap></span> <span class="GAPinput">2sfus2t:= PossibleClassFusions( 2s, 2t );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( 2s, 2sfus2t, 2t ) );</span>
1
</pre></div>

<p>However, the two possible fusions from <span class="SimpleMath">2.U</span> to <span class="SimpleMath">2.G</span> are lifts of the same class fusion from <span class="SimpleMath">U</span> to <span class="SimpleMath">G</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">2sfuss:= GetFusionMap( 2s, s );</span>
[ 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 10, 11, 11 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">2tfust:= GetFusionMap( 2t, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">induced:= Set( 2sfus2t, x -> CompositionMaps( 2tfust,</span>
<span class="GAPprompt">></span> <span class="GAPinput">     CompositionMaps( x, InverseMap( 2sfuss ) ) ) );</span>
[ [ 1, 3, 7, 6, 9, 10, 2, 3, 9, 15, 16 ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">auts:= AutomorphismsOfTable( s );</span>
Group([ (3,4)(7,8)(10,11) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">other:= OnTuples( 2sfuss, GeneratorsOfGroup( auts )[1] );</span>
[ 1, 1, 2, 4, 4, 3, 3, 5, 6, 6, 8, 7, 9, 11, 11, 10, 10 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( 2sfus2t, x -> CompositionMaps( 2tfust,</span>
<span class="GAPprompt">></span> <span class="GAPinput">     CompositionMaps( x, InverseMap( other ) ) ) );</span>
[ [ 1, 3, 6, 7, 9, 10, 3, 2, 9, 16, 15 ] ]
</pre></div>

<p>The library table of <span class="SimpleMath">U</span> stores the class fusion to <span class="SimpleMath">G</span> that is compatible with the stored factor fusion from <span class="SimpleMath">2.U</span> to <span class="SimpleMath">U</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) in induced;</span>
true
</pre></div>

<p><a id="X7CFBC41B818A318C" name="X7CFBC41B818A318C"></a></p>

<h4>9.5 <span class="Heading">Fusions Determined Using Commutative Diagrams Involving
Automorphic Extensions</span></h4>

<p><a id="X7E91F8707BA93081" name="X7E91F8707BA93081"></a></p>

<h5>9.5-1 <span class="Heading"><span class="SimpleMath">U_3(8).3_1 → ^2E_6(2)</span> (December 2010)</span></h5>

<p>According to the <strong class="pkg">Atlas</strong> (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 191]</a>), the group <span class="SimpleMath">G = ^2E_6(2)</span> contains a maximal subgroup <span class="SimpleMath">U</span> of the type <span class="SimpleMath">U_3(8).3_1</span>. The class fusion of <span class="SimpleMath">U</span> into <span class="SimpleMath">G</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "U3(8).3_1" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "2E6(2)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( sfust );</span>
24
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s, sfust, t ) );</span>
2
</pre></div>

<p>In the automorphic extension <span class="SimpleMath">G.2 = ^2E_6(2).2</span> of <span class="SimpleMath">G</span>, the subgroup <span class="SimpleMath">U</span> extends to a group <span class="SimpleMath">U.2</span> of the type <span class="SimpleMath">U_3(8).6</span> (again, see  <a href="chapBib.html#biBCCN85">[CCN+85, p. 191]</a>). The class fusion of <span class="SimpleMath">U.2</span> into <span class="SimpleMath">G.2</span> is unique up to table automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s2:= CharacterTable( "U3(8).6" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t2:= CharacterTable( "2E6(2).2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s2fust2:= PossibleClassFusions( s2, t2 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( s2fust2 );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s2, s2fust2, t2 ) );</span>
1
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfuss2:= PossibleClassFusions( s, s2 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( s2fust2, sfuss2 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tfust2:= PossibleClassFusions( t, t2 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( sfust, map -> ForAny( tfust2,</span>
<span class="GAPprompt">></span> <span class="GAPinput">              map2 -> CompositionMaps( map2, map ) in comp ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( filt );</span>
12
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s, filt, t ) );</span>
1
</pre></div>

<p>Let us see which classes of <span class="SimpleMath">U</span> and <span class="SimpleMath">G</span> 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 <span class="SimpleMath">31</span> to <span class="SimpleMath">36</span>: Under all possible class fusions, two pairs of classes are mapped to the classes <span class="SimpleMath">81</span> and <span class="SimpleMath">82</span> of <span class="SimpleMath">G</span>; 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>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( filt, x -> x{ [ 31 .. 36 ] } );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( Difference( sfust, filt ), x -> x{ [ 31 .. 36 ] } );</span>
[ [ 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 ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( sfuss2, x -> x{ [ 31 .. 36 ] } );</span>
[ [ 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 ] ]
</pre></div>

<p>This suffices to exclude the <q>bad</q> fusion candidates because no further fusion of the relevant classes of <span class="SimpleMath">G</span> happens in <span class="SimpleMath">G.2</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">List( tfust2, x -> x{ [ 74, 81, 82 ] } );</span>
[ [ 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 ] ]
</pre></div>

<p>(The same holds for the fusion of the relevant classes of <span class="SimpleMath">U.2</span> in <span class="SimpleMath">G.2</span>.)</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">List( s2fust2, x -> x{ [ 28 .. 31 ] } );</span>
[ [ 65, 65, 70, 71 ], [ 65, 65, 71, 70 ] ]
</pre></div>

<p>Finally, we check that a correct map is stored on the library table.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) in filt;</span>
true
</pre></div>

<p><a id="X81B37EF378E89E00" name="X81B37EF378E89E00"></a></p>

<h5>9.5-2 <span class="Heading"><span class="SimpleMath">L_3(4).2_1 → U_6(2)</span> (December 2010)</span></h5>

<p>According to the <strong class="pkg">Atlas</strong> (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 115]</a>), the group <span class="SimpleMath">G = U_6(2)</span> contains a maximal subgroup <span class="SimpleMath">U</span> of the type <span class="SimpleMath">L_3(4).2_1</span>. The class fusion of <span class="SimpleMath">U</span> into <span class="SimpleMath">G</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "L3(4).2_1" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "U6(2)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( sfust );</span>
27
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s, sfust, t ) );</span>
3
</pre></div>

<p>In the automorphic extension <span class="SimpleMath">G.3 = U_6(2).3</span> of <span class="SimpleMath">G</span>, the subgroup <span class="SimpleMath">U</span> extends to a group <span class="SimpleMath">U.3</span> of the type <span class="SimpleMath">L_3(4).6</span> (again, see  <a href="chapBib.html#biBCCN85">[CCN+85, p. 115]</a>). The class fusion of <span class="SimpleMath">U.3</span> into <span class="SimpleMath">G.3</span> is unique up to table automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s3:= CharacterTable( "L3(4).6" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t3:= CharacterTable( "U6(2).3" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s3fust3:= PossibleClassFusions( s3, t3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( s3fust3 );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s3, s3fust3, t3 ) );</span>
1
</pre></div>

<p>Here the argument used in Section <a href="chap9.html#X7E91F8707BA93081"><span class="RefLink">9.5-1</span></a> does not work, because all possible class fusions from <span class="SimpleMath">U</span> into <span class="SimpleMath">G</span> are compatible with the embeddings of <span class="SimpleMath">U</span> into <span class="SimpleMath">G.3</span> via <span class="SimpleMath">U.3</span> and <span class="SimpleMath">G</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfuss3:= PossibleClassFusions( s, s3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= SetOfComposedClassFusions( s3fust3, sfuss3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tfust3:= PossibleClassFusions( t, t3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust = Filtered( sfust, map -> ForAny( tfust3,</span>
<span class="GAPprompt">></span> <span class="GAPinput">               map2 -> CompositionMaps( map2, map ) in comp ) );</span>
true
</pre></div>

<p>Consider the elements of order four in <span class="SimpleMath">U</span>. There are three such classes inside <span class="SimpleMath">U^' ≅ L_3(4)</span>, which fuse to one class of <span class="SimpleMath">U.3</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( s );</span>
[ 1, 2, 3, 4, 4, 4, 5, 7, 2, 4, 6, 8, 8, 8 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sfuss3;</span>
[ [ 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 9, 10, 10, 10 ] ]
</pre></div>

<p>These classes of <span class="SimpleMath">U</span> fuse into some of the classes <span class="SimpleMath">10</span> to <span class="SimpleMath">12</span> of <span class="SimpleMath">G</span>. In <span class="SimpleMath">G.3</span>, these three classes fuse into one class.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( sfust, map -> map{ [ 4 .. 6 ] } );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( tfust3, map -> map{ [ 10 .. 12 ] } );</span>
[ [ 10, 10, 10 ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Filtered( sfust, map -> Intersectionmap, [ 10 .. 12 ] ) = [] );</span>
[  ]
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( sfust, map -> IsSubset( map, [ 10 .. 12 ] ) );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( s, filt, t ) );</span>
1
</pre></div>

<p>Finally, we check that a correct map is stored on the library table.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) in filt;</span>
true
</pre></div>

<p><a id="X85E2A6F480026C95" name="X85E2A6F480026C95"></a></p>

<h4>9.6 <span class="Heading">Conditions Imposed by Brauer Tables</span></h4>

<p>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 <a href="chap9.html#X7DED4C437D479226"><span class="RefLink">9.6-3</span></a> below.</p>

<p><a id="X7ACC7F588213D5D5" name="X7ACC7F588213D5D5"></a></p>

<h5>9.6-1 <span class="Heading"><span class="SimpleMath">L_2(16).4 → J_3.2</span> (January 2004)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "L2(16).4" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "J3.2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleClassFusions( s, t );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentativesFusions( s, fus, t );</span>
[ [ 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 ] ]
</pre></div>

<p>Using Brauer tables, we will see that just one fusion is admissible.</p>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">j3:= CharacterTable( "J3" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PossibleClassFusions( s, j3 );</span>
[  ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( j3, t );</span>
[ 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 16, 
  17, 17 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( fus,</span>
<span class="GAPprompt">></span> <span class="GAPinput">         x -> not IsSubset( ClassPositionsOfDerivedSubgroup( t ), x ) );</span>
[ [ 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 ] ]
</pre></div>

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


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

<p>The test of all available Brauer tables is implemented in the function <code class="code">CTblLib.Test.Decompositions</code> of the <strong class="pkg">GAP</strong> Character Table Library (<a href="chapBib.html#biBCTblLib">[Bre25]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">CTblLib.Test.Decompositions( s, fus, t ) = admissible;</span>
true
</pre></div>

<p>We see that <span class="SimpleMath">p</span>-modular tables alone determine the class fusion uniquely; in fact the primes <span class="SimpleMath">2</span> and <span class="SimpleMath">3</span> suffice for that.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) in admissible;</span>
true
</pre></div>

<p><em>Remark:</em></p>

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

<p><a id="X7ACB86CB82ED49D1" name="X7ACB86CB82ED49D1"></a></p>

<h5>9.6-2 <span class="Heading"><span class="SimpleMath">L_2(17) → S_8(2)</span> (July 2004)</span></h5>

<p>The class fusion of the maximal subgroup <span class="SimpleMath">M ≅ L_2(17)</span> of <span class="SimpleMath">G = S_8(2)</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "L2(17)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "S8(2)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mfust:= PossibleClassFusions( m, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( m, mfust, t ) );</span>
4
</pre></div>

<p>The Brauer tables for <span class="SimpleMath">M</span> and <span class="SimpleMath">G</span> determine the class fusion up to table automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= CTblLib.Test.Decompositions( m, mfust, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( m, filt, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repr );</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( m, t ) in repr;</span>
true
</pre></div>

<p><a id="X7DED4C437D479226" name="X7DED4C437D479226"></a></p>

<h5>9.6-3 <span class="Heading"><span class="SimpleMath">L_2(19) → J_3</span> (April 2003)</span></h5>

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

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "L2(19)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "J3" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">fusreps:= RepresentativesFusions( s, sfust, t );</span>
[ [ 1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 20, 21 ] ]
</pre></div>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">tmod19:= t mod 19;</span>
BrauerTable( "J3", 19 )
<span class="GAPprompt">gap></span> <span class="GAPinput">deg110:= Filtered( Irr( tmod19 ), phi -> phi[1] = 110 );</span>
[ 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
     ] ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">9A:= Position( OrdersClassRepresentatives( tmod19 ), 9 );</span>
10
<span class="GAPprompt">gap></span> <span class="GAPinput">deg110[1][ 9A ];</span>
-2*E(9)^2+E(9)^3-E(9)^4-E(9)^5+E(9)^6-2*E(9)^7
<span class="GAPprompt">gap></span> <span class="GAPinput">AtlasIrrationality( "-1+2y9+&4" ) = deg110[1][ 9A ];</span>
true
</pre></div>

<p>It turns out that four of the twelve possible class fusions are not compatible with the <span class="SimpleMath">19</span>-modular tables.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">smod19:= s mod 19;</span>
BrauerTable( "L2(19)", 19 )
<span class="GAPprompt">gap></span> <span class="GAPinput">compatible:= [];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">for map in sfust do</span>
<span class="GAPprompt">></span> <span class="GAPinput">     comp:= CompositionMaps( InverseMap( GetFusionMap( tmod19, t ) ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">     CompositionMaps( map, GetFusionMap( smod19, s ) ) );</span>
<span class="GAPprompt">></span> <span class="GAPinput">     rest:= List( Irr( tmod19 ), phi -> phi{ comp } );</span>
<span class="GAPprompt">></span> <span class="GAPinput">     if not fail in Decomposition( Irr( smod19 ), rest, "nonnegative" ) then</span>
<span class="GAPprompt">></span> <span class="GAPinput">       Add( compatible, map );</span>
<span class="GAPprompt">></span> <span class="GAPinput">     fi;</span>
<span class="GAPprompt">></span> <span class="GAPinput">   od;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">compatible;</span>
[ [ 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 ] ]
</pre></div>

<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 <span class="SimpleMath">φ_3</span>.</p>


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

<p>In order to decide which class fusion is correct, we take the matrix representation of <span class="SimpleMath">J_3</span> that affords <span class="SimpleMath">φ_3</span>, restrict it to <span class="SimpleMath">L_2(19)</span>, which is the second maximal subgroup of <span class="SimpleMath">J_3</span>, and compute the composition factors. For that, we use a representation from the <strong class="pkg">Atlas</strong> of Group Representations <a href="chapBib.html#biBAGRv3">[WWT+]</a>, and access it via the <strong class="pkg">GAP</strong> package <strong class="pkg">AtlasRep</strong> (<a href="chapBib.html#biBAtlasRep">[WPN+22]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">LoadPackage( "atlasrep", false );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">prog:= AtlasProgram( "J3""maxes", 2 );</span>
rec( groupname := "J3", identifier := [ "J3""J3G1-max2W1", 1 ], 
  program := <straight line program>, size := 3420, 
  standardization := 1, subgroupname := "L2(19)", version := "1" )
<span class="GAPprompt">gap></span> <span class="GAPinput">gens:= OneAtlasGeneratingSetInfo"J3", Characteristic, 19,</span>
<span class="GAPprompt">></span> <span class="GAPinput">              Dimension, 110 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gens:= AtlasGenerators( gens );</span>
rec( charactername := "110a", constituents := [ 3 ], 
  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" )
<span class="GAPprompt">gap></span> <span class="GAPinput">restgens:= ResultOfStraightLineProgram( prog.program, gens.generators );</span>
[ < immutable compressed matrix 110x110 over GF(19) >, 
  < immutable compressed matrix 110x110 over GF(19) > ]
<span class="GAPprompt">gap></span> <span class="GAPinput">module:= GModuleByMats( restgens, GF( 19 ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">facts:= SMTX.CollectedFactors( module );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( facts );</span>
7
<span class="GAPprompt">gap></span> <span class="GAPinput">List( facts, x -> x[1].dimension );</span>
[ 5, 7, 9, 11, 13, 15, 19 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( facts, x -> x[2] );</span>
[ 1, 2, 1, 2, 2, 1, 1 ]
</pre></div>

<p>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.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) = reps[1];</span>
true
</pre></div>

<p><em>Remark:</em></p>

<p>In May 2015, the <span class="SimpleMath">19</span>-modular character table of <span class="SimpleMath">J_3</span> has been corrected, by swapping the two classes of element order <span class="SimpleMath">17</span>. This affects the above computations only in one place, where the values of the character <code class="code">deg110</code> are shown.</p>

<p><a id="X8225D9FA80A7D20F" name="X8225D9FA80A7D20F"></a></p>

<h4>9.7 <span class="Heading">Fusions Determined by Information about the Groups</span></h4>

<p>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.</p>

<p>The group representations are taken from the <strong class="pkg">Atlas</strong> of Group Representations <a href="chapBib.html#biBAGRv3">[WWT+]</a> and are accessed via the <strong class="pkg">GAP</strong> package <strong class="pkg">AtlasRep</strong> (<a href="chapBib.html#biBAtlasRep">[WPN+22]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">LoadPackage( "atlasrep", false );</span>
true
</pre></div>

<p><a id="X7AE2962E82B4C814" name="X7AE2962E82B4C814"></a></p>

<h5>9.7-1 <span class="Heading"><span class="SimpleMath">U_3(3).2 → Fi_24^'</span> (November 2002)</span></h5>

<p>The group <span class="SimpleMath">G = Fi_24^'</span> contains a maximal subgroup <span class="SimpleMath">H</span> of type <span class="SimpleMath">U_3(3).2</span>. From the character tables of <span class="SimpleMath">G</span> and <span class="SimpleMath">H</span>, one gets a lot of essentially different possibilities (and additionally this takes quite some time). We use the description of <span class="SimpleMath">H</span> as the normalizer in <span class="SimpleMath">G</span> of a <span class="SimpleMath">U_3(3)</span> type subgroup containing elements in the classes <code class="code">2B</code>, <code class="code">3D</code>, <code class="code">3E</code>, <code class="code">4C</code>, <code class="code">4C</code>, <code class="code">6J</code>, <code class="code">7B</code>, <code class="code">8C</code>, and <code class="code">12M</code> (see <a href="chapBib.html#biBBN95">[BN95]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "F3+" );</span>
CharacterTable( "F3+" )
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "U3(3).2" );</span>
CharacterTable( "U3(3).2" )
<span class="GAPprompt">gap></span> <span class="GAPinput">tnames:= ClassNames( t, "ATLAS" );</span>
"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" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( s );</span>
[ 1, 2, 3, 3, 4, 4, 6, 7, 8, 12, 2, 4, 6, 8, 12, 12 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= List( [ "1A""2B""3D""3E""4C""4C""6J""7B""8C",</span>
<span class="GAPprompt">></span> <span class="GAPinput">                   "12M" ], x -> Position( tnames, x ) );</span>
[ 1, 3, 7, 8, 11, 11, 22, 25, 28, 50 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t, rec( fusionmap:= sfust ) );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( s );</span>
[ 1, 2, 3, 3, 4, 4, 6, 7, 8, 12, 2, 4, 6, 8, 12, 12 ]
</pre></div>

<p>So we still have two possibilities, which differ on the outer classes of element order <span class="SimpleMath">4</span> and <span class="SimpleMath">12</span>.</p>

<p>Our idea is to take a subgroup <span class="SimpleMath">U</span> of <span class="SimpleMath">H</span> that contains such elements, and to compute the possible class fusions of <span class="SimpleMath">U</span> into <span class="SimpleMath">G</span>, via the factorization through a suitable maximal subgroup <span class="SimpleMath">M</span> of <span class="SimpleMath">G</span>.</p>

<p>We take <span class="SimpleMath">U = N_H(⟨ g ⟩)</span> where <span class="SimpleMath">g</span> is an element in the first class of order three elements of <span class="SimpleMath">H</span>; this is a maximal subgroup of <span class="SimpleMath">H</span>, of order <span class="SimpleMath">216</span>.</p>


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

<p>Candidates for <span class="SimpleMath">M</span> are those subgroups of <span class="SimpleMath">G</span> that contain elements in the class <code class="code">3D</code> of <span class="SimpleMath">G</span> whose centralizer is the full <code class="code">3D</code> centralizer in <span class="SimpleMath">G</span>.</p>


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

<p>For these two groups <span class="SimpleMath">M</span>, we show that the possible class fusions from <span class="SimpleMath">U</span> to <span class="SimpleMath">G</span> via <span class="SimpleMath">M</span> factorize through <span class="SimpleMath">H</span> only if the second possible class fusion from <span class="SimpleMath">H</span> to <span class="SimpleMath">G</span> is chosen.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">possufust:= List( sfust, x -> CompositionMaps( x, ufuss ) );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= cand[1];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= PossibleClassFusions( u, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( ufusm );</span>
242
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= List( ufusm, x -> CompositionMaps( GetFusionMap( m, t ), x ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Intersection( possufust, comp );</span>
[ [ 1, 3, 3, 7, 8, 11, 11, 22, 23, 28, 28, 50, 50, 50 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= cand[2];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= PossibleClassFusions( u, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( ufusm );                        </span>
256
<span class="GAPprompt">gap></span> <span class="GAPinput">comp:= List( ufusm, x -> CompositionMaps( GetFusionMap( m, t ), x ) );;   </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Intersection( possufust, comp );</span>
[ [ 1, 3, 3, 7, 8, 11, 11, 22, 23, 28, 28, 50, 50, 50 ] ]
</pre></div>

<p>Finally, we check that the correct fusion is stored in the <strong class="pkg">GAP</strong> Character Table Library.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) = sfust[2];</span>
true
</pre></div>

<p><a id="X83061094871EE241" name="X83061094871EE241"></a></p>

<h5>9.7-2 <span class="Heading"><span class="SimpleMath">L_2(13).2 → Fi_24^'</span> (September 2002)</span></h5>

<p>The class fusion of maximal subgroups <span class="SimpleMath">U</span> of type <span class="SimpleMath">L_2(13).2</span> in <span class="SimpleMath">G = Fi_24^'</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "F3+" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( "L2(13).2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleClassFusions( u, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( u, fus, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repr );</span>
3
</pre></div>

<p>In <a href="chapBib.html#biBLW91">[LW91, p. 155]</a>, it is stated that <span class="SimpleMath">U^'</span> contains elements in the classes <code class="code">2B</code>, <code class="code">3D</code>, and <code class="code">7B</code> of <span class="SimpleMath">G</span>. (Note that the two conjugacy classes of groups isomorphic to <span class="SimpleMath">U</span> have the same class fusion because the outer automorphism of <span class="SimpleMath">G</span> fixes the relevant classes.)</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">filt:= Filtered( repr, x -> t.2b in x and t.3d in x and t.7b in x );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ClassNames( t ){ [ 43, 50 ] };</span>
"12f""12m" ]
</pre></div>

<p>So we have to decide whether <span class="SimpleMath">U</span> contains elements in the class <code class="code">12F</code> or in <code class="code">12M</code> of <span class="SimpleMath">G</span>.</p>

<p>The order <span class="SimpleMath">12</span> elements in question lie inside subgroups of type <span class="SimpleMath">13 : 12</span> in <span class="SimpleMath">U</span>. These subgroups are clearly contained in the Sylow <span class="SimpleMath">13</span> normalizers of <span class="SimpleMath">G</span>, which are contained in maximal subgroups of type <span class="SimpleMath">(3^2:2 × G_2(3)).2</span> in <span class="SimpleMath">G</span>; the class fusion of the latter groups is unique up to table automorphisms.</p>


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

<p>As no <span class="SimpleMath">13:12</span> type subgroup is contained in the derived subgroup of <span class="SimpleMath">(3^2:2 × G_2(3)).2</span>, we look at the elements of order <span class="SimpleMath">12</span> in the outer half.</p>


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

<p>So <span class="SimpleMath">L_2(13).2 ∖ L_2(13)</span> does not contain <code class="code">12F</code> elements of <span class="SimpleMath">G</span>, i. e., we have determined the class fusion of <span class="SimpleMath">U</span> in <span class="SimpleMath">G</span>.</p>

<p>Finally, we check whether the correct fusion is stored in the <strong class="pkg">GAP</strong> Character Table Library.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( u, t ) = filt[2];</span>
true
</pre></div>

<p><a id="X7E9C203C7C4D709D" name="X7E9C203C7C4D709D"></a></p>

<h5>9.7-3 <span class="Heading"><span class="SimpleMath">M_11 → B</span> (April 2009)</span></h5>

<p>The sporadic simple group <span class="SimpleMath">B</span> contains a maximal subgroup <span class="SimpleMath">M</span> of the type <span class="SimpleMath">M_11</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">m11:= CharacterTable( "M11" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">m11fusb:= PossibleClassFusions( m11, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( m11fusb );</span>
31
<span class="GAPprompt">gap></span> <span class="GAPinput">CompositionMaps( ClassNames( b, "ATLAS" ), Parametrized( m11fusb ) );</span>
"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" ]
</pre></div>

<p>According to <a href="chapBib.html#biBWil93a">[Wil93a, Thm. 12.1]</a>, <span class="SimpleMath">M</span> contains no <code class="code">5A</code> elements of <span class="SimpleMath">B</span>. By the proof of <a href="chapBib.html#biBWil99">[Wil99, Prop. 4.1]</a>, the involutions in any <span class="SimpleMath">S_5</span> type subgroup <span class="SimpleMath">U</span> of <span class="SimpleMath">M</span> lie in the class <code class="code">2C</code> or <code class="code">2D</code> of <span class="SimpleMath">B</span>, and since the possible class fusions of <span class="SimpleMath">M</span> computed above admit only involutions in the class <code class="code">2B</code> or <code class="code">2D</code>, all involutions of <span class="SimpleMath">U</span> lie in the class <code class="code">2D</code>. Again by the proof of <a href="chapBib.html#biBWil99">[Wil99, Prop. 4.1]</a>, <span class="SimpleMath">U</span> is contained in a maximal subgroup of type <span class="SimpleMath">Th</span> in <span class="SimpleMath">B</span>.</p>

<p>Now we use the embedding of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span> via <span class="SimpleMath">M</span> and <span class="SimpleMath">Th</span> for determining the class fusion of <span class="SimpleMath">M</span> into <span class="SimpleMath">B</span>. The class fusion of the embedding of <span class="SimpleMath">U</span> via <span class="SimpleMath">Th</span> is uniquely determined.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">th:= CharacterTable( "Th" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s5:= CharacterTable( "S5" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s5fusth:= PossibleClassFusions( s5, th );</span>
[ [ 1, 2, 4, 8, 2, 7, 11 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">thfusb:= PossibleClassFusions( th, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s5fusb:= Set( thfusb, x -> CompositionMaps( x, s5fusth[1] ) );</span>
[ [ 1, 5, 7, 19, 5, 17, 29 ] ]
</pre></div>

<p>Also the class fusion of <span class="SimpleMath">U</span> into <span class="SimpleMath">M</span> is unique, and this determines the class fusion of <span class="SimpleMath">M</span> into <span class="SimpleMath">B</span>.</p>


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

<p>(Using the information that the <span class="SimpleMath">M_10</span> type subgroups of <span class="SimpleMath">M</span> are also contained in <span class="SimpleMath">Th</span> type subgroups would not have helped us, since these subgroups do not contain elements of order <span class="SimpleMath">6</span>, and two possibilities would have remained.)</p>

<p><a id="X85821D748716DC7E" name="X85821D748716DC7E"></a></p>

<h5>9.7-4 <span class="Heading"><span class="SimpleMath">L_2(11):2 → B</span> (April 2009)</span></h5>

<p>The sporadic simple group <span class="SimpleMath">B</span> contains a maximal subgroup <span class="SimpleMath">L</span> of the type <span class="SimpleMath">L_2(11):2</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">l:= CharacterTable( "L2(11).2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">lfusb:= PossibleClassFusions( l, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( lfusb );</span>
16
<span class="GAPprompt">gap></span> <span class="GAPinput">CompositionMaps( ClassNames( b, "ATLAS" ), Parametrized( lfusb ) );</span>
"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" ] ]
</pre></div>

<p>According to <a href="chapBib.html#biBWil93a">[Wil93a, Thm. 12.1]</a>, <span class="SimpleMath">L</span> contains no <code class="code">5A</code> elements of <span class="SimpleMath">B</span>. By the proof of <a href="chapBib.html#biBWil99">[Wil99, Prop. 4.1]</a>, <span class="SimpleMath">B</span> contains exactly one class of <span class="SimpleMath">L_2(11)</span> type subgroups with this property. Hence the subgroup <span class="SimpleMath">U</span> of index two in <span class="SimpleMath">L</span> is contained in a maximal subgroup <span class="SimpleMath">M</span> of type <span class="SimpleMath">M_11</span> in <span class="SimpleMath">B</span>, whose class fusion was determined in Section <a href="chap9.html#X7E9C203C7C4D709D"><span class="RefLink">9.7-3</span></a>.</p>

<p>In the same way as we proceeded in Section <a href="chap9.html#X7E9C203C7C4D709D"><span class="RefLink">9.7-3</span></a>, we use the embedding of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span> via <span class="SimpleMath">L</span> and <span class="SimpleMath">M</span> for determining the class fusion of <span class="SimpleMath">L</span> into <span class="SimpleMath">B</span>.</p>


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

<p><a id="X828D81487F57D612" name="X828D81487F57D612"></a></p>

<h5>9.7-5 <span class="Heading"><span class="SimpleMath">L_3(3) → B</span> (April 2009)</span></h5>

<p>The sporadic simple group <span class="SimpleMath">B</span> contains a maximal subgroup <span class="SimpleMath">T</span> of the type <span class="SimpleMath">L_3(3)</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "L3(3)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tfusb:= PossibleClassFusions( t, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( tfusb );</span>
36
</pre></div>

<p>According to <a href="chapBib.html#biBWil99">[Wil99, Section 9]</a>, <span class="SimpleMath">T</span> contains a subgroup <span class="SimpleMath">U</span> of the type <span class="SimpleMath">3^2:2S_4</span> that is contained also in a maximal subgroup <span class="SimpleMath">M</spanof the type <span class="SimpleMath">3^2.3^3.3^6.(S_4 × 2S_4)</span>. So we throw away the possible fusions from <span class="SimpleMath">T</span> to <span class="SimpleMath">B</span> that are not compatible with the compositions of the embeddings of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span> via <span class="SimpleMath">T</span> and <span class="SimpleMath">M</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "3^2.3^3.3^6.(S4x2S4)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= PSL(3,3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mx:= MaximalSubgroupClassReps( g );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= First( mx, x -> Size( x ) = 432 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( u );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusm:= PossibleClassFusions( u, m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufust:= PossibleClassFusions( u, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mfusb:= GetFusionMap( m, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusb:= Set( ufusm, map -> CompositionMaps( mfusb, map ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tfusb:= Filtered( tfusb, map -> ForAny( ufust,</span>
<span class="GAPprompt">></span> <span class="GAPinput">       map2 -> CompositionMaps( map, map2 ) in ufusb ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tfusb;</span>
[ [ 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 ] ]
</pre></div>

<p>Now we use that <span class="SimpleMath">T</span> does not contain <code class="code">4E</code> elements of <span class="SimpleMath">B</span> (again see <a href="chapBib.html#biBWil99">[Wil99, Section 9]</a>). Thus the last of the five candidates is the correct class fusion.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ClassNames( b, "ATLAS" ){ [ 12, 17 ] };</span>
"4E""4J" ]
</pre></div>

<p>We check that this map is stored on the library table.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( t, b ) = tfusb[5];</span>
true
</pre></div>

<p><a id="X7B4E13337D66020F" name="X7B4E13337D66020F"></a></p>

<h5>9.7-6 <span class="Heading"><span class="SimpleMath">L_2(17).2 → B</span> (March 2004)</span></h5>

<p>The sporadic simple group <span class="SimpleMath">B</span> contains a maximal subgroup <span class="SimpleMath">U</span> of the type <span class="SimpleMath">L_2(17).2</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( "L2(17).2" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusb:= PossibleClassFusions( u, b );</span>
[ [ 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 ] ]
</pre></div>

<p>According to <a href="chapBib.html#biBWil99">[Wil99, Prop. 11.1]</a>, <span class="SimpleMath">U</span> contains elements in the classes <code class="code">8M</code> and <code class="code">9A</code> of <span class="SimpleMath">B</span>. This determines the fusion map.</p>


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

<p>We check that this map is stored on the library table.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( u, b ) = ufusb[1];</span>
true
</pre></div>

<p><a id="X8528432A84851F7B" name="X8528432A84851F7B"></a></p>

<h5>9.7-7 <span class="Heading"><span class="SimpleMath">L_2(49).2_3 → B</span> (June 2006)</span></h5>

<p>The sporadic simple group <span class="SimpleMath">B</span> contains a class of maximal subgroups of the type <span class="SimpleMath">L_2(49).2_3</span> (a non-split extension of <span class="SimpleMath">L_2(49)</span>, see <a href="chapBib.html#biBWilson93">[Wil93b, Theorem 2]</a>). Let <span class="SimpleMath">U</span> be such a subgroup. The class fusion of <span class="SimpleMath">U</span> in <span class="SimpleMath">B</span> is not determined by the character tables of <span class="SimpleMath">U</span> and <span class="SimpleMath">B</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= CharacterTable( "L2(49).2_3" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusb:= PossibleClassFusions( u, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( u, ufusb, b ) );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">ufusb;</span>
[ [ 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 ] ]
</pre></div>

<p>We show that the fusion is determined by the embeddings of the Sylow <span class="SimpleMath">7</span> normalizer <span class="SimpleMath">N</span>, say, of <span class="SimpleMath">U</span> into <span class="SimpleMath">U</span> and into the Sylow <span class="SimpleMath">7</span> normalizer of <span class="SimpleMath">B</span>. (Note that the fusion of the latter group into <span class="SimpleMath">B</span> has been determined in Section <a href="chap9.html#X7F5186E28201B027"><span class="RefLink">9.3-1</span></a>.)</p>

<p>For that, we compute the character table of <span class="SimpleMath">N</span> from a representation of <span class="SimpleMath">U</span>. Note that <span class="SimpleMath">U</span> is a non-split extension of the simple group <span class="SimpleMath">L_2(49)</span> by the product of a diagonal automorphism and a field automorphism. In <a href="chapBib.html#biBWilson93">[Wil93b]</a>, the structure of <span class="SimpleMath">N</span> is described as <span class="SimpleMath">7^2:(3 × Q_16)</span>.</p>


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

<p>Now we compute the possible class fusions of <span class="SimpleMath">N</span> into <span class="SimpleMath">B</span>, via the Sylow <span class="SimpleMath">7</span> normalizer in <span class="SimpleMath">B</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">bn7:= CharacterTable( "BN7" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusbn7:= PossibleClassFusions( ntbl, bn7 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( ntbl, nfusbn7, bn7 ) );</span>
3
<span class="GAPprompt">gap></span> <span class="GAPinput">nfusb:= SetOfComposedClassFusions( PossibleClassFusions( bn7, b ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                                      nfusbn7 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( ntbl, nfusb, b ) );</span>
5
</pre></div>

<p>Although there are several possibilities, this information is enough to exclude one of the possible fusions of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span>.</p>


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

<p>So the class fusion of <span class="SimpleMath">U</span> into <span class="SimpleMath">B</span> can be described by the property that the elements of order four inside and outside the simple subgroup <span class="SimpleMath">L_2(49)</span> are not conjugate in <span class="SimpleMath">B</span>.</p>

<p>We check that the correct map is stored on the library table.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( u, b ) in filt;</span>
true
</pre></div>

<p>Let us confirm that the two groups of the types <span class="SimpleMath">L_2(49).2_1</span> and <span class="SimpleMath">L_2(49).2_2</span> cannot occur as subgroups of <span class="SimpleMath">B</span>. First we show that <span class="SimpleMath">L_2(49).2_1</span> is isomorphic with PGL<span class="SimpleMath">(2,49)</span>, an extension of <span class="SimpleMath">L_2(49)</span> by a diagonal automorphism, and <span class="SimpleMath">L_2(49).2_2</span> is an extension by a field automorphism.</p>


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

<p>The group <span class="SimpleMath">L_2(49).2_1</span> can be excluded because no class fusion into <span class="SimpleMath">B</span> is possible.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">PossibleClassFusions( CharacterTable( "L2(49).2_1" ), b );</span>
[  ]
</pre></div>

<p>For <span class="SimpleMath">L_2(49).2_2</span>, it is not that easy. We would get several possible class fusions into <span class="SimpleMath">B</span>. However, the Sylow <span class="SimpleMath">7</span> normalizer of <span class="SimpleMath">L_2(49).2_2</span> does not admit a class fusion into the Sylow <span class="SimpleMath">7</span> normalizer of <span class="SimpleMath">B</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:= Normalizer( act, SylowSubgroup( act, 7 ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( PossibleClassFusions( CharacterTable( n ), bn7 ) );</span>
0
</pre></div>

<p><a id="X7EAD52AA7A28D956" name="X7EAD52AA7A28D956"></a></p>

<h5>9.7-8 <span class="Heading"><span class="SimpleMath">2^3.L_3(2) → G_2(5)</span> (January 2004)</span></h5>

<p>The Chevalley group <span class="SimpleMath">G = G_2(5)</span> contains a maximal subgroup <span class="SimpleMath">U</span> of the type <span class="SimpleMath">2^3.L_3(2)</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "G2(5)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "2^3.L3(2)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sfust:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentativesFusions( s, sfust, t );</span>
[ [ 1, 2, 2, 5, 6, 4, 13, 16, 17, 15, 15 ], 
  [ 1, 2, 2, 5, 6, 4, 14, 16, 17, 15, 15 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( s );</span>
[ 1, 2, 2, 4, 4, 3, 6, 8, 8, 7, 7 ]
</pre></div>

<p>So the question is whether <span class="SimpleMath">U</span> contains elements in the class <code class="code">6B</code> or <code class="code">6C</code> of <span class="SimpleMath">G</span> (position <span class="SimpleMath">13</span> or <span class="SimpleMath">14</span> in the <strong class="pkg">Atlas</strongtable). We use a permutation representation of <span class="SimpleMath">G</span>, restrict it to <span class="SimpleMath">U</span>, and compute the centralizer in <span class="SimpleMath">G</span> of a suitable element of order <span class="SimpleMath">6</span> in <span class="SimpleMath">U</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= AtlasGroup( "G2(5)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:= AtlasSubgroup( "G2(5)", 7 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( u );</span>
1344
<span class="GAPprompt">gap></span> <span class="GAPinput">repeat</span>
<span class="GAPprompt">></span> <span class="GAPinput">     x:= Random( u );</span>
<span class="GAPprompt">></span> <span class="GAPinput">   until Order( x ) = 6;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">siz:= Size( Centralizer( g, x ) );</span>
36
<span class="GAPprompt">gap></span> <span class="GAPinput">Filtered( [ 1 .. NrConjugacyClasses( t ) ],</span>
<span class="GAPprompt">></span> <span class="GAPinput">             i -> SizesCentralizers( t )[i] = siz );</span>
[ 14 ]
</pre></div>

<p>So <span class="SimpleMath">U</span> contains <code class="code">6C</code> elements in <span class="SimpleMath">G_2(5)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) in Filtered( sfust, map -> 14 in map );  </span>
true
</pre></div>

<p><a id="X79617107849A6CEA" name="X79617107849A6CEA"></a></p>

<h5>9.7-9 <span class="Heading"><span class="SimpleMath">5^{1+4}.2^{1+4}.A_5.4 → B</span> (April 2009)</span></h5>

<p>The sporadic simple group <span class="SimpleMath">B</span> contains a maximal subgroup <span class="SimpleMath">M</span> of the type <span class="SimpleMath">5^{1+4}.2^{1+4}.A_5.4</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:= CharacterTable( "B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:= CharacterTable( "5^(1+4).2^(1+4).A5.4" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mfusb:= PossibleClassFusions( m, b );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( mfusb );</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">repres:= RepresentativesFusions( m, mfusb, b );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repres );</span>
2
</pre></div>

<p>The restriction of the unique irreducible character of degree <span class="SimpleMath">4371</span> distinguishes the two possibilities,</p>


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

<p>The database <a href="chapBib.html#biBAGRv3">[WWT+]</a> contains the <span class="SimpleMath">3</span>-modular reduction of the irreducible representation of degree <span class="SimpleMath">4371</span> and also a straight line program for restricting this representation to <span class="SimpleMath">M</span>. We access these data via the <strong class="pkg">GAP</strong> package <strong class="pkg">AtlasRep</strong> (see <a href="chapBib.html#biBAtlasRep">[WPN+22]</a>), and compute the composition factors of the natural module of this restriction.</p>


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

<p>We see that exactly one ordinary constituent does not stay irreducible upon restriction to characteristic <span class="SimpleMath">3</span>. Thus the first of the two possible class fusions is the correct one.</p>

<p><a id="X85C48EEB7B711C09" name="X85C48EEB7B711C09"></a></p>

<h5>9.7-10 <span class="Heading">The fusion from the character table of <span class="SimpleMath">7^2:2L_2(7).2</span>
into the table of marks (January 2004)</span></h5>

<p>It can happen that the class fusion from the ordinary character table of a group <span class="SimpleMath">G</span> into the table of marks of <span class="SimpleMath">G</span> is not unique up to table automorphisms of the character table of <span class="SimpleMath">G</span>.</p>

<p>As an example, consider <span class="SimpleMath">G = 7^2:2L_2(7).2</span>, a maximal subgroup in the sporadic simple group <span class="SimpleMath">He</span>.</p>

<p><span class="SimpleMath">G</span> contains four classes of cyclic subgroups of order <span class="SimpleMath">7</span>. One contains the elements in the normal subgroup of type <span class="SimpleMath">7^2</span>, and the other three are preimages of the order <span class="SimpleMath">7</span> elements in the factor group <span class="SimpleMath">L_2(7)</span>. 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 <span class="SimpleMath">G</span>, but on which the stabilizer of one class acts trivially. This means that determining one of the three classes determines also the other two.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">tbl:= CharacterTable( "7^2:2psl(2,7)" );</span>
CharacterTable( "7^2:2psl(2,7)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">tom:= TableOfMarks( tbl );</span>
TableOfMarks( "7^2:2L2(7)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleFusionsCharTableTom( tbl, tom );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">reps:= RepresentativesFusions( tbl, fus, Group(()) );        </span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AutomorphismsOfTable( tbl );</span>
Group([ (9,14)(10,17)(11,15)(12,16)(13,18), (7,8), (10,11,12)
  (15,16,17) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">OrdersClassRepresentatives( tbl );</span>
[ 1, 7, 2, 4, 3, 6, 8, 8, 7, 7, 7, 7, 14, 7, 7, 7, 7, 14 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">perms1:= PermCharsTom( reps[1], tom );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">perms2:= PermCharsTom( reps[2], tom );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">perms1 = perms2;      </span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">Set( perms1 ) = Set( perms2 );</span>
true
</pre></div>

<p>The table of marks of <span class="SimpleMath">G</span> does not distinguish the three classes of cyclic subgroups, there are permutations of rows and columns that act as an <span class="SimpleMath">S_3</span> on them.</p>

<p>Note that an <span class="SimpleMath">S_3</span> acts on the classes in question in the <em>rational</em> character table. So it is due to the irrationalities in the character table that it contains more information.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( tbl );</span>
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
<span class="GAPprompt">gap></span> <span class="GAPinput">mat:= MatTom( tom );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mataut:= MatrixAutomorphisms( mat );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Print( mataut, "\n" );</span>
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) ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentativesFusions( Group( () ), reps, mataut );</span>
[ [ 1, 6, 2, 4, 3, 5, 13, 13, 7, 8, 9, 10, 16, 7, 9, 10, 8, 16 ] ]
</pre></div>

<p>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.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= UnderlyingGroup( tom );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tg:= CharacterTable( g );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tgfustom:= FusionCharTableTom( tg, tom );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">trans:= TransformingPermutationsCharacterTables( tg, tbl );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tblfustom:= Permuted( tgfustom, trans.columns );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">orbits:= List( reps, map -> OrbitFusions( AutomorphismsOfTable( tbl ),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                                             map, Group( () ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PositionProperty( orbits, orb -> tblfustom in orb );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">PositionProperty( orbits, orb -> FusionToTom( tbl ).map in orb );</span>
2
</pre></div>

<p>So we see that the second one of the possibilities above is the right one.</p>

<p><a id="X7B1C689C7EFD07CB" name="X7B1C689C7EFD07CB"></a></p>

<h5>9.7-11 <span class="Heading"><span class="SimpleMath">3 × U_4(2) → 3_1.U_4(3)</span> (March 2010)</span></h5>

<p>According to the <strong class="pkg">Atlas</strong> (see <a href="chapBib.html#biBCCN85">[CCN+85, p. 52]</a>), the simple group <span class="SimpleMath">U_4(3)</span> contains two classes of maximal subgroups of the type <span class="SimpleMath">U_4(2)</span>. The class fusion of <span class="SimpleMath">U_4(2)</span> into <span class="SimpleMath">U_4(3)</span> is unique up to table automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u42:= CharacterTable( "U4(2)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u43:= CharacterTable( "U4(3)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u42fusu43:= PossibleClassFusions( u42, u43 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( u42fusu43 );</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( u42, u42fusu43, u43 ) );</span>
1
</pre></div>

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

<p>The automorphism <span class="SimpleMath">2_1</span> swaps each pair of mutually inverse classes of order nine, that is, <code class="code">9A</code> is swapped with <code class="code">9B</codeand <code class="code">9C</code> is swapped with <code class="code">9D</code>. All <span class="SimpleMath">U_4(2)</span> type subgroups of <span class="SimpleMath">U_4(3)</span> are invariant under this automorphism, they extend to subgroups of the type <span class="SimpleMath">U_4(2).2</span> in <span class="SimpleMath">U_4(3).2_1</span>.</p>


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

<p>The automorphism <span class="SimpleMath">2_3</span> swaps <code class="code">6B</code> with <code class="code">6C</code>, <code class="code">9A</code> with <code class="code">9C</code>, and <code class="code">9B</code> with <code class="code">9D</code>. The two classes of <span class="SimpleMath">U_4(2)</span> type subgroups of <span class="SimpleMath">U_4(3)</span> are swapped by this automorphism.</p>


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

<p>The <strong class="pkg">Atlas</strong> states that the permutation character induced by the first class of <span class="SimpleMath">U_4(2)</span> type subgroups is <code class="code">1a+35a+90a</code>, which means that the subgroups in this class contain <code class="code">9A</code> and <code class="code">9B</code> elements. Then the permutation character induced by the second class of <span class="SimpleMath">U_4(2)</span> type subgroups is <code class="code">1a+35b+90a</code>, and the subgroups in this class contain <code class="code">9C</code> and <code class="code">9D</code> elements.</p>

<p>So we choose appropriate fusions for the two classes of maximal <span class="SimpleMath">U_4(2)</span> type subgroups.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">firstfus:= First( u42fusu43, x -> IsSubset( x, [ 16, 17 ] ) );</span>
[ 1, 2, 2, 3, 3, 5, 4, 7, 8, 9, 10, 10, 12, 12, 11, 12, 16, 17, 20, 
  20 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">secondfus:= First( u42fusu43, x -> IsSubset( x, [ 18, 19 ] ) );</span>
[ 1, 2, 2, 3, 3, 4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 11, 18, 19, 20, 
  20 ]
</pre></div>

<p>Let us now consider the central extension <span class="SimpleMath">3_1.U_4(3)</span>. Since the Schur multiplier of <span class="SimpleMath">U_4(2)</span> has order two, the <span class="SimpleMath">U_4(2)</span> type subgroups of <span class="SimpleMath">U_4(3)</span> lift to groups of the structure <span class="SimpleMath">3 × U_4(2)</span> in <span class="SimpleMath">3_1.U_4(3)</span>. There are eight possible class fusions from <span class="SimpleMath">3 × U_4(2)</span> to <span class="SimpleMath">3_1.U_4(3)</span>, in two orbits of length four under the action of table automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">3u42:= CharacterTable( "Cyclic", 3 ) * u42;</span>
CharacterTable( "C3xU4(2)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">3u43:= CharacterTable( "3_1.U4(3)" );</span>
CharacterTable( "3_1.U4(3)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">3u42fus3u43:= PossibleClassFusions( 3u42, 3u43 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( 3u42fus3u43 );</span>
8
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( RepresentativesFusions( 3u42, 3u42fus3u43, 3u43 ) );</span>
2
</pre></div>

<p>More precisely, each of the four fusions from <span class="SimpleMath">U_4(2)</span> to <span class="SimpleMath">U_4(3)</span> has exactly two lifts. The four lifts of those fusions from <span class="SimpleMath">U_4(2)</span> to <span class="SimpleMath">U_4(3)</span> with <code class="code">9A</code> and <code class="code">9B</code> in their image form one orbit under the action of table automorphisms. The other orbit consists of the lifts of those fusions with <code class="code">9C</code> and <code class="code">9D</code> in their image.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">inducedmaps:= List( 3u42fus3u43, map -> CompositionMaps(</span>
<span class="GAPprompt">></span> <span class="GAPinput">       GetFusionMap( 3u43, u43 ), CompositionMaps( map,</span>
<span class="GAPprompt">></span> <span class="GAPinput">       InverseMap( GetFusionMap( 3u42, u42 ) ) ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List( inducedmaps, map -> Position( u42fusu43, map ) );</span>
[ 1, 1, 2, 2, 4, 4, 3, 3 ]
</pre></div>

<p>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 <span class="SimpleMath">U_4(2)</span> to <span class="SimpleMath">U_4(3)</span>.</p>

<p>The reason for the asymmetry is that the automorphism <span class="SimpleMath">2_3</span> of <span class="SimpleMath">U_4(3)</span> does not lift to <span class="SimpleMath">3_1.U_4(3)</span>. Note that each of the classes <code class="code">9A</code>, <code class="code">9B</code> of <span class="SimpleMath">U_4(3)</span> has three preimages in <span class="SimpleMath">3_1.U_4(3)</span>, whereas each of the classes <code class="code">9C</code>, <code class="code">9D</code> has only one preimage.</p>

<p>In fact the two classes of <span class="SimpleMath">3 × U_4(2)</span> type subgroups of <span class="SimpleMath">3_1.U_4(3)</span> behave differently. For example, inducing the irreducible characters of a <span class="SimpleMath">3 × U_4(2)</span> type subgroup in the first class of maximal subgroups of <span class="SimpleMath">3_1.U_4(3)</span> yields no irreducible character, whereas the two irreducible characters of degree <span class="SimpleMath">630</span> are obtained by inducing the irreducible characters of a subgroup in the second class.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">rep:= RepresentativesFusions( 3u42, 3u42fus3u43, 3u43 );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">irr:= Irr( 3u42 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ind:= InducedClassFunctionsByFusionMap( 3u42, 3u43, irr, rep[1] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Intersection( ind, Irr( 3u43 ) );</span>
[ 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 ] ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ind:= InducedClassFunctionsByFusionMap( 3u42, 3u43, irr, rep[2] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Intersection( ind, Irr( 3u43 ) );</span>
[  ]
</pre></div>

<p>For <span class="SimpleMath">6_1.U_4(3)</span> and <span class="SimpleMath">12_1.U_4(3)</span>, 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 <span class="SimpleMath">3 × 4 Y 2.U_4(2)</span>. We get <span class="SimpleMath">10</span> irreducible induced characters from a subgroup in the second class (four faithful ones, four with kernel of order two, and the two abovementioned degree <span class="SimpleMath">630</span> characters with kernel of order four) and no irreducible character from a subgroup in the first class.</p>

<p><a id="X7A94F78C792122D5" name="X7A94F78C792122D5"></a></p>

<h5>9.7-12 <span class="Heading"><span class="SimpleMath">2.3^4.2^3.S_4 → 2.A12</span> (September 2011)</span></h5>

<p>The double cover <span class="SimpleMath">G</span> of the alternating group <span class="SimpleMath">A_12</span> contains a maximal subgroup <span class="SimpleMath">M</span> of the type <span class="SimpleMath">2.3^4.2^3.S_4</span> whose class fusion is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">2a12:= CharacterTable( "2.A12" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mtbl:= CharacterTable( "2.3^4.2^3.S4" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mtblfus2a12:= PossibleClassFusions( mtbl, 2a12 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( mtblfus2a12 );</span>
32
<span class="GAPprompt">gap></span> <span class="GAPinput">repres:= RepresentativesFusions( mtbl, mtblfus2a12, 2a12 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( repres );</span>
2
</pre></div>

<p>We decide the question which of the essentially different two possible class fusion is the right one, by explicitly constructing <span class="SimpleMath">M</span> as a subgroup of <span class="SimpleMath">G</span>.</p>

<p>For that, let <span class="SimpleMath">π</span> denote the natural epimorphism from <span class="SimpleMath">G</span> to <span class="SimpleMath">A_12</span>, and note that <span class="SimpleMath">π(M)</span> can be described as the intersection of a <span class="SimpleMath">S_3 ℘ S_4</span> type subgroup of <span class="SimpleMath">S_12</span> with <span class="SimpleMath">A_12</span>. Further note that the generators for <span class="SimpleMath">G</span> and <span class="SimpleMath">A_12</span> provided by <a href="chapBib.html#biBAGRv3">[WWT+]</a> are compatible in the sense that <span class="SimpleMath">π</span> can be defined by mapping the generators of <span class="SimpleMath">G</span> to those of <span class="SimpleMath">A_12</span>.</p>

<p>We need <span class="SimpleMath">π</span> only for computing one preimage of each given element. Therefore, we represent <span class="SimpleMath">π</span> implicitly by two epimorphisms from a free group to <span class="SimpleMath">G</span> and <span class="SimpleMath">A_12</span>, respectively, in order to avoid that <strong class="pkg">GAP</strong>precomputes a lot of unnecessary information for <span class="SimpleMath">G</span>. This way, computing a preimage of an element of <span class="SimpleMath">A_12</span> under <span class="SimpleMath">π</span> is cheap. However, computing the preimage of a subgroup of <span class="SimpleMath">A_12</span> would be very expensive. So we construct the subgroup of <span class="SimpleMath">G</span> that is generated by preimages of a set of generators of <span class="SimpleMath">π(M)</span>; later we see that this subgroup is in fact equal to <span class="SimpleMath">M</span>.</p>


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

<p>Now we compute the character table of <span class="SimpleMath">M</span>, using a faithful permutation representation of <span class="SimpleMath">M</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">iso:= IsomorphismPermGroup( m );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( Image( iso ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( t );</span>
31104
<span class="GAPprompt">gap></span> <span class="GAPinput">trans:= TransformingPermutationsCharacterTables( mtbl, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsRecord( trans );</span>
true
</pre></div>

<p>Now let us see where the two fusion candidates differ.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">para:= Parametrized( repres );</span>
[ 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 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">PositionsProperty( para, IsList );</span>
[ 46, 47 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( repres, map -> map{ [ 44 .. 47 ] } );</span>
[ [ 33, 34, 33, 34 ], [ 33, 34, 34, 33 ] ]
</pre></div>

<p>So the question is whether the elements in class 44 are conjugate in <span class="SimpleMath">G</span> 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 <span class="SimpleMath">M</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">positions:= OnTuples( [ 44 .. 47 ], trans.columns );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">classreps:= List( ConjugacyClasses( t ){ positions },</span>
<span class="GAPprompt">></span> <span class="GAPinput">       c -> PreImagesRepresentative( iso, Representative( c ) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">traces:= List( classreps, TraceMat );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List( traces, x -> Position( traces, x ) );</span>
[ 1, 2, 2, 1 ]
</pre></div>

<p>We are lucky, already the traces of the elements allow us to decide which pairs of elements are <span class="SimpleMath">G</span>-conjugate; there is no need for an explicit (and expensive) conjugacy test in the matrix group <span class="SimpleMath">G</span>.</p>

<p>Finally, we check whether the stored fusion is correct.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">good:= First( repres,</span>
<span class="GAPprompt">></span> <span class="GAPinput">                 map -> map{ [ 44 .. 47 ] } = [ 33, 34, 34, 33 ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( mtbl, 2a12 ) = good;</span>
true
</pre></div>

<p><a id="X7E2AF30C7E8F89F9" name="X7E2AF30C7E8F89F9"></a></p>

<h5>9.7-13 <span class="Heading"><span class="SimpleMath">127:7 → L_7(2)</span> (January 2012)</span></h5>

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


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "L7(2)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "127:7" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( s, fus, t );</span>
[ [ 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 ] ]
</pre></div>

<p>The two fusion candidates differ only for elements of order <span class="SimpleMath">7</span>.</p>


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

<p>We can decide which candidate is the correct one if we know the centralizer order in G of the elements of order <span class="SimpleMath">7</span> in <span class="SimpleMath">M</span>. So we compute this centralizer order.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= Image( IsomorphismPermGroup( GL(7,2) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repeat x:= Random( g ); until Order(x) = 127;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:= Normalizer( g, SubgroupNC( g, [ x ] ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( n ) / 127;</span>
7
<span class="GAPprompt">gap></span> <span class="GAPinput">repeat x:= Random( n ); until Order( x ) = 7;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c:= Centralizer( g, x );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( c );</span>
49
</pre></div>

<p>We see that the second candidate is the fusion from <span class="SimpleMath">M</span> into <span class="SimpleMath">G</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) = repr[2];</span>
true
</pre></div>

<p><a id="X80051B297DF244CF" name="X80051B297DF244CF"></a></p>

<h5>9.7-14 <span class="Heading"><span class="SimpleMath">L_2(59) → M</span> (May 2009) – Do not use this!</span></h5>

<p>It had been claimed that the sporadic simple Monster group <span class="SimpleMath">M</span> contains a maximal subgroup <span class="SimpleMath">G</span> of the type <span class="SimpleMath">L_2(59)</span>, see <a href="chapBib.html#biBHW04">[HW04]</a>. Later it was shown that <span class="SimpleMath">M</span> does <em>not</em> contain such subgroups, see <a href="chapBib.html#biBDLPP24">[DLPP24]</a>.</p>

<p>Here we show that the character tables of <span class="SimpleMath">G</span> and <span class="SimpleMath">M</span> do not provide enough information to determine a unique class fusion. (In particular, the tables do not help to show that <span class="SimpleMath">G</span> is not a subgroup of <span class="SimpleMath">M</span>.) The class fusion of <span class="SimpleMath">G</span> into <span class="SimpleMath">M</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "M" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "L2(59)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( s, fus, t );</span>
[ [ 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 ] ]
</pre></div>

<p>The candidates differ on the classes of element order <span class="SimpleMath">30</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ord:= OrdersClassRepresentatives( s );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ord30:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = 30 );</span>
[ 18, 24, 28, 30 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( repr, x -> x{ ord30 } );</span>
[ [ 98, 98, 98, 98 ], [ 100, 100, 100, 100 ], [ 101, 101, 101, 101 ], 
  [ 102, 102, 102, 102 ], [ 104, 104, 104, 104 ] ]
</pre></div>

<p>According to <a href="chapBib.html#biBHW04">[HW04]</a>, any subgroup <span class="SimpleMath">G</span> of <span class="SimpleMath">M</span> must contain elements in the class <code class="code">30G</code> of <span class="SimpleMath">M</span>. This determines the class fusion up to Galois automorphisms. (But note that we do not store the fusion, since <span class="SimpleMath">G</span> is not a subgroup of <span class="SimpleMath">M</span>.)</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos:= Position( ClassNames( t, "Atlas" ), "30G" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">good:= Filtered( fus, map -> pos in map );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( s, good, t );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) = fail;</span>
true
</pre></div>

<p><a id="X8409DA2E83A41ABE" name="X8409DA2E83A41ABE"></a></p>

<h5>9.7-15 <span class="Heading"><span class="SimpleMath">L_2(71) → M</span> (May 2009)</span></h5>

<p>The sporadic simple Monster group <span class="SimpleMath">M</span> contains a maximal subgroup <span class="SimpleMath">G</span> of the type <span class="SimpleMath">L_2(71)</span>, see <a href="chapBib.html#biBHW08">[HW08]</a>. The class fusion of <span class="SimpleMath">G</span> into <span class="SimpleMath">M</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "M" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "L2(71)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( s, fus, t );</span>
[ [ 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 ] ]
</pre></div>

<p>The candidates differ on the classes of the element orders <span class="SimpleMath">7</span> and <span class="SimpleMath">36</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ord:= OrdersClassRepresentatives( s );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ord36:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = 36 );</span>
[ 21, 25, 27, 31, 33, 37 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( repr, x -> x{ ord36 } );</span>
[ [ 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 ] ]
</pre></div>

<p>According to <a href="chapBib.html#biBNW02">[NW02, Table 3]</a>, <span class="SimpleMath">G</span> contains elements in the classes <code class="code">7B</code> and <code class="code">36D</code> of <span class="SimpleMath">M</span>. This determines the class fusion up to Galois automorphisms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos1:= Position( ClassNames( t, "Atlas" ), "7B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos2:= Position( ClassNames( t, "Atlas" ), "36D" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos:= [ pos1, pos2 ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">good:= Filtered( fus, map -> IsSubsetmap, pos ) );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( s, good, t );</span>
[ [ 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 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) = repr[1];</span>
true
</pre></div>

<p><a id="X78B3B1BE7A2CA4D1" name="X78B3B1BE7A2CA4D1"></a></p>

<h5>9.7-16 <span class="Heading"><span class="SimpleMath">L_2(41) → M</span> (April 2012)</span></h5>

<p>The sporadic simple Monster group <span class="SimpleMath">M</span> contains a maximal subgroup <span class="SimpleMath">G</span> of the type <span class="SimpleMath">L_2(41)</span>, see <a href="chapBib.html#biBNW12">[NW13]</a>. The class fusion of <span class="SimpleMath">G</span> into <span class="SimpleMath">M</span> is ambiguous.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:= CharacterTable( "M" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:= CharacterTable( "L2(41)" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fus:= PossibleClassFusions( s, t );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">repr:= RepresentativesFusions( s, fus, t );</span>
[ [ 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 ] ]
</pre></div>

<p>The candidates differ on the classes of the element orders <span class="SimpleMath">3</span>–<span class="SimpleMath">8</span>.</p>


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

<p>According to <a href="chapBib.html#biBNW12">[NW13, Theorem 3]</a>, <span class="SimpleMath">G</span> contains elements in the classes <code class="code">3B</code> and <code class="code">4C</code> of <span class="SimpleMath">M</span>. This determines the class fusion uniquely.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos1:= Position( ClassNames( t, "Atlas" ), "3B" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos2:= Position( ClassNames( t, "Atlas" ), "4C" );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pos:= [ pos1, pos2 ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">good:= Filtered( fus, map -> IsSubsetmap, pos ) );</span>
[ [ 1, 127, 127, 69, 33, 69, 12, 9, 33, 69, 12, 69, 3, 73, 73, 20, 
      73, 73, 20, 5, 73, 20, 73 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GetFusionMap( s, t ) = good[1];</span>
true
</pre></div>


<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap8.html">[Previous Chapter]</a>    <a href="chap10.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chap10.html">10</a>  <a href="chap11.html">11</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

Messung V0.5 in Prozent
C=94 H=98 G=95

¤ Dauer der Verarbeitung: 0.148 Sekunden  (vorverarbeitet am  2026-04-25) ¤

*© 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 und die Messung sind 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