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


SSL chap11.html   Interaktion und
PortierbarkeitHTML

 
 products/Sources/formale Sprachen/GAP/pkg/fr/doc/chap11.html


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

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

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (FR) - Chapter 11: Miscellanea</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="chap11"  onload="jscontent()">


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

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

<p id="mathjaxlink" class="pcenter"><a href="chap11_mj.html">[MathJax on]</a></p>
<p><a id="X785C6C0B80936CC8" name="X785C6C0B80936CC8"></a></p>
<div class="ChapSects"><a href="chap11.html#X785C6C0B80936CC8">11 <span class="Heading">Miscellanea</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X783AA02C7BEF48A9">11.1 <span class="Heading">Generic operations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X844D3035877B5052">11.1-1 TensorSum</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X87EB0B4A852CF4C6">11.1-2 TensorProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X82AD6F187B550060">11.1-3 DirectSum</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X816865747DD51C11">11.2 <span class="Heading">Periodic lists</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7E5CC87E871F35A3">11.2-1 PeriodicListsFamily</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7B401DFE817D3927">11.2-2 PeriodicList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7AFE88F37FC58083">11.2-3 CompressPeriodicList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7CA5FA3F7AF9BA3D">11.2-4 IsConfinal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X86AB4AFF7B1613E3">11.2-5 ConfinalityClass</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X84FB28807BC8A502">11.2-6 LargestCommonPrefix</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X7A336C66855E632D">11.3 <span class="Heading">Word growth</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7BFF1432803C9172">11.3-1 WordGrowth</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X791D4D398201C17D">11.4 <span class="Heading">Finding short relations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X868E478F86A10CFF">11.4-1 ShortGroupRelations</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7B9942AA84B0753E">11.4-2 ShortGroupWordInSet</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X82712E6C815DB9B2">11.5 <span class="Heading">Braid groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X84472A637B648C47">11.5-1 SurfaceBraidFpGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X87E12292861FFE79">11.5-2 CharneyBraidFpGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X814375977D2E4AD9">11.5-3 ArtinRepresentation</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X839ED1F982DB3469">11.6 <span class="Heading">Dirichlet series</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X82D4E885838CFBD6">11.6-1 DirichletSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7C8CD28D797A527F">11.6-2 DegreeDirichletSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X81EA791C7CA3C3FF">11.6-3 SpreadDirichletSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7D792C6985BF482B">11.6-4 ShiftDirichletSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X80571E4A86B38D53">11.6-5 ShrunkDirichletSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X850F072E8523EE9D">11.6-6 ZetaSeriesOfGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7F49DDBC829F18C8">11.6-7 ValueOfDirichletSeries</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X86256BD187D9A7FF">11.7 <span class="Heading">Projective representations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7CE116C27EF109D1">11.7-1 IsProjectiveRepresentation</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X80EEB0F58467ED68">11.7-2 ProjectiveRepresentationByFunction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7FC5A28278EB1E51">11.7-3 LinearRepresentationByImages</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X87BC132B815B4638">11.7-4 DegreeOfProjectiveRepresentation</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X81AF3D937F219A6D">11.7-5 ProjectiveExtension</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7C4E2ED57C2DDBE6">11.7-6 ProjectiveQuotient</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X785C6C0B80936CC8">11.8 <span class="Heading">Miscellanea</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7B5DD261825523A3">11.8-1 ForwardOrbit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7E4966327C37C790">11.8-2 StringByInt</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7CE65002842C0BD8">11.8-3 PositionInTower</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X856E72B180084639">11.8-4 RenameSubobjects</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X79016B3878B5EFAA">11.8-5 CoefficientsInAbelianExtension</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X8624AFAD872509D8">11.8-6 MagmaEndomorphismByImagesNC</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7F7E6457877F69EC">11.8-7 MagmaHomomorphismByImagesNC</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7A2A9D24781AFC34">11.8-8 Draw</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X816A18137E5116E9">11.8-9 IsFIFO</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X86AC1C028093204D">11.8-10 ProductIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X794940277C9AD85C">11.8-11 DimensionSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X825149467C57DEFC">11.8-12 AlgebraHomomorphismByFunction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X837F6C2A797FFD41">11.8-13 IsFpLieAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X8692ADD581359CA1">11.8-14 JenningsLieAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7F5427847E43CD62">11.8-15 SolutionMatModN</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X80E9634283E2DF18">11.8-16 SolutionMatMod1</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7D2CEF7F845D2AF2">11.8-17 CyclotomicByArgument</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7A6CB5FE86501506">11.8-18 ArgumentOfCyclotomic</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X7ADFF37084706CEC">11.9 <span class="Heading">User settings</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7E95AC267805E4C1">11.9-1 InfoFR</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X835FBD72853595BE">11.9-2 SEARCH@</a></span>
</div></div>
</div>

<h3>11 <span class="Heading">Miscellanea</span></h3>

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

<h4>11.1 <span class="Heading">Generic operations</span></h4>

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

<h5>11.1-1 TensorSum</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TensorSum</code>( <var class="Arg">objects</var>, <var class="Arg">...</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function is similar in syntax to <code class="func">DirectProduct</code> (<a href="../../../doc/ref/chap49.html#X861BA02C7902A4F4"><span class="RefLink">Reference: DirectProduct</span></a>), and delegates to <code class="code">TensorSumOp</code>; its meaning depends on context, see e.g. <code class="func">TensorSumOp</code> (<a href="chap3.html#X7C0677148107F7FE"><span class="RefLink">3.5-4</span></a>).</p>

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

<h5>11.1-2 TensorProduct</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TensorProduct</code>( <var class="Arg">objects</var>, <var class="Arg">...</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function is similar in syntax to <code class="func">DirectProduct</code> (<a href="../../../doc/ref/chap49.html#X861BA02C7902A4F4"><span class="RefLink">Reference: DirectProduct</span></a>), and delegates to <code class="code">TensorProductOp</code>; its meaning depends on context, see e.g. <code class="func">TensorProductOp</code> (<a href="chap3.html#X8077C8A47E22FCB5"><span class="RefLink">3.5-5</span></a>).</p>

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

<h5>11.1-3 DirectSum</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DirectSum</code>( <var class="Arg">objects</var>, <var class="Arg">...</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function is similar in syntax to <code class="func">DirectProduct</code> (<a href="../../../doc/ref/chap49.html#X861BA02C7902A4F4"><span class="RefLink">Reference: DirectProduct</span></a>), and delegates to <code class="code">DirectSumOp</code>; its meaning depends on context, see e.g. <code class="func">DirectSumOp</code> (<a href="chap3.html#X7D248C737D29A7CC"><span class="RefLink">3.5-6</span></a>).</p>

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

<h4>11.2 <span class="Heading">Periodic lists</span></h4>

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

<h5>11.2-1 PeriodicListsFamily</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PeriodicListsFamily</code></td><td class="tdright">( family )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsPeriodicList</code></td><td class="tdright">( filter )</td></tr></table></div>
<p>The family, respectively filter, of <code class="func">PeriodicList</code> (<a href="chap11.html#X7B401DFE817D3927"><span class="RefLink">11.2-2</span></a>)s.</p>

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

<h5>11.2-2 PeriodicList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PeriodicList</code>( <var class="Arg">preperiod</var>[, <var class="Arg">period</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">‣ PeriodicList</code>( <var class="Arg">list</var>, <var class="Arg">i</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">‣ PeriodicList</code>( <var class="Arg">list</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">‣ CompressedPeriodicList</code>( <var class="Arg">preperiod</var>[, <var class="Arg">period</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">‣ CompressedPeriodicList</code>( <var class="Arg">list</var>, <var class="Arg">i</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">‣ PrePeriod</code>( <var class="Arg">list</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">‣ Period</code>( <var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>These functions manipulate <em>periodic lists</em>, i.e. lists of infinite length such that elements follow a periodic order after some point.</p>

<p>The first command creates a periodic list, specified by its preperiod and period, which must both be lists. If the period is absent, this is actually a finite list.</p>

<p>The second command creates a periodic list by decreeing that the entries after the end of the list start again at position <var class="Arg">i</var>.</p>

<p>The third command creates a list by applying function <var class="Arg">f</var> to all elements of <var class="Arg">l</var>.</p>

<p>The fourth and fifth command compress the newly created periodic list, see <code class="func">CompressPeriodicList</code> (<a href="chap11.html#X7AFE88F37FC58083"><span class="RefLink">11.2-3</span></a>).</p>

<p>The sixth and seventh commands return respectively the preperiod and period of a periodic list.</p>

<p>Most of the methods applied for lists have an obvious equivalent for periodic lists: <code class="func">List</code> (<a href="../../../doc/ref/chap21.html#X7C3DC8BE78DEECDE"><span class="RefLink">Reference: list and non-list difference</span></a>), <code class="func">Filtered</code> (<a href="../../../doc/ref/chap21.html#X7C86D7F7795125F0"><span class="RefLink">Reference: Filtered</span></a>), <code class="func">First</code> (<a href="../../../doc/ref/chap21.html#X82801DFA84E11272"><span class="RefLink">Reference: First</span></a>), <code class="func">ForAll</code> (<a href="../../../doc/ref/chap21.html#X7F06961278166671"><span class="RefLink">Reference: ForAll</span></a>), <code class="func">ForAny</code> (<a href="../../../doc/ref/chap21.html#X7AF82E747A8BDA75"><span class="RefLink">Reference: ForAny</span></a>), <code class="func">Number</code> (<a href="../../../doc/ref/chap21.html#X8179B13D80E935FC"><span class="RefLink">Reference: Number</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := PeriodicList([1],[2,3,4]);</span>
[ 1, / 2, 3, 4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">l[5];</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">Add(l,100,3); l;</span>
[ 1, 2, 100, / 3, 4, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Remove(l,5);</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">l;</span>
[ 1, 2, 100, 3, / 2, 3, 4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">PrePeriod(l);</span>
[ 1, 2, 100, 3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Period(l);</span>
[ 2, 3, 4 ]
</pre></div>

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

<h5>11.2-3 CompressPeriodicList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CompressPeriodicList</code>( <var class="Arg">l</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This function compresses a periodic list, in replacing the period by a minimal period, and shortening the preperiod. No value is returned, but the list <var class="Arg">l</var> is modified. It remains equal (under <code class="code">=</code>) to the original list.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := PeriodicList([1],[2,3,4,2,3,4]);</span>
[ 1, / 2, 3, 4, 2, 3, 4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Add(l,4,5); l;</span>
[ 1, 2, 3, 4, 4, / 2, 3, 4, 2, 3, 4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">CompressPeriodicList(l);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">l;</span>
[ 1, 2, 3, 4, / 4, 2, 3 ]
</pre></div>

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

<h5>11.2-4 IsConfinal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsConfinal</code>( <var class="Arg">l</var>, <var class="Arg">m</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> if <var class="Arg">l</var> and <var class="Arg">m</var> are eventually equal.</p>

<p>This function tests whether two lists are <em>confinal</em>, i.e. whether, after removal of the same suitable number of elements from both lists, they become equal.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := PeriodicList([1],[2,3,2,3]);</span>
[ 1, / 2, 3, 2, 3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">m := PeriodicList([0,1],[3,2]);</span>
[ 0, 1, / 3, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsConfinal(l,m);</span>
true
</pre></div>

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

<h5>11.2-5 ConfinalityClass</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConfinalityClass</code>( <var class="Arg">l</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The strictly periodic list with same tail as <var class="Arg">l</var>.</p>

<p>There exists a unique periodic list, with no preperiod, which is confinal (see <code class="func">IsConfinal</code> (<a href="chap11.html#X7CA5FA3F7AF9BA3D"><span class="RefLink">11.2-4</span></a>)) to <var class="Arg">l</var>. This strictly periodic list is returned by this command.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := PeriodicList([1],[2,3,2,3]);</span>
[ 1, / 2, 3, 2, 3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ConfinalityClass(l);</span>
[/ 3, 2 ]
</pre></div>

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

<h5>11.2-6 LargestCommonPrefix</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LargestCommonPrefix</code>( <var class="Arg">c</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The longest list that is a prefix of all elements of <var class="Arg">c</var>.</p>

<p>This command computes the longest (finite or periodic) list which is a prefix of all elements of <var class="Arg">c</var>. The argument <var class="Arg">c</var> is a collection of finite and periodic lists.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">LargestCommonPrefix([PeriodicList([1],[2,3,2,3]),[1,2,3,4]]);</span>
[ 1, 2, 3 ]
</pre></div>

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

<h4>11.3 <span class="Heading">Word growth</span></h4>

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

<h5>11.3-1 WordGrowth</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WordGrowth</code>( <var class="Arg">g</var>, <var class="Arg">rec(options...)</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WordGrowth</code>( <var class="Arg">g:</var> <var class="Arg">options...</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitGrowth</code>( <var class="Arg">g</var>, <var class="Arg">point</var>[, <var class="Arg">limit</var>] )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Ball</code>( <var class="Arg">g</var>, <var class="Arg">radius</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Sphere</code>( <var class="Arg">g</var>, <var class="Arg">radius</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The word growth of the semigroup <var class="Arg">g</var>.</p>

<p>This function computes the first terms of growth series associated with the semigroup <var class="Arg">g</var>. The argument <var class="Arg">g</var> can actually be a group/monoid/semigroup, or a list representing that semigroup's generating set.



<p>The behaviour of <code class="code">WordGrowth</code> is controlled via options passed in the second argument, which is a record. They can be combined when reasonable, and are:</p>


<dl>
<dt><strong class="Mark"><code class="code">limit:=n</code></strong></dt>
<dd><p>to specify a limit radius;</p>

</dd>
<dt><strong class="Mark"><code class="code">sphere:=radius</code></strong></dt>
<dd><p>to return the sphere of the specified radius, unless a radius was specified in <code class="code">limit</code>, in which case the value is ignored;</p>

</dd>
<dt><strong class="Mark"><code class="code">spheres:=maxradius</code></strong></dt>
<dd><p>to return the list of spheres of radius between 0 and the specified limit;</p>

</dd>
<dt><strong class="Mark"><code class="code">spheresizes:=maxradius</code></strong></dt>
<dd><p>to return the list sizes of spheres of radius between 0 and the specified limit;</p>

</dd>
<dt><strong class="Mark"><code class="code">ball:=radius</code></strong></dt>
<dd><p>to return the ball of the specified radius;</p>

</dd>
<dt><strong class="Mark"><code class="code">balls:=maxradius</code></strong></dt>
<dd><p>to return the list of balls of radius between 0 and the specified limit;</p>

</dd>
<dt><strong class="Mark"><code class="code">ballsizes:=maxradius</code></strong></dt>
<dd><p>to return the list sizes of balls of radius between 0 and the specified limit;</p>

</dd>
<dt><strong class="Mark"><code class="code">indet:=z</code></strong></dt>
<dd><p>to return the <code class="code">spheresizes</code>, as a polynomial in <code class="code">z</code> (or the first indeterminate if <code class="code">z</code> is not a polynomial;</p>

</dd>
<dt><strong class="Mark"><code class="code">draw:=filename</code></strong></dt>
<dd><p>to create a rendering of the Cayley graph of <var class="Arg">g</var>. Edges are given colours according to the cyclic ordering "red""blue""green""gray""yellow""cyan""orange""purple". If <code class="code">filename</code> is a string, the graph is appended, in <code class="keyw">dot</code> format, to that file. Otherwise, the output is converted to Postscript using the program <code class="keyw">neato</code> from the <strong class="pkg">graphviz</strong> package, and displayed in a separate X window using the program <strong class="pkg">display</strong> or <strong class="pkg">rsvg-view</strong>. This works on UNIX systems.</p>

<p>It is assumed, but not checked, that <strong class="pkg">graphviz</strong> and <strong class="pkg">display</strong>/<strong class="pkg">rsvg-view</strong> are properly installed on the system. The option <code class="keyw">usesvg</code> requests the use of <strong class="pkg">rsvg-view</strong>; by default, <strong class="pkg">display</strong> is used.</p>

</dd>
<dt><strong class="Mark"><code class="code">point:=p</code></strong></dt>
<dd><p>to compute the growth of the orbit of <code class="code">p</code> under <var class="Arg">g</var>, rather than the growth of <var class="Arg">g</var>.</p>

</dd>
<dt><strong class="Mark"><code class="code">act:=function(point,g) ... end</code></strong></dt>
<dd><p>to compute the action with a specific function, rather than the default <code class="code">OnPoints</code>.</p>

</dd>
<dt><strong class="Mark"><code class="code">track:=true</code></strong></dt>
<dd><p>to keep track of a word in the generators that gives the element. This affects the "ball""balls""sphere" and "spheres" commands, where the result returned is a 3-element list: the first entry is the original results; the second entry is a homomorphism from a free group/monoid/semigroup; and the third entry contains the words corresponding to the first entry via the homomorphism.</p>

</dd>
</dl>
<p>If the first argument is an integer <code class="code">n</code> and not a record, the command is interpreted as <code class="code">WordGrowth(...,rec(spheresizes:=n))</code>.</p>

<p><code class="code">WordGrowth(...,rec(draw:=true))</code> may be abbreviated as <code class="code">Draw(...)</code>; <code class="code">WordGrowth(...,rec(ball:=n))</code> may be abbreviated as <code class="code">Ball(...,n)</code>; <code class="code">WordGrowth(...,rec(sphere:=n))</code> may be abbreviated as <code class="code">Sphere(...,n)</code>;</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">WordGrowth(GrigorchukGroup,4);</span>
[ 1, 4, 6, 12, 17 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WordGrowth(GrigorchukGroup,rec(limit:=4,indet:=true));</span>
17*x_1^4+12*x_1^3+6*x_1^2+4*x_1+1
<span class="GAPprompt">gap></span> <span class="GAPinput">WordGrowth(GrigorchukGroup,rec(limit:=1,spheres:=true));</span>
[ [ <Mealy element on alphabet [ 1, 2 ] with 1 state, initial state 1> ],
  [ d, b, c, a ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WordGrowth(GrigorchukGroup,rec(point:=[2,2,2]));</span>
[ 1, 1, 1, 1, 1, 1, 1, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">OrbitGrowth(GrigorchukGroup,[1,1,1]);</span>
[ 1, 2, 2, 1, 1, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WordGrowth(GrigorchukGroup,rec(spheres:=4,point:=PeriodicList([],[2])));</span>
[ [ [/ 2 ] ], [ [ 1, / 2 ] ], [ [ 1, 1, / 2 ] ], [ [ 2, 1, / 2 ] ],
  [ [ 2, 1, 1, / 2 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">WordGrowth([(1,2),(2,3)],rec(spheres:=infinity,track:=true));</span>
[ [ [  ], [ (2,3), (1,2) ], [ (), (1,2,3), (1,3,2) ], [ (1,3) ] ],
  MappingByFunction( <free semigroup on the generators [ s1, s2 ]>, <group>, function( w ) ... end ),
  [ [  ], [ s2, s1 ], [ s2^2, s2*s1, s1*s2 ], [ s2*s1*s2 ] ] ]
</pre></div>

<p>Note that the orbit growth of <code class="code">[/2]</code> is constant 1, while that of <code class="code">[/1]</code> is constant 2. The following code would find the point with maximal orbit growth of a semigroup acting on the integers (for example, constructed with <code class="func">PermGroup</code> (<a href="chap7.html#X7C6D7BA0818A3A3D"><span class="RefLink">7.2-1</span></a>)):</p>


<div class="example"><pre>
MaximalOrbitGrowth := function(g)
    local maxpt, growth, max;
    maxpt := LargestMovedPoint(g);
    growth := List([1..maxpt],n->WordGrowth(g:point:=n));
    max := Maximum(growth);
    return [max,Filtered([1..maxpt],n->growth[n]=max)];
end;
</pre></div>

<p>For example, the command <code class="code">Draw(BasilicaGroup,rec(point:=PeriodicList([],[2,1]),limit:=3));</code> produces (in a new window) the following picture: <img alt="Nucleus" src="basilica-ball.jpg"></p>

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

<h4>11.4 <span class="Heading">Finding short relations</span></h4>

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

<h5>11.4-1 ShortGroupRelations</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ShortGroupRelations</code>( <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">‣ ShortMonoidRelations</code>( <var class="Arg">g</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of relations between words over <var class="Arg">g</var>, of length at most <var class="Arg">n</var>.</p>

<p>This function assumes that <var class="Arg">g</var> is a list of monoid elements. it searches for products of at most <var class="Arg">n</var> elements over <var class="Arg">g</var> that are equal.</p>

<p>In its first form, it returns a list of words in a free group <code class="code">f</code> of rank the length of <var class="Arg">g</var>, that are trivial in <var class="Arg">g</var>. The first argument may be a group, in which case its symmetric generating set is considered.</p>

<p>In its second form, it returns a list of pairs <code class="code">[l,r]</code>, where <code class="code">l</code> and <code class="code">r</code> are words in a free monoid <code class="code">f</code> of rank the length of <var class="Arg">g</var>, that are equal in <var class="Arg">g</var>. The first argument may be a monoid, in which case its monoid generating set is considered.</p>

<p>This command does not construct all such pairs; rather, it returns a small set, in the hope that it may serve as a presentation for the monoid generated by <var class="Arg">g</var>.</p>

<p>The first element of the list returned is actually not a relation: it is a homomorphism from <code class="code">f</code> to [the group/monoid generated by] <var class="Arg">g</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ShortGroupRelations(GrigorchukGroup,10);</span>
[ [ x1, x2, x3, x4 ] -> [ a, b, c, d ],
  x1^2, x2^2, x3^2, x4^2, x2*x3*x4, x4*x1*x4*x1*x4*x1*x4*x1,
  x3*x1*x3*x1*x3*x1*x3*x1*x3*x1*x3*x1*x3*x1*x3*x1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ShortGroupRelations(GuptaSidkiGroup,9);</span>
[ [ x1, x2 ] -> [ x, gamma ],
  x1^3, x2^3, x2*x1^-1*x2*x1^-1*x2*x1^-1*x2*x1^-1*x2*x1^-1*x2*x1^-1*
     x2*x1^-1*x2*x1^-1*x2*x1^-1,    x1^-1*x2^-1*x1^-1*x2^-1*x1^-1*x2^-1*
x1^-1*x2^-1*x1^-1*x2^-1*x1^-1*x2^-1*x1^-1*x2^-1*x1^-1*x2^-1*x1^-1*x2^-1 ]
</pre></div>

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

<h5>11.4-2 ShortGroupWordInSet</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ShortGroupWordInSet</code>( <var class="Arg">g</var>, <var class="Arg">s</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">‣ ShortMonoidWordInSet</code>( <var class="Arg">g</var>, <var class="Arg">s</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">‣ ShortSemigroupWordInSet</code>( <var class="Arg">g</var>, <var class="Arg">s</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: Words over <var class="Arg">g</var> that express elements of <var class="Arg">s</var>.</p>

<p>This command produces words in the free group/monoid/semigroup generated by <var class="Arg">g</var>'s generators that express elements of the set s. Elements of length at most AbsoluteValue(n) are searched; if n is non-negative then at most one element is returned. The value n=infinity is allowed.



<p>The second argument may be either a list, a predicate (i.e. a function returning <code class="keyw">true</code> or <code class="keyw">false</code>) or an element.</p>

<p>The function returns a list of words in the free group/monoid/semigroup; the first entry of the list is a homomorphism from the free group/monoid/semigroup to <var class="Arg">g</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := ShortMonoidWordInSet(Group((1,2),(2,3),(3,4)),</span>
            [(1,2,3,4),(4,3,2,1)],-3);
[ MappingByFunction( <free monoid on the generators [ m1, m2, m3 ]>, Group(
    [ (1,2), (2,3), (3,4) ]), function( w ) ... end ), m3*m2*m1, m1*m2*m3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">f := Remove(l,1);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List(l,x->x^f);</span>
[ (1,2,3,4), (1,4,3,2) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ShortMonoidWordInSet(GrigorchukGroup,</span>
       [Comm(GrigorchukGroup.1,GrigorchukGroup.2)],4);
[ MappingByFunction( <free monoid on the generators [ m1, m2, m3, m4
     ]>, <self-similar monoid over [ 1 .. 2 ] with
    4 generators>, function( w ) ... end ), m1*m2*m1*m2 ]
</pre></div>

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

<h4>11.5 <span class="Heading">Braid groups</span></h4>

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

<h5>11.5-1 SurfaceBraidFpGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SurfaceBraidFpGroup</code>( <var class="Arg">n</var>, <var class="Arg">g</var>, <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PureSurfaceBraidFpGroup</code>( <var class="Arg">n</var>, <var class="Arg">g</var>, <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The [pure] surface braid group on <var class="Arg">n</var> strands.</p>

<p>This function creates a finitely presented group, isomorphic to the [pure] braid group on <var class="Arg">n</var> strands of the surface of genus <var class="Arg">g</var>, with <var class="Arg">p</var> punctures. In particular, <code class="code">SurfaceBraidFpGroup(n,0,1)</code> is the usual braid group (on the disc).</p>

<p>The presentation comes from <a href="chapBib.html#biBMR2043362">[Bel04]</a>. The first <span class="SimpleMath">2g</span> generators are the standard <span class="SimpleMath">a_i,b_i</span> surface generators; the next <span class="SimpleMath">n-1</span> are the standard <span class="SimpleMath">s_i</span> braid generators; and the last are the extra <span class="SimpleMath">z</span> generators.</p>

<p>The pure surface braid group is the kernel of the natural map from the surface braid group to the symmetric group on <var class="Arg">n</var> points, defined by sending <span class="SimpleMath">a_i,b_i,z</span> to the identity and <span class="SimpleMath">s_i</span> to the transposition <code class="code">(i,i+1)</code>.</p>

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

<h5>11.5-2 CharneyBraidFpGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CharneyBraidFpGroup</code>( <var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The braid group on <var class="Arg">n</var> strands.</p>

<p>This function creates a finitely presented group, isomorphic to the braid group on <var class="Arg">n</var> strands (on the disc). It is isomorphic to <code class="code">SurfaceBraidFpGroup(n,0,1)</code>, but has a different presentation, due to Charney (<a href="chapBib.html#biBMR1314589">[Cha95]</a>), with one generator per non-trivial permutation of <var class="Arg">n</var> points.</p>

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

<h5>11.5-3 ArtinRepresentation</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ArtinRepresentation</code>( <var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The braid group's representation on FreeGroup(n).



<p>This function creates a Artin's representatin, a homomorphism from the braid group on n strands (on the disc) into the automorphism group of a free group of rank n.



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

<h4>11.6 <span class="Heading">Dirichlet series</span></h4>

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

<h5>11.6-1 DirichletSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DirichletSeries</code>(  )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DirichletSeries</code>( <var class="Arg">maxdeg</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">‣ DirichletSeries</code>( <var class="Arg">indices</var>, <var class="Arg">coeffs</var>[, <var class="Arg">maxdeg</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">‣ DirichletSeries</code>( <var class="Arg">series</var>, <var class="Arg">maxdeg</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Creates a new Dirichlet series, namely, a formal power series of the form <span class="SimpleMath">f(s)=∑_n≥1 a(n) n^-s</span>. Such series have a maximal degree, which may be <code class="keyw">infinity</code>, and may be added or multiplied as polynomials.</p>

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

<h5>11.6-2 DegreeDirichletSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegreeDirichletSeries</code>( <var class="Arg">f</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The maximal degree of a non-zero coefficient of <var class="Arg">f</var>.</p>

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

<h5>11.6-3 SpreadDirichletSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SpreadDirichletSeries</code>( <var class="Arg">f</var>, <var class="Arg">n</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The series <span class="SimpleMath">f(ns)</span>.</p>

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

<h5>11.6-4 ShiftDirichletSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ShiftDirichletSeries</code>( <var class="Arg">s</var>, <var class="Arg">n</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The series <span class="SimpleMath">n^-sf(s)</span>.</p>

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

<h5>11.6-5 ShrunkDirichletSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ShrunkDirichletSeries</code>( <var class="Arg">f</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The series <var class="Arg">f</var>, with maximal precision set to its maximal degree.</p>

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

<h5>11.6-6 ZetaSeriesOfGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ZetaSeriesOfGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The series <var class="Arg">\sum_{\chi\in\widehat G}(\dim G)^{-s}</var>.</p>

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

<h5>11.6-7 ValueOfDirichletSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ValueOfDirichletSeries</code>( <var class="Arg">f</var>, <var class="Arg">s</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The evaluation of <var class="Arg">f</var> at <var class="Arg">s</var>. Synonym for <code class="code">Value</code>.</p>

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

<h4>11.7 <span class="Heading">Projective representations</span></h4>

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

<h5>11.7-1 IsProjectiveRepresentation</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjectiveRepresentation</code>( <var class="Arg">rep</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">‣ IsLinearRepresentation</code>( <var class="Arg">rep</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A projective representation is a mapping to matrices, that is multiplicative up to scalars. This property is set by the following functions that create projective representations.</p>

<p>The second property describes those projective representations that are in fact homomorphisms.</p>

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

<h5>11.7-2 ProjectiveRepresentationByFunction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProjectiveRepresentationByFunction</code>( <var class="Arg">group</var>, <var class="Arg">matrixgroup</var>, <var class="Arg">function</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A projective representation of <var class="Arg">group</var>.</p>

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

<h5>11.7-3 LinearRepresentationByImages</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LinearRepresentationByImages</code>( <var class="Arg">group</var>, <var class="Arg">matrixgroup</var>, <var class="Arg">src</var>, <var class="Arg">dst</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A linear representation of <var class="Arg">group</var>.</p>

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

<h5>11.7-4 DegreeOfProjectiveRepresentation</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegreeOfProjectiveRepresentation</code>( <var class="Arg">rep</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The dimension of the matrices in the image of <var class="Arg">rep</var>.</p>

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

<h5>11.7-5 ProjectiveExtension</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProjectiveExtension</code>( <var class="Arg">rep</var>, <var class="Arg">group</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A projective representation of <var class="Arg">group</var> whose restriction to <var class="Arg">Source(rep)</var> (which is a subgroup of <var class="Arg">group</var>) is <var class="Arg">rep</var>.</p>

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

<h5>11.7-6 ProjectiveQuotient</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProjectiveQuotient</code>( <var class="Arg">rep</var>, <var class="Arg">hom</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A projective representation of <var class="Arg">Image(hom)</var> that comes from <var class="Arg">rep</var>.</p>

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

<h4>11.8 <span class="Heading">Miscellanea</span></h4>

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

<h5>11.8-1 ForwardOrbit</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ForwardOrbit</code>( <var class="Arg">g</var>, <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The forward orbit of <var class="Arg">x</var> under <var class="Arg">g</var>.</p>

<p>This operation computes the smallest list containing <var class="Arg">x</var> and closed under application of <var class="Arg">g</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ForwardOrbit((1,2,4,3),2);</span>
[ 2, 4, 3, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ForwardOrbit(Transformation([4,4,5,2,1]),1);</span>
[ 1, 4, 2 ]
</pre></div>

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

<h5>11.8-2 StringByInt</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ StringByInt</code>( <var class="Arg">n</var>[, <var class="Arg">b</var>] )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: A string representing <var class="Arg">n</var> in base <var class="Arg">b</var>.</p>

<p>This function converts a positive integer to string. It accepts an optional second argument, which is a base in which to print <var class="Arg">n</var>. By default, <var class="Arg">b</var> is 2.</p>

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

<h5>11.8-3 PositionInTower</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PositionInTower</code>( <var class="Arg">t</var>, <var class="Arg">x</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The largest index such that <code class="code">t[i]</code> contains <var class="Arg">x</var>.</p>

<p>This function assumes <var class="Arg">t</var> is a descending tower of domains, such as that constructed by <code class="code">LowerCentralSeries</code>. It returns the largest integer <code class="code">i</code> such that <code class="code">t[i]</code> contains <var class="Arg">x</var>; in case the tower ends precisely with <var class="Arg">x</var>, the value <code class="keyw">infinity</code> is returned.</p>

<p><var class="Arg">x</var> can be an element or a subdomain of <code class="code">t[1]</code>.</p>

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

<h5>11.8-4 RenameSubobjects</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RenameSubobjects</code>( <var class="Arg">obj</var>, <var class="Arg">refobj</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function traverses <var class="Arg">obj</var> if it is a list or a record, and, when it finds an element which has no name, but is equal (in the sense of <code class="code">=</code>) to an element of <var class="Arg">refobj</var>, assigns it the name of that element.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">trivial := Group(());; SetName(trivial,"trivial");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := List([1..10],i->Group(Random(SymmetricGroup(3))));</span>
[ Group([ (2,3) ]), Group([ (2,3) ]), Group([ (1,3) ]), Group([ (1,3) ]),
  Group([ (1,3,2) ]), Group([ (1,3,2) ]), Group([ (1,2) ]), Group(()),
  Group([ (2,3) ]), Group([ (1,3,2) ]) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">RenameSubobjects(a,[trivial]); a;</span>
[ Group([ (2,3) ]), Group([ (2,3) ]), Group([ (1,3) ]), Group([ (1,3) ]),
  Group([ (1,3,2) ]), Group([ (1,3,2) ]), Group([ (1,2) ]), trivial,
  Group([ (2,3) ]), Group([ (1,3,2) ]) ]
</pre></div>

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

<h5>11.8-5 CoefficientsInAbelianExtension</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CoefficientsInAbelianExtension</code>( <var class="Arg">x</var>, <var class="Arg">b</var>, <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The coefficients in <var class="Arg">b</var> of the element <var class="Arg">x</var>, modulo <var class="Arg">G</var>.</p>

<p>If <var class="Arg">b</var> is a list of group elements <span class="SimpleMath">b_1,...,b_k</span>, and <span class="SimpleMath">H=⟨ G,b_1,...,b_k⟩</span> contains <var class="Arg">G</var> as a normal subgroup, and <span class="SimpleMath">H/G</span> is abelian and <span class="SimpleMath">x∈ H</span>, then this function computes exponents <span class="SimpleMath">e_1,...,e_k</span> such that <span class="SimpleMath">∏ b_i^e_iG=xG</span>.</p>

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

<h5>11.8-6 MagmaEndomorphismByImagesNC</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MagmaEndomorphismByImagesNC</code>( <var class="Arg">f</var>, <var class="Arg">im</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: An endomorphism of <var class="Arg">f</var>.</p>

<p>This function constructs an endomorphism of the group,monoid or semigroup <var class="Arg">f</var> specified by sending generator number <span class="SimpleMath">i</span> to the <span class="SimpleMath">i</span>th entry in <var class="Arg">im</var>. It is a shortcut for a call to <code class="code">GroupHomomorphismByImagesNC</code> or <code class="code">MagmaHomomorphismByFunctionNC(...,MappedWord(...))</code>.</p>

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

<h5>11.8-7 MagmaHomomorphismByImagesNC</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MagmaHomomorphismByImagesNC</code>( <var class="Arg">f</var>, <var class="Arg">g</var>, <var class="Arg">im</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: An homomorphism from <var class="Arg">f</var> to <var class="Arg">g</var>.</p>

<p>This function constructs a homomorphism of the group,monoid or semigroup <var class="Arg">f</var> specified by sending generator number <span class="SimpleMath">i</span> to the <span class="SimpleMath">i</span>th entry in <var class="Arg">im</var>. It is a shortcut for a call to <code class="code">GroupHomomorphismByImagesNC</code> or <code class="code">MagmaHomomorphismByFunctionNC(...,MappedWord(...))</code>.</p>

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

<h5>11.8-8 Draw</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Draw</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HeightOfPoset</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The length of a maximal chain in the poset.</p>

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

<h5>11.8-9 IsFIFO</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFIFO</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">‣ NewFIFO</code>( [<var class="Arg">l</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">‣ Add</code>( <var class="Arg">f</var>, <var class="Arg">i</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">‣ Append</code>( <var class="Arg">f</var>, <var class="Arg">l</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>These functions create and extend FIFOs, i.e. first-in first-out data structures.</p>

<p>The first command creates a FIFO, with an optional list initializing it.</p>

<p>The second and third commands add an element, or append a list, to the FIFO.</p>

<p>Elements are removed via <code class="code">NextIterator(f)</code>, and the FIFO is tested for emptyness via <code class="code">IsDoneIterator(f)</code>. Thus, a typical use is the following code, which tests in breadth-first manner that all numbers in <code class="code">[1..1000]</code> have a successor which is prime:</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := NewFIFO([1..10000]);</span>
<iterator>
<span class="GAPprompt">gap></span> <span class="GAPinput">for i in f do if not IsPrime(i) then Add(f,i+1); fi; od;</span>
</pre></div>

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

<h5>11.8-10 ProductIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProductIdeal</code>( <var class="Arg">a</var>, <var class="Arg">b</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProductBOIIdeal</code>( <var class="Arg">a</var>, <var class="Arg">b</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: the product of the ideals <var class="Arg">a</var> and <var class="Arg">b</var>.</p>

<p>The first command computes the product of the left ideal <var class="Arg">a</var> and the right ideal <var class="Arg">b</var>. If they are not appropriately-sided ideals, the command first attempts to convert them.</p>

<p>The second command assumes that the ring of these ideals has a basis made of invertible elements. It is then much easier to compute the product.</p>

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

<h5>11.8-11 DimensionSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DimensionSeries</code>( <var class="Arg">a</var>[, <var class="Arg">n</var>] )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: A nested list of ideals in the algebra-with-one <var class="Arg">a</var>.</p>

<p>This command computes the powers of the augmentation ideal of <var class="Arg">a</var>, and returns their list. The list stops when the list becomes stationary.</p>

<p>The optional second argument gives a limit to the number of terms to put in the series.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := ThinnedAlgebraWithOne(GF(2),GrigorchukGroup);</span>
<self-similar algebra-with-one on alphabet GF(2)^2 with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">q := MatrixQuotient(a,3);</span>
<algebra-with-one of dimension 22 over GF(2)>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := DimensionSeries(q);</span>
[ <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (5 generators)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 21)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 18)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 14)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 10)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 6)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 3)>,
  <two-sided ideal in <algebra-with-one of dimension 22 over GF(2)>, (dimension 1)>,
  <algebra of dimension 0 over GF(2)> ]
</pre></div>

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

<h5>11.8-12 AlgebraHomomorphismByFunction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AlgebraHomomorphismByFunction</code>( <var class="Arg">A</var>, <var class="Arg">B</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">‣ AlgebraWithOneHomomorphismByFunction</code>( <var class="Arg">A</var>, <var class="Arg">B</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A homomorphism from the algebra <var class="Arg">A</var> to the algebra <var class="Arg">B</var>.</p>

<p>These functions construct an algebra homomorphism from a one-argument function. They do not check that the function actually defines a homomorphism.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">A := MatrixAlgebra(Rationals,2);</span>
( Rationals^[ 2, 2 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">e1 := AlgebraHomomorphismByFunction(Rationals,A,f->[[f,0],[0,0]]);</span>
MappingByFunction( Rationals, ( Rationals^[ 2, 2 ] ), function( f ) ... end )
<span class="GAPprompt">gap></span> <span class="GAPinput">11^e1;</span>
[ [ 11, 0 ], [ 0, 0 ] ]
</pre></div>

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

<h5>11.8-13 IsFpLieAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFpLieAlgebra</code></td><td class="tdright">( filter )</td></tr></table></div>
<p>The category of Lie algebras coming from a finitely presented group. They appear as the <code class="func">JenningsLieAlgebra</code> (<a href="../../../doc/ref/chap64.html#X8692ADD581359CA1"><span class="RefLink">Reference: JenningsLieAlgebra</span></a>) of a finitely presented group.</p>

<p>If <code class="code">G</code> is an infinite, finitely presented group, then the original implementation of <code class="func">JenningsLieAlgebra</code> (<a href="../../../doc/ref/chap64.html#X8692ADD581359CA1"><span class="RefLink">Reference: JenningsLieAlgebra</span></a>) does not return. On the other hand, the implementation in <strong class="pkg">FR</strong> constructs a graded object, for which the graded components are computed on-demand; see <code class="func">JenningsLieAlgebra</code> (<a href="chap11.html#X8692ADD581359CA1"><span class="RefLink">11.8-14</span></a>).</p>

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

<h5>11.8-14 JenningsLieAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ JenningsLieAlgebra</code>( <var class="Arg">ring</var>, <var class="Arg">fpgroup</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The Jennings Lie algebra of <var class="Arg">fpgroup</var>.</p>

<p>This method does not compute the Jennings Lie algebra <em>per se</em>; it merely constructs a placeholder to contain the result.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := FreeGroup(4);</span>
<free group on the generators [ f1, f2, f3, f4 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">surfacegp := f/[Comm(f.1,f.2)*Comm(f.3,f.4)];</span>
<fp group of size infinity on the generators [ f1, f2, f3, f4 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">j := JenningsLieAlgebra(Rationals,surfgp);</span>
<FP Lie algebra over Rationals>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..4],Grading(j).hom_components);</span>
[ <vector space over Rationals, with 4 generators>,
  <vector space over Rationals, with 5 generators>,
  <vector space over Rationals, with 16 generators>,
  <vector space over Rationals, with 45 generators> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">B := Basis(Grading(j).hom_components(1));</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">B[1]*B[2]+B[3]*B[4];</span>
<zero Lie element>
</pre></div>

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

<h5>11.8-15 SolutionMatModN</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SolutionMatModN</code>( <var class="Arg">mat</var>, <var class="Arg">vec</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Solve the linear system <code class="code">sol*mat=vec</code> modulo <var class="Arg">N</var>. The arguments are assumed to be an integer matrix and vector. Either returns an integer solution, or <code class="keyw">fail</code> if no such solution exists.</p>

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

<h5>11.8-16 SolutionMatMod1</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SolutionMatMod1</code>( <var class="Arg">mat</var>, <var class="Arg">vec</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Solve the linear system <code class="code">sol*mat=vec</code> in <span class="SimpleMath">Q/Z</span>. The arguments are assumed to be rational matrices. Assuming there are finitely many solutions, returns them all.</p>

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

<h5>11.8-17 CyclotomicByArgument</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CyclotomicByArgument</code>( <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The cyclotomic field element equal to <span class="SimpleMath">exp(2π i q)</span>.</p>

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

<h5>11.8-18 ArgumentOfCyclotomic</h5>

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

--> maximum size reached

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

100%


¤ Dauer der Verarbeitung: 0.46 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge