Quelle chap7.html
Sprache: HTML
|
|
| products/Sources/formale Sprachen/GAP/pkg/wedderga/doc/chap7.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 (Wedderga) - Chapter 7: Functions for calculating Schur indices and identifying div ision algebras</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="chap7" 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="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="chap6.html">[Previous Chapter]</a> <a href="chap8.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap7_mj.html">[MathJax on]</a></p>
<p><a id="X7B5D5E628144C0A2" name="X7B5D5E628144C0A2"></a></p>
<div class="ChapSects"><a href="chap7.html#X7B5D5E628144C0A2">7 <span class="Heading">Functions for calculating Schur indices and identifying division algebras</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X7802E175859EEB53">7.1 <span class="Heading">Main Schur Index and Division Algebra Functions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X854DF62880C118B8">7.1-1 WedderburnDecompositionWithDivAlgParts</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X83BC82867BE66A0B">7.1-2 CyclotomicAlgebraWithDivAlgPart</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X7D065D65858428A6">7.1-3 SchurIndex</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X860975A4792E119D">7.1-4 WedderburnDecompositionAsSCAlgebras</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X81198A8B7C19978A">7.2 <span class="Heading">Cyclotomic Reciprocity Functions </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X78482C2B7959526E">7.2-1 PPartOfN</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X7F4F73E887C96737">7.2-2 PSplitSubextension</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X7845830082B7C723">7.2-3 SplittingDegreeAtP</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X84506474869914E0">7.3 <span class="Heading">Global Splitting and Character Descent Functions </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X80B04A237F4C19FF">7.3-1 GlobalSplittingOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X81FBABAB856C676F">7.3-2 CharacterDescent</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X8106A02C78BFD852">7.3-3 GaloisRepsOfCharacters</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X782BE5F8844158AD">7.3-4 WedderburnDecompositionByCharacterDescent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X8405EF4D8264030A">7.4 <span class="Heading">Local index functions for Cyclic Cyclotomic Algebras</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X8780F8E87B6EC023">7.4-1 LocalIndicesOfCyclicCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X78588B587AEDD22F">7.4-2 LocalIndexAtInfty</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X85FBEBDA787CD61E">7.5 <span class="Heading">Local index functions for Non-Cyclic Cyclotomic Algebras</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X798DCABC8228F2DE">7.5-1 LocalIndicesOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X86AE281C7C69E42C">7.5-2 RootOfDimensionOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X7F33FE4F7E029BF7">7.5-3 DefiningGroupOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X8656B34387EC74EF">7.5-4 LocalIndexAtInftyByCharacter</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X7A3FB2D9846974CD">7.5-5 DefectGroupOfConjugacyClassAtP</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X80D1046284577B32">7.5-6 LocalIndexAtPByBrauerCharacter</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X82A979548619CB85">7.5-7 LocalIndexAtOddPByCharacter</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X82E9840B843D666E">7.6 <span class="Heading">Local index functions for Rational Quaternion Algebras</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X78E6B3807EDDE82E">7.6-1 LocalIndicesOfRationalQuaternionAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X79071DD8853678C0">7.6-2 IsRationalQuaternionAlgebraADivisionRing</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7.html#X8164EAE07A90DB11">7.7 <span class="Heading">Functions involving Cyclic Algebras</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X8671E3BD788B709F">7.7-1 DecomposeCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X8129F9307969D473">7.7-2 ConvertCyclicAlgToCyclicCyclotomicAlg</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7.html#X81FAC27A829D5FF9">7.7-3 ConvertQuaternionAlgToQuadraticAlg</a></span>
</div></div>
</div>
<h3>7 <span class="Heading">Functions for calculating Schur indices and identifying division algebras</span></h3>
<p><a id="X7802E175859EEB53" name="X7802E175859EEB53"></a></p>
<h4>7.1 <span class="Heading">Main Schur Index and Division Algebra Functions</span></h4>
<p><a id="X854DF62880C118B8" name="X854DF62880C118B8"></a></p>
<h5>7.1-1 WedderburnDecompositionWithDivAlgParts</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WedderburnDecompositionWithDivAlgParts</code>( <var class="Arg">A</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: A list of lists <code class="code">[r,D]</code>, each representing a ring of <span class="SimpleMath">r × r</span> matrices over a field or division algebra <code class="keyw">D</code>.</p>
<p>The input <var class="Arg">A</var> should be a group ring of a finite group over an abelian number field. The function will give the same result as <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) if the field of coefficients for the group ring is finite. The output is a list of pairs <code class="code">[r,D]</code>, each of which indicates a simple component isomorphic to the ring of <span class="SimpleMath">r × r</span> matrices over a division algebra described using the information in the record <code class="code">D</code>. This record contains information on the center, Schur index, and local indices of the division algebra.</p>
<p><code class="code">Local indices</code> is a list of pairs <span class="SimpleMath">[p,m]</span>, where <span class="SimpleMath">p</span> is a rational prime (possibly 'infinity') and <span class="SimpleMath">m</span> is the local index of the division algebra at the prime <span class="SimpleMath">p</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(48,15);</span>
<pc group of size 48 with 5 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=GroupRing(Rationals,G);</span>
<algebra-with-one over Rationals, with 5 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">WedderburnDecompositionInfo(R);</span>
[ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ],
[ 2, Rationals ], [ 2, Rationals ], [ 2, Rationals ], [ 2, NF(8,[ 1, 7 ]) ],
[ 2, CF(3) ], [ 1, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ]
]
<span class="GAPprompt">gap></span> <span class="GAPinput">WedderburnDecompositionWithDivAlgParts(R);</span>
[ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ],
[ 2, Rationals ], [ 2, Rationals ], [ 2, Rationals ], [ 2, NF(8,[ 1, 7 ]) ],
[ 2, CF(3) ],
[ 2,
rec( Center := Rationals, DivAlg := true,
LocalIndices := [ [ 2, 2 ], [ 3, 2 ] ], SchurIndex := 2 ) ] ]
</pre></div>
<p><a id="X83BC82867BE66A0B" name="X83BC82867BE66A0B"></a></p>
<h5>7.1-2 CyclotomicAlgebraWithDivAlgPart</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CyclotomicAlgebraWithDivAlgPart</code>( <var class="Arg">A</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: A list of length two indicating a matrix ring of a given size over a field or a noncommutative division algebra.</p>
<p>The input <var class="Arg">A</var> should be a cyclotomic algebra; i.e. a crossed product in the same form as in the output of <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>). The output is in the form <code class="code">[r,D]</code>, which indicates an <span class="SimpleMath">r × r</span> matrix ring over the division algebra described by <code class="code">D</code>. <code class="code">D</code> is either a field or a noncommutative division algebra described using a record giving information on the center, Schur index, and local indices of the division algebra.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(240,89);</span>
<permutation group of size 240 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=GroupRing(Rationals,G);</span>
<algebra-with-one over Rationals, with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=WedderburnDecompositionInfo(R);</span>
Wedderga: Warning!!!
Some of the Wedderburn components displayed are FRACTIONAL MATRIX ALGEBRAS!!!
[ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals, 10, [ 4, 3, 5 ] ],
[ 4, Rationals ], [ 4, Rationals ], [ 5, Rationals ], [ 5, Rationals ],
[ 6, Rationals ], [ 1, NF(12,[ 1, 11 ]), 10, [ 4, 3, 5 ] ],
[ 3/2, NF(8,[ 1, 7 ]), 10, [ 4, 3, 5 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicAlgebraWithDivAlgPart(W[3]);</span>
[ 2, rec( Center := Rationals, DivAlg := true,
LocalIndices := [ [ 5, 2 ], [ infinity, 2 ] ], SchurIndex := 2 ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicAlgebraWithDivAlgPart(W[9]);</span>
[ 2, rec( Center := NF(12,[ 1, 11 ]), DivAlg := true,
LocalIndices := [ [ infinity, 2 ] ], SchurIndex := 2 ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicAlgebraWithDivAlgPart(W[10]);</span>
[ 3, rec( Center := NF(8,[ 1, 7 ]), DivAlg := true,
LocalIndices := [ [ infinity, 2 ] ], SchurIndex := 2 ) ]
</pre></div>
<p><a id="X7D065D65858428A6" name="X7D065D65858428A6"></a></p>
<h5>7.1-3 SchurIndex</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SchurIndex</code>( <var class="Arg">A</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SchurIndexByCharacter</code>( <var class="Arg">F</var>, <var class="Arg">G</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The first of these returns the Schur index of the simple algebra <var class="Arg">A</var>. The second returns the Schur index of the simple component of the group ring <var class="Arg">FG</var> corresponding to the irreducible character <code class="code">Irr(G)[n]</code> of <var class="Arg">G</var>.</p>
<p>These are the main functions for computing Schur indices. The first can be used to find the rational Schur index of a simple component of the group ring of a finite group over an abelian number field, or a quaternion algebra in <strong class="pkg">GAP</strong> (see <code class="func">QuaternionAlgebra</code> (<a href="../../../doc/ref/chap62.html#X83DF4BCC7CE494FC"><span class="RefLink">Reference: QuaternionAlgebra</span></a>)) whose center is the field of rational numbers. If <var class="Arg">A</var> is a quaternion algebra over a number field other than the Rationals, <code class="code">fail</code> is returned. In these cases, the quaternion algebra can be converted to a cyclic algebra and the Schur index of the cyclic algebra can be determined through the solution of norm equations. Currently this functionality is not implemented in <strong class="pkg">GAP</strong>, but available in number theory packages such as <strong class="pkg">PARI/GP</strong>.</p>
<p>The second function computes the Schur index of the cyclotomic algebra that would occur as the simple component of the group ring <var class="Arg">FG</var> that corresponds to the irreducible character <code class="code">Irr(G)[n]</code>. The function uses <code class="func">SimpleComponentByCharacterDescent</code> (<a href="chap7.html#X81FBABAB856C676F"><span class="RefLink">7.3-2</span></a>), which uses the character descent algorithm to reduce to as small a group as possible. For larger groups this is preferrable as it is less demanding on memory. The Schur index of the resulting cyclotomic algebra is then computed with the <code class="func">SchurIndex</code> function.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(63,1);</span>
<pc group of size 63 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=GroupRing(Rationals,G);</span>
<algebra-with-one over Rationals, with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=WedderburnDecompositionInfo(R);</span>
[ [ 1, Rationals ], [ 1, CF(3) ], [ 1, CF(9) ], [ 3, NF(7,[ 1, 2, 4 ]) ],
[ 1, NF(21,[ 1, 4, 16 ]), 21, [ 3, 4, 7 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SchurIndex(W[5]);</span>
3
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(40,3);</span>
<pc group of size 40 with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=First([1..Length(Irr(G))],i->Size(KernelOfCharacter(Irr(G)[i]))=1);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SchurIndexByCharacter(GaussianRationals,G,Irr(G)[i]);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">SchurIndexByCharacter(CF(3),G,i);</span>
1
</pre></div>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=AtlasGroup("J2");</span>
<permutation group of size 604800 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Irr(G)[20];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SchurIndexByCharacter(Rationals,G,Irr(G)[20]);</span>
1
</pre></div>
<p><a id="X860975A4792E119D" name="X860975A4792E119D"></a></p>
<h5>7.1-4 WedderburnDecompositionAsSCAlgebras</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WedderburnDecompositionAsSCAlgebras</code>( <var class="Arg">R</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CyclotomicAlgebraAsSCAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SimpleComponentByCharacterAsSCAlgebra</code>( <var class="Arg">F</var>, <var class="Arg">G</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The first of these returns the Wedderburn decomposition of the group ring <code class="code">R</code> with each simple component presented as an algebra with structure constants in <strong class="pkg">GAP</strong> (see <a href="../../../doc/ref/chap62.html#X7E8F45547CC07CE5"><span class="RefLink">Reference: Constructing Algebras by Structure Constants</span></a> in the main <strong class="pkg">GAP</strong> manual). The second converts a list <code class="code">A</code> that is output from <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) into an algebra with structure constants in <strong class="pkg">GAP</strong>. The third determines an algebra with structure constants that is isomorphic to the simple component of the group ring of the finite group <code class="code">G</code> over the field <code class="code">F</code> that corresponds to the irreducible character <code class="code">Irr(G)[n]</code>.</p>
<p>These functions are an option for obtaining a Wedderburn decomposition or simple component of the group ring <code class="code">FG</code> in which the output is in the form of an algebra with structure constants, which is more compatible with GAP's built-in operations for finite-dimensional algebras.
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(63,1);</span>
<pc group of size 63 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=GroupRing(Rationals,G);</span>
<algebra-with-one over Rationals, with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=WedderburnDecompositionInfo(R);</span>
[ [ 1, Rationals ], [ 1, CF(3) ], [ 1, CF(9) ], [ 3, NF(7,[ 1, 2, 4 ]) ],
[ 1, NF(21,[ 1, 4, 16 ]), 21, [ 3, 4, 7 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WedderburnDecompositionWithDivAlgParts(R);</span>
[ [ 1, Rationals ], [ 1, CF(3) ], [ 1, CF(9) ], [ 3, NF(7,[ 1, 2, 4 ]) ],
[ 1,
rec( Center := NF(21,[ 1, 4, 16 ]), DivAlg := true,
LocalIndices := [ [ 7, 3 ] ], SchurIndex := 3 ) ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WedderburnDecompositionAsSCAlgebras(R);</span>
[ Rationals, CF(3), CF(9), ( NF(7,[ 1, 2, 4 ])^[ 3, 3 ] ),
<algebra of dimension 9 over NF(21,[ 1, 4, 16 ])> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicAlgebraAsSCAlgebra(W[5]);</span>
<algebra of dimension 9 over NF(21,[ 1, 4, 16 ])>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(Irr(G));</span>
15
<span class="GAPprompt">gap></span> <span class="GAPinput">SimpleComponentByCharacterAsSCAlgebra(Rationals,G,15);</span>
<algebra of dimension 9 over NF(21,[ 1, 4, 16 ])>
</pre></div>
<p><a id="X81198A8B7C19978A" name="X81198A8B7C19978A"></a></p>
<h4>7.2 <span class="Heading">Cyclotomic Reciprocity Functions </span></h4>
<p><a id="X78482C2B7959526E" name="X78482C2B7959526E"></a></p>
<h5>7.2-1 PPartOfN</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PPartOfN</code>( <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PDashPartOfN</code>( <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>These are standard arithmetic functions required by several subroutines for the cyclotomic reciprocity and Schur index functions in <strong class="pkg">Wedderga</strong>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">PPartOfN(2275,5);</span>
25
<span class="GAPprompt">gap></span> <span class="GAPinput">PDashPartOfN(2275,5);</span>
91
</pre></div>
<p><a id="X7F4F73E887C96737" name="X7F4F73E887C96737"></a></p>
<h5>7.2-2 PSplitSubextension</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PSplitSubextension</code>( <var class="Arg">F</var>, <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The maximal subextension <code class="code">K</code> of the cyclotomic extension <code class="code">F(E(n))/F</code> for which <span class="SimpleMath">K/F</span> splits completely at the prime <span class="SimpleMath">p</span>.</p>
<p>This function finds the maximal subextension <code class="code">K</code> of the cyclotomic extension <code class="code">F(E(n))</code> of an abelian number field <code class="code">F</code> for which both the ramification index and residue degree of <code class="code">K/F</code> over any prime lying over <var class="Arg">p</var> are <span class="SimpleMath">1</span>. To do this, it finds the field fixed by an appropriate power of the field automorphism inducing the local Frobenius automorphism.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">PSplitSubextension(Rationals,60,5);</span>
GaussianRationals
<span class="GAPprompt">gap></span> <span class="GAPinput">PSplitSubextension(NF(5,[1,4]),70,2);</span>
NF(35,[ 1, 4, 9, 11, 16, 29 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">PSplitSubextension(NF(40,[1,9,11,19]),20,2);</span>
NF(40,[ 1, 9, 11, 19])
</pre></div>
<p><a id="X7845830082B7C723" name="X7845830082B7C723"></a></p>
<h5>7.2-3 SplittingDegreeAtP</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SplittingDegreeAtP</code>( <var class="Arg">F</var>, <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ResidueDegreeAtP</code>( <var class="Arg">F</var>, <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RamificationIndexAtP</code>( <var class="Arg">F</var>, <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The splitting degree, residue degree, and ramification index of the extension <code class="code">F(E(n))/F</code> at the prime <span class="SimpleMath">p</span>.</p>
<p>These functions calculate the cyclotomic reciprocity parameters <code class="code">g</code>, <code class="code">f</code>, and <code class="code">e</code> for the extension <code class="code">F(E(n))/F</code> at the prime <span class="SimpleMath">p</span> for an abelian number field <code class="code">F</code>. To do this, it finds the <code class="code">p</code>-split subextension <code class="code">K</code> and the <span class="SimpleMath">p</span>-dash part <span class="SimpleMath">n' of n, then calculates g = [K:F], f = [K(E(n'):K]</code>, and <code class="code">e = [K(E(n)):K(E(n'))]. These functions enable the user to calculate cyclotomic reciprocity parameters for any extension of abelian number fields, as the example illustrates.
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=CF(12);</span>
CF(12)
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=NF(120,[1,49]) # Note that F is a subfield of K, with index 4.</span>
<span class="GAPprompt">></span> <span class="GAPinput">; # Then we can find e, f, and g for the extension K/F at the prime 5.</span>
NF(120,[ 1, 49 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">RamificationIndexAtP(F,120,5); RamificationIndexAtP(K,120,5); last2/last;</span>
4
2
2
<span class="GAPprompt">gap></span> <span class="GAPinput">ResidueDegreeAtP(F,120,5); ResidueDegreeAtP(K,120,5); last2/last;</span>
1
1
1
<span class="GAPprompt">gap></span> <span class="GAPinput">SplittingDegreeAtP(F,120,5); SplittingDegreeAtP(K,120,5); last2/last;</span>
2
1
2
</pre></div>
<p><a id="X84506474869914E0" name="X84506474869914E0"></a></p>
<h4>7.3 <span class="Heading">Global Splitting and Character Descent Functions </span></h4>
<p><a id="X80B04A237F4C19FF" name="X80B04A237F4C19FF"></a></p>
<h5>7.3-1 GlobalSplittingOfCyclotomicAlgebra</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GlobalSplittingOfCyclotomicAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KillingCocycle</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AntiSymMatUpMat</code>( <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CyclotomicExtensionGenerator</code>( <var class="Arg">K</var>, <var class="Arg">F</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ReducingCyclotomicAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If the input cyclotomic crossed product algebra <code class="code">A</code> admits a rescaling of basis elements by roots of unity that makes it equivalent to one with a trivial factor set, the first function here returns a full matrix algebra over the same center with the same dimension as <code class="code">A</code>. In general the function will output a cyclotomic algebra equivalent to <code class="code">A</code> whose factor set does not admit a partial splitting by a simple rescaling of basis elements by roots of unity. <code class="func">KillingCocycle</code> is a subroutine used by <code class="func">GlobalSplittingOfCyclotomicAlgebra</code> function to produce equivalent factor sets that have more zeroes, <code class="func">AntiSymMatUpMat</code> is a subroutine it uses to manipulate the factor set information in anti-symmetric matrix form. <code class="func">ReducingCyclotomicAlgebra</code> is another subroutine used by the <code class="func">GlobalSplittingOfCyclotomicAlgebra</code> that either returns an isomorphic cyclotomic algebra whose associated Galois group has fewer generators than the input, or returns fail. <code class="func">CyclotomicExtensionGenerator</code> is a subroutine called by <code class="func">ReducingCyclotomicAlgebra</code> which returns a positive integer <code class="code">m</code> if the field <code class="code">K</code> is the cyclotomic extension of <code class="code">F</code> obtained by adjoining a primitive <code class="code">m</code>-th root of <code class="code">1</code>, and returns fail otherwise.</p>
<p>The input <code class="code">A</code> must be a list representing a cyclotomic algebra in the same form as in the output of <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) or <code class="func">SimpleAlgebraByCharacterInfo</code> (<a href="chap2.html#X876FD2367E64462D"><span class="RefLink">2.2-2</span></a>). If the output has length 5, the function will first search using <code class="func">KillingCocycle</code> and <code class="func">AntiSymMatUpMat</code> for a rescaling of basis elements that makes the factor set trivial, and in general finds one that produces as many zeroes as possible in the factor set information. If there is a generator that produces a split tensor factor with a cyclotomic algebra <code class="code">B</code> defined over a root of unity of smaller order, then <code class="func">ReducingCyclotomicAlgebra</code> reduces to <code class="code">B</code>. These steps are repeated until such tensor factorizations are no longer available.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">A := [ 1, Rationals, 20, [ [ 2, 11, 0 ], [ 4, 3, 0 ] ], [ [ 0 ] ] ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GlobalSplittingOfCyclotomicAlgebra(A);</span>
[ 8, Rationals ]
<span class="GAPprompt">gap></span> <span class="GAPinput">A := [ 1, Rationals, 20, [ [ 2, 11, 0 ], [ 4, 3, 10 ] ], [ [ 0 ] ] ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GlobalSplittingOfCyclotomicAlgebra(A);</span>
[ 2, Rationals, 10, [ 4, 3, 5 ] ]
</pre></div>
<p><a id="X81FBABAB856C676F" name="X81FBABAB856C676F"></a></p>
<h5>7.3-2 CharacterDescent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CharacterDescent</code>( <var class="Arg">F</var>, <var class="Arg">G</var>, <var class="Arg">n</var>, <var class="Arg">e</var>, <var class="Arg">H</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GlobalCharacterDescent</code>( <var class="Arg">F</var>, <var class="Arg">G</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SimpleComponentByCharacterDescent</code>( <var class="Arg">F</var>, <var class="Arg">G</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The first function returns <code class="code">[r,F1,H,k]</code> where <code class="code">r</code> is a positive rational, <code class="code">F1</code> is an extension field of <code class="code">F</code>, <code class="code">H</code> is the input subgroup <code class="code">H</code>, and <code class="code">k</code> is the position in <code class="code">Irr(H)</code> of the irreducible character that admits a Global Character Descent reduction; i.e. an irreducible character of <code class="code">H</code> that has the same local indices as <code class="code">Irr(G)[n]</code>. The second function returns the limit of the Character Descent reductions, it returns the last <code class="func">CharacterDescent</code> output obtained before reaching a state where no maximal subgroup of <code class="code">G</code> admits a further reduction by <code class="func">CharacterDescent</code>. The third function returns the simple component of <code class="code">FG</code> resulting from <code class="func">GlobalCharacterDescent</code> that is produced by applying <code class="func">SimpleComponentOfGroupRingByCharacter</code> (<a href="chap7.html#X7F33FE4F7E029BF7"><span class="RefLink">7.5-3</span></a>) and adjusting the matrix degree.</p>
<p>The <code class="func">CharacterDescent</code> function tries to find an irreducible character <code class="code">psi</code>=<code class="code">Irr(H)[k]</code> of <code class="code">H</code> for which <code class="code">[F(chi,psi),F(chi)]</code> and <code class="code">(chi_H,psi)</code> are both coprime to <code class="code">|G|</code>. This character <code class="code">psi</code> will have the same local indices over <code class="code">F</code> as <code class="code">chi</code> by a theorem of Yamada. The <code class="func">GlobalCharacterDescent</code> function iterates a search for these global character descent reductions over irreducible characters of maximal subgroups of <code class="code">G</code>, and when it finds one it replaces <code class="code">G</code>, <code class="code">F(chi)</code>, and <code class="code">chi</code> by <code class="code">H</code>, <code class="code">F(chi,psi)</code>, and <code class="code">psi</code>, and then begins a search over maximal subgroups of <code class="code">H</code>. It terminates when no maximal subgroup admits a global reduction, and returns the relevant matrix degree factor along with the last <code class="code">H</code> and <code class="code">psi</code> it found. <code class="func">SimpleComponentByCharacterDescent</code> implements an algorithm that returns the simple component of <code class="code">FG</code> associated with <code class="code">Irr(G)[n]</code> obtained using the global character descent algorithm.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=PSU(3,3);</span>
<permutation group of size 6048 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">sc := SimpleComponentByCharacterDescent(Rationals,G,8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sc{[1..3]}; # the 4th entry is [ 2, 5, 3 ] or [ 2, 5, 9 ]</span>
[ 21/2, GaussianRationals, 12 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SchurIndex(sc);</span>
1
</pre></div>
<p><a id="X8106A02C78BFD852" name="X8106A02C78BFD852"></a></p>
<h5>7.3-3 GaloisRepsOfCharacters</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GaloisRepsOfCharacters</code>( <var class="Arg">F</var>, <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of positive integers <code class="code">n</code> that indicates the positions in <code class="code">Irr(G)</code> of the Galois conjugacy classes of irreducible characters of <code class="code">G</code> over the field <code class="code">F</code>.</p>
<p><code class="func">GaloisRepsOfCharacters</code> finds a list of representatives of the distinct Galois conjugacy classes of irreducible characters of <code class="code">G</code> over <code class="code">F</code>. It runs through the irreducible characters and determines if a given irreducible is Galois conjugate over <code class="code">F</code> to any of the previous ones, and if not it adds the position of that character to the list.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(63,1);</span>
<pc group of size 63 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">GaloisRepsOfCharacters(Rationals,G);</span>
[ 1, 2, 4, 10, 12 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GaloisRepsOfCharacters(CF(9),G);</span>
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GaloisRepsOfCharacters(NF(7,[1,2,4]),G);</span>
[ 1, 2, 4, 10, 11, 12, 14 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GaloisRepsOfCharacters(CF(63),G);</span>
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ]
</pre></div>
<p><a id="X782BE5F8844158AD" name="X782BE5F8844158AD"></a></p>
<h5>7.3-4 WedderburnDecompositionByCharacterDescent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WedderburnDecompositionByCharacterDescent</code>( <var class="Arg">F</var>, <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A Wedderburn decomposition of <code class="code">FG</code> that is obtained by applying the global character descent algorithm to representatives of the Galois conjugacy classes of irreducible characters of <code class="code">G</code> over <code class="code">F</code>.</p>
<p><code class="func">WedderburnDecompositionByCharacterDescent</code> is available as an option to <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) that can be more effective for larger groups, especially ones with relatively few irreducible characters. As long as <code class="code">GAP</code> is able to compute maximal subgroups and restrict irreducible characters of <code class="code">G</code> to them, this function should eventually return a Wedderburn decomposition. As it operates on one irreducible character at a time, it is less effective on Abelian groups, which have far too many irreducible characters, and on most groups in GAP's Small Groups Library, where memory limitations are not a factor and it is possible for the Shoda pair algorithms can deal with many irreducible characters at the same time.
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=GL(3,3);</span>
GL(3,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(G);</span>
11232
<span class="GAPprompt">gap></span> <span class="GAPinput">WedderburnDecompositionByCharacterDescent(Rationals,G);</span>
[ [ 1, Rationals ], [ 1, Rationals ], [ 12, Rationals ], [ 12, Rationals ],
[ 13, Rationals ], [ 13, Rationals ], [ 16, NF(13,[ 1, 3, 9 ]) ],
[ 16, NF(13,[ 1, 3, 9 ]) ], [ 26, Rationals ], [ 26, Rationals ],
[ 26, NF(8,[ 1, 3 ]) ], [ 26, NF(8,[ 1, 3 ]) ], [ 27, Rationals ],
[ 27, Rationals ], [ 39, Rationals ], [ 39, Rationals ] ]
</pre></div>
<p><a id="X8405EF4D8264030A" name="X8405EF4D8264030A"></a></p>
<h4>7.4 <span class="Heading">Local index functions for Cyclic Cyclotomic Algebras</span></h4>
<p><a id="X8780F8E87B6EC023" name="X8780F8E87B6EC023"></a></p>
<h5>7.4-1 LocalIndicesOfCyclicCyclotomicAlgebra</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndicesOfCyclicCyclotomicAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of the pairs <code class="code">[p,m]</code> indicating the nontrivial local indices <code class="code">m</code> at the primes <code class="code">p</code> of the cyclic cyclotomic algebra indicated by <code class="code">A</code>.</p>
<p>The input <code class="code">A</code> must be a list representing a cyclic cyclotomic algebra in the same form as in the output of <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) or <code class="func">SimpleAlgebraByCharacterInfo</code> (<a href="chap2.html#X876FD2367E64462D"><span class="RefLink">2.2-2</span></a>). This function computes the local Schur indices at rational primes <span class="SimpleMath">p</span> using the specialized functions for cyclic cyclotomic algebras described in this section.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=[1,Rationals,6,[2,5,3]];</span>
[ 1, Rationals, 6, [ 2, 5, 3 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndicesOfCyclicCyclotomicAlgebra(A);</span>
[ [ 3, 2 ], [ infinity, 2 ] ]
</pre></div>
<p><a id="X78588B587AEDD22F" name="X78588B587AEDD22F"></a></p>
<h5>7.4-2 LocalIndexAtInfty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndexAtInfty</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndexAtTwo</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndexAtOddP</code>( <var class="Arg">A</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: These return the local index of the cyclic cyclotomic algebra <var class="Arg">A</var> at the indicated rational prime.</p>
<p>The input <code class="code">A</code> must be a cyclic cyclotomic algebra; that is, a list of the form <code class="code">[r,F,n,[a,b,c]]</code> that indicates a cyclic cyclotomic crossed product algebra. This is a special case of the output of <strong class="pkg">wedderga</strong>'s WedderburnDecompositionInfo (2.1-2) or SimpleAlgebraByCharacterInfo (2.2-2). For the LocalIndexAtOddP function, p must be an odd prime. The functions PPartOfN (7.2-1) and PDashPartOfN (7.2-1) are standard (and self-explanatory) arithmetic functions for a positive integer n and prime p.
<p>These functions determine the local index of a cyclic cyclotomic algebra at the rational primes <code class="code">'infinity'</code>, <span class="SimpleMath">2</span>, or odd primes <span class="SimpleMath">p</span>, respectively. The first two functions check for a relationship of <span class="SimpleMath">A</span> to a nonsplit real or 2-adic quaternion algebra. <code class="func">LocalIndexAtOddP</code> calculates the local index at <span class="SimpleMath">p</span> by counting the number of roots of unity coprime to <span class="SimpleMath">p</span> found in the <span class="SimpleMath">p</span>-adic completion, and using a formula due to Janusz.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=[1,CF(4),20,[4,13,15]];</span>
[ 1, GaussianRationals, 20, [ 4, 13, 15 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndexAtOddP(A,5);</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=[1,NF(8,[1,7]),8,[2,7,4]];</span>
[ 1, NF(8,[ 1, 7 ]), 8, [ 2, 7, 4 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndexAtInfty(A);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=[1,CF(7),28,[2,15,14]];</span>
[ 1, CF(7), 28, [ 2, 15, 14 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndexAtTwo(A);</span>
2
</pre></div>
<p><a id="X85FBEBDA787CD61E" name="X85FBEBDA787CD61E"></a></p>
<h4>7.5 <span class="Heading">Local index functions for Non-Cyclic Cyclotomic Algebras</span></h4>
<p><a id="X798DCABC8228F2DE" name="X798DCABC8228F2DE"></a></p>
<h5>7.5-1 LocalIndicesOfCyclotomicAlgebra</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndicesOfCyclotomicAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of pairs <code class="code">[p,m]</code> indicating the nontrivial local indices <code class="code">m</code> at the primes <code class="code">p</code> of the cyclic cyclotomic algebra indicated by <code class="code">A</code>.</p>
<p>The input <code class="code">A</code> should be a cyclotomic algebra; i.e. a list of length 2, 4, or 5 in the form of the output by <strong class="pkg">Wedderga</strong>'s -Info functions. If the cyclotomic algebra A is represented by a list of length 2, the local indices are all 1, so the function will return an empty list. If the cyclotomic algebra A is given by a list of length 4, then it represents a cyclic cyclotomic algebra, so the function LocalIndicesOfCyclicCyclotomicAlgebra (7.4-1) is utilized. If the cyclotomic algebra A is presented as a list of length 5 or more, the function first applies GlobalSplittingOfCyclotomicAlgebra (7.3-1) to reduce the length as much as possible. If this does not reduce the length to 4 or less, it applies the character descent algorithm to try to reduce it again with Clifford theory: it determines the group and character chi that faithfully represent the algebra using Def | |