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</span> is 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 )</code> is 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 ) );</ | |