<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Source</code>( <var class="Arg">map</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">‣ Range</code>( <var class="Arg">map</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">‣ SourceHom</code>( <var class="Arg">map</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">‣ RangeHom</code>( <var class="Arg">map</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Morphisms of <em>2-dimensional groups</em> are implemented as <em>2-dimensional mappings</em>. These have a pair of 2-dimensional groups as source and range, together with two group homomorphisms mapping between corresponding source and range groups. These functions return <code class="code">fail</code> when invalid data is supplied.</p>
<p>Here <span class="SimpleMath">\(\sigma\)</span> is the <code class="func">SourceHom</code> (<a href="chap3_mj.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) and <span class="SimpleMath">\(\rho\)</span> is the <code class="func">RangeHom</code> (<a href="chap3_mj.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) of the morphism. When <span class="SimpleMath">\(\calX_{1} = \calX_{2}\)</span> and <span class="SimpleMath">\(\sigma, \rho\)</span> are automorphisms then <span class="SimpleMath">\((\sigma, \rho)\)</span> is an automorphism of <span class="SimpleMath">\(\calX_1\)</span>. The group of automorphisms is denoted by <span class="SimpleMath">\({\rm Aut}(\calX_1 )\)</span>.</p>
<p>In the following example we construct a simple automorphism of the crossed module <code class="code">X5</code> constructed in the previous chapter.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismPerm2DimensionalGroup</code>( <var class="Arg">obj</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">‣ IsomorphismPc2DimensionalGroup</code>( <var class="Arg">obj</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">‣ IsomorphismByIsomorphisms</code>( <var class="Arg">D</var>, <var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>When <span class="SimpleMath">\(\calD\)</span> is a <span class="SimpleMath">\(2\)</span>-dimensional domain with source <span class="SimpleMath">\(S\)</span> and range <span class="SimpleMath">\(R\)</span> and <span class="SimpleMath">\(\sigma : S \to S',~ \rho : R \to R'\)</span> are isomorphisms, then <code class="code">IsomorphismByIsomorphisms(D,[sigma,rho])</code> returns an isomorphism <span class="SimpleMath">\((\sigma,\rho) : \calD \to \calD'\) where \(\calD'\)</span> has source <span class="SimpleMath">\(S'\) and range \(R'\)</span>. Be sure to test <code class="code">IsBijective</code> for the two functions <span class="SimpleMath">\(\sigma,\rho\)</span> before applying this operation.</p>
<p>Using <code class="func">IsomorphismByIsomorphisms</code> with a pair of isomorphisms obtained using <code class="code">IsomorphismPermGroup</code> or <code class="code">IsomorphismPcGroup</code>, we may construct a crossed module or a cat<span class="SimpleMath">\(^1\)</span>-group of permutation groups or pc-groups.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismOfPullback</code>( <var class="Arg">xmod</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Let <span class="SimpleMath">\(\calX_1 = (\lambda : L \to N)\)</span> be the pullback crossed module obtained from a crossed module <span class="SimpleMath">\(\calX_0 = (\mu : M \to P)\)</span> and a group homomorphism <span class="SimpleMath">\(\nu : N \to P\)</span>. Then the associated crossed module morphism is <span class="SimpleMath">\((\kappa,\nu) : \calX_1 \to \calX_0\)</span> where <span class="SimpleMath">\(\kappa\)</span> is the projection from <span class="SimpleMath">\(L\)</span> to <span class="SimpleMath">\(M\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Cat1GroupMorphismOfXModMorphism</code>( <var class="Arg">IsXModMorphism</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">‣ XModMorphismOfCat1GroupMorphism</code>( <var class="Arg">IsCat1GroupMorphism</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>If <span class="SimpleMath">\((\sigma,\rho) : \calX_1 \to \calX_2\)</span> and <span class="SimpleMath">\(\calC_1,\calC_2\)</span> are the cat<span class="SimpleMath">\(^1\)</span>-groups accociated to <span class="SimpleMath">\(\calX_1, \calX_2\)</span>, then the associated morphism of cat<span class="SimpleMath">\(^1\)</span>-groups is <span class="SimpleMath">\((\gamma,\rho)\)</span> where <span class="SimpleMath">\(\gamma(r_1,s_1) = (\rho r_1, \sigma s_1)\)</span>.</p>
<p>Similarly, given a morphism <span class="SimpleMath">\((\gamma,\rho) : \calC_1 \to \calC_2\)</span> of cat<span class="SimpleMath">\(^1\)</span>-groups, the associated morphism of crossed modules is <span class="SimpleMath">\((\sigma,\rho) : \calX_1 \to \calX_2\)</span> where <span class="SimpleMath">\(\sigma s_1 = \gamma(1,s_1)\)</span>. .</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismPermObject</code>( <var class="Arg">obj</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">‣ IsomorphismPerm2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</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">‣ IsomorphismFp2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</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">‣ IsomorphismPc2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</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">‣ RegularActionHomomorphism2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The global function <code class="code">IsomorphismPermObject</code> calls <code class="code">IsomorphismPerm2DimensionalGroup</code>, which constructs a morphism whose <code class="func">SourceHom</code> (<a href="chap3_mj.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) and <code class="func">RangeHom</code> (<a href="chap3_mj.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) are calculated using <code class="code">IsomorphismPermGroup</code> on the source and range.</p>
<p>The global function <code class="code">RegularActionHomomorphism2DimensionalGroup</code> is similar, but uses <code class="code">RegularActionHomomorphism</code> in place of <code class="code">IsomorphismPermGroup</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SmallerDegreePermutationRepresentation2DimensionalGroup</code>( <var class="Arg">Perm2DimensionalGroup</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The attribute <code class="code">SmallerDegreePermutationRepresentation2DimensionalGroup</code> is obtained by calling <code class="code">SmallerDegreePermutationRepresentation</code> on the source and range to obtain the an isomorphism for the pre-xmod or pre-cat<span class="SimpleMath">\(^1\)</span>-group.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CompositionMorphism</code>( <var class="Arg">map2</var>, <var class="Arg">map1</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Composition of morphisms (written <code class="code">(<map1> * <map2>)</code> when maps act on the right) calls the <code class="func">CompositionMorphism</code> function for maps (acting on the left), applied to the appropriate type of 2d-mapping.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Kernel</code>( <var class="Arg">map</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">‣ Kernel2DimensionalMapping</code>( <var class="Arg">map</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The kernel of a morphism of crossed modules is a normal subcrossed module whose groups are the kernels of the source and target homomorphisms. The inclusion of the kernel is a standard example of a crossed square, but these have not yet been implemented.</p>
<p>A morphism of crossed modules <span class="SimpleMath">\( \phi : \calX = (\partial : S \to R) \to \calX' = (\partial' : S' \to R') \)</span> induces homomorphisms <span class="SimpleMath">\(\pi_1(\phi) : \pi_1(\partial) \to \pi_1(\partial')\) and \(\pi_2(\phi) : \pi_2(\partial) \to \pi_2(\partial')\)</span>. A morphism <span class="SimpleMath">\(\phi\)</span> is a <em>quasi-isomorphism</em> if both <span class="SimpleMath">\(\pi_1(\phi)\)</span> and <span class="SimpleMath">\(\pi_2(\phi)\)</span> are isomorphisms. Two crossed modules <span class="SimpleMath">\(\calX,\calX'\) are quasi-isomorphic is there exists a sequence of quasi-isomorphisms
<p>of length <span class="SimpleMath">\(\ell-1\)</span>. Here <span class="SimpleMath">\(\calX_i \leftrightarrow \calX_j\)</span> means that <em>either</em> <span class="SimpleMath">\(\calX_i \to \calX_j\)</span> <em>or</em> <span class="SimpleMath">\(\calX_j \to \calX_i\)</span>. When <span class="SimpleMath">\(\calX,\calX'\) are quasi-isomorphic we write \(\calX \simeq \calX'\)</span>. Clearly <span class="SimpleMath">\(\simeq\)</span> is an equivalence relation. Mac\ Lane and Whitehead in <a href="chapBib_mj.html#biBMW">[MLW50]</a> showed that there is a one-to-one correspondence between homotopy <span class="SimpleMath">\(2\)</span>-types and quasi-isomorphism classes. We say that <span class="SimpleMath">\(\calX\)</span> represents a <em>trivial</em> quasi-isomorphism class if <span class="SimpleMath">\(\partial=0\)</span>.</p>
<p>Two cat<span class="SimpleMath">\(^1\)</span>-groups are quasi-isomorphic if their corresponding crossed modules are. The procedure for constructing a representative for the quasi-isomorphism class of a cat<span class="SimpleMath">\(^1\)</span>-group <span class="SimpleMath">\(\calC\)</span>, as described by Ellis and Le in <a href="chapBib_mj.html#biBEL">[EL14]</a>, is as follows. The <em>quotient process</em> consists of finding all normal sub-crossed modules <span class="SimpleMath">\(\calN\)</span> of the crossed module <span class="SimpleMath">\(\calX\)</span> associated to <span class="SimpleMath">\(\calC\)</span>; constructing the quotient crossed module morphisms <span class="SimpleMath">\(\nu : \calX \to \calX/\calN\)</span>; and converting these <span class="SimpleMath">\(\nu\)</span> to morphisms from <span class="SimpleMath">\(\calC\)</span>.</p>
<p>The <em>sub-crossed module process</em> consists of finding all sub-crossed modules <span class="SimpleMath">\(\calS\)</span> of <span class="SimpleMath">\(\calX\)</span> such that the inclusion <span class="SimpleMath">\(\iota : \calS \to \calX\)</span> is a quasi-isomorphism; then converting <span class="SimpleMath">\(\iota\)</span> to a morphism to <span class="SimpleMath">\(\calC\)</span>.</p>
<p>The procedure for finding all quasi-isomorphism reductions consists of repeating the quotient process, followed by the sub-crossed module process, until no further reductions are possible.</p>
<p>It may happen that <span class="SimpleMath">\(\calC_1 \simeq \calC_2\)</span> without either having a quasi-isomorphism reduction. In this case it is necessary to find a suitable <span class="SimpleMath">\(\calC_3\)</span> with reductions <span class="SimpleMath">\(\calC_3 \to \calC_1\)</span> and <span class="SimpleMath">\(\calC_3 \to \calC_2\)</span>. No such automated process is available in <strong class="pkg">XMod</strong>.</p>
<p>Functions for these computations were first implemented in the package <strong class="pkg">HAP</strong> and are available as <code class="code">QuotientQuasiIsomorph</code>, <code class="code">SubQuasiIsomorph</code> and <code class="code">QuasiIsomorph</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ QuotientQuasiIsomorphism</code>( <var class="Arg">cat1</var>, <var class="Arg">bool</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This function implements the quotient process. The second parameter is a boolean which, when true, causes the results of some intermediate calculations to be printed. The output shows the identity of the reduced cat<span class="SimpleMath">\(^1\)</span>-group, if there is one.</p>
<p>The logs above show that <code class="code">C18a</code> has just one normal sub-crossed module <span class="SimpleMath">\(\calN\)</span> leading to a reduction, and that there are three sub-crossed modules <span class="SimpleMath">\(\calS\)</span> all giving the same reduction. The conclusion is that <code class="code">C18a</code> is quasi-isomorphic to the identity cat<span class="SimpleMath">\(^1\)</span>-group on the cyclic group of order <span class="SimpleMath">\(2\)</span>.</p>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.