Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/wedderga/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 7.6.2025 mit Größe 84 kB image not shown  

Quelle  chap7_mj.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/wedderga/doc/chap7_mj.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>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Wedderga) - Chapter 7: Functions for calculating Schur indices and identifying division 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_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap6_mj.html">[Previous Chapter]</a>    <a href="chap8_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap7.html">[MathJax off]</a></p>
<p><a id="X7B5D5E628144C0A2" name="X7B5D5E628144C0A2"></a></p>
<div class="ChapSects"><a href="chap7_mj.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_mj.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_mj.html#X854DF62880C118B8">7.1-1 WedderburnDecompositionWithDivAlgParts</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X83BC82867BE66A0B">7.1-2 CyclotomicAlgebraWithDivAlgPart</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7D065D65858428A6">7.1-3 SchurIndex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X860975A4792E119D">7.1-4 WedderburnDecompositionAsSCAlgebras</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.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_mj.html#X78482C2B7959526E">7.2-1 PPartOfN</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7F4F73E887C96737">7.2-2 PSplitSubextension</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7845830082B7C723">7.2-3 SplittingDegreeAtP</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.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_mj.html#X80B04A237F4C19FF">7.3-1 GlobalSplittingOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X81FBABAB856C676F">7.3-2 CharacterDescent</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8106A02C78BFD852">7.3-3 GaloisRepsOfCharacters</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X782BE5F8844158AD">7.3-4 WedderburnDecompositionByCharacterDescent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.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_mj.html#X8780F8E87B6EC023">7.4-1 LocalIndicesOfCyclicCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X78588B587AEDD22F">7.4-2 LocalIndexAtInfty</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.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_mj.html#X798DCABC8228F2DE">7.5-1 LocalIndicesOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X86AE281C7C69E42C">7.5-2 RootOfDimensionOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7F33FE4F7E029BF7">7.5-3 DefiningGroupOfCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8656B34387EC74EF">7.5-4 LocalIndexAtInftyByCharacter</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7A3FB2D9846974CD">7.5-5 DefectGroupOfConjugacyClassAtP</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X80D1046284577B32">7.5-6 LocalIndexAtPByBrauerCharacter</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X82A979548619CB85">7.5-7 LocalIndexAtOddPByCharacter</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.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_mj.html#X78E6B3807EDDE82E">7.6-1 LocalIndicesOfRationalQuaternionAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X79071DD8853678C0">7.6-2 IsRationalQuaternionAlgebraADivisionRing</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.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_mj.html#X8671E3BD788B709F">7.7-1 DecomposeCyclotomicAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8129F9307969D473">7.7-2 ConvertCyclicAlgToCyclicCyclotomicAlg</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.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 \times 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_mj.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 \times 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_mj.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 \times 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_mj.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_mj.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_mj.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_mj.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 samform as in the output of <code class="func">WedderburnDecompositionInfo</code> (<a href="chap2_mj.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) or <code class="func">SimpleAlgebraByCharacterInfo</code> (<a href="chap2_mj.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</codeoutput 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</coderesulting from <code class="func">GlobalCharacterDescent</code> that is produced by applying <code class="func">SimpleComponentOfGroupRingByCharacter</code> (<a href="chap7_mj.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</codefor 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_mj.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_mj.html#X8710F98A85F0DD29"><span class="RefLink">2.1-2</span></a>) or <code class="func">SimpleAlgebraByCharacterInfo</code> (<a href="chap2_mj.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</varat 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 DefiningGroupOfCyclotomicAlgebra (7.5-3) and DefiningCharacterOfCyclotomicAlgebra (7.5-3), then applies SimpleComponentByCharacterDescent (7.3-2). It repeats this until it cannot reduce the length of cyclotomic algebra any longer. If the length is 4 it will apply the local index functions for cyclic cyclotomic algebras to compute the local indices at each prime dividing the order of the group. If the length is 5 or more, it applies the character-theoretic local Schur index functions to the output [G,chi] of DefiningGroupAndCharacterOfCyclotAlg (7.5-3). It uses the Frobenius-Schur indicator of chi to determine the local index at infinity (see LocalIndexAtInftyByCharacter (7.5-4)). For local indices at odd primes and sometimes for the prime \(2\), the defect group of the block containing chi will be cyclic, so the local index can be found using the values of a Brauer character by a theorem of Benard (see LocalIndexAtPByBrauerCharacter (7.5-6).) Sometimes for the prime 2 the defect group is not necessarily cyclic, so in these cases we appeal to the classification of dyadic Schur groups by Schmid and Riese (see LocalIndexAtTwoByCharacter (7.5-7)).




<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(480,600);</span>
<pc group of size 480 with 7 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=WedderburnDecompositionInfo(GroupRing(Rationals,G));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(W);</span>
27
<span class="GAPprompt">gap></span> <span class="GAPinput">W[27];</span>
[ 1, NF(5,[ 1, 4 ]), 60, [ [ 2, 11, 0 ], [ 2, 19, 30 ], [ 2, 31, 30 ] ],
  [ [ 0, 45 ], [ 15 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndicesOfCyclotomicAlgebra(W[27]);</span>
[ [ infinity, 2 ] ]

</pre></div>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(160,82);</span>
<pc group of size 160 with 6 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=WedderburnDecompositionInfo(GroupRing(Rationals,G));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(W);</span>
14
<span class="GAPprompt">gap></span> <span class="GAPinput">W[14];</span>
[ 1, Rationals, 20, [ [ 2, 11, 0 ], [ 4, 3, 0 ] ], [ [ 5 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndicesOfCyclotomicAlgebra(W[14]);</span>
[ [ 2, 2 ], [ 5, 2 ] ]

</pre></div>

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

<h5>7.5-2 RootOfDimensionOfCyclotomicAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RootOfDimensionOfCyclotomicAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A positive integer representing the square root of the dimension of the cyclotomic algebra over its center.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">A:=[3,Rationals,12,[[2,5,3],[2,7,0]],[[3]]];</span>
[ 3, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">RootOfDimensionOfCyclotomicAlgebra(A);</span>
12

</pre></div>

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

<h5>7.5-3 DefiningGroupOfCyclotomicAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefiningGroupOfCyclotomicAlgebra</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">‣ DefiningCharacterOfCyclotomicAlgebra</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">‣ DefiningGroupAndCharacterOfCyclotAlg</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: These functions return a finite group <code class="code">G</code> and a positive integer <code class="code">n</code> (or, in the case to the third function, an irreducible character <code class="code">n</code> of <code class="code">G</code> for which the simple component of a group algebra over <code class="code">G</code> over the center of the cyclotomic algebra <code class="code">A</code> corresponding to the character <code class="code">Irr(G)[n]</code> (resp. <code class="code">n</code>) will be (rationally) isomorphic to <code class="code">A</code>.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SimpleComponentOfGroupRingByCharacter</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: A list that describes the algebraic structure of the simple component of the group algebra <code class="code">FG</code> which corresponds to the irreducible character <code class="code">Irr(G)[n]</code> (or <code class="code">n</code>).</p>

<p>This function is an alternative to <code class="code">SimpleAlgebraByCharacterInfo(GroupRing(F,G),</code> <code class="code">Irr(G)[n]);</code>. It is used in subroutines of local index functions when we need to work over a field larger than the field of character values.</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">W:=WedderburnDecompositionInfo(R);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=W[10];</span>
[ 1, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=DefiningGroupOfCyclotomicAlgebra(A);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IdSmallGroup(g);</span>
[ 48, 15 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=DefiningCharacterOfCyclotomicAlgebra(A);</span>
12
<span class="GAPprompt">gap></span> <span class="GAPinput">SimpleComponentOfGroupRingByCharacter(Rationals,G,n)</span>
<span class="GAPprompt">></span> <span class="GAPinput">;#Note:this cyclotomic algebra is isomorphic to the other by a change of basis.</span>
[ 1, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ]

</pre></div>

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

<h5>7.5-4 LocalIndexAtInftyByCharacter</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndexAtInftyByCharacter</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 local index at an infinite prime of the field <var class="Arg">F</var> of the irreducible character <code class="code">Irr(G)[n]</code> (or <code class="code">n</code>) of the finite group <var class="Arg">G</var>.</p>

<p>This function computes the Frobenius-Schur indicator of the irreducible character <code class="code">Irr(G)[n]</code>, and uses it to calculate the local index at <code class="code">infinity</code> of the corresponding simple component of <var class="Arg">FG</var>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(48,16);</span>
<pc group of size 48 with 5 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">LocalIndexAtInftyByCharacter(Rationals,G,i);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndexAtInftyByCharacter(CF(3),G,Irr(G)[i]);</span>
1


</pre></div>

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

<h5>7.5-5 DefectGroupOfConjugacyClassAtP</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefectGroupOfConjugacyClassAtP</code>( <var class="Arg">G</var>, <var class="Arg">c</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">‣ DefectGroupsOfPBlock</code>( <var class="Arg">G</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">‣ DefectOfCharacterAtP</code>( <var class="Arg">G</var>, <var class="Arg">n</var>, <var class="Arg">p</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The first of these functions returns a defect group of the <code class="code">c</code>-th conjugacy class of the finite group <code class="code">G</code> at the prime <code class="code">p</code>. The second returns the conjugacy class of <code class="code">p</code>-subgroups of <code class="code">G</code> that consists of defect groups for the <code class="code">p</code>-block containing the ordinary irreducible character <code class="code">Irr(G)[n]</code>. The last of these functions returns the nonnegative integer <code class="code">d</code> for which <code class="code">p^d</code> is the order of a <code class="code">p</code>-defect group for <code class="code">Irr(G)[n]</code>.</p>

<p>The <code class="code">p</code>-defect group of a given conjugacy class of <code class="code">G</code> is a <code class="code">p</code>-Sylow subgroup of the centralizer in <code class="code">G</code> of any representative of the class. A defect group for a <code class="code">p</code>-block of <code class="code">G</code> is a minimal <code class="code">p</code>-subgroup that is a defect group for a defect class of the block. By Brauer's Min-Max theorem, this will occur for at least one p-regular class of G. The function DefectGroupsOfPBlock identifies the defect classes for the block containing Irr(G)[n], finds the one whose defect group has minimal order, and returns the conjugacy class of the defect group of this class. The function DefectOfCharacterAtP gives the logarithm base p of the order of a defect group of the p-block containing the character Irr(G)[n].




<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(72,21);</span>
<pc group of size 72 with 5 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">D:=DefectGroupOfConjugacyClassAtP(G,i,3);</span>
Group([ f4, f5 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCyclic(last);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=DefectGroupsOfPBlock(G,Irr(G)[i],3);</span>
Group( [ f4, f5 ] )^G
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCyclic(Representative(D));</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">DefectOfCharacterAtP(G,Irr(G)[i],3);</span>
2

</pre></div>

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

<h5>7.5-6 LocalIndexAtPByBrauerCharacter</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndexAtPByBrauerCharacter</code>( <var class="Arg">F</var>, <var class="Arg">G</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">‣ FinFieldExt</code>( <var class="Arg">F</var>, <var class="Arg">G</var>, <var class="Arg">p</var>, <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The first returns the local index at the rational prime <span class="SimpleMath">\(p\)</span> of the simple component of the group ring <code class="code">FG</code> that corresponds to <code class="code">Irr(G)[n]</code>. The second returns the degree of a certain extension of finite fields of <code class="code">p</code>-power order.</p>

<p>The input of <code class="func">LocalIndexAtPByBrauerCharacter</code> must be an abelian number field <var class="Arg">F</var>, a finite group <var class="Arg">G</var>, and the number <var class="Arg">n</var> of an ordinary irreducible character <code class="code">Irr(G)[n]</code>, and <var class="Arg">p</var> a prime divisor of the order of <var class="Arg">G</var>. Since this function is intended to be used for faithful characters of groups that are the defining groups of non-cyclic cyclotomic algebras that result from <strong class="pkg">Wedderga</strong>'s Info functions, it is expected that G is a non-nilpotent cyclic-by-abelian group, and Irr(G)[n] is a faithful character. The Brauer character table records of such groups can be accessed in GAP (provided G is sufficiently small).



<p>The local index calculation uses Benard's theorem, which shows that the local index at p of the simple component of the rational group algebra QG corresponding to the character Irr(G)[n] is the degree of the extension of the residue field of the center given by adjoining an irreducible p-Brauer character IBr(G,p)[m] lying in the same block, provided the defect group of the block is cyclic. If the defect group of the block is not cyclic, the resulting calculation is unreliable, and the function will output a list whose second term is the warning label "DGnotCyclic". The degree of this finite field extension is calculated by FinFieldExt. It determines the local index relative to the field F by dividing the local index at \(p\) over the rationals by a constant determied using a theorem of Yamada.




<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(80,28);</span>
<pc group of size 80 with 5 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">T:=CharacterTable(G);;</span>
<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">S:=T mod 5;</span>
BrauerTable( <pc group of size 80 with 5 generators>, 5 )
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndexAtPByBrauerCharacter(Rationals,G,i,5);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">FinFieldExt(Rationals,G,5,i,9);</span>
2

</pre></div>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SmallGroup(72,20);</span>
<pc group of size 72 with 5 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">LocalIndexAtPByBrauerCharacter(Rationals,G,Irr(G)[i],3);</span>
[ 2, "DGnotCyclic" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">LocalIndexAtPByBrauerCharacter(Rationals,G,i,2);</span>
1

</pre></div>

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

<h5>7.5-7 LocalIndexAtOddPByCharacter</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LocalIndexAtOddPByCharacter</code>( <var class="Arg">F</var>, <var class="Arg">G</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">‣ LocalIndexAtTwoByCharacter</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">‣ IsDyadicSchurGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The first two function determines the local index at the given prime <span class="SimpleMath">\(p\)</span> of the simple component of <var class="Arg">FG</var> corresponding to the irreducible character <code class="code">Irr(G)[n]</code>. The third one returns <code class="code">'true'</code> if <code class="code">G</code> is a dyadic Schur group, and otherwise <code class="code">'false'</code> .</p>

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

--> maximum size reached

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

98%


¤ Dauer der Verarbeitung: 0.119 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.