/usr/share/gap/doc/ref/chap49.html is in gap-doc 4r6p5-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 | <?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 (ref) - Chapter 49: Group Products</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="chap49" onload="jscontent()">
<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chap15.html">15</a> <a href="chap16.html">16</a> <a href="chap17.html">17</a> <a href="chap18.html">18</a> <a href="chap19.html">19</a> <a href="chap20.html">20</a> <a href="chap21.html">21</a> <a href="chap22.html">22</a> <a href="chap23.html">23</a> <a href="chap24.html">24</a> <a href="chap25.html">25</a> <a href="chap26.html">26</a> <a href="chap27.html">27</a> <a href="chap28.html">28</a> <a href="chap29.html">29</a> <a href="chap30.html">30</a> <a href="chap31.html">31</a> <a href="chap32.html">32</a> <a href="chap33.html">33</a> <a href="chap34.html">34</a> <a href="chap35.html">35</a> <a href="chap36.html">36</a> <a href="chap37.html">37</a> <a href="chap38.html">38</a> <a href="chap39.html">39</a> <a href="chap40.html">40</a> <a href="chap41.html">41</a> <a href="chap42.html">42</a> <a href="chap43.html">43</a> <a href="chap44.html">44</a> <a href="chap45.html">45</a> <a href="chap46.html">46</a> <a href="chap47.html">47</a> <a href="chap48.html">48</a> <a href="chap49.html">49</a> <a href="chap50.html">50</a> <a href="chap51.html">51</a> <a href="chap52.html">52</a> <a href="chap53.html">53</a> <a href="chap54.html">54</a> <a href="chap55.html">55</a> <a href="chap56.html">56</a> <a href="chap57.html">57</a> <a href="chap58.html">58</a> <a href="chap59.html">59</a> <a href="chap60.html">60</a> <a href="chap61.html">61</a> <a href="chap62.html">62</a> <a href="chap63.html">63</a> <a href="chap64.html">64</a> <a href="chap65.html">65</a> <a href="chap66.html">66</a> <a href="chap67.html">67</a> <a href="chap68.html">68</a> <a href="chap69.html">69</a> <a href="chap70.html">70</a> <a href="chap71.html">71</a> <a href="chap72.html">72</a> <a href="chap73.html">73</a> <a href="chap74.html">74</a> <a href="chap75.html">75</a> <a href="chap76.html">76</a> <a href="chap77.html">77</a> <a href="chap78.html">78</a> <a href="chap79.html">79</a> <a href="chap80.html">80</a> <a href="chap81.html">81</a> <a href="chap82.html">82</a> <a href="chap83.html">83</a> <a href="chap84.html">84</a> <a href="chap85.html">85</a> <a href="chap86.html">86</a> <a href="chap87.html">87</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="chap48.html">[Previous Chapter]</a> <a href="chap50.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap49_mj.html">[MathJax on]</a></p>
<p><a id="X7D5C75647DB168F1" name="X7D5C75647DB168F1"></a></p>
<div class="ChapSects"><a href="chap49.html#X7D5C75647DB168F1">49 <span class="Heading">Group Products</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap49.html#X7D39232A84CD8DBD">49.1 <span class="Heading">Direct Products</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X861BA02C7902A4F4">49.1-1 DirectProduct</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap49.html#X87FE512E7DB7346C">49.2 <span class="Heading">Semidirect Products</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X7D905A5778D7ACDE">49.2-1 <span class="Heading">SemidirectProduct</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap49.html#X815AFC537B215D7B">49.3 <span class="Heading">Subdirect Products</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X82112D768085AD98">49.3-1 SubdirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X814204E97812894C">49.3-2 SubdirectProducts</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap49.html#X7DF2AEBC8518FFA4">49.4 <span class="Heading">Wreath Products</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X8786EFBC78D7D6ED">49.4-1 WreathProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X8589DCFA7C2E5FAA">49.4-2 WreathProductImprimitiveAction</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X82B8DD1C868A3726">49.4-3 WreathProductProductAction</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X80634C3180E0C593">49.4-4 KuKGenerators</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap49.html#X7AC1AD17833117DF">49.5 <span class="Heading">Free Products</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X837AC5A081EECF50">49.5-1 <span class="Heading">FreeProduct</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap49.html#X798FDA1386A0EAC6">49.6 <span class="Heading">Embeddings and Projections for Group Products</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X784149B8847B20FF">49.6-1 Embedding</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap49.html#X86F275AC7C625626">49.6-2 Projection</a></span>
</div></div>
</div>
<h3>49 <span class="Heading">Group Products</span></h3>
<p>This chapter describes the various group product constructions that are possible in <strong class="pkg">GAP</strong>.</p>
<p>At the moment for some of the products methods are available only if both factors are given in the same representation or only for certain types of groups such as permutation groups and pc groups when the product can be naturally represented as a group of the same kind.</p>
<p><strong class="pkg">GAP</strong> does not guarantee that a product of two groups will be in a particular representation. (Exceptions are <code class="func">WreathProductImprimitiveAction</code> (<a href="chap49.html#X8589DCFA7C2E5FAA"><span class="RefLink">49.4-2</span></a>) and <code class="func">WreathProductProductAction</code> (<a href="chap49.html#X82B8DD1C868A3726"><span class="RefLink">49.4-3</span></a>) which are construction that makes sense only for permutation groups, see <code class="func">WreathProduct</code> (<a href="chap49.html#X8786EFBC78D7D6ED"><span class="RefLink">49.4-1</span></a>)).</p>
<p><strong class="pkg">GAP</strong> however will try to choose an efficient representation, so products of permutation groups or pc groups often will be represented as a group of the same kind again.</p>
<p>Therefore the only guaranteed way to relate a product to its factors is via the embedding and projection homomorphisms, see <a href="chap49.html#X798FDA1386A0EAC6"><span class="RefLink">49.6</span></a>.</p>
<p><a id="X7D39232A84CD8DBD" name="X7D39232A84CD8DBD"></a></p>
<h4>49.1 <span class="Heading">Direct Products</span></h4>
<p>The direct product of groups is the cartesian product of the groups (considered as element sets) with component-wise multiplication.</p>
<p><a id="X861BA02C7902A4F4" name="X861BA02C7902A4F4"></a></p>
<h5>49.1-1 DirectProduct</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DirectProduct</code>( <var class="Arg">G</var>[, <var class="Arg">H</var>, <var class="Arg">...</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">‣ DirectProductOp</code>( <var class="Arg">list</var>, <var class="Arg">expl</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>These functions construct the direct product of the groups given as arguments. <code class="func">DirectProduct</code> takes an arbitrary positive number of arguments and calls the operation <code class="func">DirectProductOp</code>, which takes exactly two arguments, namely a nonempty list <var class="Arg">list</var> of groups and one of these groups, <var class="Arg">expl</var>. (This somewhat strange syntax allows the method selection to choose a reasonable method for special cases, e.g., if all groups are permutation groups or pc groups.)</p>
<p><strong class="pkg">GAP</strong> will try to choose an efficient representation for the direct product. For example the direct product of permutation groups will be a permutation group again and the direct product of pc groups will be a pc group.</p>
<p>If the groups are in different representations a generic direct product will be formed which may not be particularly efficient for many calculations. Instead it may be worth to convert all factors to a common representation first, before forming the product.</p>
<p>For a direct product <span class="SimpleMath">P</span>, calling <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) with <span class="SimpleMath">P</span> and <span class="SimpleMath">n</span> yields the homomorphism embedding the <span class="SimpleMath">n</span>-th factor into <span class="SimpleMath">P</span>; calling <code class="func">Projection</code> (<a href="chap32.html#X8769E8DA80BC96C1"><span class="RefLink">32.2-11</span></a>) with <var class="Arg">P</var> and <var class="Arg">n</var> yields the projection of <span class="SimpleMath">P</span> onto the <span class="SimpleMath">n</span>-th factor, see <a href="chap49.html#X798FDA1386A0EAC6"><span class="RefLink">49.6</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((1,2,3),(1,2));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=DirectProduct(g,g,g);</span>
Group([ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(d);</span>
216
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=Embedding(d,2);</span>
2nd embedding into Group([ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9),
(7,8) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Image(e,(1,2));</span>
(4,5)
<span class="GAPprompt">gap></span> <span class="GAPinput">Image(Projection(d,2),(1,2,3)(4,5)(8,9));</span>
(1,2)
</pre></div>
<p><a id="X87FE512E7DB7346C" name="X87FE512E7DB7346C"></a></p>
<h4>49.2 <span class="Heading">Semidirect Products</span></h4>
<p>The semidirect product of a group <span class="SimpleMath">N</span> with a group <span class="SimpleMath">G</span> acting on <span class="SimpleMath">N</span> via a homomorphism <span class="SimpleMath">α</span> from <span class="SimpleMath">G</span> into the automorphism group of <span class="SimpleMath">N</span> is the cartesian product <span class="SimpleMath">G × N</span> with the multiplication <span class="SimpleMath">(g, n) ⋅ (h, m) = (gh, n^{h^α}m)</span>.</p>
<p><a id="X7D905A5778D7ACDE" name="X7D905A5778D7ACDE"></a></p>
<h5>49.2-1 <span class="Heading">SemidirectProduct</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemidirectProduct</code>( <var class="Arg">G</var>, <var class="Arg">alpha</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemidirectProduct</code>( <var class="Arg">autgp</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>constructs the semidirect product of <var class="Arg">N</var> with <var class="Arg">G</var> acting via <var class="Arg">alpha</var>, which must be a homomorphism from <var class="Arg">G</var> into a group of automorphisms of <var class="Arg">N</var>.</p>
<p>If <var class="Arg">N</var> is a group, <var class="Arg">alpha</var> must be a homomorphism from <var class="Arg">G</var> into a group of automorphisms of <var class="Arg">N</var>.</p>
<p>If <var class="Arg">N</var> is a full row space over a field <var class="Arg">F</var>, <var class="Arg">alpha</var> must be a homomorphism from <var class="Arg">G</var> into a matrix group of the right dimension over a subfield of <var class="Arg">F</var>, or into a permutation group (in this case permutation matrices are taken).</p>
<p>In the second variant, <var class="Arg">autgp</var> must be a group of automorphism of <var class="Arg">N</var>, it is a shorthand for <code class="code">SemidirectProduct(<var class="Arg">autgp</var>,IdentityMapping(<var class="Arg">autgp</var>),<var class="Arg">N</var>)</code>. Note that (unless <var class="Arg">autgrp</var> has been obtained by the operation <code class="func">AutomorphismGroup</code> (<a href="chap40.html#X87677B0787B4461A"><span class="RefLink">40.7-1</span></a>)) you have to test <code class="func">IsGroupOfAutomorphisms</code> (<a href="chap40.html#X7FC631B786C1DC8B"><span class="RefLink">40.7-2</span></a>) for <var class="Arg">autgrp</var> to ensure that <strong class="pkg">GAP</strong> knows that <var class="Arg">autgrp</var> consists of group automorphisms.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=AbelianGroup(IsPcGroup,[5,5]);</span>
<pc group of size 25 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">au:=DerivedSubgroup(AutomorphismGroup(n));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(au);</span>
120
<span class="GAPprompt">gap></span> <span class="GAPinput">p:=SemidirectProduct(au,n);</span>
<permutation group with 5 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(p);</span>
3000
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=Group((1,2),(3,4));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">au:=AutomorphismGroup(n);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">au:=First(Elements(au),i->Order(i)=3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">au:=Group(au);</span>
<group with 1 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGroupOfAutomorphisms(au);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">SemidirectProduct(au,n);</span>
<pc group with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=AbelianGroup(IsPcGroup,[2,2]);</span>
<pc group of size 4 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">au:=AutomorphismGroup(n);</span>
<group of size 6 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">apc:=IsomorphismPcGroup(au);</span>
CompositionMapping( Pcgs([ (2,3), (1,2,3) ]) ->
[ f1, f2 ], <action isomorphism> )
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Image(apc);</span>
Group([ f1, f2 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">apci:=InverseGeneralMapping(apc);</span>
[ f1*f2^2, f1*f2 ] -> [ Pcgs([ f1, f2 ]) -> [ f1*f2, f2 ],
Pcgs([ f1, f2 ]) -> [ f2, f1 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGroupHomomorphism(apci);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">p:=SemidirectProduct(g,apci,n);</span>
<pc group of size 24 with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsomorphismGroups(p,Group((1,2,3,4),(1,2)));</span>
[ f1, f2, f3, f4 ] -> [ (3,4), (1,4,3), (1,2)(3,4), (1,3)(2,4) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SemidirectProduct(SU(3,3),GF(9)^3);</span>
<matrix group of size 4408992 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemidirectProduct(Group((1,2,3),(2,3,4)),GF(5)^4);</span>
<matrix group of size 7500 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((3,4,5),(1,2,3));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mats:=[[[Z(2^2),0*Z(2)],[0*Z(2),Z(2^2)^2]],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [[Z(2)^0,Z(2)^0], [Z(2)^0,0*Z(2)]]];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hom:=GroupHomomorphismByImages(g,Group(mats),[g.1,g.2],mats);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemidirectProduct(g,hom,GF(4)^2);</span>
<matrix group of size 960 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemidirectProduct(g,hom,GF(16)^2);</span>
<matrix group of size 15360 with 4 generators>
</pre></div>
<p>For a semidirect product <span class="SimpleMath">P</span> of <var class="Arg">G</var> with <var class="Arg">N</var>, calling <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) with <span class="SimpleMath">P</span> and <code class="code">1</code> yields the embedding of <var class="Arg">G</var>, calling <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) with <span class="SimpleMath">P</span> and <code class="code">2</code> yields the embedding of <var class="Arg">N</var>; calling <code class="func">Projection</code> (<a href="chap32.html#X8769E8DA80BC96C1"><span class="RefLink">32.2-11</span></a>) with <var class="Arg">P</var> yields the projection of <span class="SimpleMath">P</span> onto <var class="Arg">G</var>, see <a href="chap49.html#X798FDA1386A0EAC6"><span class="RefLink">49.6</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(Image(Embedding(p,1)));</span>
6
<span class="GAPprompt">gap></span> <span class="GAPinput">Embedding(p,2);</span>
[ f1, f2 ] -> [ f3, f4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Projection(p);</span>
[ f1, f2, f3, f4 ] -> [ f1, f2, <identity> of ..., <identity> of ... ]
</pre></div>
<p><a id="X815AFC537B215D7B" name="X815AFC537B215D7B"></a></p>
<h4>49.3 <span class="Heading">Subdirect Products</span></h4>
<p>The subdirect product of the groups <span class="SimpleMath">G</span> and <span class="SimpleMath">H</span> with respect to the epimorphisms <span class="SimpleMath">φ: G → A</span> and <span class="SimpleMath">ψ: H → A</span> (for a common group <span class="SimpleMath">A</span>) is the subgroup of the direct product <span class="SimpleMath">G × H</span> consisting of the elements <span class="SimpleMath">(g,h)</span> for which <span class="SimpleMath">g^φ = h^ψ</span>. It is the pull-back of the following diagram.</p>
<pre class="normal">
G
| phi
psi V
H ---> A
</pre>
<p><a id="X82112D768085AD98" name="X82112D768085AD98"></a></p>
<h5>49.3-1 SubdirectProduct</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubdirectProduct</code>( <var class="Arg">G</var>, <var class="Arg">H</var>, <var class="Arg">Ghom</var>, <var class="Arg">Hhom</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>constructs the subdirect product of <var class="Arg">G</var> and <var class="Arg">H</var> with respect to the epimorphisms <var class="Arg">Ghom</var> from <var class="Arg">G</var> onto a group <span class="SimpleMath">A</span> and <var class="Arg">Hhom</var> from <var class="Arg">H</var> onto the same group <span class="SimpleMath">A</span>.</p>
<p>For a subdirect product <span class="SimpleMath">P</span>, calling <code class="func">Projection</code> (<a href="chap32.html#X8769E8DA80BC96C1"><span class="RefLink">32.2-11</span></a>) with <span class="SimpleMath">P</span> and <span class="SimpleMath">n</span> yields the projection on the <span class="SimpleMath">n</span>-th factor. (In general the factors do not embed into a subdirect product.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((1,2,3),(1,2));</span>
Group([ (1,2,3), (1,2) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">hom:=GroupHomomorphismByImagesNC(g,g,[(1,2,3),(1,2)],[(),(1,2)]);</span>
[ (1,2,3), (1,2) ] -> [ (), (1,2) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=SubdirectProduct(g,g,hom,hom);</span>
Group([ (1,2,3), (1,2)(4,5), (4,5,6) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(s);</span>
18
<span class="GAPprompt">gap></span> <span class="GAPinput">p:=Projection(s,2);</span>
2nd projection of Group([ (1,2,3), (1,2)(4,5), (4,5,6) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Image(p,(1,3,2)(4,5,6));</span>
(1,2,3)
</pre></div>
<p><a id="X814204E97812894C" name="X814204E97812894C"></a></p>
<h5>49.3-2 SubdirectProducts</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubdirectProducts</code>( <var class="Arg">G</var>, <var class="Arg">H</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>this function computes all subdirect products of <var class="Arg">G</var> and <var class="Arg">H</var> up to conjugacy in the direct product of Parent(<var class="Arg">G</var>) and Parent(<var class="Arg">H</var>). The subdirect products are returned as subgroups of this direct product.</p>
<p><a id="X7DF2AEBC8518FFA4" name="X7DF2AEBC8518FFA4"></a></p>
<h4>49.4 <span class="Heading">Wreath Products</span></h4>
<p>The wreath product of a group <span class="SimpleMath">G</span> with a permutation group <span class="SimpleMath">P</span> acting on <span class="SimpleMath">n</span> points is the semidirect product of the normal subgroup <span class="SimpleMath"><var class="Arg">G</var>^n</span> with the group <span class="SimpleMath">P</span> which acts on <span class="SimpleMath"><var class="Arg">G</var>^n</span> by permuting the components.</p>
<p>Note that <strong class="pkg">GAP</strong> always considers the domain of a permutation group to be the points moved by elements of the group as returned by <code class="func">MovedPoints</code> (<a href="chap42.html#X85E61B9C7A6B0CCA"><span class="RefLink">42.3-3</span></a>), i.e. it is not possible to have a domain to include fixed points, I.e. <span class="SimpleMath">P = ⟨ (1,2,3) ⟩</span> and <span class="SimpleMath">P = ⟨ (1,3,5) ⟩</span> result in isomorphic wreath products. (If fixed points are desired the wreath product <span class="SimpleMath">G ≀ T</span> has to be formed with a transitive overgroup <span class="SimpleMath">T</span> of <span class="SimpleMath">P</span> and then the pre-image of <span class="SimpleMath">P</span> under the projection <span class="SimpleMath">G ≀ T → T</span> has to be taken.)</p>
<p><a id="X8786EFBC78D7D6ED" name="X8786EFBC78D7D6ED"></a></p>
<h5>49.4-1 WreathProduct</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WreathProduct</code>( <var class="Arg">G</var>, <var class="Arg">H</var>[, <var class="Arg">hom</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>constructs the wreath product of the group <var class="Arg">G</var> with the group <var class="Arg">H</var>.</p>
<p>If a third argument <var class="Arg">hom</var> is given, it must be a homomorphism from <var class="Arg">H</var> into a permutation group, and the action of this group on its moved points is considered.</p>
<p>If only two arguments are given and <var class="Arg">H</var> is a permutation group, the action on its moved points is considered, see <code class="func">MovedPoints</code> (<a href="chap42.html#X85E61B9C7A6B0CCA"><span class="RefLink">42.3-3</span></a>). The result of <code class="func">IsomorphismPermGroup</code> (<a href="chap43.html#X80B7B1C783AA1567"><span class="RefLink">43.3-1</span></a>) applied to <var class="Arg">H</var> is used as the default for <var class="Arg">hom</var>. Note that the degree of the permutation image may depend on the method chosen and thus is not well-defined.</p>
<p>For a wreath product <span class="SimpleMath">W</span> of <var class="Arg">G</var> with a permutation group <span class="SimpleMath">P</span> of degree <span class="SimpleMath">n</span> and <span class="SimpleMath">1 ≤ i ≤ n</span> calling <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) with <span class="SimpleMath">W</span> and <span class="SimpleMath">i</span> yields the embedding of <var class="Arg">G</var> in the <span class="SimpleMath">i</span>-th component of the direct product of the base group <span class="SimpleMath"><var class="Arg">G</var>^n</span> of <span class="SimpleMath">W</span>. For <span class="SimpleMath">i = n+1</span>, <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) yields the embedding of <span class="SimpleMath">P</span> into <span class="SimpleMath">W</span>. Calling <code class="func">Projection</code> (<a href="chap32.html#X8769E8DA80BC96C1"><span class="RefLink">32.2-11</span></a>) with <span class="SimpleMath">W</span> yields the projection onto the acting group <span class="SimpleMath">P</span>, see <a href="chap49.html#X798FDA1386A0EAC6"><span class="RefLink">49.6</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((1,2,3),(1,2));</span>
Group([ (1,2,3), (1,2) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">p:=Group((1,2,3));</span>
Group([ (1,2,3) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">w:=WreathProduct(g,p);</span>
Group([ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8),
(1,4,7)(2,5,8)(3,6,9) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(w);</span>
648
<span class="GAPprompt">gap></span> <span class="GAPinput">Embedding(w,1);</span>
1st embedding into Group( [ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9),
(7,8), (1,4,7)(2,5,8)(3,6,9) ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">Image(Embedding(w,3));</span>
Group([ (7,8,9), (7,8) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Image(Embedding(w,4));</span>
Group([ (1,4,7)(2,5,8)(3,6,9) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Image(Projection(w),(1,4,8,2,6,7,3,5,9));</span>
(1,2,3)
</pre></div>
<p><a id="X8589DCFA7C2E5FAA" name="X8589DCFA7C2E5FAA"></a></p>
<h5>49.4-2 WreathProductImprimitiveAction</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WreathProductImprimitiveAction</code>( <var class="Arg">G</var>, <var class="Arg">H</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For two permutation groups <var class="Arg">G</var> and <var class="Arg">H</var>, this function constructs the wreath product of <var class="Arg">G</var> and <var class="Arg">H</var> in the imprimitive action. If <var class="Arg">G</var> acts on <span class="SimpleMath">l</span> points and <var class="Arg">H</var> on <span class="SimpleMath">m</span> points this action will be on <span class="SimpleMath">l ⋅ m</span> points, it will be imprimitive with <span class="SimpleMath">m</span> blocks of size <span class="SimpleMath">l</span> each.</p>
<p>The operations <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) and <code class="func">Projection</code> (<a href="chap32.html#X8769E8DA80BC96C1"><span class="RefLink">32.2-11</span></a>) operate on this product as described for general wreath products.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">w:=WreathProductImprimitiveAction(g,p);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">LargestMovedPoint(w);</span>
9
</pre></div>
<p><a id="X82B8DD1C868A3726" name="X82B8DD1C868A3726"></a></p>
<h5>49.4-3 WreathProductProductAction</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WreathProductProductAction</code>( <var class="Arg">G</var>, <var class="Arg">H</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For two permutation groups <var class="Arg">G</var> and <var class="Arg">H</var>, this function constructs the wreath product in product action. If <var class="Arg">G</var> acts on <span class="SimpleMath">l</span> points and <var class="Arg">H</var> on <span class="SimpleMath">m</span> points this action will be on <span class="SimpleMath">l^m</span> points.</p>
<p>The operations <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) and <code class="func">Projection</code> (<a href="chap32.html#X8769E8DA80BC96C1"><span class="RefLink">32.2-11</span></a>) operate on this product as described for general wreath products.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">w:=WreathProductProductAction(g,p);</span>
<permutation group of size 648 with 7 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">LargestMovedPoint(w);</span>
27
</pre></div>
<p><a id="X80634C3180E0C593" name="X80634C3180E0C593"></a></p>
<h5>49.4-4 KuKGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KuKGenerators</code>( <var class="Arg">G</var>, <var class="Arg">beta</var>, <var class="Arg">alpha</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>If <var class="Arg">beta</var> is a homomorphism from <var class="Arg">G</var> into a transitive permutation group, <span class="SimpleMath">U</span> the full preimage of the point stabilizer and <var class="Arg">alpha</var> a homomorphism defined on (a superset) of <span class="SimpleMath">U</span>, this function returns images of the generators of <var class="Arg">G</var> when mapping to the wreath product <span class="SimpleMath">(U <var class="Arg">alpha</var>) ≀ (<var class="Arg">G</var> <var class="Arg">beta</var>)</span>. (This is the Krasner-Kaloujnine embedding theorem.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((1,2,3,4),(1,2));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">hom:=GroupHomomorphismByImages(g,Group((1,2)),</span>
<span class="GAPprompt">></span> <span class="GAPinput">GeneratorsOfGroup(g),[(1,2),(1,2)]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:=PreImage(hom,Stabilizer(Image(hom),1));</span>
Group([ (2,3,4), (1,2,4) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">hom2:=GroupHomomorphismByImages(u,Group((1,2,3)),</span>
<span class="GAPprompt">></span> <span class="GAPinput">GeneratorsOfGroup(u),[ (1,2,3), (1,2,3) ]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">KuKGenerators(g,hom,hom2);</span>
[ (1,4)(2,5)(3,6), (1,6)(2,4)(3,5) ]
</pre></div>
<p><a id="X7AC1AD17833117DF" name="X7AC1AD17833117DF"></a></p>
<h4>49.5 <span class="Heading">Free Products</span></h4>
<p>Let <span class="SimpleMath">G</span> and <span class="SimpleMath">H</span> be groups with presentations <span class="SimpleMath">⟨ X ∣ R ⟩</span> and <span class="SimpleMath">⟨ Y ∣ S ⟩</span>, respectively. Then the free product <span class="SimpleMath">G*H</span> is the group with presentation <span class="SimpleMath">⟨ X ∪ Y ∣ R ∪ S ⟩</span>. This construction can be generalized to an arbitrary number of groups.</p>
<p><a id="X837AC5A081EECF50" name="X837AC5A081EECF50"></a></p>
<h5>49.5-1 <span class="Heading">FreeProduct</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FreeProduct</code>( <var class="Arg">G</var>[, <var class="Arg">H</var>, <var class="Arg">...</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">‣ FreeProduct</code>( <var class="Arg">list</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs a finitely presented group which is the free product of the groups given as arguments. If the group arguments are not finitely presented groups, then <code class="func">IsomorphismFpGroup</code> (<a href="chap47.html#X7F28268F850F454E"><span class="RefLink">47.11-1</span></a>) must be defined for them.</p>
<p>The operation <code class="func">Embedding</code> (<a href="chap32.html#X86452F8587CBAEA0"><span class="RefLink">32.2-10</span></a>) operates on this product.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := DihedralGroup(8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">h := CyclicGroup(5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">fp := FreeProduct(g,h,h);</span>
<fp group on the generators [ f1, f2, f3, f4, f5 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">fp := FreeProduct([g,h,h]);</span>
<fp group on the generators [ f1, f2, f3, f4, f5 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Embedding(fp,2);</span>
[ f1 ] -> [ f4 ]
</pre></div>
<p><a id="X798FDA1386A0EAC6" name="X798FDA1386A0EAC6"></a></p>
<h4>49.6 <span class="Heading">Embeddings and Projections for Group Products</span></h4>
<p>The relation between a group product and its factors is provided via homomorphisms, the embeddings in the product and the projections from the product. Depending on the kind of product only some of these are defined.</p>
<p><a id="X784149B8847B20FF" name="X784149B8847B20FF"></a></p>
<h5>49.6-1 Embedding</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Embedding</code>( <var class="Arg">P</var>, <var class="Arg">nr</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>returns the <var class="Arg">nr</var>-th embedding in the group product <var class="Arg">P</var>. The actual meaning of this embedding is described in the manual section for the appropriate product.</p>
<p><a id="X86F275AC7C625626" name="X86F275AC7C625626"></a></p>
<h5>49.6-2 Projection</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Projection</code>( <var class="Arg">P</var>, <var class="Arg">nr</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>returns the (<var class="Arg">nr</var>-th) projection of the group product <var class="Arg">P</var>. The actual meaning of the projection returned is described in the manual section for the appropriate product.</p>
<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap48.html">[Previous Chapter]</a> <a href="chap50.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chap15.html">15</a> <a href="chap16.html">16</a> <a href="chap17.html">17</a> <a href="chap18.html">18</a> <a href="chap19.html">19</a> <a href="chap20.html">20</a> <a href="chap21.html">21</a> <a href="chap22.html">22</a> <a href="chap23.html">23</a> <a href="chap24.html">24</a> <a href="chap25.html">25</a> <a href="chap26.html">26</a> <a href="chap27.html">27</a> <a href="chap28.html">28</a> <a href="chap29.html">29</a> <a href="chap30.html">30</a> <a href="chap31.html">31</a> <a href="chap32.html">32</a> <a href="chap33.html">33</a> <a href="chap34.html">34</a> <a href="chap35.html">35</a> <a href="chap36.html">36</a> <a href="chap37.html">37</a> <a href="chap38.html">38</a> <a href="chap39.html">39</a> <a href="chap40.html">40</a> <a href="chap41.html">41</a> <a href="chap42.html">42</a> <a href="chap43.html">43</a> <a href="chap44.html">44</a> <a href="chap45.html">45</a> <a href="chap46.html">46</a> <a href="chap47.html">47</a> <a href="chap48.html">48</a> <a href="chap49.html">49</a> <a href="chap50.html">50</a> <a href="chap51.html">51</a> <a href="chap52.html">52</a> <a href="chap53.html">53</a> <a href="chap54.html">54</a> <a href="chap55.html">55</a> <a href="chap56.html">56</a> <a href="chap57.html">57</a> <a href="chap58.html">58</a> <a href="chap59.html">59</a> <a href="chap60.html">60</a> <a href="chap61.html">61</a> <a href="chap62.html">62</a> <a href="chap63.html">63</a> <a href="chap64.html">64</a> <a href="chap65.html">65</a> <a href="chap66.html">66</a> <a href="chap67.html">67</a> <a href="chap68.html">68</a> <a href="chap69.html">69</a> <a href="chap70.html">70</a> <a href="chap71.html">71</a> <a href="chap72.html">72</a> <a href="chap73.html">73</a> <a href="chap74.html">74</a> <a href="chap75.html">75</a> <a href="chap76.html">76</a> <a href="chap77.html">77</a> <a href="chap78.html">78</a> <a href="chap79.html">79</a> <a href="chap80.html">80</a> <a href="chap81.html">81</a> <a href="chap82.html">82</a> <a href="chap83.html">83</a> <a href="chap84.html">84</a> <a href="chap85.html">85</a> <a href="chap86.html">86</a> <a href="chap87.html">87</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
|