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


Quelle  chap4.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/laguna/doc/chap4.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 (LAGUNA) - Chapter 4: LAGUNA functions</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="chap4"  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="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="chap3.html">[Previous Chapter]</a>    <a href="chapBib.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap4_mj.html">[MathJax on]</a></p>
<p><a id="X7F79B2207E293F2B" name="X7F79B2207E293F2B"></a></p>
<div class="ChapSects"><a href="chap4.html#X7F79B2207E293F2B">4 <span class="Heading"><strong class="pkg">LAGUNA</strong> functions</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X7B473F157842958E">4.1 <span class="Heading">General functions for group algebras</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X861A702283A667DF">4.1-1 IsGroupAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X82DBCA8F7DB21AC5">4.1-2 IsFModularGroupAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X849599E07C38A739">4.1-3 IsPModularGroupAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7C966B177BB62C72">4.1-4 UnderlyingGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8534C18E7EA81CB8">4.1-5 UnderlyingRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X790470C48340E8F7">4.1-6 UnderlyingField</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X81DC99ED7AC03E46">4.2 <span class="Heading">Operations with group algebra elements</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7B689C0284AC4296">4.2-1 Support</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8401D79C8678D3FA">4.2-2 CoefficientsBySupport</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X81DD298A7C06EC82">4.2-3 TraceOfMagmaRingElement</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X780769238600AFD1">4.2-4 Length</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X86FA17BE858F2245">4.2-5 Augmentation</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X83A318C887B3E735">4.2-6 PartialAugmentations</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X81EB2A0A8756372B">4.2-7 Involution</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X82D0BA3D7D3994F6">4.2-8 IsSymmetric</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7990BD877E89A9EC">4.2-9 IsUnitary</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X85CBFBAE78DE72E8">4.2-10 IsUnit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X82EC4F49877D6EB1">4.2-11 InverseOp</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7FD01F52845445EC">4.2-12 BicyclicUnitOfType1</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8631AD178508D219">4.2-13 BassCyclicUnit</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X841733AB86D30446">4.3 <span class="Heading">Important attributes of group algebras</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7F7FD75E84BEE0EF">4.3-1 AugmentationHomomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7B21DB3E7CD80983">4.3-2 AugmentationIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X850C29907A509533">4.3-3 RadicalOfAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8292BEFC7922E773">4.3-4 WeightedBasis</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X84B25D3A812A8A2E">4.3-5 AugmentationIdealPowerSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8567023A821E39A6">4.3-6 AugmentationIdealNilpotencyIndex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7C0D5F3C842302EC">4.3-7 AugmentationIdealOfDerivedSubgroupNilpotencyIndex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X837294D57E415E37">4.3-8 LeftIdealBySubgroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X863248708784F94C">4.4 <span class="Heading">Computations with the unit group</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X817D5AC78754527F">4.4-1 NormalizedUnitGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7D40E42A7B678598">4.4-2 PcNormalizedUnitGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7E08F6E87C586A36">4.4-3 NaturalBijectionToPcNormalizedUnitGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X83715EF37B9FA94A">4.4-4 NaturalBijectionToNormalizedUnitGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X84D64AF17941FA7F">4.4-5 Embedding</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X853C045B7BA6A580">4.4-6 Units</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7E67BDA77E5E6077">4.4-7 PcUnits</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7F2532888184CB22">4.4-8 IsGroupOfUnitsOfMagmaRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7EF9BF297A9412AB">4.4-9 IsUnitGroupOfGroupRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X82AC131384191CCE">4.4-10 IsNormalizedUnitGroupOfGroupRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X82DCA8A57D0D1114">4.4-11 UnderlyingGroupRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7A0FFABC86F89517">4.4-12 UnitarySubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X859F07AE7A4D317B">4.4-13 BicyclicUnitGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7A39E44D87CDF7B0">4.4-14 GroupBases</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X783C1A3D86A6656B">4.5 <span class="Heading">The Lie algebra of a group algebra</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7827B4158459DEA0">4.5-1 LieAlgebraByDomain</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7AA7DA6082639B23">4.5-2 IsLieAlgebraByAssociativeAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X85F4712B84624DB8">4.5-3 UnderlyingAssociativeAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X84050A268514F2EE">4.5-4 NaturalBijectionToLieAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X821DAFD585EA1DF3">4.5-5 NaturalBijectionToAssociativeAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X78C26E3F80E55AC2">4.5-6 IsLieAlgebraOfGroupRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X87CCD17A790BE256">4.5-7 UnderlyingGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X833439F7846784B5">4.5-8 Embedding</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8111F58E7DE3E25C">4.5-9 LieCentre</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7C95C0057C977747">4.5-10 LieDerivedSubalgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7F97D08F7B738ADE">4.5-11 IsLieAbelian</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X859FF1B3812B8FCC">4.5-12 IsLieSolvable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X78452F4E875A62A8">4.5-13 IsLieNilpotent</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X8504EC257B764BA6">4.5-14 IsLieMetabelian</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7EEAA09F818CE548">4.5-15 IsLieCentreByMetabelian</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7C8EBFF5805F8C51">4.5-16 CanonicalBasis</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X83026DFF8461B96D">4.5-17 IsBasisOfLieAlgebraOfGroupRing</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X804ADF0280F67CDC">4.5-18 StructureConstantsTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X87E9411284D1A346">4.5-19 LieUpperNilpotencyIndex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7D71DF0579FBE1C9">4.5-20 LieLowerNilpotencyIndex</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7E5950517F0CDB47">4.5-21 LieDerivedLength</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X7B16423A7FBED034">4.6 <span class="Heading">Other commands</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X85CE6B407910F768">4.6-1 SubgroupsOfIndexTwo</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7AFBD42180787A07">4.6-2 DihedralDepth</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7D7CD02F803FFC08">4.6-3 DimensionBasis</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X84B7C6A38473722F">4.6-4 LieDimensionSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7B2EAF81791D6C68">4.6-5 LieUpperCodimensionSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4.html#X7E5804B881DE4FF2">4.6-6 LAGInfo</a></span>
</div></div>
</div>

<h3>4 <span class="Heading"><strong class="pkg">LAGUNA</strong> functions</span></h3>

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

<h4>4.1 <span class="Heading">General functions for group algebras</span></h4>

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

<h5>4.1-1 IsGroupAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGroupAlgebra</code>( <var class="Arg">KG</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A group ring over a field is called a group algebra. For a group ring <var class="Arg">KG</var>, <code class="code">IsGroupAlgebra</code> returns <code class="keyw">true</code>, if the underlying ring of <var class="Arg">KG</var> is a field; <code class="keyw">false</code> is returned otherwise. This property will be set automatically for every group ring created by the function <code class="code">GroupRing</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IsGroupAlgebra( GroupRing( GF( 2 ), DihedralGroup( 16 ) ) );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGroupAlgebra( GroupRing( Integers, DihedralGroup( 16 ) ) );</span>
false      

</pre></div>

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

<h5>4.1-2 IsFModularGroupAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsFModularGroupAlgebra</code>( <var class="Arg">KG</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A group algebra <span class="SimpleMath">KG</span> over a field <span class="SimpleMath">K</span> is called <em>modular</em>, if the characteristic of the field <span class="SimpleMath">K</span> divides the order of some element in <span class="SimpleMath">G</span>. For a group algebra <var class="Arg">KG</var> of a finite group <span class="SimpleMath">G</span>, <code class="code">IsModularGroupAlgebra</code> returns <code class="keyw">true</code>, if <var class="Arg">KG</var> is modular according to this definition; <code class="keyw">false</code> is returned otherwise. This property will be set automatically for every group algebra, created by the function <code class="code">GroupRing</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IsFModularGroupAlgebra( GroupRing( GF( 2 ), SymmetricGroup( 6 ) ) );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsFModularGroupAlgebra( GroupRing( GF( 2 ), CyclicGroup( 3 ) ) );</span>
false  

</pre></div>

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

<h5>4.1-3 IsPModularGroupAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsPModularGroupAlgebra</code>( <var class="Arg">KG</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A group algebra <span class="SimpleMath">KG</span> is said to be <span class="SimpleMath">p</span>-modular, if <span class="SimpleMath">K</span> is a field of characteristic <span class="SimpleMath">p</span> and <span class="SimpleMath">G</span> is a finite <span class="SimpleMath">p</span>-group for the same prime <span class="SimpleMath">p</span>. For a group algebra <var class="Arg">KG</var> of a finite group <span class="SimpleMath">G</span>, <code class="code">IsPModularGroupAlgebra</code> returns <code class="keyw">true</code>, if <var class="Arg">KG</var> is <span class="SimpleMath">p</span>-modular according to this definition; <code class="keyw">false</code> is returned otherwise. This property will be set automatically for every group algebra, created by the function <code class="code">GroupRing</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IsPModularGroupAlgebra( GroupRing( GF( 2 ), DihedralGroup( 16 ) ) );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsPModularGroupAlgebra( GroupRing( GF( 2 ), SymmetricGroup( 6 ) ) );</span>
false        

</pre></div>

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

<h5>4.1-4 UnderlyingGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UnderlyingGroup</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the underlying group of a group ring</p>

<p>This attribute stores the underlying group of a group ring <var class="Arg">KG</var>. In fact, it refers to the attribute <code class="code">UnderlyingMagma</code> which returns the same result, and was introduced for group rings for convenience, and for teaching purposes.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF ( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := UnderlyingGroup( KG );</span>
<pc group of size 16 with 4 generators>  

</pre></div>

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

<h5>4.1-5 UnderlyingRing</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UnderlyingRing</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the underlying ring of a group ring</p>

<p>This attribute stores the underlying ring of a group ring <var class="Arg">KG</var>. In fact, it refers to the attribute <code class="code">LeftActingDomain</code> which returns the same result, and was introduced for group rings for convenience, and for teaching purposes.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingRing( KG );</span>
GF(2)     

</pre></div>

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

<h5>4.1-6 UnderlyingField</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UnderlyingField</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the underlying field of a group algebra</p>

<p>This attribute stores the underlying field of a group algebra <var class="Arg">KG</var>. In fact, it refers to the attribute <code class="code">LeftActingDomain</code> which returns the same result, and was introduced for group algebras for convenience, and for teaching purposes.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingField( KG );</span>
GF(2)    

</pre></div>

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

<h4>4.2 <span class="Heading">Operations with group algebra elements</span></h4>

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

<h5>4.2-1 Support</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Support</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: support of x as a list of elements of the underlying group</p>

<p>Returns the support of a group ring element <var class="Arg">x</var>. The support of a non-zero element <span class="SimpleMath">x = α_1 ⋅ g_1 + α_2 ⋅ g_2 + ⋯ + α_k ⋅ g_k</span> of a group ring is the list of elements <span class="SimpleMath">g_i ∈ G</span> for which the coefficient <span class="SimpleMath">α_i</span> is non-zero. The support of the zero element of a group ring is defined to be the empty list. This method is also applicable to elements of magma rings.</p>


<div class="example"><pre>

# First we create an element x to use in in the series of examples.
# We map the minimal generating system of the group G to its group algebra
# and denote their images as a and b
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=DihedralGroup(16);; KG:=GroupRing(GF(2),G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := List( MinimalGeneratingSet( G ), g -> g^Embedding( G, KG ) );</span>
[ (Z(2)^0)*f1, (Z(2)^0)*f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">a := l[1]; b := l[2]; e := One( KG ); # we denote the identity by e</span>
(Z(2)^0)*f1
(Z(2)^0)*f2
(Z(2)^0)*<identity> of ...
<span class="GAPprompt">gap></span> <span class="GAPinput">x := ( e + a ) * ( e + b );</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">Support( x );</span>
[ <identity> of ..., f1, f2, f1*f2 ]     

</pre></div>

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

<h5>4.2-2 CoefficientsBySupport</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CoefficientsBySupport</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: coefficients of support elements as list of elements of the underlying ring</p>

<p>Returns a list that contains the coefficients corresponding to the elements of <code class="code">Support( x )</code> in the same order as the elements appear in <code class="code">Support( x )</code>. This method is also applicable to elements of magma rings.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">CoefficientsBySupport( x );</span>
[ Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0 ]   

</pre></div>

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

<h5>4.2-3 TraceOfMagmaRingElement</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TraceOfMagmaRingElement</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an element of the underlying ring</p>

<p>Returns the trace of a group ring element <var class="Arg">x</var>. By definition, the trace of an element <span class="SimpleMath">x = α_1 ⋅ 1 + α_2 ⋅ g_2 + ⋯ + α_k ⋅ g_k</span> is equal to <span class="SimpleMath">α_1</span>, that is, the coefficient of the identity element in <span class="SimpleMath">G</span>. The trace of the zero element is zero. This method is also applicable to elements of magma rings.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">TraceOfMagmaRingElement( x );</span>
Z(2)^0        

</pre></div>

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

<h5>4.2-4 Length</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Length</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The length of an element of a group ring <var class="Arg">x</var> is defined as the number of elements in its support. This method is also applicable to elements of magma rings.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( x );</span>
4     

</pre></div>

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

<h5>4.2-5 Augmentation</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Augmentation</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the sum of coefficients of a group ring element</p>

<p>The augmentation of a group ring element <span class="SimpleMath">x = α_1 ⋅ g_1 + α_2 ⋅ g_2 + ⋯ + α_k ⋅ g_k</span> is the sum of its coefficients <span class="SimpleMath">α_1 + α_2 + ⋯ + α_k</span>. The method is also applicable to elements of magma rings.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">Augmentation( x );</span>
0*Z(2)     

</pre></div>

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

<h5>4.2-6 PartialAugmentations</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PartialAugmentations</code>( <var class="Arg">KG</var>, <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a list of partial augmentations and a list of conjugacy class representatives</p>

<p>The partial augmentation of an element <span class="SimpleMath">x = α_1 ⋅ g_1 + α_2 ⋅ g_2 + ⋯ + α_k ⋅ g_k</span> of the group ring <span class="SimpleMath">KG</span>, corresponding to the conjugacy class of an element <span class="SimpleMath">g</span> from the underlying group <span class="SimpleMath">G</span> is the sum of coefficients <span class="SimpleMath">α_i</span> taken over all <span class="SimpleMath">g_i</span> such that <span class="SimpleMath">g_i</span> is conjugated to <span class="SimpleMath">g</span>. The function returns a list of two lists, the first one is a list of partial augmentations, and the second is a list of representatives of appropriate conjugacy classes of elements of the group <span class="SimpleMath">G</span>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">y := x + a*b^2;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2+(Z(2)^
0)*f1*f3
<span class="GAPprompt">gap></span> <span class="GAPinput">PartialAugmentations( KG, y );</span>
[ [ Z(2)^0, 0*Z(2), Z(2)^0, Z(2)^0 ], [ <identity> of ..., f1, f2, f1*f2 ] ]    

</pre></div>

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

<h5>4.2-7 Involution</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Involution</code>( <var class="Arg">x</var>[[, <var class="Arg">f</var>], <var class="Arg">s</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an element of a group ring</p>

<p>Let <span class="SimpleMath">KG</span> be a group ring, <span class="SimpleMath">f</span> be a homomorphism from the group <span class="SimpleMath">G</span> to the unit group of the ring <span class="SimpleMath">K</span>. Furthermore, let <span class="SimpleMath">s</span> be a mapping <span class="SimpleMath">G → G</span>, such that <span class="SimpleMath">s^2</span> is the identity mapping on <span class="SimpleMath">G</span> and for every element <span class="SimpleMath">g ∈ G</span> <span class="SimpleMath">f(g*s(g))</span> equals <span class="SimpleMath">f(s(g)*g)</span> and equals the identity element of the ring <span class="SimpleMath">K</span>. Then the involution of <span class="SimpleMath">KG</span> induced by <span class="SimpleMath">f</span> and <span class="SimpleMath">s</span> is defined by <span class="SimpleMath">α_1 ⋅ g_1 + α_2 ⋅ g_2 + ⋯ + α_k ⋅ g_k ↦ α_1 ⋅ f(g_1) ⋅ s(g_1) + α_2 ⋅ f(g_2) ⋅ s(g_2) + ⋯ + α_k ⋅ f(g_k) ⋅ s(g_k)</span>.</p>

<p>The method returns the image of <var class="Arg">x</var> under the involution of <span class="SimpleMath">KG</span> induced by <span class="SimpleMath">f</span> and <span class="SimpleMath">s</span>. If the mapping <span class="SimpleMath">f</span> is omitted, <span class="SimpleMath">f</spanis assumed to map everything to the identity element of the ring <span class="SimpleMath">K</span>. If both mappings are omitted, it returns the result of so-called classical involution, induced by the mapping <span class="SimpleMath">x ↦ x^-1</span>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">Involution( x );</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f1*f2+(Z(2)^0)*f2*f3*f4
<span class="GAPprompt">gap></span> <span class="GAPinput">l := List( MinimalGeneratingSet( G ), g -> g^Embedding( G, KG ) );</span>
[ (Z(2)^0)*f1, (Z(2)^0)*f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( l, Involution ); # check how involution acts on elements of G</span>
[ (Z(2)^0)*f1, (Z(2)^0)*f2*f3*f4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List( l, g -> g^-1 );</span>
[ (Z(2)^0)*f1, (Z(2)^0)*f2*f3*f4 ]     

</pre></div>

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

<h5>4.2-8 IsSymmetric</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSymmetric</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>An element of a group ring is called <em>symmetric</em> if it is fixed under the classical involution. This property is checked here.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IsSymmetric( x );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSymmetric( x * Involution( x ) );</span>
true     

</pre></div>

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

<h5>4.2-9 IsUnitary</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsUnitary</code>( <var class="Arg">x</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>A unit of a group ring is called unitary if the classical involution inverts it. This property is checked here.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IsUnitary(x);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">l:=List(MinimalGeneratingSet(G),g -> g^Embedding(G,KG));</span>
[ (Z(2)^0)*f1, (Z(2)^0)*f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(l,IsUnitary); # check that elements of G are unitary</span>
[ true, true ]   

</pre></div>

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

<h5>4.2-10 IsUnit</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsUnit</code>( [<var class="Arg">KG</var>, ]<var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>This method improves a standard <strong class="pkg">GAP</strong> functionality for modular group algebras.</p>

<p>In the two-argument version the method returns <code class="keyw">true</code> if <var class="Arg">x</var> is an invertible element of the modular group algebra <var class="Arg">KG</var> and <code class="keyw">false</code> otherwise. This can be done very quickly by checking whether the augmentation of the element <var class="Arg">x</var> is non-zero.</p>

<p>If the first argument is omitted, then <strong class="pkg">LAGUNA</strong> constructs the group <span class="SimpleMath">H</span> generated by the support of <var class="Arg">x</var>, and, if this group is a finite <span class="SimpleMath">p</span>-group, then checks whether the coefficients of <var class="Arg">x</var> belong to a field <span class="SimpleMath">F</span> of characteristic <span class="SimpleMath">p</span>. If this is the case, then <code class="code">IsUnit( FH, x )</codeis called; otherwise, standard <strong class="pkg">GAP</strong> method is used.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x;</span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">IsUnit( KG, x ); # clearly, is not a unit due to augmentation zero</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">y := One( KG ) + x; # this should give a unit</span>
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">IsUnit( KG, y );</span>
true       

</pre></div>

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

<h5>4.2-11 InverseOp</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InverseOp</code>( <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: the inverse element of an element of a group ring</p>

<p>This method improves a standard <strong class="pkg">GAP</strong> functionality for modular group algebras. It calculates the inverse of a group algebra element. The user can also invoke this function by typing <code class="code"> x^-1 </code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">y;</span>
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">y^-1;</span>
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f3+(Z(2)^0)*f4+(Z(2)^0)*f1*f2+(Z(2)^
0)*f1*f3+(Z(2)^0)*f1*f4+(Z(2)^0)*f2*f4+(Z(2)^0)*f1*f2*f4+(Z(2)^0)*f2*f3*f4+(
Z(2)^0)*f1*f2*f3*f4
<span class="GAPprompt">gap></span> <span class="GAPinput">y * y^-1;</span>
(Z(2)^0)*<identity> of ...    

</pre></div>

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

<h5>4.2-12 BicyclicUnitOfType1</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BicyclicUnitOfType1</code>( [<var class="Arg">KG</var>, ]<var class="Arg">a</var>, <var class="Arg">g</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">‣ BicyclicUnitOfType2</code>( [<var class="Arg">KG</var>, ]<var class="Arg">a</var>, <var class="Arg">g</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an element of a group ring</p>

<p>let <span class="SimpleMath">a</span> be an element of order <span class="SimpleMath">n</span> of a group <span class="SimpleMath">G</span>. We put <span class="SimpleMath">α = 1 + a + a^2 + ... +a^n-1</span>. Then <span class="SimpleMath">(a-1)*g*α</span> and <span class="SimpleMath">α*g*(a-1)</span> are nilpotent of index two for any element <span class="SimpleMath">g</span> of the group <span class="SimpleMath">G</span> not containing in the normalizer <span class="SimpleMath">N_G(⟨ a ⟩)</span>, and the units <span class="SimpleMath">u_a,g = 1 + (a-1) * g * α</span> and <span class="SimpleMath">v_a,g = 1 + α * g * (a-1)</span> are called <em>bicyclic units</em> of the 1st and 2nd type respectively. Note that <span class="SimpleMath">u_a,g</span> and <span class="SimpleMath">v_a,g</span> may coincide for some <span class="SimpleMath">a</span> and <span class="SimpleMath">g</span>, but in general this does not hold. In the three-argument version these methods construct bicyclic units of both types when <var class="Arg">a</var> and <var class="Arg">g</var> are elements of the underlying group <span class="SimpleMath">G</span> of a group ring <var class="Arg">KG</var>. The two-argument version accepts images of elements <var class="Arg">a</var> and <var class="Arg">g</var> from the underlying group in the group ring <span class="SimpleMath">KG</span> obtained using the mapping <code class="code">Embedding( G, KG )</code>. Note that it is not actually checked that <span class="SimpleMath">g</span> is not contained in <span class="SimpleMath">N_G(⟨ a ⟩)</span>, because this is verified in <code class="func">BicyclicUnitGroup</code> (<a href="chap4.html#X859F07AE7A4D317B"><span class="RefLink">4.4-13</span></a>).</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := SmallGroup(32,6);</span>
<pc group of size 32 with 5 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF(2), G );</span>
<algebra-with-one over GF(2), with 5 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := MinimalGeneratingSet( G );</span>
[ f1, f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">g[1] in Normalizer( G, Subgroup( G, [g[2]] ) );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">g[2] in Normalizer( G, Subgroup( G, [g[1]] ) );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">g := List( g, x -> x^Embedding( G, KG ) );</span>
[ (Z(2)^0)*f1, (Z(2)^0)*f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">BicyclicUnitOfType1(g[1],g[2]) = BicyclicUnitOfType2(g[1],g[2]);</span>
false                                                                       

</pre></div>

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

<h5>4.2-13 BassCyclicUnit</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BassCyclicUnit</code>( [<var class="Arg">ZG</var>, ]<var class="Arg">g</var>, <var class="Arg">k</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an element of a group ring</p>

<p>Let <var class="Arg">g</var> be an element of order <span class="SimpleMath">n</span> of the group <span class="SimpleMath">G</span>, and 1 < <var class="Arg">k</var> < <span class="SimpleMath">n</span> be such that <var class="Arg">k</var> and <span class="SimpleMath">n</span> are coprime, then <var class="Arg">k</var>^Phi(<span class="SimpleMath">n</span>) is congruent to 1 modulo <span class="SimpleMath">n</span>. The unit b(g,k)= ( \sum_{j=0}^{k-1} g^j )^Phi(n) + ( (1-k^Phi(n))/n ) * Hat(g), where Hat(g) = g + g^2 + ... + g^n, is called a <em>Bass cyclic unit</em> of the integral group ring <var class="Arg">ZG</var>.</p>

<p>The three-argument version constructs the Bass cyclic unit <span class="SimpleMath">b(g,k)</span> for the element <var class="Arg">g</var> from the underlying group <span class="SimpleMath">G</span> of the group ring <var class="Arg">ZG</var>. The two-argument version accepts the image of <var class="Arg">g</var> in the group ring <span class="SimpleMath">ZG</span> obtained using the mapping <code class="code">Embedding( G, KG )</code>.</p>

<p>Remark that when <span class="SimpleMath">G</span> is a finite nilpotent group, the group generated by the Bass cyclic units contain a subgroup of finite index in the centre of the unit group of <var class="Arg">ZG</var> <a href="chapBib.html#biBJePaSe96">[JPS96]</a>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">S := SymmetricGroup( 5 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ZS := GroupRing( Integers, S );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := Embedding( S, ZS );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">BassCyclicUnit( ZS, (1,3,2,5,4) , 3 );</span>
(1)*()+(-2)*(1,2,4,3,5)+(-2)*(1,3,2,5,4)+(3)*(1,4,5,2,3)+(1)*(1,5,3,4,2)
<span class="GAPprompt">gap></span> <span class="GAPinput">BassCyclicUnit( (1,3,2,5,4)^f, 3 ); </span>
(1)*()+(-2)*(1,2,4,3,5)+(-2)*(1,3,2,5,4)+(3)*(1,4,5,2,3)+(1)*(1,5,3,4,2)

</pre></div>

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

<h4>4.3 <span class="Heading">Important attributes of group algebras</span></h4>

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

<h5>4.3-1 AugmentationHomomorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AugmentationHomomorphism</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a homomorphism from a group ring to the underlying ring</p>

<p>The mapping which maps an element of a group ring <span class="SimpleMath">KG</span> to its augmentation is a homomorphism from <span class="SimpleMath">KG</span> onto the ring <span class="SimpleMath">K</span>; see <code class="func">Augmentation</code> (<a href="chap4.html#X86FA17BE858F2245"><span class="RefLink">4.2-5</span></a>). This attribute stores this homomorphism for the group ring <var class="Arg">KG</var>.</p>

<p>Please note that for calculation of the augmentation of an element of a group ring the user is strongly recommended to use <code class="func">Augmentation</code> (<a href="chap4.html#X86FA17BE858F2245"><span class="RefLink">4.2-5</span></a>) which works much faster than <code class="code">AugmentationHomomorphism</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">F := GF( 2 ); G := SymmetricGroup( 3 ); FG := GroupRing( F, G );</span>
GF(2)
Sym( [ 1 .. 3 ] )
<algebra-with-one over GF(2), with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">e := Embedding( G,FG );</span>
<mapping: SymmetricGroup( [ 1 .. 3 ] ) -> AlgebraWithOne( GF(2), ... ) >
<span class="GAPprompt">gap></span> <span class="GAPinput">x := (1,2)^e; y := (1,3)^e;</span>
(Z(2)^0)*(1,2)
(Z(2)^0)*(1,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">a := AugmentationHomomorphism( FG );</span>
[ (Z(2)^0)*(1,2,3), (Z(2)^0)*(1,2) ] -> [ Z(2)^0, Z(2)^0 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">x^a; y^a; ( x + y )^a; # this is slower</span>
Z(2)^0
Z(2)^0
0*Z(2)   
<span class="GAPprompt">gap></span> <span class="GAPinput">Augmentation(x); Augmentation(y); Augmentation( x + y ); # this is faster</span>
Z(2)^0
Z(2)^0
0*Z(2)   

</pre></div>

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

<h5>4.3-2 AugmentationIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AugmentationIdeal</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an ideal of a group ring</p>

<p>If <span class="SimpleMath">KG</span> is a group ring, then its augmentation ideal <span class="SimpleMath">A</span> is generated by all elements of the form <span class="SimpleMath">g-1</span>, where <span class="SimpleMath">g ∈ G</span> \ { <span class="SimpleMath">1</span> }. The augmentation ideal consists of all elements of <span class="SimpleMath">FG</span> with augmentation <span class="SimpleMath">0</span>; see <code class="func">Augmentation</code> (<a href="chap4.html#X86FA17BE858F2245"><span class="RefLink">4.2-5</span></a>). This method changes a standard <strong class="pkg">GAP</strong> functionality for modular group algebras and returns the augmentation ideal of a modular group algebra <var class="Arg">KG</var>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">AugmentationIdeal( KG );</span>
<two-sided ideal in <algebra-with-one over GF(2), with 4 generators>,
  (dimension 15)>

</pre></div>

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

<h5>4.3-3 RadicalOfAlgebra</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RadicalOfAlgebra</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an ideal of a group algebra</p>

<p>This method improves a standard <strong class="pkg">GAP</strong> functionality for modular group algebras of finite <span class="SimpleMath">p</span>-groups. Since in this case the radical of the group algebra coincides with its augmentation ideal, this method simply checks if the algebra <var class="Arg">KG</var> is a <span class="SimpleMath">p</span>-modular group algebra, and, if yes, it returns the augmentation ideal; otherwise, the standard <strong class="pkg">GAP</strong> method will be used.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">RadicalOfAlgebra( KG );</span>
<two-sided ideal in <algebra-with-one over GF(2), with 4 generators>,
  (dimension 15)>
<span class="GAPprompt">gap></span> <span class="GAPinput">RadicalOfAlgebra( KG ) = AugmentationIdeal( KG );</span>
true     

</pre></div>

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

<h5>4.3-4 WeightedBasis</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WeightedBasis</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a record of two components: weighted basis elements and their weights</p>

<p>The argument <var class="Arg">KG</var> must be a <span class="SimpleMath">p</span>-modular group algebra.</p>

<p>For a group algebra <span class="SimpleMath">KG</span>, let <span class="SimpleMath">A</span> denote the augmentation ideal, and assume that <span class="SimpleMath">c</span> is the smallest number such that <span class="SimpleMath">A^c=0</span>. Then a weighted basis of <span class="SimpleMath">KG</span> is some basis <span class="SimpleMath">b_1, ..., b_n</span> for the augmentation ideal <span class="SimpleMath">A</span>, for which there are indices <span class="SimpleMath">i_1=1, ..., i_c-1</span> such that <span class="SimpleMath">b_i_k, ..., b_n</span> is a basis for <span class="SimpleMath">A^k</span>. The weight of an element <span class="SimpleMath">b_i</span> of a weighted basis is the unique integer <span class="SimpleMath">w</span> such that <span class="SimpleMath">b_i</span> belongs to <span class="SimpleMath">w</span>-th power of <span class="SimpleMath">A</span> but does not belong to its <span class="SimpleMath">(w+1)</span>-th power.</p>

<p>Note that this function actually constructs a basis for the <em>augmentation ideal</em> of <var class="Arg">KG</var> and not for <var class="Arg">KG</var> itself. Since the augmentation ideal has co-dimension 1 in <code class="code">KG</code>, a basis for <code class="code">KG</code> can be easily obtained by adjoining the identity element of the group.</p>

<p>The method returns a record whose basis entry is the basis and the weights entry is a list of the corresponding weights the of basis elements. See Section <a href="chap3.html#X7B74767A849D921E"><span class="RefLink">3.3</span></a> for more details.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), ElementaryAbelianGroup( 4 ) );</span>
<algebra-with-one over GF(2), with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">WeightedBasis( KG );</span>
rec( 
  weightedBasis := [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, 
      (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, 
      (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ], 
  weights := [ 1, 1, 2 ] )

</pre></div>

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

<h5>4.3-5 AugmentationIdealPowerSeries</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AugmentationIdealPowerSeries</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of ideals of a group algebra</p>

<p>The argument <var class="Arg">KG</var> is a <span class="SimpleMath">p</span>-modular group algebra. The method returns a list whose elements are the terms of the augmentation ideal filtration of <var class="Arg">KG</var>, that is <code class="code">AugmentationIdealPowerSeries(A)[i]</code> is the <span class="SimpleMath">i</span>-th power of the augmentation ideal of <var class="Arg">KG</var>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">s := AugmentationIdealPowerSeries( KG );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s[2];</span>
<algebra of dimension 13 over GF(2)>
<span class="GAPprompt">gap></span> <span class="GAPinput">List(s,Dimension);</span>
[ 15, 13, 11, 9, 7, 5, 3, 1, 0 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length(s);</span>
9

</pre></div>

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

<h5>4.3-6 AugmentationIdealNilpotencyIndex</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AugmentationIdealNilpotencyIndex</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>For the <span class="SimpleMath">p</span>-modular group algebra <var class="Arg">KG</var> the method returns the smallest number <span class="SimpleMath">n</span> such that <span class="SimpleMath">A^n=0</span>, where <span class="SimpleMath">A</span> is the augmentation ideal of <var class="Arg">KG</var>. This can be done using Jenning's theory without the explicit calculations of the powers of the augmentation ideal.




<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">AugmentationIdealNilpotencyIndex( KG );</span>
9      

</pre></div>

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

<h5>4.3-7 AugmentationIdealOfDerivedSubgroupNilpotencyIndex</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AugmentationIdealOfDerivedSubgroupNilpotencyIndex</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>For the <span class="SimpleMath">p</span>-modular group algebra <var class="Arg">KG</var> this attribute stores the nilpotency index of the augmentation ideal of <span class="SimpleMath">KG' where G'</span> denotes the derived subgroup of <span class="SimpleMath">G</span>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">AugmentationIdealOfDerivedSubgroupNilpotencyIndex( KG );</span>
4
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DerivedSubgroup( UnderlyingGroup( KG ) );</span>
Group([ f3, f4 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">KD := GroupRing( GF( 2 ), D );</span>
<algebra-with-one over GF(2), with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">AugmentationIdealNilpotencyIndex( KD );</span>
4       

</pre></div>

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

<h5>4.3-8 LeftIdealBySubgroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LeftIdealBySubgroup</code>( <var class="Arg">KG</var>, <var class="Arg">H</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RightIdealBySubgroup</code>( <var class="Arg">KG</var>, <var class="Arg">H</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TwoSidedIdalBySubgroup</code>( <var class="Arg">KG</var>, <var class="Arg">H</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an ideal of a group ring</p>

<p>Let <var class="Arg">KG</var> be a group ring of a group <span class="SimpleMath">G</span> over the ring <span class="SimpleMath">K</span>, and <var class="Arg">H</var> be a subgroup of <span class="SimpleMath">G</span>. Then the set <span class="SimpleMath">J_l(H)</span> of all elements of <var class="Arg">KG</var> of the form</p>

<p class="pcenter">
         \sum_{h \in H} x_h(h-1)
         </p>

<p>is the left ideal in <var class="Arg">KG</var> generated by all elements <span class="SimpleMath">h-1</span> with <span class="SimpleMath">h</span> in <span class="SimpleMath">H</span>. The right ideal <span class="SimpleMath">J_r(H)</span> is defined analogously. These operations are used to consrtuct such ideals, taking into account the fact, that the ideal <span class="SimpleMath">J_l(H)</span> is two-sided if and only if <var class="Arg">H</var> is normal in <span class="SimpleMath">G</span>. An attempt of constructing two-sided ideal for a non-normal subgroup <var class="Arg">H</var> will lead to an error message.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF(2), DihedralGroup(16) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := DihedralGroup(16);</span>
<pc group of size 16 with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF(2), G );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">D := DerivedSubgroup( G );</span>
Group([ f3, f4 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">LeftIdealBySubgroup( KG, D );</span>
<two-sided ideal in <algebra-with-one over GF(2), with 4 generators>,
  (dimension 12)>                              
<span class="GAPprompt">gap></span> <span class="GAPinput">H := Subgroup( G, [ GeneratorsOfGroup(G)[1] ]);</span>
Group([ f1 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">IsNormal( G, H );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">LeftIdealBySubgroup( KG, H );</span>
<left ideal in <algebra-with-one over GF(2), with 4 generators>, (dimension 8
 )>

</pre></div>

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

<h4>4.4 <span class="Heading">Computations with the unit group</span></h4>

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

<h5>4.4-1 NormalizedUnitGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NormalizedUnitGroup</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a group generated by group algebra elements</p>

<p>Determines the normalized unit group of a <span class="SimpleMath">p</span>-modular group algebra <var class="Arg">KG</var> over the field of <span class="SimpleMath">p</span> elements. Returns the normalized unit group as the group generated by certain elements of <var class="Arg">KG</var>; see Section <a href="chap3.html#X7B74767A849D921E"><span class="RefLink">3.3</span></a> for more details.</p>

<p>For efficient computations the user is recommended to use <code class="func">PcNormalizedUnitGroup</code> (<a href="chap4.html#X7D40E42A7B678598"><span class="RefLink">4.4-2</span></a>).</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">V := NormalizedUnitGroup( KG );</span>
<group of size 32768 with 15 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">u := GeneratorsOfGroup( V )[4];</span>
(Z(2)^0)*f3  

</pre></div>

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

<h5>4.4-2 PcNormalizedUnitGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PcNormalizedUnitGroup</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a group given by power-commutator presentation</p>

<p>The argument <var class="Arg">KG</var> is a <span class="SimpleMath">p</span>-modular group algebra over the field of <span class="
SimpleMath">p</span> elements. <code class="code">PcNormalizedUnitGroup</code> returns the normalized unit group of <var class="Arg">KG</var> given by a power-commutator presentation. The generators in this polycyclic presentation correspond to the weighted basis elements of <var class="Arg">KG</var>. For more details, see Section <a href="chap3.html#X7B74767A849D921E"><span class="RefLink">3.3</span></a>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">W := PcNormalizedUnitGroup( KG );</span>
<pc group of size 32768 with 15 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">w := GeneratorsOfGroup( W )[4];</span>
f4       

</pre></div>

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

<h5>4.4-3 NaturalBijectionToPcNormalizedUnitGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&an style='color:turquoise'>#8227; NaturalBijectionToPcNormalizedUnitGroup</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a homomorphism of groups</p>

<p>The normalised unit group of a <span class="SimpleMath">p</span>-modular group algebra <span class="SimpleMath">KG</span> over the field of <span class="SimpleMath">p</span> elements can be computed using two methods, namely <code class="func">NormalizedUnitGroup</code> (<a href="chap4.html#X817D5AC78754527F"><span class="RefLink">4.4-1</span></a>) and <code class="func">PcNormalizedUnitGroup</code> (<a href="chap4.html#X7D40E42A7B678598"><span class="RefLink">4.4-2</span></a>). These two methods return two different objects, and they can be used for different types of computations. The elements of <code class="code">NormalizedUnitGroup(KG)</code> are represented in their natural group algebra representation, and hence they can easily be identified in the group algebra. However, the more quickly constructed <code class="code">NormalizedUnitGroup(KG)</code> is often not suitable for further fast calculations. Hence one will have to use <code class="code">PcNormalizedUnitGroup(KG)</code> if one wants to find some group theoretic properties of the normalized unit group. This method returns the bijection from <code class="code">NormalizedUnitGroup(<var class="Arg">KG</var>)</code> onto <code class="code">PcNormalizedUnitGroup(<var class="Arg">KG</var>)</code>. This bijection can be used to map the result of a computation in <code class="code">PcNormalizedUnitGroup(<var class="Arg">KG</var>)</code> into <code class="code">NormalizedUnitGroup(<var class="Arg">KG</var>)</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">f := NaturalBijectionToPcNormalizedUnitGroup( KG );</span>
MappingByFunction( <group of size 32768 with 15 generators>, <pc group of size\
 32768 with 15 generators>, function( x ) ... end )
<span class="GAPprompt">gap></span> <span class="GAPinput">u := GeneratorsOfGroup( V )[4];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u^f;</span>
f4   
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup( V )[4]^f = GeneratorsOfGroup( W )[4];</span>
true      

</pre></div>

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

<h5>4.4-4 NaturalBijectionToNormalizedUnitGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&an style='color:turquoise'>#8227; NaturalBijectionToNormalizedUnitGroup</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a homomorphism of groups</p>

<p>For a <span class="SimpleMath">p</span>-modular group algebra <var class="Arg">KG</var> over the field of <span class="SimpleMath">p</span> elements this function returns the inverse of the mapping <code class="func">NaturalBijectionToPcNormalizedUnitGroup</code> (<a href="chap4.html#X7E08F6E87C586A36"><span class="RefLink">4.4-3</span></a>)</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">t := NaturalBijectionToNormalizedUnitGroup(KG);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">w := GeneratorsOfGroup(W)[4];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">w^t;</span>
(Z(2)^0)*f3    
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup( W )[4]^t = GeneratorsOfGroup( V )[4];</span>
true     

</pre></div>

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

<h5>4.4-5 Embedding</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&an style='color:turquoise'>#8227; Embedding</code>( <var class="Arg">H</var>, <var class="Arg">V</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a homomorphism from an underlying group to a normalized unit group in pc-presentation</p>

<p>Let <var class="Arg">H</var> be a subgroup of a group <span class="SimpleMath">G</span> and <var class="Arg">V</var> be the normalized unit group of the group algebra <span class="SimpleMath">KG</span> given by the power-commutator presentation (see <code class="func">PcNormalizedUnitGroup</code> (<a href="chap4.html#X7D40E42A7B678598"><span class="RefLink">4.4-2</span></a>). Then <codclass="code">Embedding( H, V )</code> returns the homomorphism from <var class="Arg">H</var> to <vaclass="Arg">V</var>, which is the composition of <code class="code">Embedding( H, KG )</code> and <code class="code">NaturalBijectionToPcNormalizedUnitGroup( KG )</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := DihedralGroup( 16 );</span>
<pc group of size 16 with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">KG := GroupRing( GF( 2 ), G );</span>
<algebra-with-one over GF(2), with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">V:=PcNormalizedUnitGroup( KG );</span>
<pc group of size 32768 with 15 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">ucs := UpperCentralSeries( V );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := Embedding( G, V );</span>
[ f1, f2, f3, f4 ] -> [ f1, f2, f4, f8 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">G1 := Image( f, G ); </span>
Group([ f1, f2, f4, f8 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">H := Intersection( ucs[2], G1 ); compute intersection in V(KG)</span>
Group([ f4, f8, f4*f8 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">T:=PreImage( f, H );             find its preimage in G</span>
Group([ f3, f4, f3*f4 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">IdGroup( T ); </span>
[ 4, 1 ]

</pre></div>

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

<h5>4.4-6 Units</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&an style='color:turquoise'>#8227; Units</code>( <var class="Arg">KG</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the unit group of a group ring</p>

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

--> maximum size reached

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

99%


¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.25Angebot  Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können  ¤

*Eine klare Vorstellung vom Zielzustand






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