Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

563629 views
1
<!-- ------------------------------------------------------------------- -->
2
<!-- -->
3
<!-- gp2map.xml XMod documentation Chris Wensley -->
4
<!-- & Murat Alp -->
5
<!-- Copyright (C) 2001-2017, Chris Wensley et al, -->
6
<!-- School of Computer Science, Bangor University, U.K. -->
7
<!-- -->
8
<!-- ------------------------------------------------------------------- -->
9
10
<?xml version="1.0" encoding="UTF-8"?>
11
12
<Chapter Label="chap-gpmap2">
13
<Heading>2d-mappings</Heading>
14
<Index>2d-mapping</Index>
15
16
<Section><Heading>Morphisms of 2-dimensional groups</Heading>
17
18
<Index>morphism of 2d-group</Index>
19
<Index>crossed module morphism</Index>
20
This chapter describes morphisms of (pre-)crossed modules
21
and (pre-)cat1-groups.
22
23
<ManSection>
24
<Attr Name="Source"
25
Arg="map" />
26
<Attr Name="Range"
27
Arg="map" />
28
<Attr Name="SourceHom"
29
Arg="map" />
30
<Attr Name="RangeHom"
31
Arg="map" />
32
<Description>
33
Morphisms of <E>2-dimensional groups</E> are implemented as
34
<E>2-dimensional mappings</E>.
35
These have a pair of 2-dimensional groups as source and range,
36
together with two group homomorphisms mapping between corresponding
37
source and range groups.
38
These functions return <C>fail</C> when invalid data is supplied.
39
</Description>
40
</ManSection>
41
</Section>
42
43
44
<Section><Heading>Morphisms of pre-crossed modules</Heading>
45
46
<Index>morphism</Index>
47
<ManSection>
48
<Prop Name="IsXModMorphism"
49
Arg="map" />
50
<Prop Name="IsPreXModMorphism"
51
Arg="map" />
52
<Description>
53
A morphism between two pre-crossed modules
54
<M>\mathcal{X}_{1} = (\partial_1 : S_1 \to R_1)</M> and
55
<M>\mathcal{X}_{2} = (\partial_2 : S_2 \to R_2)</M>
56
is a pair <M>(\sigma, \rho)</M>, where
57
<M>\sigma : S_1 \to S_2</M> and <M>\rho : R_1 \to R_2</M>
58
commute with the two boundary maps
59
and are morphisms for the two actions:
60
<Display>
61
\partial_2 \circ \sigma ~=~ \rho \circ \partial_1, \qquad
62
\sigma(s^r) ~=~ (\sigma s)^{\rho r}.
63
</Display>
64
Here is a diagram of the situation.
65
<Display><![CDATA[
66
\vcenter{\xymatrix{
67
S_1 \ar[rr]^{\sigma} \ar[dd]_{\partial_1}
68
&& S_2 \ar[dd]^{\partial_2} \\
69
&& \\
70
R_1 \ar[rr]_{\rho}
71
&& R_2
72
}}
73
]]></Display>
74
Here <M>\sigma</M> is the <C>SourceHom</C>
75
and <M>\rho</M> is the <C>RangeHom</C> of the morphism.
76
When <M>\mathcal{X}_{1} = \mathcal{X}_{2}</M>
77
and <M>\sigma, \rho</M> are automorphisms then
78
<M>(\sigma, \rho)</M> is an automorphism of <M>\mathcal{X}_1</M>.
79
The group of automorphisms is denoted
80
by <M>{\rm Aut}(\mathcal{X}_1 )</M>.
81
</Description>
82
</ManSection>
83
84
85
<ManSection>
86
<Prop Name="IsInjective"
87
Arg="map" />
88
<Prop Name="IsSurjective"
89
Arg="map" />
90
<Prop Name="IsSingleValued"
91
Arg="map" />
92
<Prop Name="IsTotal"
93
Arg="map" />
94
<Prop Name="IsBijective"
95
Arg="map" />
96
<Prop Name="IsEndo2DimensionalMapping"
97
Arg="map" />
98
<Description>
99
The usual properties of mappings are easily checked.
100
It is usually sufficient to verify that both the <C>SourceHom</C> and the
101
<C>RangeHom</C> have the required property.
102
</Description>
103
</ManSection>
104
105
<ManSection>
106
<Func Name="XModMorphism"
107
Arg="args" />
108
<Oper Name="XModMorphismByHoms"
109
Arg="X1 X2 sigma rho" />
110
<Func Name="PreXModMorphism"
111
Arg="args" />
112
<Oper Name="PreXModMorphismByHoms"
113
Arg="P1 P2 sigma rho" />
114
<Oper Name="InclusionMorphism2DimensionalDomains"
115
Arg="X1 S1" />
116
<Oper Name="InnerAutomorphismXMod"
117
Arg="X1 r" />
118
<Attr Name="IdentityMapping"
119
Arg="X1" />
120
<Description>
121
These are the constructors for morphisms of pre-crossed and crossed modules.
122
<P/>
123
In the following example we construct a simple automorphism of
124
the crossed module <C>X1</C> constructed in the previous chapter.
125
</Description>
126
</ManSection>
127
<P/>
128
<Index>display a 2d-mapping</Index>
129
<Index>order of a 2d-automorphism</Index>
130
<Example>
131
<![CDATA[
132
gap> sigma1 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ]
133
[ (5,9,8,7,6) ] );;
134
gap> rho1 := IdentityMapping( Range( X1 ) );
135
IdentityMapping( PAut(c5) )
136
gap> mor1 := XModMorphism( X1, X1, sigma1, rho1 );
137
[[c5->PAut(c5))] => [c5->PAut(c5))]]
138
gap> Display( mor1 );
139
Morphism of crossed modules :-
140
: Source = [c5->PAut(c5))] with generating sets:
141
[ (5,6,7,8,9) ]
142
[ (1,2,3,4) ]
143
: Range = Source
144
: Source Homomorphism maps source generators to:
145
[ (5,9,8,7,6) ]
146
: Range Homomorphism maps range generators to:
147
[ (1,2,3,4) ]
148
gap> IsAutomorphism2DimensionalDomain( mor1 );
149
true
150
gap> Order( mor1 );
151
2
152
gap> RepresentationsOfObject( mor1 );
153
[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2DimensionalMappingRep" ]
154
gap> KnownPropertiesOfObject( mor1 );
155
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",
156
"IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",
157
"IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2DimensionalDomain",
158
"IsAutomorphism2DimensionalDomain" ]
159
gap> KnownAttributesOfObject( mor1 );
160
[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]
161
]]>
162
</Example>
163
164
<ManSection>
165
<Attr Name="IsomorphismPerm2DimensionalGroup"
166
Arg="obj" />
167
<Attr Name="IsomorphismPc2DimensionalGroup"
168
Arg="obj" />
169
<Oper Name="IsomorphismByIsomorphisms"
170
Arg="D list" />
171
<Description>
172
When <M>{\mathcal D}</M> is a <M>2</M>-dimensional domain
173
with source <M>S</M> and range <M>R</M>
174
and <M>\sigma : S \to S',~ \rho : R \to R'</M> are isomorphisms,
175
then <C>IsomorphismByIsomorphisms(D,[sigma,rho])</C> returns an isomorphism
176
<M>(\sigma,\rho) : {\mathcal D} \to {\mathcal D}'</M>
177
where <M>{\mathcal D}'</M> has source <M>S'</M> and range <M>R'</M>.
178
Be sure to test <C>IsBijective</C> for the two functions
179
<M>\sigma,\rho</M> before applying this operation.
180
<P/>
181
Using <C>IsomorphismByIsomorphisms</C> with a pair of isomorphisms
182
obtained using <C>IsomorphismPermGroup</C> or <C>IsomorphismPcGroup</C>,
183
we may construct a crossed module or a cat1-group
184
of permutation groups or pc-groups.
185
</Description>
186
</ManSection>
187
<P/>
188
<Example>
189
<![CDATA[
190
gap> q8 := SmallGroup(8,4);; ## quaternion group
191
gap> Xq8 := XModByAutomorphismGroup( q8 );
192
[Group( [ f1, f2, f3 ] )->Group( [ f1, f2, f3, f4 ] )]
193
gap> iso := IsomorphismPerm2DimensionalGroup( Xq8 );;
194
gap> Yq8 := Image( iso );
195
[Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)
196
] )->Group( [ (2,6,5,4), (1,2,4)(3,5,6), (2,5)(4,6), (1,3)(2,5) ] )]
197
gap> s4 := SymmetricGroup(4);;
198
gap> isos4 := IsomorphismGroups( Range(Yq8), s4 );;
199
gap> id := IdentityMapping( Source( Yq8 ) );;
200
gap> IsBijective( id );; IsBijective( isos4 );;
201
gap> mor := IsomorphismByIsomorphisms( Yq8, [id,isos4] );;
202
gap> Zq8 := Image( mor );
203
[Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)
204
] )->SymmetricGroup( [ 1 .. 4 ] )]
205
]]>
206
</Example>
207
</Section>
208
209
210
<Section Label="sect-mor-pre-cat1">
211
<Heading>Morphisms of pre-cat1-groups</Heading>
212
213
A morphism of pre-cat1-groups from
214
<M>\mathcal{C}_1 = (e_1;t_1,h_1 : G_1 \to R_1)</M>
215
to <M>\mathcal{C}_2 = (e_2;t_2,h_2 : G_2 \to R_2)</M>
216
is a pair <M>(\gamma, \rho)</M> where
217
<M>\gamma : G_1 \to G_2</M> and <M>\rho : R_1 \to R_2</M>
218
are homomorphisms satisfying
219
<Display>
220
h_2 \circ \gamma ~=~ \rho \circ h_1, \qquad
221
t_2 \circ \gamma ~=~ \rho \circ t_1, \qquad
222
e_2 \circ \rho ~=~ \gamma \circ e_1.
223
</Display>
224
225
<ManSection>
226
<Prop Name="IsCat1Morphism"
227
Arg="map" />
228
<Prop Name="IsPreCat1Morphism"
229
Arg="map" />
230
<Func Name="Cat1Morphism"
231
Arg="args" />
232
<Oper Name="Cat1MorphismByHoms"
233
Arg="C1 C2 gamma rho" />
234
<Func Name="PreCat1Morphism"
235
Arg="args" />
236
<Oper Name="PreCat1MorphismByHoms"
237
Arg="P1 P2 gamma rho" />
238
<Oper Name="InclusionMorphism2DimensionalDomains"
239
Arg="C1 S1" />
240
<Oper Name="InnerAutomorphismCat1"
241
Arg="C1 r" />
242
<Attr Name="IdentityMapping"
243
Arg="C1" />
244
<Description>
245
For an example we form a second cat1-group <Code>C2=[g18=>s3a]</Code>,
246
similar to <C>C1</C> in <Ref Sect="mansect-cat1"/>,
247
then construct an isomorphism <M>(\gamma,\rho)</M> between them.
248
</Description>
249
</ManSection>
250
<P/>
251
<Example>
252
<![CDATA[
253
gap> t2 := GroupHomomorphismByImages(g18,s3a,g18gens,[(),(7,8,9),(8,9)]);;
254
gap> e2 := GroupHomomorphismByImages(s3a,g18,s3agens,[(4,5,6),(2,3)(5,6)]);;
255
gap> C2 := Cat1Group( t2, h1, e2 );;
256
gap> imgamma := [ (4,5,6), (1,2,3), (2,3)(5,6) ];;
257
gap> gamma := GroupHomomorphismByImages( g18, g18, g18gens, imgamma );;
258
gap> rho := IdentityMapping( s3a );;
259
gap> mor := Cat1Morphism( C1, C2, gamma, rho );;
260
gap> Display( mor );;
261
Morphism of cat1-groups :-
262
: Source = [g18=>s3a] with generating sets:
263
[ (1,2,3), (4,5,6), (2,3)(5,6) ]
264
[ (7,8,9), (8,9) ]
265
: Range = [g18=>s3a] with generating sets:
266
[ (1,2,3), (4,5,6), (2,3)(5,6) ]
267
[ (7,8,9), (8,9) ]
268
: Source Homomorphism maps source generators to:
269
[ (4,5,6), (1,2,3), (2,3)(5,6) ]
270
: Range Homomorphism maps range generators to:
271
[ (7,8,9), (8,9) ]
272
]]>
273
</Example>
274
275
<ManSection>
276
<Func Name="IsomorphismPermObject"
277
Arg="obj" />
278
<Attr Name="IsomorphismPerm2DimensionalGroup"
279
Arg="2DimensionalGroup" />
280
<Attr Name="IsomorphismFp2DimensionalGroup"
281
Arg="2DimensionalGroup" />
282
<Attr Name="IsomorphismPc2DimensionalGroup"
283
Arg="2DimensionalGroup" />
284
<Func Name="SmallerDegreePerm2DimensionalDomain"
285
Arg="2DimensionalDomain" />
286
<Description>
287
The global function <C>IsomorphismPermObject</C>
288
calls <C>IsomorphismPerm2DimensionalGroup</C>,
289
which constructs a morphism whose <C>SourceHom</C> and <C>RangeHom</C>
290
are calculated using <C>IsomorphismPermGroup</C> on the source and range.
291
Similarly <C>SmallerDegreePermutationRepresentation</C> may be used on the
292
two groups to obtain <C>SmallerDegreePerm2DimensionalDomain</C>.
293
Names are assigned automatically.
294
</Description>
295
</ManSection>
296
<P/>
297
<Example>
298
<![CDATA[
299
gap> iso2 := IsomorphismPerm2DimensionalGroup( C2 );
300
[[G2=>d12] => [..]]
301
gap> Display( iso2 );
302
Morphism of cat1-groups :-
303
: Source = [G2=>d12] with generating sets:
304
[ f1, f2, f3, f4, f5, f6, f7 ]
305
[ f1, f2, f3 ]
306
: Range = P[G2=>d12] with generating sets:
307
[ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24),
308
( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27),
309
( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)
310
(21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)
311
(15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)
312
(13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3),
313
( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)
314
(16,23,27) ]
315
[ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ]
316
: Source Homomorphism maps source generators to:
317
[ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24),
318
( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27),
319
( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)
320
(21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)
321
(15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)
322
(13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3),
323
( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)
324
(16,23,27) ]
325
: Range Homomorphism maps range generators to:
326
[ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ]
327
]]>
328
</Example>
329
</Section>
330
331
332
<Section Label="sect-oper-mor">
333
<Heading>Operations on morphisms</Heading>
334
<Index>operations on morphisms</Index>
335
336
<ManSection>
337
<Oper Name="CompositionMorphism"
338
Arg="map2 map1" />
339
<Description>
340
Composition of morphisms (written <C>(&lt;map1&gt; * &lt;map2&gt;)</C>
341
when maps act on the right)
342
calls the <C>CompositionMorphism</C> function for maps (acting on the left),
343
applied to the appropriate type of 2d-mapping.
344
</Description>
345
</ManSection>
346
<P/>
347
<Example>
348
<![CDATA[
349
gap> H2 := Subgroup(G2,[G2.3,G2.4,G2.6,G2.7]); SetName( H2, "H2" );
350
Group([ f3, f4, f6, f7 ])
351
gap> c6 := Subgroup( d12, [b,c] ); SetName( c6, "c6" );
352
Group([ f2, f3 ])
353
gap> SC2 := Sub2DimensionalGroup( C2, H2, c6 );
354
[H2=>c6]
355
gap> IsCat1Group( SC2 );
356
true
357
gap> inc2 := InclusionMorphism2DimensionalDomains( C2, SC2 );
358
[[H2=>c6] => [G2=>d12]]
359
gap> CompositionMorphism( iso2, inc );
360
[[H2=>c6] => P[G2=>d12]]
361
]]>
362
</Example>
363
364
<ManSection>
365
<Oper Name="Kernel"
366
Arg="map" />
367
<Attr Name="Kernel2DimensionalMapping"
368
Arg="map" />
369
<Description>
370
The kernel of a morphism of crossed modules is a normal subcrossed module
371
whose groups are the kernels of the source and target homomorphisms.
372
The inclusion of the kernel is a standard example of a crossed square,
373
but these have not yet been implemented.
374
</Description>
375
</ManSection>
376
<P/>
377
<Example>
378
<![CDATA[
379
gap> c2 := Group( (19,20) );
380
Group([ (19,20) ])
381
gap> X0 := XModByNormalSubgroup( c2, c2 ); SetName( X0, "X0" );
382
[Group( [ (19,20) ] )->Group( [ (19,20) ] )]
383
gap> SX2 := Source( X2 );;
384
gap> genSX2 := GeneratorsOfGroup( SX2 );
385
[ f1, f4, f5, f7 ]
386
gap> sigma0 := GroupHomomorphismByImages(SX2,c2,genSX2,[(19,20),(),(),()]);
387
[ f1, f4, f5, f7 ] -> [ (19,20), (), (), () ]
388
gap> rho0 := GroupHomomorphismByImages(d12,c2,[a1,a2,a3],[(19,20),(),()]);
389
[ f1, f2, f3 ] -> [ (19,20), (), () ]
390
gap> mor0 := XModMorphism( X2, X0, sigma0, rho0 );;
391
gap> K0 := Kernel( mor0 );;
392
gap> StructureDescription( K0 );
393
[ "C12", "C6" ]
394
]]></Example>
395
396
</Section>
397
398
</Chapter>
399
400