<p>Let <span class="Math">G</span> and <span class="Math">H</span> be groups and let <span class="Math">H</span> act on <span class="Math">G</span> via automorphisms, i.e. there is a group homomorphism</p>
<p class="pcenter">\alpha \colon H \to \operatorname{Aut}(G) \colon h \mapsto \alpha_h</p>
<p>such that <span class="Math">g^h = \alpha_h(g)</span> for all <span class="Math">g \in G</span> and <span class="Math">h \in H</span>. A <em>group derivation</em> <span class="Math">\delta \colon H \to G</span> is a map such that</p>
<p>Note that we do not require <span class="Math">G</span> to be abelian.</p>
<p>Algorithms designed for computing with twisted conjugacy classes can be leveraged to do computations involving group derivations, see <a href="chapBib.html#biBtert25-a">[Ter25, Sec. 10]</a> for a description on this.</p>
<p>Please note that the functions in this chapter require <span class="Math">G</span> and <span class="Math">H</span> to either both be finite, or both be PcpGroups.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GroupDerivationByImages</code>( <var class="Arg">H</var>, <var class="Arg">G</var>[[, <var class="Arg">gens</var>], <var class="Arg">imgs</var>], <var class="Arg">act</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GroupDerivationByImagesNC</code>( <var class="Arg">H</var>, <var class="Arg">G</var>[[, <var class="Arg">gens</var>], <var class="Arg">imgs</var>], <var class="Arg">act</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: the specified group derivation, or <code class="keyw">fail</code> if the given arguments do not define a derivation.</p>
<p>This works in the same vein as <code class="func">GroupHomomorphismByImages</code> (<a href="/home/runner/gap/doc/ref/chap40.html#X7F348F497C813BE0"><span class="RefLink">Ref 40.1-1</span></a>). The group <var class="Arg">H</var> acts on the group <var class="Arg">G</var> via <var class="Arg">act</var>, which must be a homomorphism from <var class="Arg">H</var> into a group of automorphisms of <var class="Arg">G</var>. This command then returns the group derivation defined by mapping the list <var class="Arg">gens</var> of generators of <var class="Arg">H</var> to the list <var class="Arg">imgs</var> of images in <var class="Arg">G</var>.</p>
<p>If omitted, the arguments <var class="Arg">gens</var> and <var class="Arg">imgs</var> default to the <code class="code">GeneratorsOfGroup</code> value of <var class="Arg">H</var> and <var class="Arg">G</var> respectively.</p>
<p>This function checks whether <var class="Arg">gens</var> generate <var class="Arg">H</var> and whether the mapping of the generators extends to a group derivation. This test can be expensive, so if one is certain that the given arguments produce a group derivation, these checks can be avoided by using the <code class="code">NC</code> version.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GroupDerivationByFunction</code>( <var class="Arg">H</var>, <var class="Arg">G</var>, <var class="Arg">fun</var>, <var class="Arg">act</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: the specified group derivation.</p>
<p><code class="code">GroupDerivationByFunction</code> works in the same vein as <code class="func">GroupHomomorphismByFunction</code> (<a href="/home/runner/gap/doc/ref/chap40.html#X7BC6C20E7CEDBFC5"><span class="RefLink">Ref 40.1-4</span></a>). The group <var class="Arg">H</var> acts on the group <var class="Arg">G</var> via <var class="Arg">act</var>, which must be a homomorphism from <var class="Arg">H</var> into a group of automorphisms of <var class="Arg">G</var>. This command then returns the group derivation defined by mapping the element <code class="code">h</code> of <var class="Arg">H</var> to the element <var class="Arg">fun</var>( <code class="code">h</code> ) of <var class="Arg">G</var>, where <var class="Arg">fun</var> is a <strong class="pkg">GAP</strong> function.</p>
<p>No tests are performed to check whether the arguments really produce a group derivation.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GroupDerivationByAffineAction</code>( <var class="Arg">H</var>, <var class="Arg">G</var>, <var class="Arg">act</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: the derivation that makes up the translational part of the affine action.</p>
<h4>9.2 <span class="Heading">Operations for group derivations</span></h4>
<p>Many of the functions, operations, attributes... available to group homomorphisms are available for group derivations as well. We list some of the more useful ones.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Kernel</code>( <var class="Arg">der</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the set of elements that are mapped to the identity by <var class="Arg">der</var>.</p>
<p>This will always be a subgroup of <code class="code">Source</code>(<var class="Arg">der</var>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Image</code>( <var class="Arg">der</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Image</code>( <var class="Arg">der</var>, <var class="Arg">elm</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Image</code>( <var class="Arg">der</var>, <var class="Arg">sub</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: the image of the group derivation <var class="Arg">der</var>.</p>
<p>One can optionally give an element <var class="Arg">elm</var> or a subgroup <var class="Arg">sub</var> as a second argument, in which case <code class="code">Image</code> will calculate the image of this argument under <var class="Arg">der</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PreImagesRepresentative</code>( <var class="Arg">der</var>, <var class="Arg">elm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a preimage of the element <var class="Arg">elm</var> under the group derivation <var class="Arg">der</var>, or <code class="keyw">fail</code> if no preimage exists.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PreImages</code>( <var class="Arg">der</var>, <var class="Arg">elm</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: the set of all preimages of the element <var class="Arg">elm</var> under the group derivation <var class="Arg">der</var>.</p>
<p>This will always be a (right) coset of <code class="code">Kernel</code>( <var class="Arg">der</var> ), or the empty list.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsInjective( der ) or IsSurjective( der );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">K := Kernel( der );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( K );</span>
9
<span class="GAPprompt">gap></span> <span class="GAPinput">ImH := Image( der );</span>
Group derivation image in Group( [ f1, f2, f3, f4, f5 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">h1 := H.1*H.3;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Image( der, h1 );</span>
f2*f4
<span class="GAPprompt">gap></span> <span class="GAPinput">ImK := Image( der, K );</span>
Group derivation image in Group( [ f1, f2, f3, f4, f5 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">h2 := PreImagesRepresentative( der, g );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Image( der, h2 ) = g;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">PreIm := PreImages( der, g );</span>
RightCoset(<group of size 9 with 2 generators>,<object>)
<span class="GAPprompt">gap></span> <span class="GAPinput">PreIm = RightCoset( K, h2 );</span>
true
</pre></div>
<h4>9.3 <span class="Heading">Images of group derivations</span></h4>
<p>In general, the image of a group derivation is not a subgroup. However, it is still possible to do a membership test, to calculate the number of elements, and to enumerate the elements if there are only finitely many.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Size</code>( <var class="Arg">img</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: the number of elements in <var class="Arg">img</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ List</code>( <var class="Arg">img</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: a list containing the elements of <var class="Arg">img</var>.</p>
<p>If <var class="Arg">img</var> is infinite, this will run forever. It is recommended to first test the finiteness of <var class="Arg">img</var> using <code class="func">Size</code> (<a href="chap9.html#X858ADA3B7A684421"><span class="RefLink">9.3-2</span></a>).</p>
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.