CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

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

Views: 418346
1
2
3 Morphisms
3
4
Any GAP object satisfying IsCapCategoryMorphism can be added to a category
5
and then becomes a morphism in this category. Any morphism can belong to one
6
or no category. After a GAP object is added to the category, it knows which
7
things can be computed in its category and to which category it belongs. It
8
knows categorical properties and attributes, and the functions for
9
existential quantifiers can be applied to the morphism.
10
11
12
3.1 Attributes for the Type of Morphisms
13
14
3.1-1 CapCategory
15
16
CapCategory( alpha )  attribute
17
Returns: a category
18
19
The argument is a morphism \alpha. The output is the category \mathbf{C} to
20
which \alpha was added.
21
22
3.1-2 Source
23
24
Source( alpha )  attribute
25
Returns: an object
26
27
The argument is a morphism \alpha: a \rightarrow b. The output is its source
28
a.
29
30
3.1-3 Range
31
32
Range( alpha )  attribute
33
Returns: an object
34
35
The argument is a morphism \alpha: a \rightarrow b. The output is its range
36
b.
37
38
39
3.2 Categorical Properties of Morphisms
40
41
3.2-1 AddIsMonomorphism
42
43
AddIsMonomorphism( C, F )  operation
44
Returns: nothing
45
46
The arguments are a category C and a function F. This operations adds the
47
given function F to the category for the basic operation IsMonomorphism. F:
48
\alpha \mapsto \mathtt{IsMonomorphism}(\alpha).
49
50
3.2-2 AddIsEpimorphism
51
52
AddIsEpimorphism( C, F )  operation
53
Returns: nothing
54
55
The arguments are a category C and a function F. This operations adds the
56
given function F to the category for the basic operation IsEpimorphism. F:
57
\alpha \mapsto \mathtt{IsEpimorphism}(\alpha).
58
59
3.2-3 AddIsIsomorphism
60
61
AddIsIsomorphism( C, F )  operation
62
Returns: nothing
63
64
The arguments are a category C and a function F. This operations adds the
65
given function F to the category for the basic operation IsIsomorphism. F:
66
\alpha \mapsto \mathtt{IsIsomorphism}(\alpha).
67
68
3.2-4 AddIsSplitMonomorphism
69
70
AddIsSplitMonomorphism( C, F )  operation
71
Returns: nothing
72
73
The arguments are a category C and a function F. This operations adds the
74
given function F to the category for the basic operation
75
IsSplitMonomorphism. F: \alpha \mapsto \mathtt{IsSplitMonomorphism}(\alpha).
76
77
3.2-5 AddIsSplitEpimorphism
78
79
AddIsSplitEpimorphism( C, F )  operation
80
Returns: nothing
81
82
The arguments are a category C and a function F. This operations adds the
83
given function F to the category for the basic operation IsSplitEpimorphism.
84
F: \alpha \mapsto \mathtt{IsSplitEpimorphism}(\alpha).
85
86
3.2-6 AddIsOne
87
88
AddIsOne( C, F )  operation
89
Returns: nothing
90
91
The arguments are a category C and a function F. This operations adds the
92
given function F to the category for the basic operation IsOne. F: \alpha
93
\mapsto \mathtt{IsOne}(\alpha).
94
95
3.2-7 AddIsIdempotent
96
97
AddIsIdempotent( C, F )  operation
98
Returns: nothing
99
100
The arguments are a category C and a function F. This operations adds the
101
given function F to the category for the basic operation IsIdempotent. F:
102
\alpha \mapsto \mathtt{IsIdempotent}(\alpha).
103
104
105
3.3 Non-Categorical Properties of Morphisms
106
107
Non-categorical properties are not stable under equivalences of categories.
108
109
3.3-1 IsIdenticalToIdentityMorphism
110
111
IsIdenticalToIdentityMorphism( alpha )  property
112
Returns: a boolean
113
114
The argument is a morphism \alpha: a \rightarrow b. The output is true if
115
\alpha = \mathrm{id}_a, otherwise the output is false.
116
117
3.3-2 AddIsIdenticalToIdentityMorphism
118
119
AddIsIdenticalToIdentityMorphism( C, F )  operation
120
Returns: nothing
121
122
The arguments are a category C and a function F. This operations adds the
123
given function F to the category for the basic operation
124
IsIdenticalToIdentityMorphism. F: \alpha \mapsto
125
\mathtt{IsIdenticalToIdentityMorphism}(\alpha).
126
127
3.3-3 IsIdenticalToZeroMorphism
128
129
IsIdenticalToZeroMorphism( alpha )  property
130
Returns: a boolean
131
132
The argument is a morphism \alpha: a \rightarrow b. The output is true if
133
\alpha = 0, otherwise the output is false.
134
135
3.3-4 AddIsIdenticalToZeroMorphism
136
137
AddIsIdenticalToZeroMorphism( C, F )  operation
138
Returns: nothing
139
140
The arguments are a category C and a function F. This operations adds the
141
given function F to the category for the basic operation
142
IsIdenticalToZeroMorphism. F: \alpha \mapsto
143
\mathtt{IsIdenticalToZeroMorphism }(\alpha).
144
145
3.3-5 AddIsEndomorphism
146
147
AddIsEndomorphism( C, F )  operation
148
Returns: nothing
149
150
The arguments are a category C and a function F. This operations adds the
151
given function F to the category for the basic operation IsEndomorphism. F:
152
\alpha \mapsto \mathtt{IsEndomorphism}(\alpha).
153
154
3.3-6 AddIsAutomorphism
155
156
AddIsAutomorphism( C, F )  operation
157
Returns: nothing
158
159
The arguments are a category C and a function F. This operations adds the
160
given function F to the category for the basic operation IsAutomorphism. F:
161
\alpha \mapsto \mathtt{IsAutomorphism}(\alpha).
162
163
164
3.4 Equality and Congruence for Morphisms
165
166
3.4-1 IsCongruentForMorphisms
167
168
IsCongruentForMorphisms( alpha, beta )  operation
169
Returns: a boolean
170
171
The arguments are two morphisms \alpha, \beta: a \rightarrow b. The output
172
is true if \alpha \sim_{a,b} \beta, otherwise the output is false.
173
174
3.4-2 AddIsCongruentForMorphisms
175
176
AddIsCongruentForMorphisms( C, F )  operation
177
Returns: nothing
178
179
The arguments are a category C and a function F. This operations adds the
180
given function F to the category for the basic operation
181
IsCongruentForMorphisms. F: (\alpha, \beta) \mapsto
182
\mathtt{IsCongruentForMorphisms}(\alpha, \beta).
183
184
3.4-3 IsEqualForMorphisms
185
186
IsEqualForMorphisms( alpha, beta )  operation
187
Returns: a boolean
188
189
The arguments are two morphisms \alpha, \beta: a \rightarrow b. The output
190
is true if \alpha = \beta, otherwise the output is false.
191
192
3.4-4 AddIsEqualForMorphisms
193
194
AddIsEqualForMorphisms( C, F )  operation
195
Returns: nothing
196
197
The arguments are a category C and a function F. This operations adds the
198
given function F to the category for the basic operation
199
IsEqualForMorphisms. F: (\alpha, \beta) \mapsto
200
\mathtt{IsEqualForMorphisms}(\alpha, \beta).
201
202
3.4-5 IsEqualForMorphismsOnMor
203
204
IsEqualForMorphismsOnMor( alpha, beta )  operation
205
Returns: a boolean
206
207
The arguments are two morphisms \alpha: a \rightarrow b, \beta: c
208
\rightarrow d. The output is true if \alpha = \beta, otherwise the output is
209
false.
210
211
3.4-6 AddIsEqualForMorphismsOnMor
212
213
AddIsEqualForMorphismsOnMor( C, F )  operation
214
Returns: nothing
215
216
The arguments are a category C and a function F. This operations adds the
217
given function F to the category for the basic operation
218
IsEqualForMorphismsOnMor. F: (\alpha, \beta) \mapsto
219
\mathtt{IsEqualForMorphismsOnMor}(\alpha, \beta).
220
221
222
3.5 Basic Operations for Morphisms in Ab-Categories
223
224
3.5-1 IsZeroForMorphisms
225
226
IsZeroForMorphisms( alpha )  operation
227
Returns: a boolean
228
229
The argument is a morphism \alpha: a \rightarrow b. The output is true if
230
\alpha \sim_{a,b} 0, otherwise the output is false.
231
232
3.5-2 AddIsZeroForMorphisms
233
234
AddIsZeroForMorphisms( C, F )  operation
235
Returns: nothing
236
237
The arguments are a category C and a function F. This operations adds the
238
given function F to the category for the basic operation IsZeroForMorphisms.
239
F: \alpha \mapsto \mathtt{IsZeroForMorphisms}(\alpha).
240
241
3.5-3 AdditionForMorphisms
242
243
AdditionForMorphisms( alpha, beta )  operation
244
Returns: a morphism in \mathrm{Hom}(a,b)
245
246
The arguments are two morphisms \alpha, \beta: a \rightarrow b. The output
247
is the addition \alpha + \beta.
248
249
3.5-4 AddAdditionForMorphisms
250
251
AddAdditionForMorphisms( C, F )  operation
252
Returns: nothing
253
254
The arguments are a category C and a function F. This operations adds the
255
given function F to the category for the basic operation
256
AdditionForMorphisms. F: (\alpha, \beta) \mapsto \alpha + \beta.
257
258
3.5-5 SubtractionForMorphisms
259
260
SubtractionForMorphisms( alpha, beta )  operation
261
Returns: a morphism in \mathrm{Hom}(a,b)
262
263
The arguments are two morphisms \alpha, \beta: a \rightarrow b. The output
264
is the addition \alpha - \beta.
265
266
3.5-6 AddSubtractionForMorphisms
267
268
AddSubtractionForMorphisms( C, F )  operation
269
Returns: nothing
270
271
The arguments are a category C and a function F. This operations adds the
272
given function F to the category for the basic operation
273
SubtractionForMorphisms. F: (\alpha, \beta) \mapsto \alpha - \beta.
274
275
3.5-7 AdditiveInverseForMorphisms
276
277
AdditiveInverseForMorphisms( alpha )  operation
278
Returns: a morphism in \mathrm{Hom}(a,b)
279
280
The argument is a morphism \alpha: a \rightarrow b. The output is its
281
additive inverse -\alpha.
282
283
3.5-8 AddAdditiveInverseForMorphisms
284
285
AddAdditiveInverseForMorphisms( C, F )  operation
286
Returns: nothing
287
288
The arguments are a category C and a function F. This operations adds the
289
given function F to the category for the basic operation
290
AdditiveInverseForMorphisms. F: \alpha \mapsto -\alpha.
291
292
3.5-9 ZeroMorphism
293
294
ZeroMorphism( a, b )  operation
295
Returns: a morphism in \mathrm{Hom}(a,b)
296
297
The arguments are two objects a and b. The output is the zero morphism 0: a
298
\rightarrow b.
299
300
3.5-10 AddZeroMorphism
301
302
AddZeroMorphism( C, F )  operation
303
Returns: nothing
304
305
The arguments are a category C and a function F. This operations adds the
306
given function F to the category for the basic operation ZeroMorphism. F:
307
(a,b) \mapsto (0: a \rightarrow b).
308
309
310
3.6 Subobject and Factorobject Operations
311
312
Subobjects of an object c are monomorphisms with range c and a special
313
function for comparision. Similarly, factorobjects of an object c are
314
epimorphisms with source c and a special function for comparision.
315
316
3.6-1 IsEqualAsSubobjects
317
318
IsEqualAsSubobjects( alpha, beta )  operation
319
Returns: a boolean
320
321
The arguments are two subobjects \alpha: a \rightarrow c, \beta: b
322
\rightarrow c. The output is true if there exists an isomorphism \iota: a
323
\rightarrow b such that \beta \circ \iota \sim_{a,c} \alpha, otherwise the
324
output is false.
325
326
3.6-2 AddIsEqualAsSubobjects
327
328
AddIsEqualAsSubobjects( C, F )  operation
329
Returns: nothing
330
331
The arguments are a category C and a function F. This operations adds the
332
given function F to the category for the basic operation
333
IsEqualAsSubobjects. F: (\alpha, \beta) \mapsto
334
\mathtt{IsEqualAsSubobjects}(\alpha,\beta).
335
336
3.6-3 IsEqualAsFactorobjects
337
338
IsEqualAsFactorobjects( alpha, beta )  operation
339
Returns: a boolean
340
341
The arguments are two factorobjects \alpha: c \rightarrow a, \beta: c
342
\rightarrow b. The output is true if there exists an isomorphism \iota: b
343
\rightarrow a such that \iota \circ \beta \sim_{c,a} \alpha, otherwise the
344
output is false.
345
346
3.6-4 AddIsEqualAsFactorobjects
347
348
AddIsEqualAsFactorobjects( C, F )  operation
349
Returns: nothing
350
351
The arguments are a category C and a function F. This operations adds the
352
given function F to the category for the basic operation
353
IsEqualAsFactorobjects. F: (\alpha, \beta) \mapsto
354
\mathtt{IsEqualAsFactorobjects}(\alpha,\beta).
355
356
3.6-5 IsDominating
357
358
IsDominating( alpha, beta )  operation
359
Returns: a boolean
360
361
In short: Returns true iff \alpha is smaller than \beta. \\  Full
362
description: The arguments are two subobjects \alpha: a \rightarrow c,
363
\beta: b \rightarrow c. The output is true if there exists a morphism \iota:
364
a \rightarrow b such that \beta \circ \iota \sim_{a,c} \alpha, otherwise the
365
output is false.
366
367
3.6-6 AddIsDominating
368
369
AddIsDominating( C, F )  operation
370
Returns: nothing
371
372
The arguments are a category C and a function F. This operations adds the
373
given function F to the category for the basic operation IsDominating. F:
374
(\alpha, \beta) \mapsto \mathtt{IsDominating}(\alpha,\beta).
375
376
3.6-7 IsCodominating
377
378
IsCodominating( alpha, beta )  operation
379
Returns: a boolean
380
381
In short: Returns true iff \alpha is smaller than \beta. \\  Full
382
description: The arguments are two factorobjects \alpha: c \rightarrow a,
383
\beta: c \rightarrow b. The output is true if there exists a morphism \iota:
384
b \rightarrow a such that \iota \circ \beta \sim_{c,a} \alpha, otherwise the
385
output is false.
386
387
3.6-8 AddIsCodominating
388
389
AddIsCodominating( C, F )  operation
390
Returns: nothing
391
392
The arguments are a category C and a function F. This operations adds the
393
given function F to the category for the basic operation IsCodominating. F:
394
(\alpha, \beta) \mapsto \mathtt{IsCodominating}(\alpha,\beta).
395
396
397
3.7 Identity Morphism and Composition of Morphisms
398
399
3.7-1 IdentityMorphism
400
401
IdentityMorphism( a )  attribute
402
Returns: a morphism in \mathrm{Hom}(a,a)
403
404
The argument is an object a. The output is its identity morphism
405
\mathrm{id}_a.
406
407
3.7-2 AddIdentityMorphism
408
409
AddIdentityMorphism( C, F )  operation
410
Returns: nothing
411
412
The arguments are a category C and a function F. This operations adds the
413
given function F to the category for the basic operation IdentityMorphism.
414
F: a \mapsto \mathrm{id}_a.
415
416
3.7-3 PreCompose
417
418
PreCompose( alpha, beta )  operation
419
Returns: a morphism in \mathrm{Hom}( a, c )
420
421
The arguments are two morphisms \alpha: a \rightarrow b, \beta: b
422
\rightarrow c. The output is the composition \beta \circ \alpha: a
423
\rightarrow c.
424
425
3.7-4 PreCompose
426
427
PreCompose( L )  operation
428
Returns: a morphism in \mathrm{Hom}(a_1, a_{n+1})
429
430
This is a convenience method. The argument is a list of morphisms L = (
431
\alpha_1: a_1 \rightarrow a_2, \alpha_2: a_2 \rightarrow a_3, \dots,
432
\alpha_n: a_n \rightarrow a_{n+1} ). The output is the composition
433
\alpha_{n} \circ ( \alpha_{n-1} \circ ( \dots ( \alpha_2 \circ \alpha_1 ) )
434
).
435
436
3.7-5 AddPreCompose
437
438
AddPreCompose( C, F )  operation
439
Returns: nothing
440
441
The arguments are a category C and a function F. This operations adds the
442
given function F to the category for the basic operation PreCompose. F:
443
(\alpha, \beta) \mapsto \beta \circ \alpha.
444
445
3.7-6 PostCompose
446
447
PostCompose( beta, alpha )  operation
448
Returns: a morphism in \mathrm{Hom}( a, c )
449
450
The arguments are two morphisms \beta: b \rightarrow c, \alpha: a
451
\rightarrow b. The output is the composition \beta \circ \alpha: a
452
\rightarrow c.
453
454
3.7-7 PostCompose
455
456
PostCompose( L )  operation
457
Returns: a morphism in \mathrm{Hom}(a_1, a_{n+1})
458
459
This is a convenience method. The argument is a list of morphisms L = (
460
\alpha_n: a_n \rightarrow a_{n+1}, \alpha_{n-1}: a_{n-1} \rightarrow a_n,
461
\dots, \alpha_1: a_1 \rightarrow a_2 ). The output is the composition
462
((\alpha_{n} \circ \alpha_{n-1}) \circ \dots \alpha_2) \circ \alpha_1.
463
464
3.7-8 AddPostCompose
465
466
AddPostCompose( C, F )  operation
467
Returns: nothing
468
469
The arguments are a category C and a function F. This operations adds the
470
given function F to the category for the basic operation PostCompose. F:
471
(\alpha, \beta) \mapsto \alpha \circ \beta.
472
473
474
3.8 Well-Definedness of Morphisms
475
476
3.8-1 IsWellDefinedForMorphisms
477
478
IsWellDefinedForMorphisms( alpha )  operation
479
Returns: a boolean
480
481
The argument is a morphism \alpha. The output is true if \alpha is
482
well-defined, otherwise the output is false.
483
484
3.8-2 AddIsWellDefinedForMorphisms
485
486
AddIsWellDefinedForMorphisms( C, F )  operation
487
Returns: nothing
488
489
The arguments are a category C and a function F. This operations adds the
490
given function F to the category for the basic operation
491
IsWellDefinedForMorphisms. F: \alpha \mapsto
492
\mathtt{IsWellDefinedForMorphisms}( \alpha ).
493
494
495
3.9 Basic Operations for Morphisms in Abelian Categories
496
497
3.9-1 LiftAlongMonomorphism
498
499
LiftAlongMonomorphism( iota, tau )  operation
500
Returns: a morphism in \mathrm{Hom}(t,k)
501
502
The arguments are a monomorphism \iota: k \hookrightarrow a and a morphism
503
\tau: t \rightarrow a such that there is a morphism u: t \rightarrow k with
504
\iota \circ u \sim_{t,a} \tau. The output is such a u.
505
506
3.9-2 AddLiftAlongMonomorphism
507
508
AddLiftAlongMonomorphism( C, F )  operation
509
Returns: nothing
510
511
The arguments are a category C and a function F. This operations adds the
512
given function F to the category for the basic operation
513
LiftAlongMonomorphism. The function F maps a pair (\iota, \tau) to a lift u
514
if it exists, and to fail otherwise.
515
516
3.9-3 ColiftAlongEpimorphism
517
518
ColiftAlongEpimorphism( epsilon, tau )  operation
519
Returns: a morphism in \mathrm{Hom}(c,t)
520
521
The arguments are an epimorphism \epsilon: a \rightarrow c and a morphism
522
\tau: a \rightarrow t such that there is a morphism u: c \rightarrow t with
523
u \circ \epsilon \sim_{a,t} \tau. The output is such a u.
524
525
3.9-4 AddColiftAlongEpimorphism
526
527
AddColiftAlongEpimorphism( C, F )  operation
528
Returns: nothing
529
530
The arguments are a category C and a function F. This operations adds the
531
given function F to the category for the basic operation
532
ColiftAlongEpimorphism. The function F maps a pair (\epsilon, \tau) to a
533
lift u if it exists, and to fail otherwise.
534
535
536
3.10 Lift/ Colift
537
538
 For any pair of morphisms \alpha: a \rightarrow c, \beta: b
539
\rightarrow c, we call each morphism \alpha / \beta: a \rightarrow b
540
such that \beta \circ (\alpha / \beta) \sim_{a,c} \alpha a lift of
541
\alpha along \beta.
542
543
 For any pair of morphisms \alpha: a \rightarrow c, \beta: a
544
\rightarrow b, we call each morphism \alpha \backslash \beta: c
545
\rightarrow b such that (\alpha \backslash \beta) \circ \alpha
546
\sim_{a,b} \beta a  colift of \beta along \alpha.
547
548
Note that such lifts (or colifts) do not have to be unique. So in general,
549
we do not expect that algorithms computing lifts (or colifts) do this in a
550
functorial way. Thus the operations \mathtt{Lift} and \mathtt{Colift} are
551
not regarded as categorical operations, but only as set-theoretic
552
operations.
553
554
3.10-1 Lift
555
556
Lift( alpha, beta )  operation
557
Returns: a morphism in \mathrm{Hom}(a,b) + \{ \mathtt{fail} \}
558
559
The arguments are two morphisms \alpha: a \rightarrow c, \beta: b
560
\rightarrow c such that there is a lift \alpha / \beta: a \rightarrow b of
561
\alpha along \beta, i.e., a morphism such that \beta \circ (\alpha / \beta)
562
\sim_{a,c} \alpha. The output is such a lift or \mathtt{fail} if it doesn't
563
exist.
564
565
3.10-2 AddLift
566
567
AddLift( C, F )  operation
568
Returns: nothing
569
570
The arguments are a category C and a function F. This operations adds the
571
given function F to the category for the basic operation Lift. The function
572
F maps a pair (\alpha, \beta) to a lift \alpha / \beta if it exists, and to
573
fail otherwise.
574
575
3.10-3 Colift
576
577
Colift( alpha, beta )  operation
578
Returns: a morphism in \mathrm{Hom}(c,b) + \{ \mathtt{fail} \}
579
580
The arguments are two morphisms \alpha: a \rightarrow c, \beta: a
581
\rightarrow b such that there is a colift \alpha \backslash \beta: c
582
\rightarrow b of \beta along \alpha., i.e., a morphism such that (\alpha
583
\backslash \beta) \circ \alpha \sim_{a,b} \beta. The output is such a colift
584
or \mathtt{fail} if it doesn't exist.
585
586
3.10-4 AddColift
587
588
AddColift( C, F )  operation
589
Returns: nothing
590
591
The arguments are a category C and a function F. This operations adds the
592
given function F to the category for the basic operation Colift. The
593
function F maps a pair (\alpha, \beta) to a colift \alpha \backslash \beta
594
if it exists, and to fail otherwise.
595
596
597
3.11 Inverses
598
599
Let \alpha: a \rightarrow b be a morphism. An inverse of \alpha is a
600
morphism \alpha^{-1}: b \rightarrow a such that \alpha \circ \alpha^{-1}
601
\sim_{b,b} \mathrm{id}_b and \alpha^{-1} \circ \alpha \sim_{a,a}
602
\mathrm{id}_a.
603
604
3.11-1 AddInverse
605
606
AddInverse( C, F )  operation
607
Returns: nothing
608
609
The arguments are a category C and a function F. This operations adds the
610
given function F to the category for the basic operation Inverse. F: \alpha
611
\mapsto \alpha^{-1}.
612
613
614
3.12 Tool functions for caches
615
616
3.12-1 IsEqualForCacheForMorphisms
617
618
IsEqualForCacheForMorphisms( phi, psi )  operation
619
Returns: true or false
620
621
Compares two objects in the cache
622
623
3.12-2 AddIsEqualForCacheForMorphisms
624
625
AddIsEqualForCacheForMorphisms( c, F )  operation
626
Returns: northing
627
628
By default, CAP uses caches to store the values of Categorical operations.
629
To get a value out of the cache, one needs to compare the input of a basic
630
operation with its previous input. To compare morphisms in the category,
631
IsEqualForCacheForMorphism is used. By default this is an alias for
632
IsEqualForMorphismsOnMor, where fail is substituted by false. If you add a
633
function, this function used instead. A function F: a,b \mapsto bool is
634
expected here. The output has to be true or false. Fail is not allowed in
635
this context.
636
637
638