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