Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/GAP/pkg/hecke/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 29.7.2024 mit Größe 205 kB image not shown  

Quelle  chap3_mj.html   Sprache: HTML

 
 products/sources/formale Sprachen/GAP/pkg/hecke/doc/chap3_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 (hecke) - Chapter 3: Specht functionality</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="chap3"  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="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="chap2_mj.html">[Previous Chapter]</a>    <a href="chapBib_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap3.html">[MathJax off]</a></p>
<p><a id="X7ED1AB5C7E41D277" name="X7ED1AB5C7E41D277"></a></p>
<div class="ChapSects"><a href="chap3_mj.html#X7ED1AB5C7E41D277">3 <span class="Heading">Specht functionality</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X78AA2DBD7D5D3F02">3.1 <span class="Heading">Porting notes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8340A4F97986693C">3.1-1 <span class="Heading">Structure of <strong class="pkg">Hecke</strong></span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8120A27282B82CC8">3.1-2 <span class="Heading">Renamings</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7A7DF4FC796EF66F">3.2 <span class="Heading">Specht functions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FE26921867C440A">3.2-1 Specht</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8037763587274161">3.2-2 <span class="Heading">Simple information access</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C92700882971537">3.2-3 <span class="Heading">The functions MakeSpecht, MakePIM and MakeSimple</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86F599A07A7C1C33">3.2-4 <span class="Heading">Decomposition numbers of the symmetric groups</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X838BEC0382BF87EA">3.2-5 <span class="Heading">Hecke algebras over fields of positive characteristic</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X83009CE685621BD4">3.2-6 <span class="Heading">The Fock space and Hecke algebras over fields of characteristic zero
</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B57DF517F73F00D">3.2-7 Schur</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84F0F9E47D5EEBCF">3.2-8 DecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F616CCE808FA11E">3.2-9 CrystalDecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X829A23A97EE4C20E">3.2-10 DecompositionNumber</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7C5B169286EFC900">3.3 <span class="Heading">Partitions in <strong class="pkg">Hecke</strong></span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X87A6E8DD85F3F020">3.4 <span class="Heading">Inducing and restricting modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X81D7F7A4812BB04D">3.4-1 RInducedModule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X780709B3865BC344">3.4-2 SInducedModule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X783BC74E81A7D0E6">3.4-3 RRestrictedModule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8041ABFA86D7A3EF">3.4-4 SRestrictedModule</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X79F430837BA7BAD2">3.5 <span class="Heading">Operations on decomposition matrices</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D257389845738DB">3.5-1 InducedDecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X803A99987E501AC9">3.5-2 IsNewIndecomposable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X802E811683E611EE">3.5-3 InvertDecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X87B18FD97B2D8E80">3.5-4 AdjustmentMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X78B0FF2079269138">3.5-5 SaveDecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84DD2D517FC1F905">3.5-6 CalculateDecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FDC65328102C1B9">3.5-7 MatrixDecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86EBEBF680EBC98E">3.5-8 DecompositionMatrixMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B05627D83E6977E">3.5-9 AddIndecomposable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79FA055E8250E6A2">3.5-10 RemoveIndecomposable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8434DC7C8364CB54">3.5-11 MissingIndecomposables</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7A697AAA799BA7D4">3.6 <span class="Heading">Calculating dimensions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X828528747E4AC4C9">3.6-1 SimpleDimension</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B98631580E193BB">3.6-2 SpechtDimension</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X78F1DC277875BAFD">3.7 <span class="Heading">Combinatorics on Young diagrams</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X820A908F8337F59C">3.7-1 Schaper</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7FB82B3184287362">3.7-2 IsSimpleModule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A6262B684185E3D">3.7-3 MullineuxMap</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CC6C04482DD1E9D">3.7-4 MullineuxSymbol</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7826922879DD8D8A">3.7-5 PartitionMullineuxSymbol</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CE4D6487FD009B1">3.7-6 GoodNodes</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X783B52458335975F">3.7-7 NormalNodes</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X85B290977A17D9EE">3.7-8 GoodNodeSequence</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B704FE781A311E5">3.7-9 PartitionGoodNodeSequence</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A9DC101850008A2">3.7-10 GoodNodeLatticePath</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7918D9DE7ACE2294">3.7-11 LittlewoodRichardsonRule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7B9901427D1CF6F4">3.7-12 InverseLittlewoodRichardsonRule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X790D4ACF7930340F">3.7-13 EResidueDiagram</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7DE3773C78BC324C">3.7-14 HookLengthDiagram</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F2ACCBF788A62E8">3.7-15 RemoveRimHook</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CEA98C779BDBD1A">3.7-16 AddRimHook</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X8350934A7F9AB5BE">3.8 <span class="Heading">Operations on partitions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X867496487DC35776">3.8-1 ECore</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8236220C87814790">3.8-2 IsECore</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8538AAAF8628A725">3.8-3 EQuotient</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F357B417D495B6F">3.8-4 CombineEQuotientECore</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C460635829E7ED0">3.8-5 EWeight</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X86308F6C818B220C">3.8-6 ERegularPartitions</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7BEDA8F286ED5F20">3.8-7 IsERegular</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D131AF0839089BD">3.8-8 ConjugatePartition</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8711CC56792711A7">3.8-9 PartitionBetaSet</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7EC4D0FA81B55391">3.8-10 ETopLadder</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X820388EF7C8333BA">3.8-11 Dominates</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84DB1DD37AF227CF">3.8-12 LengthLexicographic</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8480188D81ECBD92">3.8-13 Lexicographic</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X78F41DF77D6F8292">3.8-14 ReverseDominance</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X83890936806E3A34">3.9 <span class="Heading">Miscellaneous functions on modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7A8E810C85A62DD6">3.9-1 Specialized</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8232C0A1846A27FB">3.9-2 ERegulars</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X822E8193835DD1D9">3.9-3 SplitECores</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E92948B80075E46">3.9-4 Coefficient</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79FB3FE67D55BCFA">3.9-5 InnerProduct</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7D473E167C866CEC">3.10 <span class="Heading">Semi-standard and standard tableaux</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F0F9663796E6978">3.10-1 Tableau</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X79ADB1B980D12A14">3.10-2 SemiStandardTableaux</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E51D6107DBE2A74">3.10-3 StandardTableaux</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7869DA9A8198BD28">3.10-4 ConjugateTableau</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7E5351C27C9253D9">3.10-5 ShapeTableau</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7CABF92D7BF07DD1">3.10-6 TypeTableau</a></span>
</div></div>
</div>

<h3>3 <span class="Heading">Specht functionality</span></h3>

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

<h4>3.1 <span class="Heading">Porting notes</span></h4>

<p>Porting the <strong class="pkg">Specht</strong> <span class="SimpleMath">\(2.4\)</span> package to <strong class="pkg">GAP</strong> 4 did not influence the algorithms but required a completely new object oriented design of the underlying data structures. In <strong class="pkg">GAP</strong> 3 records were used to represent algebra objects, modules and decomposition matrices of <strong class="pkg">Specht</strong> <span class="SimpleMath">\(2.4\)</span>. Further functions were stored inside of such records to provide name safety.</p>

<p>In <strong class="pkg">Hecke</strong> objects represent all the data that was named above. The overloading mechanism the former record-internal functions to be available on the toplevel. The operation selection mechanism of <strong class="pkg">GAP</strong> 4 allows one to concentrate on the computation code instead of dealing with different possible argument inputs.</p>

<p>Since variable argument length operations are not yet supported by <strong class="pkg">GAP</strong> 4, we introduced our own dispatcher facility to enable the former possibility of passing patrition arguments as sequences of integers (see <a href="chap3_mj.html#X7C5B169286EFC900"><span class="RefLink">3.3</span></a>).</p>

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

<h5>3.1-1 <span class="Heading">Structure of <strong class="pkg">Hecke</strong></span></h5>

<p>The data structure hierarchy in <strong class="pkg">GAP</strong> 4 is defined through filters and their dependencies.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAlgebraObj</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsHecke</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSchur</code></td><td class="tdright">( filter )</td></tr></table></div>
<p><code class="func">IsAlgebraObj</code> is a generic filter for the objects returned by the functions <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>) and <code class="func">Schur</code> (<a href="chap3_mj.html#X7B57DF517F73F00D"><span class="RefLink">3.2-7</span></a>). Concretely, <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>) returns an <code class="func">IsHecke</codeobject (automatically also an <code class="func">IsAlgebraObj</codeobject). For design reasons <code class="func">IsSchur</code> is a subfilter of <code class="func">IsHecke</code>. This allows to use the same functions for Schur-algebras as for Hecke-algebras with minor restrictions.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAlgebraObjModule</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsHeckeModule</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsHeckeSpecht</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsHeckePIM</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsHeckeSimple</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockModule</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockSpecht</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockPIM</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockSimple</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSchurModule</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSchurWeyl</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSchurPIM</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSchurSimple</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockSchurModule</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockSchurWeyl</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockSchurPIM</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFockSchurSimple</code></td><td class="tdright">( filter )</td></tr></table></div>
<p>The hierarchy of module objects is more complex. On top we have the filter <code class="func">IsAlgebraObjModule</code>. Its direct descendant <code class="func">IsHeckeModule</code> has <code class="func">IsHeckeSpecht</code>, <code class="func">IsHeckePIM</code>, <code class="func">IsHeckeSimple</code>, <code class="func">IsFockModule</code> and <code class="func">IsSchurModule</code> as subfilters. Again the last two subfilter relations have no mathematical sense but are technically comfortable. The filter <code class="func">IsFockModule</code> is superfilter of <code class="func">IsFockSpecht</code>, <code class="func">IsFockPIM</code>, <code class="func">IsFockSimple</code> and <code class="func">IsFockSchurModule</code>. Analogously, <code class="func">IsSchurModule</code> is superfilter of <code class="func">IsSchurWeyl</code>, <code class="func">IsSchurPIM</code>, <code class="func">IsSchurSimple</code> and <code class="func">IsFockSchurModule</code> which itself is superfilter of <code class="func">IsFockSchurWeyl</code>, <code class="func">IsFockSchurPIM</code>, <code class="func">IsFockSchurSimple</code>. Further, there are subfilter relations between <code class="func">IsFockSpecht</code> and <code class="func">IsHeckeSpecht</code> etc., <code class="func">IsFockSchurWeyl</code> and <code class="func">IsFockSpecht</code> etc., <code class="func">IsFockSchurWeyl</code> and <code class="func">IsSchurWeyl</code> etc., <code class="func">IsSchurWeyl</code> and <code class="func">IsHeckeSpecht</code> etc. filters.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDecompositionMatrix</code></td><td class="tdright">( filter )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCrystalDecompositionMatrix</code></td><td class="tdright">( filter )</td></tr></table></div>
<p>For decomposition matrices we use the filter <code class="func">IsDecompositionMatrix</code> and its subfilter <code class="func">IsCrystalDecompositionMatrix</code>.</p>

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

<h5>3.1-2 <span class="Heading">Renamings</span></h5>

<p>To keep things as backwards compatible as possible, we tried not to change names and function signatures. But for the former <code class="code">H.***</code>- and <code class="code">H.operations.***</code>-style functions it makes more sense to use toplevel functions (especially when the <span class="SimpleMath">\(H\)</span> is not explicitly needed inside of the called operation). Here is an overview of some important changes:</p>

<div class="pcenter"><table class="GAPDocTable">
<tr>
<td class="tdcenter"><strong class="pkg">GAP</strong> 3</td>
<td class="tdcenter"><strong class="pkg">GAP</strong> 4</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.S</code></td>
<td class="tdcenter"><code class="func">MakeSpecht</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.P</code></td>
<td class="tdcenter"><code class="func">MakePIM</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.D</code></td>
<td class="tdcenter"><code class="func">MakeSimple</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.Sq</code></td>
<td class="tdcenter"><code class="func">MakeFockSpecht</code> (<a href="chap3_mj.html#X83009CE685621BD4"><span class="RefLink">3.2-6</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.Pq</code></td>
<td class="tdcenter"><code class="func">MakeFockPIM</code> (<a href="chap3_mj.html#X83009CE685621BD4"><span class="RefLink">3.2-6</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">S.W</code></td>
<td class="tdcenter"><code class="func">MakeSpecht</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">S.F</code></td>
<td class="tdcenter"><code class="func">MakeSimple</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">InducedModule</code></td>
<td class="tdcenter"><code class="func">RInducedModule</code> (<a href="chap3_mj.html#X81D7F7A4812BB04D"><span class="RefLink">3.4-1</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">RestrictedModule</code></td>
<td class="tdcenter"><code class="func">RRestrictedModule</code> (<a href="chap3_mj.html#X783BC74E81A7D0E6"><span class="RefLink">3.4-3</span></a>)</td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.operations.New</code></td>
<td class="tdcenter"><code class="code">Module</code></td>
</tr>
<tr>
<td class="tdcenter"><code class="code">H.operations.Collect</code></td>
<td class="tdcenter"><code class="code">Collect</code></td>
</tr>
</table><br />
</div>

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

<h4>3.2 <span class="Heading">Specht functions</span></h4>

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

<h5>3.2-1 Specht</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Specht</code>( <var class="Arg">e</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Specht</code>( <var class="Arg">e</var>, <var class="Arg">p</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Specht</code>( <var class="Arg">e</var>, <var class="Arg">p</var>, <var class="Arg">val</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Specht</code>( <var class="Arg">e</var>, <var class="Arg">p</var>, <var class="Arg">val</var>, <var class="Arg">ring</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: object belonging to the filter <code class="func">IsHecke</code> (<a href="chap3_mj.html#X8340A4F97986693C"><span class="RefLink">3.1-1</span></a>)</p>

<p>Let <span class="SimpleMath">\(R\)</span> be a field of characteristic <span class="SimpleMath">\(0\)</span>, <span class="SimpleMath">\(q\)</span> a non-zero element of <span class="SimpleMath">\(R\)</span>, and let <span class="SimpleMath">\(e\)</span> be the smallest positive integer such that <span class="SimpleMath">\(1+q+\ldots+q^{e-1}=0\)</span> (we set <span class="SimpleMath">\(e=0\)</span> if no such integer exists). The object returned by <code class="code">Specht(e)</code> allows calculations in the Grothendieck rings of the Hecke algebras <span class="SimpleMath">\(H\)</span> of type <em>A</em> which are defined over <span class="SimpleMath">\(R\)</spanand have parameter <span class="SimpleMath">\(q\)</span>. Below we also describe how to consider Hecke algebras defined over fields of positive characteristic.</p>

<p><code class="func">Specht</code> returns an object which contains information about the the family of Hecke algebras determined by <span class="SimpleMath">\(R\)</span> and <span class="SimpleMath">\(q\)</span>. This object needs to be passed to the most of the <strong class="pkg">Hecke</strong> functions as an argument.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=Specht(5);</span>
<Hecke algebra with e = 5>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(last);</span>
Specht(e=5, S(), P(), D())
<span class="GAPprompt">gap></span> <span class="GAPinput">IsZeroCharacteristic(last);</span>
true
</pre></div>

<p>There is also a method <code class="func">Schur</code> (<a href="chap3_mj.html#X7B57DF517F73F00D"><span class="RefLink">3.2-7</span></a>) for doing calculations with the <span class="SimpleMath">\(q\)</span>-Schur algebra. See <code class="func">DecompositionMatrix</code> (<a href="chap3_mj.html#X84F0F9E47D5EEBCF"><span class="RefLink">3.2-8</span></a>), and <code class="func">CrystalDecompositionMatrix</code> (<a href="chap3_mj.html#X7F616CCE808FA11E"><span class="RefLink">3.2-9</span></a>). This function requires the package <strong class="pkg">hecke</strong> (see <code class="func">LoadPackage</code> (<a href="../../../doc/ref/chap76_mj.html#X79B373A77B29D1F5"><span class="RefLink">Reference: LoadPackage</span></a>)).</p>

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

<h5>3.2-2 <span class="Heading">Simple information access</span></h5>

<p>We allow to read/store some information from/in the algebra object returned by <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>) using the following functions.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrderOfQ</code>( <var class="Arg">H</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: <span class="SimpleMath">\(e\)</span>.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Characteristic</code>( <var class="Arg">H</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: <span class="SimpleMath">\(p\)</span>.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SetOrdering</code>( <var class="Arg">H</var>, <var class="Arg">Ordering</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Provides writing access to <span class="SimpleMath">\(Ordering\)</span> that is stored in <span class="SimpleMath">\(H\)</span>. The ordering influences the way how decomposition matrices are printed.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SpechtDirectory</code></td><td class="tdright">( global variable )</td></tr></table></div>
<p>Setting this global variable the user can tell <strong class="pkg">Hecke</strong> where to find decomposition matrices that are not in the library and also not in the current directory. By default this variable is set to the current directory.</p>

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

<h5>3.2-3 <span class="Heading">The functions MakeSpecht, MakePIM and MakeSimple</span></h5>

<p>The functions MakeSpecht, MakePIM and MakeSimple return objects belonging to the filter <code class="func">IsAlgebraObjModule</code> (<a href="chap3_mj.html#X8340A4F97986693C"><span class="RefLink">3.1-1</span></a>) which correspond to Specht modules (<code class="func">IsHeckeSpecht</code> (<a href="chap3_mj.html#X8340A4F97986693C"><span class="RefLink">3.1-1</span></a>)), projective indecomposable modules (<code class="func">IsHeckePIM</code> (<a href="chap3_mj.html#X8340A4F97986693C"><span class="RefLink">3.1-1</span></a>)) and simple modules (<code class="func">IsHeckeSimple</code> (<a href="chap3_mj.html#X8340A4F97986693C"><span class="RefLink">3.1-1</span></a>)) respectively. <strong class="pkg">Hecke</strong> allows manipulation of arbitrary linear combinations of these <q>modules</q>, as well as a way of inducing and restricting them, <q>multiplying</q> them and converting between these three natural bases of the Grothendieck ring. Multiplication of modules corresponds to taking a tensor productand then inducing (thus giving a module for a larger Hecke algebra). Each of these three functions can be called in four different ways, as we now describe.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSpecht</code>( <var class="Arg">H</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakePIM</code>( <var class="Arg">H</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSimple</code>( <var class="Arg">H</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>In the first form, <span class="SimpleMath">\(\mu\)</span> is a partition (either a list, or a sequence of integers) and the corresponding Specht module, PIM, or simple module (respectively), is returned.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=Specht(5);; MakePIM(H,4,3,2);; Display(last);</span>
P(4,3,2)
</pre></div>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSpecht</code>( <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakePIM</code>( <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSimple</code>( <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Here, <span class="SimpleMath">\(x\)</span> is an <span class="SimpleMath">\(H\)</span>-module. In this form, <code class="func">MakeSpecht</code> rewrites <span class="SimpleMath">\(x\)</span> as a linear combination of Specht modules, if possible. Similarly, <code class="func">MakePIM</code> and <code class="func">MakeSimple</code> rewrite <span class="SimpleMath">\(x\)</span> as a linear combination of PIMs and simple modules respectively. These conversions require knowledge of the relevant decomposition matrix of <span class="SimpleMath">\(H\)</span>; if this is not known then <code class="keyw">fail</code> is returned (over fields of characteristic zero, all of the decomposition matrices are known via the algorithm of <a href="chapBib_mj.html#biBLLT">[LLT96]</a>; various other decomposition matrices are included with <strong class="pkg">Hecke</strong>). For example, <code class="code">MakeSpecht(MakePIM(</code><span class="SimpleMath">\(H, \mu\)</span><code class="code">))</code> returns <span class="SimpleMath">\(\sum_\nu d_{\nu,\mu} S(\nu)\)</span> or <code class="keyw">fail</code> if some of these decomposition multiplicities are not known.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( MakeSimple( MakePIM(H,4,3,2) ) );</span>
D(5,3,1) + 2D(4,3,2) + D(2^4,1)
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( MakeSpecht( MakeSimple( MakeSpecht(H,1,1,1,1,1) ) ) );</span>
 - S(5) + S(4,1) - S(3,1^2) + S(2,1^3)
</pre></div>

<p>As the last example shows, <strong class="pkg">Hecke</strong> does not always behave as expected. The reason for this is that Specht modules indexed by <span class="SimpleMath">\(e\)</span>-singular partitions can always be written as a linear combination of Specht modules which involve only <span class="SimpleMath">\(e\)</span>-regular partitions. As such, it is not always clear when two elements are equal in the Grothendieck ring. Consequently, to test whether two modules are equal you should first rewrite both modules in the <span class="SimpleMath">\(D\)</span>-basis; this is <em>not</em> done by <strong class="pkg">Hecke</strong> because it would be very inefficient.</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSpecht</code>( <var class="Arg">d</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakePIM</code>( <var class="Arg">d</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSimple</code>( <var class="Arg">d</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>In the third form, <span class="SimpleMath">\(d\)</span> is a decomposition matrix and <span class="SimpleMath">\(\mu\)</span> is a partition. This is useful when you are trying to calculate a new decomposition matrix <span class="SimpleMath">\(d\)</span> because it allows you to do calculations using the known entries of <span class="SimpleMath">\(d\)</span> to deduce information about the unknown ones. When used in this way, <code class="func">MakePIM</code> and <code class="func">MakeSimple</code> use <span class="SimpleMath">\(d\)</span> to rewrite <span class="SimpleMath">\(P(\mu)\)</span> and <span class="SimpleMath">\(D(\mu)\)</span> respectively as a linear combination of Specht modules and <code class="func">MakeSpecht</code> uses <span class="SimpleMath">\(d\)</span> to write <span class="SimpleMath">\(S(\mu)\)</span> as a linear combination of simple modules. If the values of the unknown entries in <span class="SimpleMath">\(d\)</span> are needed, <code class="keyw">fail</code> is returned.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=Specht(3,3);;   # e = 3, p = 3 = characteristic of 'R'</span>
<span class="GAPprompt">gap></span> <span class="GAPinput"> d:=InducedDecompositionMatrix(DecompositionMatrix(H,14));;</span>
# Inducing....
The following projectives are missing from <d>:
    [ 15 ]  [ 8, 7 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(MakePIM(d,4,3,3,2,2,1));</span>
S(4,3^2,2^2,1) + S(4,3^2,2,1^3) + S(4,3,2^3,1^2) + S(3^3,2^2,1^2)
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(MakeSpecht(d,7, 3, 3, 2));</span>
D(11,2,1^2) + D(10,3,1^2) + D(8,5,1^2) + D(8,3^2,1) + D(7,6,1^2) + D(7,3^2,2)
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(MakeSimple(d,14,1));</span>
fail
</pre></div>

<p>The final example returned <code class="keyw">fail</code> because the partitions <span class="SimpleMath">\((14,1)\)</span> and <span class="SimpleMath">\((15)\)</span> have the same <span class="SimpleMath">\(3\)</span>-core (and <span class="SimpleMath">\(P(15)\)</span> is missing from <span class="SimpleMath">\(d\)</span>).</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSpecht</code>( <var class="Arg">d</var>, <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakePIM</code>( <var class="Arg">d</var>, <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeSimple</code>( <var class="Arg">d</var>, <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>In the final form, <span class="SimpleMath">\(d\)</span> is a decomposition matrix and <span class="SimpleMath">\(x\)</span> is a module. All three functions rewrite <span class="SimpleMath">\(x\)</span> in their respective basis using <span class="SimpleMath">\(d\)</span>. Again this is only useful when you are trying to calculate a new decomposition matrix because, for any <q>known</q> decomposition matrix <span class="SimpleMath">\(d\)</span>, <code class="code">MakeSpecht(</code><span class="SimpleMath">\(x\)</span><code class="code">)</code> and <code class="code">MakeSpecht(</code><span class="SimpleMath">\(d, x\)</span><code class="code">)</code> are equivalent (and similarly for <code class="func">MakePIM</code> and <code class="func">MakeSimple</code>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(MakeSpecht(d, MakeSimple(d,10,5) ));</span>
 - S(13,2) + S(10,5)
</pre></div>

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

<h5>3.2-4 <span class="Heading">Decomposition numbers of the symmetric groups</span></h5>

<p>The last example looked at Hecke algebras with parameter <span class="SimpleMath">\(q=1\)</span> and <span class="SimpleMath">\(R\)</span> a field of characteristic <span class="SimpleMath">\(3\)</span> (so <span class="SimpleMath">\(e=3\)</span>); that is, the group algebra of the symmetric group over a field of characteristic <span class="SimpleMath">\(3\)</span>. More generally, the command <code class="code">Specht(</code><span class="SimpleMath">\(p,p\)</span><code class="code">)</code> can be used to consider the group algebras of the symmetric groups over fields of characteristic <span class="SimpleMath">\(p\)</span> (i.e. <span class="SimpleMath">\(e=p\)</span> and <span class="SimpleMath">\(R\)</span> a field of characteristic <span class="SimpleMath">\(p\)</span>). For example, the dimensions of the simple modules of <span class="SimpleMath">\(S_6\)</span> over fields of characteristic <span class="SimpleMath">\(5\)</span> can be computed as follows:</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=Specht(5,5);; SimpleDimension(H,6);</span>
6       : 1
5,1     : 5
4,2     : 8
4,1^2   : 10
3^2     : 5
3,2,1   : 8
3,1^3   : 10
2^3     : 5
2^2,1^2 : 1
2,1^4   : 5
true
</pre></div>

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

<h5>3.2-5 <span class="Heading">Hecke algebras over fields of positive characteristic</span></h5>

<p>To consider Hecke algebras defined over arbitrary fields, <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>) must also be supplied with a valuation map <span class="SimpleMath">\(val\)</span> as an argument. The function <span class="SimpleMath">\(val\)</span> is a map from some PID into the natural numbers; at present it is needed only by functions which rely (at least implicitly), upon the <span class="SimpleMath">\(q\)</span>-analogue of Schaper's theorem. In general, \(val\) depends upon \(q\) and the characteristic of \(R\); full details can be found in [JM97]. Over fields of characteristic zero and in the symmetric group case, the function \(val\) is automatically defined by Specht (3.2-1). When \(R\) is a field of characteristic zero, \(val([i]_q)\) is \(1\) if \(e\) divides \(i\) and \(0\) otherwise (this is the valuation map associated to the prime ideal in \(ℂ[v]\) generated by the \(e\)-th cyclotomic polynomial). When \(q=1\) and \(R\) is a field of characteristic \(p\), \(val\) is the usual \(p\)-adic valuation map. As another example, if \(q=4\) and \(R\) is a field of characteristic \(5\) (so \(e=2\)), then the valuation map sends the integer \(x\) to \(\nu_5([4]_x)\) where \([4]_x\) is interpreted as an integer and \(\nu_5\) is the usual \(5\)-adic valuation. To consider this Hecke algebra one could proceed as follows:




<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">val:=function(x) local v;</span>
<span class="GAPprompt">></span> <span class="GAPinput">      x:=Sum([0..x-1],v->4^v);  # x->[x]_q</span>
<span class="GAPprompt">></span> <span class="GAPinput">      v:=0; while x mod 5=0 do x:=x/5; v:=v+1; od;</span>
<span class="GAPprompt">></span> <span class="GAPinput">      return v;</span>
<span class="GAPprompt">></span> <span class="GAPinput">    end;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=Specht(2,5,val,"e2q4");; Display(H);</span>
Specht(e=2, p=5, S(), P(), D(), HeckeRing="e2q4")
</pre></div>

<p>Notice the string <q>e2q4</q> which was also passed to <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>) in this example. Although it is not strictly necessary, it is a good idea when using a <q>non-standard</q> valuation map <span class="SimpleMath">\(val\)</span> to specify the value of <span class="SimpleMath">\(HeckeRing\)</span>. This string is used for internal bookkeeping by <strong class="pkg">Hecke</strong>; in particular, it is used to determine filenames when reading and saving decomposition matrices. If a <q>standard</q> valuation map is used then <span class="SimpleMath">\(HeckeRing\)</span> is set to the string <q>e<e>p<p></q>; otherwise it defaults to <q>unknown</q>. The function <code class="func">SaveDecompositionMatrix</code> (<a href="chap3_mj.html#X78B0FF2079269138"><span class="RefLink">3.5-5</span></a>) will not save any decomposition matrix for any Hecke algebra <span class="SimpleMath">\(H\)</span> with <span class="SimpleMath">\(HeckeRing=\)</span><q>unknown</q>.</p>

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

<h5>3.2-6 <span class="Heading">The Fock space and Hecke algebras over fields of characteristic zero
</span></h5>

<p>For Hecke algebras <span class="SimpleMath">\(H\)</span> defined over fields of characteristic zero Lascoux, Leclerc and Thibon <a href="chapBib_mj.html#biBLLT">[LLT96]</a> have described an easy, inductive, algorithm for calculating the decomposition matrices of <span class="SimpleMath">\(H\)</span>. Their algorithm really calculates the <em>canonical basis</em>, or (global) <em>crystal basis</em> of the Fock space; results of Grojnowski-Lusztig <a href="chapBib_mj.html#biBGr">[Gro94]</a> show that computing this basis is equivalent to computing the decomposition matrices of <span class="SimpleMath">\(H\)</span> (see also <a href="chapBib_mj.html#biBA">[Ari96]</a>).</p>

<p>The <em>Fock space</em> <span class="SimpleMath">\( F\)</span> is an (integrable) module for the quantum group <span class="SimpleMath">\(U_q( sl^_{e})\)</span> of the affine special linear group. <span class="SimpleMath">\( F\)</span> is a free <span class="SimpleMath">\(ℂ[v]\)</span>-module with basis the set of all Specht modules <span class="SimpleMath">\(S(\mu)\)</span> for all partitions <span class="SimpleMath">\(\mu\)</span> of all integers.</p>

<p>Here <span class="SimpleMath">\(v\)</span> is an indeterminate over the integers (or strictly, <span class="SimpleMath">\(ℂ\)</span>) that is stored in the algebra object produced by <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>). The canonical basis elements <span class="SimpleMath">\(Pq(\mu)\)</span> for the <span class="SimpleMath">\(U_q( sl^_e)\)</span>-submodule of <span class="SimpleMath">\( F\)</span> generated by the <span class="SimpleMath">\(0\)</span>-partition are indexed by <span class="SimpleMath">\(e\)</span>-regular partitions <span class="SimpleMath">\(\mu\)</span>. Moreover, under <em>specialization</em>, <span class="SimpleMath">\(Pq(\mu)\)</span> maps to <span class="SimpleMath">\(P(\mu)\)</span>. An eloquent description of the algorithm for computing <span class="SimpleMath">\(Pq(\mu)\)</span> can be found in <a href="chapBib_mj.html#biBLLT">[LLT96]</a>.</p>

<p>To access the elements of the Fock space <strong class="pkg">Hecke</strong> provides the functions:</p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeFockPIM</code>( <var class="Arg">H</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MakeFockSpecht</code>( <var class="Arg">H</var>, <var class="Arg">mu</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Notice that, unlike <code class="func">MakePIM</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>) and <code class="func">MakeSpecht</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>), the only arguments which <code class="func">MakeFockPIM</code> and <code class="func">MakeFockSpecht</code> accept are partitions.</p>

<p>The function <code class="func">MakeFockPIM</code> computes the canonical basis element <span class="SimpleMath">\(Pq(\mu)\)</span> of the Fock space corresponding to the <span class="SimpleMath">\(e\)</span>-regular partition <span class="SimpleMath">\(\mu\)</span> (there is a canonical basis -- defined using a larger quantum group -- for the whole of the Fock space <a href="chapBib_mj.html#biBLT">[LT96]</a>; conjecturally, this basis can be used to compute the decomposition matrices for the <span class="SimpleMath">\(q\)</span>-Schur algebra over fields of characteristic zero). The second function returns a standard basis element <span class="SimpleMath">\(Sq(\mu)\)</span> of <span class="SimpleMath">\(F\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=Specht(4);; MakeFockPIM(H,6,2);; Display(last);</span>
Sq(6,2) + vSq(5,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">RRestrictedModule(last); Display(last);</span>
<direct sum of 3 Sq-modules>
Sq(6,1) + (v+v^-1)Sq(5,2) + vSq(4,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">MakePIM(last);; Display(last);</span>
Pq(6,1) + (v+v^-1)Pq(5,2)
<span class="GAPprompt">gap></span> <span class="GAPinput">Specialized(last);; Display(last);</span>
P(6,1) + 2P(5,2)
<span class="GAPprompt">gap></span> <span class="GAPinput">MakeFockSpecht(H,5,3,2);; Display(last);</span>
Sq(5,3,2)
<span class="GAPprompt">gap></span> <span class="GAPinput">RInducedModule(last,0);; Display(last);</span>
v^-1Sq(5,3^2)
</pre></div>

<p>The modules returned by <code class="func">MakeFockPIM</code> and <code class="func">MakeFockSpecht</code> behave very much like elements of the Grothendieck ring of <span class="SimpleMath">\(H\)</span>; however, they should be considered as elements of the Fock space. The key difference is that when induced or restricted <q>quantum</q> analogues of induction and restriction are used. These analogues correspond to the action of <span class="SimpleMath">\(U_q( sl^_{e})\)</span> on <span class="SimpleMath">\( F\)</span> <a href="chapBib_mj.html#biBLLT">[LLT96]</a>.</p>

<p>In effect, the functions <code class="func">MakeFockPIM</code> and <code class="func">MakeFockSpecht</code> allow computations in the Fock space, using the functions <code class="func">RInducedModule</code> (<a href="chap3_mj.html#X81D7F7A4812BB04D"><span class="RefLink">3.4-1</span></a>) and <code class="func">RRestrictedModule</code> (<a href="chap3_mj.html#X783BC74E81A7D0E6"><span class="RefLink">3.4-3</span></a>). The functions <code class="func">MakeSpecht</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>), <code class="func">MakePIM</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>) and <code class="func">MakeSimple</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>) can also be applied to elements of the Fock space, in which case they have the expected effect. In addition, any element of the Fock space can be specialized to give the corresponding element of the Grothendieck ring of <span class="SimpleMath">\(H\)</span> (it is because of this correspondence that we do not make a distinction between elements of the Fock space and the Grothendieck ring of <span class="SimpleMath">\(H\)</span>).</p>

<p>When working over fields of characteristic zero <strong class="pkg">Hecke</strong> will automatically calculate any canonical basis elements that it needs for computations in the Grothendieck ring of <span class="SimpleMath">\(H\)</span>. If you are not interested in the canonical basis elements you need never work with them directly.</p>

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

<h5>3.2-7 Schur</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Schur</code>( <var class="Arg">e</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Schur</code>( <var class="Arg">e</var>, <var class="Arg">p</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Schur</code>( <var class="Arg">e</var>, <var class="Arg">p</var>, <var class="Arg">val</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Schur</code>( <var class="Arg">e</var>, <var class="Arg">p</var>, <var class="Arg">val</var>, <var class="Arg">ring</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: object belonging to the filter <code class="func">IsSchur</code> (<a href="chap3_mj.html#X8340A4F97986693C"><span class="RefLink">3.1-1</span></a>)</p>

<p>This function behaves almost identically to the function <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>), the only difference being that the belonging modules are printed as <q>W</q>, <q>P</q>, <q>F</q> and that they correspond to the <span class="SimpleMath">\(q\)</span>-Weyl modules, the projective indecomposable modules, and the simple modules of the <span class="SimpleMath">\(q\)</span>-Schur algebra respectively. Note that the <code class="code">Make***</code>-functions (i.e. <code class="func">MakeSpecht</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>) is used to generate <span class="SimpleMath">\(q\)</span>-Weyl modules). Further, note that our labeling of these modules is non-standard, following that used by James in <a href="chapBib_mj.html#biBJ">[Jam90]</a>. The standard labeling can be obtained from ours by replacing all partitions by their conjugates.</p>

<p>Almost all of the functions in <strong class="pkg">Hecke</strong> which accept a Hecke algebra object <span class="SimpleMath">\(H\)</span> will also accept the object <span class="SimpleMath">\(S\)</span> returned by <code class="func">Schur</code> .</p>

<p>In the current version of <strong class="pkg">Hecke</strong> the decomposition matrices of <span class="SimpleMath">\(q\)</span>-Schur algebras are not fully supported. The <code class="func">InducedDecompositionMatrix</code> (<a href="chap3_mj.html#X7D257389845738DB"><span class="RefLink">3.5-1</span></a>) function can be applied to these matrices; however there are no additional routines available for calculating the columns corresponding to <span class="SimpleMath">\(e\)</span>-singular partitions. The decomposition matrices for the <span class="SimpleMath">\(q\)</span>-Schur algebras defined over a field of characteristic <span class="SimpleMath">\(0\)</span> for <span class="SimpleMath">\(n\leq 10\)</span> are in the <strong class="pkg">Hecke</strong> libraries.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=Schur(2);</span>
<Schur algebra with e = 2>
<span class="GAPprompt">gap></span> <span class="GAPinput">InducedDecompositionMatrix(DecompositionMatrix(S,3));</span>
The following projectives are missing from <d>:
    [ 2, 2 ]
<5x5 decomposition matrix>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(last);</span>
4    | 1         
3,1  | 1 1       
2^2  | . 1 .     
2,1^2| 1 1 . 1   
1^4  | 1 . . 1 1

# DecompositionMatrix(S,4) returns the full decomposition matrix. The point of
# this example is to emphasize the current limitations of Schur.
</pre></div>

<p>Note that when <span class="SimpleMath">\(S\)</span> is defined over a field of characteristic zero then the functions <code class="func">MakeFockSpecht</code> (<a href="chap3_mj.html#X83009CE685621BD4"><span class="RefLink">3.2-6</span></a>) and <code class="func">MakeFockPIM</code(<a href="chap3_mj.html#X83009CE685621BD4"><span class="RefLink">3.2-6</span></a>) will calculate the canonical basis elements (see <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>)); currently <code class="code">MakeFockPIM(</code><span class="SimpleMath">\(\mu\)</span><code class="code">)</code> is implemented only for <span class="SimpleMath">\(e\)</span>-regular partitions.</p>

<p>See also <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>). This function requires the package <strong class="pkg">hecke</strong> (see <code class="func">LoadPackage</code> (<a href="../../../doc/ref/chap76_mj.html#X79B373A77B29D1F5"><span class="RefLink">Reference: LoadPackage</span></a>)).</p>

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

<h5>3.2-8 DecompositionMatrix</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DecompositionMatrix</code>( <var class="Arg">H</var>, <var class="Arg">n</var>[, <var class="Arg">Ordering</var>] )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DecompositionMatrix</code>( <var class="Arg">H</var>, <var class="Arg">file</var>[, <var class="Arg">Ordering</var>] )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: the decomposition matrix <span class="SimpleMath">\(D\)</span> of <span class="SimpleMath">\(H(S_n)\)</span> where <span class="SimpleMath">\(H\)</span> is a Hecke algebra object returned by the function <code class="func">Specht</code> (<a href="chap3_mj.html#X7FE26921867C440A"><span class="RefLink">3.2-1</span></a>) (or <code class="func">Schur</code> (<a href="chap3_mj.html#X7B57DF517F73F00D"><span class="RefLink">3.2-7</span></a>) ).</p>

<p><code class="func">DecompositionMatrix</code> first checks whether the required decomposition matrix exists as a library file (checking first in the current directory, next in the directory specified by <code class="func">SpechtDirectory</code> (<a href="chap3_mj.html#X8037763587274161"><span class="RefLink">3.2-2</span></a>), and finally in the <strong class="pkg">Hecke</strong> libraries). If the base field of <span class="SimpleMath">\(H\)</span> has characteristic zero, <code class="func">DecompositionMatrix</code> next looks for <em>crystallized decomposition matrices</em> (see <code class="func">CrystalDecompositionMatrix</code> (<a href="chap3_mj.html#X7F616CCE808FA11E"><span class="RefLink">3.2-9</span></a>)). If the decomposition matrix <span class="SimpleMath">\(d\)</span> is not stored in the library <code class="func">DecompositionMatrix</code> will calculate <span class="SimpleMath">\(d\)</span> when <span class="SimpleMath">\(H\)</span> is a Hecke algebra with a base field of characteristic zero, and will return <code class="code">fail</code> otherwise (in which case the function <code class="func">CalculateDecompositionMatrix</code> (<a href="chap3_mj.html#X84DD2D517FC1F905"><span class="RefLink">3.5-6</span></a>) can be used to force <strong class="pkg">Hecke</strong> to try and calculate this matrix).</p>

<p>For Hecke algebras defined over fields of characteristic zero, <strong class="pkg">Hecke</strong> uses the algorithm of <a href="chapBib_mj.html#biBLLT">[LLT96]</a> to calculate decomposition matrices The decomposition matrices for the <span class="SimpleMath">\(q\)</span>-Schur algebras for <span class="SimpleMath">\(n\leq10\)</span> are contained in the <strong class="pkg">Hecke</strong> library, as are those for the symmetric group over fields of positive characteristic when <span class="SimpleMath">\(n<15\)</span>.</p>

<p>Once a decomposition matrix is known, <strong class="pkg">Hecke</strong> keeps an internal copy of it which is used by the functions <code class="func">MakeSpecht</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>), <code class="func">MakePIM</code(<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>), and <code class="func">MakeSimple</code> (<a href="chap3_mj.html#X7C92700882971537"><span class="RefLink">3.2-3</span></a>); these functions also read decomposition matrix files as needed.</p>

<p>If you set the variable <code class="func">SpechtDirectory</code> (<a href="chap3_mj.html#X8037763587274161"><span class="RefLink">3.2-2</span></a>), then <strong class="pkg">Hecke</strong> will also search for decomposition matrix files in this directory. The files in the current directory override those in <code class="func">SpechtDirectory</code> (<a href="chap3_mj.html#X8037763587274161"><span class="RefLink">3.2-2</span></a>) and those in the <strong class="pkg">Hecke</strong> libraries.</p>

<p>In the second form of the function, when a <span class="SimpleMath">\(filename\)</span> is supplied, <code class="func">DecompositionMatrix</code> will read the decomposition matrix in the file <span class="SimpleMath">\(filename\)</span>, and this matrix will become <strong class="pkg">Hecke</strong>'s internal copy of this matrix.



<p>By default, the rows and columns of the decomposition matrices are ordered <code class="func">DecompositionMatrix</code> with an ordering function such as <code class="func">LengthLexicographic</code> (<a href="chap3_mj.html#X84DB1DD37AF227CF"><span class="RefLink">3.8-12</span></a>) or <code class="func">ReverseDominance</code> (<a href="chap3_mj.html#X78F41DF77D6F8292"><span class="RefLink">3.8-14</span></a>). You do not need to specify the ordering you want every time you call <code class="func">DecompositionMatrix</code>; <strong class="pkg">Hecke</strong> will keep the same ordering until you change it again. This ordering can also be set <q>by hand</q> using the operation <code class="func">SetOrdering</code> (<a href="chap3_mj.html#X8037763587274161"><span class="RefLink">3.2-2</span></a>)</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DecompositionMatrix(Specht(3),6,LengthLexicographic);</span>
<11x7 decomposition matrix>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(last);</span>
6      | 1             
5,1    | 1 1           
4,2    | . . 1         
3^2    | . 1 . 1       
4,1^2  | . 1 . . 1     
3,2,1  | 1 1 . 1 1 1   
2^3    | 1 . . . . 1   
3,1^3  | . . . . 1 1   
2^2,1^2| . . . . . . 1
2,1^4  | . . . 1 . 1 . 
1^6    | . . . 1 . . . 
</pre></div>

<p>Once you have a decomposition matrix it is often nice to be able to print it. The on screen version is often good enough; There are also functions for converting <strong class="pkg">Hecke</strong> decomposition matrices into <strong class="pkg">GAP</strong> matrices and vice versa (see <code class="func">MatrixDecompositionMatrix</code> (<a href="chap3_mj.html#X7FDC65328102C1B9"><span class="RefLink">3.5-7</span></a>) and <code class="func">DecompositionMatrixMatrix</code> (<a href="chap3_mj.html#X86EBEBF680EBC98E"><span class="RefLink">3.5-8</span></a>)).</p>

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

--> maximum size reached

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

99%


¤ Dauer der Verarbeitung: 0.30 Sekunden  ¤

*© 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.