Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/xmod/doc/   (GAP Algebra Version 4.15.1©)  Datei vom 10.6.2025 mit Größe 106 kB image not shown  

Quelle  chap2_mj.html

  Sprache: HTML
 

 products/Sources/formale Sprachen/GAP/pkg/xmod/doc/chap2_mj.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         http:/wwww./html1DTDxhtml1strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (XMod) - Chapter 22d-groups : crossed modules and cat\(^1\)-[-1,00,[-,][0,,-1]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
<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="chap2"  onload="jscontent()">


<div classrec(1:rec(:=[[-1,,00,0-,0,00java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a1,0][0,0,,1],

<p id="mathjaxlink" class="pcenter"><a href="chap2.html">[MathJax off]</a></p>
<p><a id="X7EB8288E8424F39F" name="X7EB8288E8424F39F"></a></p>
<iv class="">a href="chap2_mj.html#X7EB8288E8424F39F"2 < class="Heading"2d-roups:crossedand<class=S>\^\<span-</>a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X7BAD9A7F7AFEEC89">2.1 <span class="Heading">Constructions for crossed modules</span></a>
</span>
<div class="ContSSBlock">
<span[/,12,1],
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X83050ED686776933">2.1-2 XModByNormalSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X867B2D53832EF05E">2.1-3 XModByTrivialAction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X78B14FDA817CCEEF">2.1-4 XModByAutomorphismGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7D0F6FAA7AF69844">2.1-5 XModByCentralExtension</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X84FA2B0A795B6997">2.1-6 XModByPullback</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html[[-1,0,0,0,[010,0],0,
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X81704DFB795C0D29">2.1-8 DirectProduct</a></span>
<span class="[/2,/2121]java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7AF6602C87845F1D">2.1-10 ImageElmXModAction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7846A7D37957B89E">2.1-11 Size2d</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X85516B19803C01C0">2.1-12 Name</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X7CF622538749FE73">2.2 <span class="Heading">Properties of java.lang.StringIndexOutOfBoundsException: Index 161 out of bounds for length 16
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7E77E6B881B1CE50">2.2-1 IsXMod</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7884284383284A87">2.2-2 SubXMod</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7D8165F77B23BCF6">2.2-3 KernelCokernelXMod</a></span>
</div><div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X7D435B6279032D4D">2.3 <span class="Heading">Pre-crossed modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X8487BE427858C5C9">2.3-1 PreXModByBoundaryAndAction</a></span>
<span class="ContSS"><br /><panclass"nocss"> &bsp<span< href=chap2_mj.htmlX8527F4C07A8F359E">2.3--2 PeifferSubgroup</a>/span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X7AAABC1D7E110988">2.4 <span class="Heading">Cat<span class="SimpleMath">\(^1\)</span>-groups and pre-cat<span class="SimpleMath">\(^1\)</span>-groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7CF4C37F87D27EBA">2.4-1 Cat1Group</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7C4FFC4086531157">2.4-2 Source</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X79944C7B87F767FD">2.4-3 DiagonalCat1Group</a></span>
<span class="ContSS"</<span class"">nbsp&;/pan>ahref=chtml#79385660821E54A3>.- </a<span
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X87544FAD873672E1">2.4-5 Cat1GroupByPeifferQuotient</a></span>
:java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
<span class=rgenerators:=[-,,00]0-,,][,1,
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X8317816A8361F88C">2.5 <span class="Heading">
Properties of cat<span class="SimpleMath">\(^1\)</span>-groups and pre-cat<span class="SimpleMath">\(^1\)</span>-groups 
</span></a>
</span>
<div class="ContSSBlock">
<spanclass"ContSS"><br /><span class="nocss">  </span<a href="chap2_mj.html#X78E03FAB84A57D03">2.5-1 IsCat1Group</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7B7CF88F83B0129D">2.5-2 IsPreCat1GroupWithIdentityEmbedding</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X82F10A59867C765D">2.5-3 Cat1GroupOfXMod</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X80D6CB4080417BFA">2.6 <span class="Heading">Enumerating cat<span class="SimpleMath">\(^1\)</span>-groups with a given source</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7BDEBBF17CE6A6D4">2.6-1 AllCat1GroupsWithImage</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7FBFC8C87FC1AC5A">2.6-2 AllCat1GroupsMatrix</a></span>
<span class="ContSS"><br /><span class="nocss"> [-00,,0,00,00,,]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7C6346A17FEEDFA1">2.6-4 CatnGroupNumbers</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X7A6A70BD86DE458D">2.7 <span class="Heading">Selection of a small cat<span class="SimpleMath">\(basis:=[[,0,][,,][,,],
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7B8E67D880E380C8">2.7-1 Cat1Select</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj[010],[-0,][,,1],
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7831DB527CF9DD57">2.8-1 IdGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X83BBC6818168C282">2.8-2 IsSubXMod</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap2_mj.html#X7CFAB044817E5E91">2.9 <span class="Heading">The group groupoid associated to a cat<span class="SimpleMath">\(^1\)</span>-group</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X7AF5AF668331321E">2.9-1 GroupGroupoid<[1,0,],0-1,0],[0,0,-1]],
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap2_mj.html#X8578AB6D7C1FC4F3">2.9-2 GroupGroupoidElement</a></span>
</div></div>
</div>

<h3>2 <span class="Heading">2d-groups : crossed modules and cat<span class="SimpleMath">\(^1\)</span>-groups</span></h3>

<p>The term <em>2d-group</em> refers to a set of equivalent categories of which the most common are the categories of <em>crossed modules</em>; [0,10,100,001]

<><a idX7BAD9A7F7AFEEC89 XBAD9A7F7AFEEC89</a<>

<h4>2.1 <span class="Heading">Constructions for crossed modules</span></h4>

<p>A crossed module (of groups) <span class="SimpleMath">\(\calX = (\partial : S \to R )\)</span> consists of a group homomorphism <span java.lang.StringIndexOutOfBoundsException: Index 141 out of bounds for length 1

<p class="center">\[
{\bf XMod\ 1}  :   \partial(s^r) 
   = r^{-1} (\partial s) r
   = (\partial s)^r,
\qquad
{\bf java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
   = s_2^{-1}s_1 s_2
   = {s_1}^{s_2}.
\]</p>

<p>When only the first of these axioms is satisfied, the resulting structure is a <em>pre-crossed module</em> (see section <a href="chap2_mj.html#X7D435B6279032D4D"><span class="RefLink">2.3</span></a>). The kernel of <span class="SimpleMath">\(\partial\)</span> is abelian.</p>

<p>(Much of the literature on crossed modules uses left actions, but we have chosen to use[[10,0][01,,],00,-10,

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

<h5>2.1-1 XMod</h5>

<div0001]java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByBoundaryAndAction</code>( <var class="Arg">bdy</var>, <var class=-1,,00][0,-1,,0],0,,1,,
<p>The global function <code class="code">XMod</code> calls one of the standard constructions described in the following subsections. In the example the boundary is the identity mapping on <code class="code">c5</code> and the action is trivial.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">c5 := Group( (5,6,7,8,9) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( c5, "c5" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">id5 := IdentityMapping( c5 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ac5 := AutomorphismGroup( c5 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">act := MappingToOne( c5, ac5 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">XMod( id5, act ) = XModByBoundaryAndAction( id5, act );</span>
true

</pre></div>

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

<h5>2.1-2 XModByNormalSubgroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByNormalSubgroup</code>( <var class="Arg">G</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>A <em>conjugation crossed module</em> is the inclusion of a normal subgroup <span class="SimpleMath">\(S \unlhd R\)</span>, where <span class="SimpleMath">\(R\)</span> acts on <span class="SimpleMath">\(S\)</span> by conjugation.</p>

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

<h5>2.1-3 XModByTrivialAction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByTrivialAction</code>( <var class="Arg">bdy</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>A <em>trivial action crossed module</em> <span class="SimpleMath">\((\partial : S \to R)\)</spanhas <span class="SimpleMath">\(s^r = s\)</span> for all <span class="SimpleMath">\(s \in S, \; r \in R\)</span>, the source is abelian and the image lies in the centre of the range.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">q8 := QuaternionGroup( IsPermGroup8 );</span>
Group([ (1,5,3,7)(2,8,4,6), (1,2,3,4)(5,6,7,8) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( q8, "q8" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c2 := Centre( q8 );                     </span>
Group([ (1,3)(2,4)(5,7)(6,8) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( c2, "<-1>" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">bdy := InclusionMappingGroups( q8, c2 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">X8a := XModByTrivialAction( bdy );</span>
[<-1>->q8]
<span class="GAPprompt">gap></span> <span class="GAPinput">c4 := Subgroup( q8, [q8.1] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( c4, "<i>" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">X8b := XModByNormalSubgroup( q8, c4 );</span>
[<i>->q8]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(X8b);        </span>
Crossed module [<i>->q8] :- 
Source group has generators:
  [ (1,5,3,7)(2,8,4,6) ]
:[0,0,,0,1],
  [ (1,5,3,7)(2,8,4,6), (1,2,3,4)(5,6,7,8) ]
: Boundary homomorphism maps source generators to:
  [ (1,5,3,7)(2,8,4,6) ]
: Action homomorphism maps range generators to automorphisms:
  (1,5,3,7)(2,8,4,6) --> { source gens --> [ (1,5,3,7)(2,8,4,6) ] }
  (1,2,3,4)(5,6,7,8) --> { source gens --> [ (1,7,3,5)(2,6,4,8) ] }
  hese2 automorphisms generatethe group ofautomorphisms.

</pre></div>

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

<h5>2.1-4 XModByAutomorphismGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByAutomorphismGroup</code>( <var class="Arg">grp</var> )</td><td class="tdright">( attribute )</td></[010,-1,,][,,1],
<div class="func"><table[[-1,,0,0,,0],00-1]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByGroupOfAutomorphisms</code>( <var class="Arg">G</var>, <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>An <em>automorphism crossed module</em> has as range a subgroup <span class="SimpleMath">\(R\)</span> of the automorphism group Aut<span class="SimpleMath">\((S)\)</span> of <span class="SimpleMath">\(S\)</span> which contains the inner[0,10],-1,,,0,[,,1]],


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">X5 := XModByAutomorphismGroup( c5 );</span>
[c5 -> Aut(c5)] 
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( X5 );</span>
Crossed module [c5->Aut(c5)] :- 
Source group c5 has generators:
  [ (5,6,7,8,9) ]
: Range group Aut(c5) has generators:
  [ GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ], [ (5,7,9,6,8) ] ) ]
: Boundary homomorphism maps source generators to:
  [ IdentityMapping( c5 ) ]
: Action homomorphism maps range generators to automorphisms:
  GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ], 
[ (5,7,9,6,8) ] ) --> { source gens --> [ (5,7,9,6,8) ] }
  This automorphism generates the group of automorphisms.

</pre></div>

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

<h5>2.1-5 XModByCentralExtension</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByCentralExtension</code>( <var class="Arg">bdy</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>A <em>central extension crossed module</em> has as boundary a surjection <span class="SimpleMath">\(\partial : S \to R\)</span>, with central kernel, where <span class="SimpleMath">\(r \in R\)</span> acts on <span class="SimpleMath"[,,,][1,,0,][,,,]


<div class="example"><pre>

<span class="GAPprompt">gap></<,0,1/21]java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
<span class="GAPprompt">gap></span> <span class="GAPinput">d12 := Group( gen12 );;                  </span>
<span class"APprompt">gap&/span> <panclass"APinput">gen6 := [ (7,8,9), (8,9) ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s3 := Group( gen6 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( d12, "d12" );  SetName( s3, "s3" ); </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pr12 := GroupHomomorphismByImages( d12, s3, gen12, gen6 );;</span>
<span class="GAPprompt">gap></span> <span [,,/21],
true
<span class="GAPprompt">gap></span> <span class="GAPinput">X12 := XModByCentralExtension( pr12 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( X12 );                         </span>
Crossed module [d12->s3] :- 
Source group d12 has generators:
  [ (1,2,3,4,5,6), (2,6)(3,5) ]
: Range group s3 has generators:
  [ (7,8,9), (8,9) ]
: Boundary homomorphism maps source generators to:
  [ (7,8,9), (8,9) ]
: Action homomorphism maps range generators to java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 33
  (7,8,9) --> { source gens --> [ (1,2,3,4,5,6), (1,3)(4,6) ] }
  (8,9) --> { source gens --> [ (1,6,5,4,3,2), (2,6)(3,5) ] }
  These 2 automorphisms generate the group of automorphisms.

</pre></div>

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

<h5>2.1-6 XModByPullback</h5>

<ivclass="unc><able class"func width="100%"><tr><td class="tdleft"><code class="func">&#le='color: green'>8227; XModByPullback</code>( <var class="Arg">xmod</var>, <var class="Arg">hom</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">\(\calX_0 = (\mu : M \to P)\)</span> be a crossed module. If <span class="SimpleMath">\(\nu : N \to P\)</span> [,][,,][0,]]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

<p>The example forms a pullback of the crossed module <code class="code">X12</code> of the previous subsection.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">gens4 := [ (11,12), (12,13), (13,14];; </span>
<span class"GAPprompt">gap></span> <span class="GAPinput">s4 := Group( gens4 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">theta := GroupHomomorphismByImages( s4, s3, gens4, [(7,8),(8,9),(7,8)] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">X1 := XModByPullback( X12, theta );; </span>
<1,0],0001]java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
"C2 x S4"
<span class="GAPprompt">gap></span> <span class="GAPinput
<span class="GAPprompt">gap></span> <span class="GAPinput">infoX1 := PullbackInfo( Source( X1 ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">infoX1!.directProduct;</span>
Group([ (1,2,3,4,5,6), (2,6)(3,5), (7,8), (8,9), (9,10) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">infoX1!.projections[1];</span>
[ (7,8)(9,10), (7,9)(8,10), (2,6)(3,5)(8,9), (1,5,3)(2,6,4)(8,10,9), 
  (1,6,5,4,3,2)(8,9,10) ] -> [ (), (), (2,6)(3,5), (1,5,3)(2,6,4), 
  (1,6,5,4,3,2) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">infoX1!.projections[2];</span>
[ (7,8)(9,10), (7,9)(8,10), (2,6)(3,5)(8,9), (1,5,3)(2,6,4)(8,10,9), 
  (1,6,5,4,3,2)(8,9,10) ] -> [ (11,12)(13,14), (11,13)(12,14), (12,13), 
  (12,14,13), (12,13,14) ]

</pre></div>

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

<h5>2.1-7 XModByAbelianModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByAbelianModule</code>( <var class="Arg">abmod</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>A <em>crossed abelian module</em> has an abelian module as source and the zero map as boundary. See section <a href="chap14_mj.html#X852BD9CA84C2AFF0"><span class="RefLink">14.2</span></a> for an example.</p>

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

<h5>2.1-8 DirectProduct</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; DirectProduct</code>( <var class="Arg">X1</var>, <var class="Arg">X2</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>The direct product <span class="SimpleMath">\(\calX_{1} \times \calX_{2}\)</span> of two crossed modules has source <span class="SimpleMath">\(S_1 \times S_2\)</span>, range <span class="SimpleMath">\(R_1 \times R_2\)</span> and boundary <span class="SimpleMath">\(\partial_1 \times \partial_2\)</span>, with <span class="SimpleMath">\(R_1,\ R_2\)</span> acting trivially on 

<p>The example constructs the product of the two crossed modules formed in subsection <code class="func">XModByTrivialAction</code> (<a href="chap2_mj.html#X867B2D53832EF05E"><span class="RefLink">2.1-3</span[[-1,0,,0,0][0,1,0,,0,[00-0]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">X8ab := DirectProduct( X8a, X8b );</span>
[[&t1>->q8]x[<i>->q8]]
<span class="GAPprompt">gap></span> <span class="GAPinput">infoX8ab := DirectProductInfo( X8ab );</span>
rec( 
  embeddings := [ [[<-1>->q8] => [<-1>x<i>->q8xq8]], 
      [[<i>->q8] => [<-1>x<i>->q8xq8]] ], objects := [ [<-1>->q8], [<i>->q8] ]
    ,java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
  projections := [ [[<-1>x<i>->q8xq8] => [<-1>->q8]], 
      [[<-1>x<i>->q8xq8] => [<i>->q8]] ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">DirectProduct( X8a, X8b, X12 );</span>
[[[<-1>->q8]x[<i>->q8]]x[d12->s3]]

</pre></div>

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

<h5>2.1-9 Source</h5>

<div=[[1,0,,0-0,0,0,1]],
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Range</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Boundary</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModAction</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The following attributes are used in the construction of a crossed module <code class="code">X0</code>.</p>


<ul>
<li><[[0,1,],[-,,0]][0,0,],

</li>
<li><p><code class="code">XModAction(X0)</code> is a homomorphism from <span class="SimpleMath">\(R\)</span> to a group of automorphisms of <code class="code">X0</code>.</p>

</li>
</ul>
<p>(Up until version 2.63 there was an additional attribute <code class="code">AutoGroup</code>, the range of <code class="code">XModAction(X0)</code>.)</p>

<p>The example uses the crossed module <code class="code">X12</code> constructed in subsection <code class="func">XModByCentralExtension</code> (<a href="chap2_mj.html#X7D0F6FAA7AF69844"><span class="RefLink">2.1-5</span></a>).</p>


<div class="example"><pre>

<s"GAPprompt">gap></span> <span class="GAPinput">[ Source( X12 ), Range( X12 ) ];    </span>
[ d12, s3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Boundary( X12 ); </span>
[ (1,2,3,4,5,6), (2,6)(3,5) ] -> [ (7,8,9), (8,9) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">XModAction( X12 );</span>
[ (7,8,9), (8,9) ] -> 
[ [ (1,2,3,4,5,6), (2,6)(3,5) ] -> [ (1,2,3,4,5,6), (1,3)(4,6) ], 
  [ (1,2,3,4,5,6), (2,6)(3,5) ] -> [ (1,6,5,4,3,2), (2,6)(3,5) ] ]

</pre></div>

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

<h5>2[00,01]

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ImageElmXModAction</code>( <var class="Arg">X0</var>,asis:=[[1,0,0][010][001]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
<p>This function returns the element <span class="SimpleMath">\(s^r\)</span> given by <code class="code">XModAction(X0)</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">ImageElmXModAction( X12, (1,2,3,4,5,6), (8,9) );</span>
(1,6,5,4,3,2)

</pre></div>

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

<h5>2.1-11 Size2d</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"[-10,0,0,-1,0],[0,0,-1]],
<p>The standard operation <code class="code">Size</code> cannot be used for crossed modules because the size of a collection is required to be a number, and we wish to return a list. <code class="code">Size2d( X0 )</code> returns the two-element list, <code class="code">[ Size( Source(X0) ), Size( Range(X0) ) ]</code>.</p>

<p>In the simple example below, <code class="code">X5</code> is the automorphism crossed module constructed in subsection <code class="func">XModByAutomorphismGroup[-1,0,][01,0,[,01]]],ormsize:=16))


<div java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1

<span class="GAPprompt">gap></span> <span class="GAPinput">Size2d( X5 ); </span>
[ , 4  ]

</pre></div>

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

<h5>2.1-12 Name</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Name</code>( <var class="Arg">X0</var> )</td><td class="tdright">( [,<span style='color: green'>10,][1,,,0][,,
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IdGroup</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div[0,,],
<p>More familiar attributes are <code class="code">Name</code> and <code class="code">IdGroup</code>. The name is formed by concatenating the names of the source and range (if these exist). <code class="code">IdGroup( X0 )</code> returns a two-element list <code class="code">[ IdGroup( Source(X0) ), IdGroup( Range(X0) ) ]</code>.</p>

hecodeclass"unc>ExternalSetXMod</codecrossed module isthe java.lang.StringIndexOutOfBoundsException: Range [84, 83) out of bounds for length 167

<p>The <code class="code">Display</code> function is used to print details of 2d-groups.</p>

<p>The <code class="code">Print</code> statements at the end of the example list the <strong class="pkg">GAP</strong> representations and attributes of <code class="code">X5</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IdGroup( X5 ); </span>
[ [ 51 ], [ 41 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ext := ExternalSetXMod( X5 ); </span>
<xset:[ (), (5,6,7,8,9), (5,7,9,6,8), (5,8,6,9,7), ([0,10,[-1,0,0],[0,0,1]],
<span class="GAPprompt">gap></span> <span class="GAPinput">Orbits( ext );</span>
[ [ () ], [ (5,6,7,8,9), (5,7,9,6,8), (5,9,8,7,6), (5,8,6,9,7) ] ]
<span class="GAPprompt">gap></span> ,][,0-]]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
[ (5,6,7,8,9) ] -> [ (5,9,8,7,6) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ImageElmXModAction( X5, (5,7,9,6,8), a );</span>
(5,8,6,9[-1,,0],0,10,0,0,-]]
<span class="GAPprompt">gap></span> <span class="GAPinput">Print( RepresentationsOfObject(X5), "\n" );</span>
"IsComponentObjectRep""IsAttributeStoringRep""IsPreXModObj" ]
<span class="GAPprompt">gap>[[0,0]-1,0,0],0,,1]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
"Name""Range""Source""IdGroup""Boundary""Size2d""XModAction"
  "ExternalSetXMod""HigherDimension" ]

</pre></div>

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

<h4>2.2 <span class="Heading">Properties of crossed modules</span></h4>

<p>The underlying category structures for the objects constructed in this chapter(generators=[-1,,][,1,0,][,,,

<p>There are then a variety of properties associated with crossed modules, starting with <code class="code">IsPreXMod</code> and <code class="code">IsXMod</code>.</p>

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

<h5>2.2-1 IsXMod</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsXMod</code>( <var class="Arg">X0</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsPreXMod</code>( <var class="Arg">X0</var> )</td><td class="tdright">( property )</td></tr></table></div>
<12012,],
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsPerm2DimensionalGroup</code>( <var class="Arg">X0</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsPc2DimensionalGroup</code>( <var class="Arg">X0</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" widthbasis:=[[1,0,0][0,,][0,0,1]],
<p>A structure which has <code class="code">Is2DimensionalGroup</code> is a precrossed module or a pre-cat<span class="SimpleMath">\(^1\)</span>-group (see section <a href="chap2_mj.html#X7AAABC1D7E110988"><span class="normgens:[[[-,,0],[0-10,001]java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39

<p>There are also properties corresponding to the various construction methods which are listed in section <a href="chap2_mj.html#X7BAD9A7F7AFEEC89"><span class="RefLink">2.1</span></a>: <code class="code">IsTrivialAction2DimensionalGroup</code>; <code class="code">IsNormalSubgroup2DimensionalGroup</code>; <code class="code">IsCentralExtension2DimensionalGroup</code>; <code class="code">IsAutomorphismGroup2DimensionalGroup</code> and <code class[100,0[00-],


<div class="example"><pre>

<span [[,,][10,],,0,1]]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
[ false, true, true ]
<span class="GAPprompt">gap<-,,][,,][,,]]normsize:=16)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
<span class="GAPprompt">gap></span> <span class="GAPinput">ForAll
<span class="GAPprompt">></span> <span class="GAPinput""CanEasilyCompareElements""CanEasilySortElements""IsDuplicateFree", </span>
< class="APprompt"><span><span class="GAPinput""IsGeneratorsOfSemigroup""IsPreXModDomain""IsPreXMod""IsXMod", </span>
<span class="GAPprompt">></span> <span class="GAPinput""IsAutomorphismGroup2DimensionalGroup" ], </span>
<span class="GAPprompt">></span> <span class="GAPinput"s -> s in kpoX5 ); </span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">Is2DimensionalGroup(X5);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAutomorphismGroup2DimensionalGroup(X5);</span>
true

</pre></div>

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

<h5>2.2-2 SubXMod</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; SubXMod</code>( <var class="Arg">X0</var>, <var class="Arg">src</var>, <[[1,,,][0100,0
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 34
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; NormalSubXMods</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsNormal</code>:=[1,,][,10][0,0,1],
<> the  module   above as building,sub-crossedmodules, normal sub- modules< class=S>\(calN\hd \\)/pan>, and also quotients span class="SimpleMath">\(\calX/\calN\)</span> may be constructed. A sub-crossed module <span class="SimpleMath">\(\calS = (\delta : N \to M)\)</span> is <em>normal</emin <span class="SimpleMath">\(\calX = (\partial : S \to R)\)</span> if</p>


<ul>
<li><p><span [-1,0,0],[0,1,0[0,,-]],

</li>
<li><p><span class="SimpleMath">\(\delta\)</span> is the restriction of <span class="SimpleMath">\(\partial\)</span>,</p>

</li>
<li><p><span class="SimpleMath">\(n^r \in N\)</span> for all <span class="SimpleMath">\(n \in N,~r \in R\)</span>,</p>

</li>
<li><p><span class="SimpleMath">\((s^{-1})^ms \in N\)</span> for all <span class="SimpleMath">\(m \in M,~s \in S\)</span>.</p>

</li>
</ul>
<p>These conditions ensure that <span class="SimpleMath">\(M \ltimes N\)</span> is normal in the[,1,][1,,0][001]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

<p>A method for <code class="code">IsNormal</code> for precrossed modules is provided. See section <a href="chap4_mj.html#X7E373BF3836B3A9C"><span class="RefLink">4.1</span></a> for factor crossed modules and their natural morphisms.</p>

<p>The five normal subcrossed modules of <code class="code">X4</code> found in the following example are <code class="code">[id,id], [k4,k4], [k4,a4], [a4,a4]</code> and <code class="code">X4</code> itself.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">s4 := Group( (1,2), (2,3), (3,4) );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a4 := Subgroup( s4, [ (1,2,3), (2,3,4) ] );; </span>
<span class="GAPprompt">gap><[12,/,/2,1]java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
<span class="GAPprompt">gap&[-1,00][10,,[
<span class="GAPprompt">gap></span> <span class="GAPinput">X4 := XModByNormalSubgroup( s4, a4 );</span>
[a4->s4]
<span class="GAPprompt">gap></span> <span class="GAPinput">Y4 := SubXMod( X4, k4, a4 ); </span>
[k4->a4]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsNormal( X4, Y4 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">NX4 := NormalSubXMods( X4 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( NX4 ); </span>
5

</pre></div>

<p id="7D8165F77B23BCF6" name=X7D8165F77B23BCF6"></a></p>

<h5>2.2-3 KernelCokernelXMod</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; KernelCokernelXMod</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Let <1,,],[,,,00,-1]],


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">d8d8 := Group( (1,2,3,4), (1,3), (5,6,7,8), (5,7) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">X88 := XModByAutomorphismGroup( d8d8 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size2d( X88 );</span>
642048 ]
<span class="[-1,0,0],[0,-1,0,[00,-1]]
<span class="GAPprompt">gap></span> <span class="GAPinput">IdGroup(Y88);</span>
[ [ 42 ], [ 128928 ] ]
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 27
"C2 x C2""(D8 x D8) : C2" ] 

</pre></div>

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

<h4>2.3 <span class="Heading">Pre-crossed modules</span></h4>

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

<h5>2.3-1 PreXModByBoundaryAndAction</h5>

<divrec(1:recgenerators:[[-,0,,][,100,0,
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; PreXModWithTrivialRange</code>( <var class="Arg">src</var>, <var class="Arg">rng</var>1,][,0,01]
<div class=[[0,,0,],-,0,00,[,,10,
<p>If axiom <span class="SimpleMath">\({\bf XMod\ 2}\)</span> is <em>not</em> satisfied, the corresponding structure is known as a <em>pre-crossed module</em>.</p>

<p>A special case of this operation is when the range is a trivial group (not necessarily a subgroup of the source), and so the action is trivial. This case will be used when constructing a special type of double groupoid in Chapter <a href="chap11_mj.html#X83B7E8A287C9284A"><span class="RefLink">11</span></a>.</p>


< class="example>pre

<span class="GAPprompt">gap></span> <span class="GAPinput">b1 := (11,12,13,14,15,16,17,18);;  b2 := (12,18)(13,17)(14,16);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d16 := Group( b1, b2 );;</span>
<span class="java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 18
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( d16, "d16" );  SetName( sk4, "sk4" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">bdy16 := GroupHomomorphismByImages( d16, sk4, [b1,b2], [b1^4,b2] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">aut1 := GroupHomomorphismByImages( d16, d16, [b1,b2], [b1^5,b2] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">aut2 := GroupHomomorphismByImages( d16, d16, [b1,b2], [b1,b2^4*b2] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">aut16 := Group( [ aut1, aut2 ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">act16 := GroupHomomorphismByImages( sk4, aut16, [b1^4,b2], [aut1,aut2] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">P16 := PreXModByBoundaryAndAction( bdy16, act16 );</span>
[d16->sk4]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsXMod( P16 );</span>
[[-1,,[,1,][00-1]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
<span class="GAPprompt">gap></span> <span class="GAPinput">Q16 := PreXModWithTrivialRange( d16, d16 ); </span>
[d16->Group( [ () ] )]
<span class="GAPprompt">gap></span> <span class="GAPinput">SQ16 := SubPreXMod( Q16, sk4, Group( [()] ) );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(SQ16);</span>
java.lang.StringIndexOutOfBoundsException: Range [40, 7) out of bounds for length 18
Source group has generators:
  [ (11,15)(12,16)(13,17)(14,18), (12,18)(13,17)(14,16) ]
: Range group has generators:
  [ () ]
: Boundary homomorphism maps source generators to:
  [ ),() ]
  The automorphism group is trivial

</pre></div>

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

<h5>2.3-2 PeifferSubgroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#[an style='color: green'>1/2,,1/,1]]
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModByPeifferQuotient</code>( <var class="Arg">prexmod</var)</td[[-,0,,],[0,0,],0,,-,0],
<pThe<em>Peiffer subgroup</em <span class"SimpleMath">\(P\)</span> of a pre-crossed module <span class="SimpleMath">\(\calX\)</span> is the subgroup of <span class="SimpleMath">\({\rm ker}(\partial)\)</span> generated by <em>Peiffer commutators</em></p>

<p class="center">\[
\lfloor s_1,s_2 \rfloor ~=~ 
(s_1^{-1})^{\partial s_2}~s_2^{-1}~s_1~s_2 ~=~ 
e\[_,]~.
\]</p>

<p>Then <span class="SimpleMath">\(\calP = (0 : P \to \{1_R\})\)</span> is a normal sub-pre-crossed module of <span class="SimpleMath">\(\calX\)</span> and <span class="SimpleMath">\(\calX/\calP = (\partial : S/P \to R)\)</span> is a crossed module.</p>

<p>In the following example the Peifferbasis:=[1,00],[,1,0][0,0,1]],


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">normgens:=[[-10,][0,10]0,0,1],
Group( [ (11,15)(12,16)(13,17)(14,18), (11,17,15,13)(12,18,16,14) ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">X16 := XModByPeifferQuotient( P16 );</span>
Peiffer([d16->sk4])
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( X16 );</span>
Crossed module Peiffer([d16->sk4]) :-
Source group has generators:
  [ f1, f2 ]
: Range group has generators:
  [ (11,15)(12,16)(13,17)(14,18), (12,18)(13,17)(14,16) ]
: Boundary homomorphism maps source generators to:
  [ (12,18)(13,17)(14,16), (11,15)(12,16)(13,17)(14,18) ]
  The automorphism group is trivial
spanclass=""gap;<span> <span class="GAPinput">iso16:=IsomorphismPermGroup( Source( X16 ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">S16 := Image( iso16 );</span>
Group([ (1,2), (3,4) ])   

<>/divjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

<p><a generators:=[-,,,][,1,][,,

<h4>2.4 <span class="Heading">Cat<span class="SimpleMath">\(^1\)</span>-groups and pre-cat<span class="SimpleMath">\(^1\)</span>-groups</span></h4>

<p>In <a href="chapBib_mj.html#biBL1">[Lod82]</a>, Loday reformulated the notion of a crossed module as a cat<span class="SimpleMath">\(^1\)</span>-group, namely a group <span class="SimpleMath">\(G\)</span> with a pair of endomorphisms <span class="SimpleMath">\(t,h : G \to G\)</span> having a common image <span class="SimpleMath">\(R\)</span> and satisfying certain axioms. We find it computationally convenient to define a cat<span class="SimpleMath">\(^1\)</span>-group <span java.lang.StringIndexOutOfBoundsException: Index 485 out of bounds for length 32

< ="center">[
{\bf Cat\ 1}  :  ~t \circ e ~=~ h \circ e = {\rm id}_R,
\qquad
{\bf Cat\ 2}  :  ~[\ker t, \ker h] ~=~ \{ 1_G \}.
\]</p>

<p>It follows that <span class="SimpleMath">\(\;t \circ e \circ h = h,~ h \circ e \circ t = t,~ t \circ e \circ t = t~\)</span> and <span class="SimpleMath">\(~h \circ e \circ h = h\)</-1,00,[-,,],0,,-1,],

<p>See section <code class="func">IsPreCat1GroupWithIdentityEmbedding</code> (<a href="chap2_mj.html#X7B7CF88F83B0129D"><span class="RefLink">2.5-2</span></a>) for the case when <span class="SimpleMath">\(t\)</span> and <span class="SimpleMath">\(h\)</span> are endomorphisms and <span class="SimpleMath">\(e\)</span> an inclusion.</p>

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

<h5>2.4-1 Cat1Group</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Cat1Group</code>( <var class="Arg">args</varnormgens:=[[-1,0]0,10,0,0,],
< class"unc>table class=""width=100"<java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 222
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; PreCat1GroupByTailHeadEmbedding</code>( <var class="Arg">t</var>, <var class="Arg">h</var>, <var class="Arg">e</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[[-1,,0][0,-10,[0,1]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
<p>The global functions <code class="code">Cat1Group</code> and <code class="code">PreCat1Group</code> can[1,00],[-,,0],


<ul>
<li><p>as <code class="code">Cat1Group(t,h,e);</code> when <span class="SimpleMath">\(t,h,e\)</span> are three homomorphisms, which is equivalent to <code class="code">PreCat1GroupByTailHeadEmbedding(t,h,e);</code></p>

</li>
<li><p>as <code class="code">Cat1Group(t,h);</code> when <span class="SimpleMath">\(t,h\)</span> are two endomorphisms, which is equivalent to <code class="code">PreCat1GroupWithIdentityEmbedding(t,h);</code></p>

</li>
<li><p>as <code class=code>at1Groupt);code> when<span =SimpleMath>\(=h\)</> is endomorphism  is equivalent to < =c"PreCat1GroupWithIdentityEmbedding(t,t);</code></p>

</li>
<li><p>as <code class="code">Cat1Group(t,e);</code> when <span class="SimpleMath">\(t=h\)</span> and <span class="SimpleMath">\(e\)</span> are homomorphisms, which is equivalent to <code class="code">PreCat1GroupByTailHeadEmbedding(t,t,e);</code></p>

</li>
<li><p>as <code class="code">Cat1Group(i,j,k);</code> when <span class="SimpleMath">\(i,j,k\)</span> are integers, which is equivalent to <code class="code">Cat1Select(i,j,k);</code> as described in section <a href="chap2_mj.html#X7A6A70BD86DE458D"><span class="RefLink">2.7</span></a>.</p>

</li>
</ul>

<1000][0-0]0,0,-,]

<span class="GAPprompt">gap></span> <span class="GAPinput">g18gens := [ (1,2,3), (4,5,6), (2,3)(5,6) ];;     </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s3agens := [ (7,8,9), (8,9) ];;                </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g18 := Group( g18gens );;  SetName( g18, "g18" ); </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s3a := Group( s3agens );;  SetName( s3a, "s3a" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t1 := GroupHomomorphismByImages(g18,s3a,g18gens,[(7,8,9),(),(8,9)]);     </span>
[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (), (8,9) ]
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 28
[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (7,8,9), (8,9) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">e1 := GroupHomomorphismByImages(s3a,g18,s3agens,[(1,2,3),(2,3)(5,6)]);   </span>
[ (7,8,9), (8,9) ] -> [ (1,2,3), (2,3)(5,6) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">C18 := Cat1Group([01,],-0,],[,0,]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
[,,0][,,]0,,1],16)

</pre></div>

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

<h5>2.4-2 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Source</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Range</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; TailMap</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; HeadMap</code>( <var class=0,0,]java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; RangeEmbedding</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; KernelEmbedding</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute&java.lang.StringIndexOutOfBoundsException: Index 197 out of bounds for length 39
<div class="func"><table class="func[10][0,0][,,],
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Name</code>( <var class="Arg">C</var> )</td><td class="java.lang.StringIndexOutOfBoundsException: Range [1, 163) out of bounds for length 29
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Size2d</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>These are the attributes of a cat<span class="SimpleMath">\(^1\)</span>-group <span class="SimpleMath">\(\calC\)</span> in this implementation.</p>

<[100],010,0,,1]]normsize:=16)


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">[ Source( C18 ), Range( C18 ) ];</span>
[ g18, s3a ]
<span class="GAPprompt">gap></span> <span class="GAPinput">TailMap( C18 );</span>
[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (), (8,9) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">HeadMap( C18 );</span>
[(12,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (7,8,9), (8,9) ]
<span class="GAPprompt">java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 11
[ (7,8,9), (8,9) ] -> [ (1,2,3), (2,3)([-1000,0100,00-1,0]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
<span class="GAPprompt">gap></span> <span class="GAPinput">Kernel( C18 );</span>
Group([ 45, )
<span class="GAPprompt">gap></span> <span class="GAPinput">KernelEmbedding( C18 );</span>
[ (4,5,6) ] -> [ (4,5,6) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Name( C18 );</span>
"[g18=>s3a]"
<span class="GAPprompt">gap></span> <span class="GAPinput">Size2d( C18 );</span>
186 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( C18 );</span>
"(C3 x C3) : C2""S3" ]

</pre></div>

<p>The next four subsections contain some more constructors for cat<span class="SimpleMath">\(^1\)</span>-groups.</p>

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

<h5>2.4-3 DiagonalCat1Group</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; DiagonalCat1Group</code>( <var class="Arg">genG</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This operation constructs examples of cat<span class="SimpleMath">\(^1\)</span>-groups of the form <span class="SimpleMath">\(G \times G \Rightarrow G\)</span>. The tail map is the identity on the first factor and kills of the second, while the head map [0-,-00,,,1]]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">C4 := DiagonalCat1Group( [ (1,2,3), (2,3,4) ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Source(C4), "a4a4" );  SetName( Range(C4_, "a4d" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( C4 );</span>
Cat1-group [a4a4=>a4d] :- 
Source group a4a4 has generators,][/,/,/,1]
  [ (1,2,3), (2,3,4), (5,6,7), (6,7,8) ]
: Range group a4d has generators:
  [ ( 9,10,11), (10,11,12) ]
: tail homomorphism maps source generators to:
  [ ( 9,10,11), (10,11,12), (), () ]
 head homomorphism maps source generators to:
  [ (), (), ( 9,10,11), (10,11,12) ]
: range embedding maps range generators to:
  [ (1,2,3)(5,6,7), (2,3,4)(6,7,8) ]
: kernel has generators:
  [ (5,6,7), (6,7,8) ]
: boundary homomorphism maps generators of kernel to:
  [ ( 9,10,11), (10,11,12) ]
: kernel embedding maps generators of kernel to:
  [ (5,6,7), (6,7,8) ]

</pre></div>

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

<h5>2.4-4 TransposeCat1Group</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; TransposeCat1Group</code>( <var class="Arg">C0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; TransposeIsomorphism</code>( <var class="Arg">C0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The <em>transpose</em> of a cat<span class="SimpleMath">\(^1\)</span>-group <span class="SimpleMath">\(C\)</span> has the same source, range and embedding, but has the tail and head maps interchanged. The <code class="code">TransposeIsomorphism</code> gives the isomorphism between the [100][0-1,][,0-1]


< class"xample><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">R4 := TransposeCat1Group( C4 );</span>
[a4a4=>a4d]
<span class="GAPprompt">gap></span> <span class="GAPinput">Boundary( R4 );</span>
[ (2,3,4), (1,2,3) ] -> [ (10,11,12), (9,10,11) ]
<span class="GAPprompt">=[[1000,0-,,,0010
false
<span class="GAPprompt">gap></span> <span class="GAPinput">TailMap( R4],[12012,],
true
<span class="GAPprompt">gap></span> <span class="GAPinput">MappingGeneratorsImages( TransposeIsomorphism(C4) );</span>
[ [ [ (1,2,3), (2,3,4), (5,6,7), (6,7,8) ], 
      [ (5,6,7), (6,7,8), (1,2,3), (2,3,4) ] ], 
  [ [ (9,10,11), (10,11,12) ], [ (9,10,11), (10,11,12) ] ] ]

</pre></div>

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

<h5>2.4-5 Cat1GroupByPeifferQuotient</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Cat1GroupByPeifferQuotient</code>( <var class="Arg">P</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>If <span class="SimpleMath">\(C = (e;t,h : G \to R)\)</span> is a pre-cat<span class="SimpleMath">\(^1\)</span>-group, its Peiffer subgroup is <span class="SimpleMath">\(P = [\ker t,\ker h]\)</span> and the associated cat<span class="SimpleMath">\(^1\)</span>-group <span class="SimpleMath">\(C_2\)</span> has source <span class="SimpleMath">\(G/P\)</span>. [[-1,0,0,0][0-,,][,0,1,],


<div class="example"><pre>

<:[[-1,00,0-1,][,,],
<span class="GAPprompt">gap></span> <span class="GAPinput">h := GroupHomomorphismByImages( s4, s4, [(1,2,3),(3,4)], [(),(3,4)] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c2 := Image( h );;  SetName( c2, "c2" );</span>
<span class="GAPprompt">>gapg</span> <span ="APinput>=PreCat1Group( h, h );</span>
[s4=>c2]
<span class="GAPprompt">gap></span> <span class="GAPinput">P := PeifferSubgroupPreCat1Group( C );</span>
Group([ (1,3)(2,4), (1,2)(3,4) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">C2 := Cat1GroupByPeifferQuotient( C );</span>
[Group( [ f1, f2 ] )=>c2]
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( C2 );</span>
"S3""C2" ]
<span =">&;</span> <span class="APinput=( C ;<span
<span class="GAPprompt">gap></span> <span class="GAPinput">XC := rec2.prexmod;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( XC );  </span>
"A4""C2" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">XC2 := XModByPeifferQuotient( XC );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( XC2 );</span>
"C3""C2" ]
<span class="GAPprompt">gap></span> <span class[[1,,0]0,10][001],
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( CXC2 );</span>
[","C2]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsomorphismCat1Groups( C2, CXC2 );</span>
[[Group( [ f1,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

</pre></div>

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

<h5>2.4-6 SubCat1Group</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func[010][-0,,0,[,,0,
<div class="func"><table class="func" width="100%"><tr><td class0,/2,1/,],
<p><span class="SimpleMath">\(S_1


<[1,,00,0-100][,,1,0,

<span class="GAPprompt">gap></span> <span class="GAPinput">s3 := Subgroup( s4, [(2,3),(3,4)] );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">res := DoublyRestrictedMapping( h, s3, s3 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">S := PreCat1Group[0,1/2,1/4,1]]],
[Group( [ (2,3), (3,4) ] )=>Group( [ (3,4), (3,4) ] )]

</pre></div>

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

<h5>2.4-7 DirectProduct</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; DirectProduct</code>[0,,0],[1,,][,,1]],
<p>The direct product <span class="SimpleMath">\(\calC_{1} \times \calC_{2}\)</span> of two cat<span class="SimpleMath">\(^1\)</span>-groups has source <span class="SimpleMath">\(G_1 \times G_2\)</span> and range

<p>The example constructs the product of two of the cat<span class="SimpleMath">\(^1\)</span>-groups constructed above.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">C418 := DirectProduct( C4, C18 );</span>
[(4a4xg18))=&;(a4d x s3a]
<span class="GAPprompt">gap></span> <span class="GAPinput">infoC418 := DirectProductInfo( C418 );</span>
rec( 
  embeddings := [ [[a4a4=>a4d] => [(a4a4xg18)=>(a4d x s3a)]], 
      [[g18=>s3a] => [(a4a4xg18)=>0,-10,0,0,1],
  objects := [ [a4a4=>a4d], [g18=>s3a] ], 
  projections := [ [[(a4a4xg18)=>(a4d x s3a)] => [a4a4=>a4d]], 
      [[(a4a4xg18)=>(a4d x s3a)] => [g18=>s3a]] ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">t418 := TailMap( C418 );</span>
[ (1,2,3), (2,3,4), (5,6,7), (6,7,8), (9,10,11), (12,13,14), (10,11)(13,14
 ] -> [ (1,2,3), (2,3,4), (), (), (5,6,7), (), (6,7) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">h418 := HeadMap( C418 );</span>
[ (1,2,3), (2,3,4), (5,6,7), (6,7,8), (9,10,11), (12,13,14), (10,11)(13,14
 ] -> [ (), (), (1,2,3), (2,3,4), (5,6,7), (5,6,7), (6,7) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">e418 := RangeEmbedding( C418 );</span>
[ (1,2,3), (2,3,4), (5,6,7), (6,7) ] -> [ (1,2,3)(5,6,7), (2,3,4)(6,7,8), 
  (9,10,11), (10,11)(13,14) ]

</pre></div>

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

<h4>2.5 <span class="Heading">
Properties of cat<span class="SimpleMath">\(^1\)</span>-groups and pre-cat<span class="SimpleMath">\(^1\)</span>-groups 
</span></h4>

<p>Many of the properties listed in section <a href="chap2_mj.html#X7CF622538749FE73"><span class="RefLink">2.2</span></a> apply to pre-cat<span class="SimpleMath">\(^1\)</span>-groups java.lang.StringIndexOutOfBoundsException: Range [0, 188) out of bounds for length 27

<p><a id=[[100,0,-,,0,-java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

<h5>2.5-1 IsCat1Group</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsCat1Group</code>( <var class="Arg">C0</var> )<[[0,-,,-,,][,,1]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="java.lang.StringIndexOutOfBoundsException: Range [1, 91) out of bounds for length 42
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsIdentityCat1Group</code>( <var class="Arg">C0</var> )</td><td class="tdright"rec(1=rec(enerators:=[0100,[-,10,0],[0,0,
<p><code class="code">IsIdentityCat1Group(C0)</code> is true when the head and tail maps of <code class="code">C0</code> are identity mappings.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G8 := SmallGroup( 288956 );  SetName( G8, "G8" );</span>
<pc group of size 288 with 7 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">d12 := DihedralGroup( 12 );  SetName( d12, "d12" );</span>
<pc group of size 12 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">a1 := d12.1;;  a2 := d12.2;;  a3 := d12.3;;  a0 := One( d12 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gensG8 := GeneratorsOfGroup( G8 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t8 := GroupHomomorphismByImages( G8, d12, gensG8,</span>
<spanclass="APprompt">><span> <span class="GAPinput">          [ a0, a1*a3, a2*a3, a0, a0, a3, a0 ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">h8 := GroupHomomorphismByImages( G8, d12, gensG8,</span>
<span class="GAPprompt">></span> <span class="GAPinput">          [ a1*a2*a3, a0, a0, a2*a3, a0, a0, a3^2 ] );;                   </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e8 := GroupHomomorphismByImages( d12, G8, [a1,a2,a3],</span>
<span class="GAPprompt">></span> <span class="GAPinput">       [ G8.1*G8.2*G8.4*G8.6^2, G8.3*G8.4*G8.6^2*G8.7, G8
,f3*f4*f6^2**f7,  ^ java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 19
[G8=>d12]
<span class="GAPprompt"gapgt;span <pan class="APinput">( C8)<span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">KnownPropertiesOfObject( C8 );</span>
"CanEasilyCompareElements""CanEasilySortElements""IsDuplicateFree"
  "IsGeneratorsOfSemigroup""IsPreCat1Domain""IsPc2DimensionalGroup"
  "IsPreXMod""IsPreCat1Group""IsCat1Group""IsIdentityPreCat1Group"
  "IsPreCat1GroupWithIdentityEmbedding" ]

</pre></div>

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

<h5>2.5-2 IsPreCat1GroupWithIdentityEmbedding</h5>

<div1,1,],,],001],ormsize:=24)
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsomorphicPreCat1GroupWithIdentityEmbedding</code>( <var class="Arg">C0</var> )</td><td class
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsomorphismToPreCat1GroupWithIdentityEmbedding</code>( <var class="Arg">C0</var> )</td><td class="tdright">( attribute )</td></tr></table></java.lang.StringIndexOutOfBoundsException: Range [1, 254) out of bounds for length 19
<p><code class="code">IsPreCat1GroupWithIdentityEmbedding(C0)</code> is true when the range embedding of <code class="code">C0</code> is an inclusion mapping. (This [-,0,][,1,][,,1


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G5 := Group( (1,2,3,4,5) );;                                             </span>
<span java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 1
< class="">gap>/span < class="GAPinput">:=(t,t,t ;</span>
[Group( [ (1,2,3,4,5) ] )=>Group( [ (1,2,3,4,5) ] )]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsPreCat1GroupWithIdentityEmbedding( PC5 );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IPC5 := IsomorphicPreCat1GroupWithIdentityEmbedding( PC5 );</span>
[Group( [ (1,2,3,4,5) ] )=>Group( [ (1,2,3,4,5) ] )]
<span class="GAPprompt[1,00][10,,,1]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
[ (1,2,3,4,5) ] -> [ (1,2,3,4,5) ]
123,5  -; [ 1,,,) 

</pre></div>

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

<h5>2.5-3 Cat1GroupOfXMod</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Cat1GroupOfXMod</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; XModOfCat1Group</code>( <var class="Arg">C0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; PreCat1GroupRecordOfPreXMod</code>( <var class="Arg">P0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; PreXModRecordOfPreCat1Group</code>( <var class="Arg">P0</var> )</td><td class="tdright">( attribute )</td></tr></table></1:recgenerators:[[0,,,0,-,10,][,,,
<p>The category of crossed modules is equivalent to the category of cat<span class="SimpleMath">\(^1\)</span>-groups, and the functors between these two categories may be described as follows. Starting with the crossed module <span class="SimpleMath">\(\calX = (\partial : S \to R)\)</span> the group <span class="SimpleMath">\(G\)</span> is defined as the semidirect product <span class="SimpleMath">\(G = R \ltimes S\)</span> using the java.lang.StringIndexOutOfBoundsException: Index 444 out of bounds for length 12

<p class="center">\[
(r_1,s_1)(r_2,s_2) ~=~ (r_1r_2,{s_1}^{r_2}s_2).
\]</p>

<p>The structural morphisms are given by</p>

<p class="center">\[
t(r,s) = r, \quad h(r,s) = r (\partial s), \quad er = (r,1).
\]</p>

<p>On=rec(generators:[01,0,-,-,,][0,

<p>As from version 21,0]],[0,,,],


<ul>
<li><p><code class="code">.precat1</code>, the pre-cat<span class="SimpleMath">\(^1\)</span>-group <span class="SimpleMath">\(C = (e;t,h: G \to R)\)</span> of <span class="SimpleMath">\(X\)</span>, where <span class="SimpleMath">\(G = R \ltimes S\)</span>;</p>

</li>
<li><p><code class="code">.iscat1</code>, true if <span class="SimpleMath">\(C\)</span> is a cat<span class="SimpleMath">\(^1\)</span>-group;</p>

</li[-,][0-1][0-1]
<li><p><code class="code">.xmodSourceEmbedding</code>, the image <span class="SimpleMath">\(S'\)</span> of <span class="SimpleMath">\(S\)</span> in <span class="SimpleMath">\(G\)</span>;</p>

<>
<li><p><code class="code">.xmodSourceEmbeddingIsomorphism</code>, the isomorphism <span class="SimpleMath">\(S \to S'\)</span>;</p>

</lirec(generators:=[[,1,,],0,,,],[,0,,0]
<li><p><code class="code">.xmodRangeEmbedding</code>, the image <span class="SimpleMath">\(R'\)</span> of <span class="SimpleMath">\(R\)</span> in <span class="SimpleMath">\(G\)</span>;</p>

</li>
<li><p><code class="code"[,,,]]]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

<
</ul>

<div[1,,0,[,-0,00-1]

<span class="GAPprompt">gap></span> <span class="GAPinput">X8 := XModOfCat1Group( C8 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( X8 );</span>

 module X([=gt;]) :-
Source group has generators:
  [ f1, f4, f5, f7 ]
: Range0-100,[00,],[0,-,],
  [ f1, f2, f3 ]
: Boundary homomorphism maps source generators to:
  [ f1*f2*f3, f2*f3, <identity> of ..., f3^2 ]
: Action homomorphism maps range generators to automorphisms:
  f1 -->0-1,0,-10,][,,1],
  f2 --> { source gens --> [ f1*f5*f7^2, f4, f5, f7 ] }
  f3 --> { source gens --> [ f1*f7, f4, f5, f7 ] }
  These 3 [[-1,0,0],[0,-10,0,,]]
: associated cat1-group is [G8=>d12]

<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription(X8);</span>
"D24""D12" ]


</pre></div>

<p><a id="X80D6CB4080417BFA" name="java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 1

<h4>2.6 <span class="Heading">Enumerating cat<span class="SimpleMath">\(^1\)</span>-groups with a given source</span></h4>

<p>As the size of a group <span class="SimpleMath">\(G\)</span> increases, the number of cat<span class="SimpleMath">\(^1\)</span>-groups with source <span class="001]]

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

<h5>2.6-1 AllCat1GroupsWithImage</h5>

<iv class""<class"%"><< java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 256
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; AllCat1GroupsWithImageIterator</code>( <var class="Arg">G</var>, <var class="Arg">R</var> )</td><td class="tdright">( java.lang.StringIndexOutOfBoundsException: Index 229 out of bounds for length 29
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; AllCat1GroupsWithImageNumber</code>( <var class="Arg">G</var>, <var class="Arg">R</var> )</td><td class="tdright">( attribute )</td></tr>[0,,],100,00,1]],
< class="func"< class=" ="100%>tr< class=""<code class=func"ã AllCat1GroupsWithImageUpToIsomorphism( <var class="Arg">G</var>, <var class="Arg">R</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>The iterator <code class="code">AllCat1GroupsWithImageIterator(G,R)</code> iterates through all the cat<span class="SimpleMath">\(^1\)</span>-groups with source <code class="code">G</code> and range <span class="SimpleMath">\(R\)</span>. The attribute <code class="code">AllCat1GroupsWithImageNumber(G)</code> runs through this iterator to count the number <span class="SimpleMath"


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">d12 := DihedralGroup( IsPermGroup, 12 );  SetName( d12, "d12" );</span>
Group([ (1,2,3,4,5,6), (2,6)(3,5) ])
<pan="GAPprompt"gapgt;/> <span class=GAPinput"> = Subgroup ,[ 1,(,)(4 ]);</>
<span class="GAPprompt">gap></span> <span class="GAPinput">AllCat1GroupsWithImageNumber( d12, c2 );</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">L12 := AllCat1GroupsWithImage( d12, c2 );</span>
[ [d12=>Group( [ (), (1,6)(2,5)(3,4) ] )] ]

</pre></div>

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

<h5>2.6-2 AllCat1GroupsMatrix</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; AllCat1GroupsMatrix</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The operation <code class[010,][,,0,0,-,],

<p>In the example we see that the group <span class="SimpleMath">\(QD_{16}\)</span> has <span class="SimpleMath">\(10\)</span> idempotent endomorphisms and <span class="SimpleMath">\(5\)</span> cat<span class="SimpleMath">\(^1\)</span>basis:=[[10,][,0,00,]

<p>The attribute <code class="code">AllCat1GroupsNumber(G)</code> returns the number <span class="SimpleMath">\(n\)</span> of these cat<span class="SimpleMath">\(^1\)</span>-groups.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">qd16 := SmallGroup( 168 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AllCat1GroupsMatrix( qd16 );;                 </span>
number of idempotent endomorphisms found = 10
number of cat1-groups found = 5
number of additional pre-cat1-groups found = 9
1.........
.21...
.11.......
...21.....
...11.....
.....21...
.....11...
.......21.
.......11.
.........2

</pre></div>

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

<h5>2.6-3 AllCat1GroupsIterator</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; AllCat1GroupsIterator</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation [-,0,][,,],[0,,1,
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; AllCat1GroupsUpToIsomorphism</code>( <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">&#an style='color: green'>8227; AllCat1Groups</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>The iterator <code class="code">AllCat1GroupsIterator(G)</code> iterates through all the cat<span class="SimpleMath">\(^1\)</span>-groups with source <code class="code">G</code>. The operation <code class="code">AllCat1Groups(G)</code> returns a list containing these <span class="SimpleMath">\(n\)</span> cat<span class="SimpleMath,


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">iter := AllCat1GroupsIterator( d12 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AllCat1GroupsNumber( d12 );</span>
12
<span class="GAPprompt">gap></span> <span class="GAPinput:=[10,][1,,1],
[ [d12=>Group( [ (), (2,6)(3,5) ] )], 
  [d12=>Group( [ (1,4)(2,5)(3,6), (2,6)(3,5) ] )], 
  [d12=>Group( [ (1,5,3)(2,6,4), (2,6[,0][,,,0,,1,
  [d12=>Group( [ (1,2,3,4,5,6), (2,6)(3,5) ]10,[,,,00-],

</pre></div>

<p><a id="X7C6346A17FEEDFA1[[,-10][-,0,0,[0,,1],

<h5>2.6-4 CatnGroupNumbers</h5>

<div class="func"><table [[0,,],1,,][,1]java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; CatnGroupLists</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; InitCatnGroupRecords</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table[0100,[,,,,[,,-,,
<p>The attribute <code class="code">CatnGroupNumbers</code> for a group <span class="SimpleMath">\(G\)</span> is a mutable record which stores numbers of cat<span class="SimpleMath">\(^1\)</span>-groups, cat<span class="SimpleMath">\(^2\)</span>-groups, etc. as they are calculated. The field <code class="code">CatnGroupNumbers:[[1,],[,1,0][00,


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">CatnGroupNumbers( d12 );</span>
rec( cat1 := 12, idem := 21, iso1 := 4, siso := 4, symm := 12 )

</pre></div>

<p><a id="X7A6A70BD86DE458Dr(generators=[[,00,[0010,,,,]

<h4>2.7 <span class="Heading">Selection of a small cat<span java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 11

<p>The <code class="code">Cat1Group</code> function may also be used to select a cat<span class="SimpleMath">\(^1\)</span>-group from a data file. All cat<span class="SimpleMath">\(^1\)</span>-structures on groups of size up to <span class="SimpleMath">\(60=[00,[,1,][,0,1],

<p>This data was available in early versions of <java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 29

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

<h5>2.7-1 Cat1Select</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Cat1Select</code>( <var classrec(
<pThefunction <codeclass=c"Cat1Select</code> returns the cat<span class="SimpleMath">\(^1\)</span>-group numbered <code class="code">num</code> whose source is the group <code class="code">G := SmallGroup(size,gpnum)</code>. When <span class="SimpleMath">\(|G| \leqslant 60\)</span> the data file in this package is used. For larger groups <code class="code">SmallCat1Group</code> (see <a href="chap13_mj.html#X865CE53A827FBE6F"><span class="RefLink">13.1</span></a>) is called, accessing the datafile in package <strong class="pkg">HAP</strong>.</p>

<p>The example below is the first case0,,,]]],


<=example"<>

<span class="GAPprompt">gap></span> <span class="GAPinput">L18 := Cat1Select( 18 ); </span>
Usage:  Cat1Select( size, gpnum, num );  where gpnum <= 5
fail
<span class="GAPprompt">gap></span> <span class="GAPinput">## check the number of cat1-structures on the fourth group of order 18 </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Cat1Select( 184 );</span>
Usage:  Cat1Select( size, gpnum, num );  where num <= 4
fail
<[[-1,0,0-,][,,-],
<span class="GAPprompt">gap></span> <span class="GAPinput">B18 := Cat1Select( 1842 );</span>
[(C3 x C3) : C2=>Group( [ f1, <identity> java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 28
<span class="GAPprompt">gap></span> <span class="GAPinput">## convert from a pc-cat1-group to a permutation cat1-group</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">iso18 := IsomorphismPermObject( B18 );;</span>
<span class="GAPprompt">gap&[1,1,0],[-1,0,0],[0,0,1]]],normsize24)
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( PB18 );</span>
Cat1-group :- 
Source group has generators:
  [ (4,5,6), (1,2,3), (2,3)(5,6) ]
: Range group has generators:
  [ (4,5,6), (2,3)(5,6) ]
: tail homomorphism maps source generators to:
  [ (4,5,6), (), (2,3)(5,6) ]
head homomorphism mapssource  tojava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
  [ (4,5,6), (), (2,3)(5,6) ]
: range embedding maps range generators to:
  [ (4,5,6), (2,3)(5,6) ]
: kernel has generators:
  [ (1,2,3) ]
: boundary homomorphism maps generators of kernel to:
  [ () ]
: kernel embedding maps generators of kernel to:
  [ (1,2,3) ]

<span class="GAPprompt">gap></span> <span class="GAPinput">convert the result01,][,00][,,],
<span class="GAPprompt">gap></span> <span class="GAPinput">Y18 := XModOfCat1Group( PB18 );; <[,0][,0],00]]normsize:=24)
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( Y18 )
Crossed module :- 
Source group has generators:
  [ (1,2,3) ]
: Range ,0],[0,0,0]
  [ (4,5,6), (2,3)(5,6) ]
: Boundary homomorphism maps source generators to:
  [ () ]
: Action homomorphism maps range generators to automorphisms:
  (4,5,6) --> { source gens --> [ (1,2,3) ] }
  (,3)(5,6) --> { source gens --> [ (1,3,2) ] }
  These 2 normgens:=[[[0,1,0],[-1,-1,0],[0,0,1]],
: associated cat1-group is [Group( [ (4,5,6), (1,2,3), (2,3)(5,6
 ] ) => Group[,-,]100],[,,],

</pre></div>

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

<[-,],[-,,0[,,]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

<p>Chapter <a href="chap4_mj.html#X802AFE8E7EDB435E"><span class="RefLink">4</span></a> contains functions java.lang.StringIndexOutOfBoundsException: Range [1, 110) out of bounds for length 42

<p>(1:rec(generators:[[,,0,0],,10,,[00java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

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

<h5>2.8-[,0,,12,],

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><codebasis:=[1,0],010,00,1],
<iv ="func><tableclass"uncwidth="100"<<"><codeclass=">&#227 StructureDescription</codevar class=Arg"2/>)<tdtdclass"tdright"&bsp;operation&;)/td</tr></table></div>
<p>These functions return two-element lists formed by applying the function to the source and range of the 2d-group.</p>


<div class="example"><pre>

<[0-,0[-,,][0,,],
[ [ 246 ], [ 124 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( C8 );</span>
"(S3 x D24) : C2""D12" ]

</pre></div>

<p>There are also a number of functions which test for sub-structures.</p>

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

<h5>2.8-2 IsSubXMod</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsSubXMod</code>( <var class="Arg">X0</var>, <var class="Arg">S0</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">&#an style='color: green'>8227; IsSubPreXMod</code>( <var class="Arg">X0</var>, <var class="Arg">S0</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code[0-,]-,,],0,01]]
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsSubPreCat1Group</code>( <var class="Arg">G0</-,10][,00,00,]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
< class="func"><able class="func" width="100%"><tr><td class="tdleft"><code class="func">&#tyle='color: green'>8227; IsSub2DimensionalGroup/ode(< =""G0/>,< =Arg><var)td>td ="java.lang.StringIndexOutOfBoundsException: Range [210, 209) out of bounds for length 258
<p>These functions test whether the second argument is a sub-2d-group of the first argument. The examples refer back to sub-2d-groups created in sections <a href="chap2_mj.html#X7CF622538749FE73"><span class="RefLink">2.2</span></a> and <a href="chap2_mj.html#X7AAABC1D7E110988"><span class="RefLink">2.4</span></a>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubXMod( X4, Y4 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubPreCat1Group( C, S )=[[0,0,00,,[0,0],
true

</pre></div>

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

spanclass"eading"> group associatedto a cat< ="\^\<span-group<span>/>

<p>A <em>group groupoid</em> is an algebraic object which is both a groupoid and a group. The category of group groupoids is equivalent to the categories of precrossed modules and[,,],0,,1,0,,]]],:=12),

<p>The groupoid (partial) multiplication <span class="SimpleMath">\(*\)</span> on these arrows is defined by:</p>

<p class="center">\[
(g_1 : r_1 \to r_2) * (g_2 : r_2 \to r_3) ~=~ (g_1(er_2^{-1})g_2 : r_1 \to r_3). 
\]</p>

<p0,,/2,]]java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14

<h5>2.9-1 GroupGroupoid</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; GroupGroupoid</code>( <var class="Arg">precat1</var> )</td>normgens:=[[010],[-1,-1,0][001]],
<p>The operation <code class="code">GroupGroupoid</code> implements this construction. In the example we start with a crossed module <span class="SimpleMath">\((C_3^2 \to S_3)\)</span>, form the associated cat<span class="SimpleMath">\(^1\)</span>-group <span class="SimpleMath">\((S_3 \ltimes C_3^2 \Rightarrow S_3)\)</span>, and then form the group groupoid <code class="code">gpd33<[,1,][10,][,,],


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">s3 := Group( (11<110]0-,0,0,,]],:12,
<span class="GAPprompt">gap></span> <span class="GAPinput">c3c3 := Group( [ (14,15,16), (17,18,19) ] );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">bdy := GroupHomomorphismByImages( c3c3, s3, </span>
<span class="GAPprompt">></span> <span class="GAPinput">       [(14,15,16),(17,18,19)], [(11,12,13),(11,12,13)] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := GroupHomomorphismByImages( c3c3, c3c3, </span>
<span class="GAPprompt">></span> <span class="GAPinput">       [(14,15,16),(17,18,19)], [(14,16,15),(17,19,18)] );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">aut := Group( [a] );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">act := GroupHomomorphismByImages( s3, aut, [(11,12),(12,13)], [a,a] );;</span>
>&/> java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 114
<span class="GAPprompt">gap></span> <span class="GAPinput">C33 := Cat1GroupOfXMod( X33 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G33 := Source( C33 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gpd33 := GroupGroupoid( C33 ); </span>
groupoid with 2 pieces:
1:  single piece groupoid with rays: < Group( [ ()>-(4,5,6)(7,9,8)->() ] ), 
[ (), (11,12,13), (11,13,12) ], [ ()>-()->(), ()>-(7,8,9)->(11,12,13), 
  ()>-(7,9,8)->(11,13,12) ] >
2:  single piece groupoid with rays: < Group( 
[ (12,13)>-(2,3)(4,6)(7,8)->(12,13) ] ), [ (12,13), (11,12), (11,13) ], 
[ (12,13)>-(2,3)(5,6)(8,9)->(12,13), (12,13)>-(2,3)(5,6)(7,9)->(11,13), 
  (12,13)>-(2,3)(5,6)(7,8)->(11,12) ] >

</pre></div>

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

<h5>2.9-2 GroupGroupoidElement</h5>

<div class="func"><table class="func" java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 29
<p>Since we need to define a second multiplication on the elements of <span class="SimpleMath">\(G\)</span>, we have to convert <span class="SimpleMath">\(g \in G\)</span> into a new type of object, <code class="code">GroupGroupoidElementType</code>, a record <span class="SimpleMath">\(e\)</span> with fields:</p>


<ul>
<li><p><code class="code">e!.precat1</code>, the precat<span class="SimpleMath">\(^1\)</span>-group from which <span class="SimpleMath">\(\calG\)</span> was formed;</p>

</li>
<li><p><code class="code">e!.root</code>, the root object of the component containing <span class="SimpleMath">\(e\)</span>;</p>

</li>
<li><p><code class="code">e!.element</code>, the element <span class="SimpleMath">\(g \in G\)</span>;</p>

</li>
<li><p><code class="code">e!.tail</code>, the tail object of the element[,10,][100,],0,-,,

</li>
<li><p><code class="code">e!.head</code>, the head object[-100][0,-,0,],0,0-,],

</li>
<li><p><code class="code">e!.tailid</code>, the identity element at the tail object;</p>

</li>
<li><p><code class="code">e!.headid</code>, the identity element at the head object;</p>

</li>
</ul>
<p>In the example we pick a particular pair of elements <span class="SimpleMath">\(g_1,g_2 \in G\)</span>, construct group groupoid elements <span class="SimpleMath">\(e_1,e_2\)</span> from them


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">piece2 := Pieces( gpd33 )[2];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">obs2 := piece2,,0-,,0,,-],
[ (12,13), (11,12), (11,13) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">RaysOfGroupoid( piece2 );</span>
[ (12,13)>-(2,3)(5,6)(8,9)->(12,13), (12,13)>-(2,3)(5,6)(7,9)->(11,13), 
  (12,13)>-(2,3)(5,6)(7,8)->(11,12) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">g1 := (1,2)(5,6)(7,9);; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g2 := (2,3)(4,5)(7,8);;                         </span>
<:[100,0,,0,001]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
(1,3,2)(4,5,6)(7,9,8)
<span class="GAPprompt">gap></span> <span class="GAPinput">e1 := GroupGroupoidElement( java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 27
(11,12)>-(11,0][0,0-1],
<span class="GAPprompt">gap></span> <span class="GAPinput">e2 := GroupGroupoidElement( C33, (12,13), g2 );</span>
(12,13)>-(2,3)(4,5)(7,8)->(11,13)
<span class="GAPprompt">gap></span> <span class="GAPinput">e1*e2;</span>
(11,12)>-(1,2)(4,5)(8,9)->(11,13)
<span class="GAPprompt">gap></span> <span class="GAPinput">e2^-1;</span>
(11,13)>-(1,3)(4,6)(7,9)->(12,13)
<span class="GAPprompt">gap></span> <span class="GAPinput">obgp := ObjectGroup( gpd33, (11,12);;</span>
<span class="[,10]-100][,01],normsize:=24))
(11,13)>-( 13)( 46)( 78)->(11,13)
<pan class"GAPprompt">><span <class"GAPinput"Homset gpd33,(,1211,13 ;<span>
<homset (11,12) -> (11,13) with head group Group( 
[ (11,12)>-( 12)( 46)( 78)->-(1:=rec(generators:=[010,0,-1-100,00

</pre></div>


<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap1_mj.html">[Previous Chapter]</a>    <a href="chap3_mj.html">[Next Chapter]</a[01,0,10,,][,,1,]java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32


<div class="chlinkbot"><span0001]]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

Messung V0.5 in Prozent
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.30 Sekunden  (vorverarbeitet am  2026-09-11) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.