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
<?xml version="1.0" encoding="UTF-8"?>
2
3
<!-- This is an automatically generated file. -->
4
<Chapter Label="Chapter_Universal_Objects">
5
<Heading>Universal Objects</Heading>
6
7
<P/>
8
<Section Label="Chapter_Universal_Objects_Section_Kernel">
9
<Heading>Kernel</Heading>
10
11
For a given morphism <Math>\alpha: A \rightarrow B</Math>, a kernel of <Math>\alpha</Math> consists of three parts:
12
<List>
13
<Item>
14
an object <Math>K</Math>,
15
</Item>
16
<Item>
17
a morphism <Math>\iota: K \rightarrow A</Math> such that <Math>\alpha \circ \iota \sim_{K,B} 0</Math>,
18
</Item>
19
<Item>
20
a dependent function <Math>u</Math> mapping each morphism <Math>\tau: T \rightarrow A</Math> satisfying <Math>\alpha \circ \tau \sim_{T,B} 0</Math> to a morphism <Math>u(\tau): T \rightarrow K</Math> such that <Math>\iota \circ u( \tau ) \sim_{T,A} \tau</Math>.
21
</Item>
22
</List>
23
The triple <Math>( K, \iota, u )</Math> is called a <Emph>kernel</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
24
congruence of morphisms.
25
We denote the object <Math>K</Math> of such a triple by <Math>\mathrm{KernelObject}(\alpha)</Math>.
26
We say that the morphism <Math>u(\tau)</Math> is induced by the
27
<Emph>universal property of the kernel</Emph>.
28
<Math>\\ </Math>
29
<Math>\mathrm{KernelObject}</Math> is a functorial operation. This means:
30
for <Math>\mu: A \rightarrow A'</Math>, <Math>\nu: B \rightarrow B'</Math>,
31
<Math>\alpha: A \rightarrow B</Math>, <Math>\alpha': A' \rightarrow B'</Math> such that <Math>\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu</Math>,
32
we obtain a morphism <Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>.
33
<ManSection>
34
<Attr Arg="alpha" Name="KernelObject" Label="for IsCapCategoryMorphism"/>
35
<Returns>an object
36
</Returns>
37
<Description>
38
The argument is a morphism <Math>\alpha</Math>.
39
The output is the kernel <Math>K</Math> of <Math>\alpha</Math>.
40
</Description>
41
</ManSection>
42
43
44
<ManSection>
45
<Attr Arg="alpha" Name="KernelEmbedding" Label="for IsCapCategoryMorphism"/>
46
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{KernelObject}(\alpha),A)</Math>
47
</Returns>
48
<Description>
49
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
50
The output is the kernel embedding <Math>\iota: \mathrm{KernelObject}(\alpha) \rightarrow A</Math>.
51
</Description>
52
</ManSection>
53
54
55
<ManSection>
56
<Oper Arg="alpha, K" Name="KernelEmbeddingWithGivenKernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>
57
<Returns>a morphism in <Math>\mathrm{Hom}(K,A)</Math>
58
</Returns>
59
<Description>
60
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
61
and an object <Math>K = \mathrm{KernelObject}(\alpha)</Math>.
62
The output is the kernel embedding <Math>\iota: K \rightarrow A</Math>.
63
</Description>
64
</ManSection>
65
66
67
<ManSection>
68
<Oper Arg="alpha, tau" Name="KernelLift" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism"/>
69
<Returns>a morphism in <Math>\mathrm{Hom}(T,\mathrm{KernelObject}(\alpha))</Math>
70
</Returns>
71
<Description>
72
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
73
and a test morphism <Math>\tau: T \rightarrow A</Math> satisfying <Math>\alpha \circ \tau \sim_{T,B} 0</Math>.
74
The output is the morphism <Math>u(\tau): T \rightarrow \mathrm{KernelObject}(\alpha)</Math>
75
given by the universal property of the kernel.
76
</Description>
77
</ManSection>
78
79
80
<ManSection>
81
<Oper Arg="alpha, tau, K" Name="KernelLiftWithGivenKernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryObject"/>
82
<Returns>a morphism in <Math>\mathrm{Hom}(T,K)</Math>
83
</Returns>
84
<Description>
85
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,
86
a test morphism <Math>\tau: T \rightarrow A</Math> satisfying <Math>\alpha \circ \tau \sim_{T,B} 0</Math>,
87
and an object <Math>K = \mathrm{KernelObject}(\alpha)</Math>.
88
The output is the morphism <Math>u(\tau): T \rightarrow K</Math>
89
given by the universal property of the kernel.
90
</Description>
91
</ManSection>
92
93
94
<ManSection>
95
<Oper Arg="C, F" Name="AddKernelObject" Label="for IsCapCategory, IsFunction"/>
96
<Returns>nothing
97
</Returns>
98
<Description>
99
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
100
This operations adds the given function <Math>F</Math>
101
to the category for the basic operation <C>KernelObject</C>.
102
<Math>F: \alpha \mapsto \mathrm{KernelObject}(\alpha)</Math>.
103
</Description>
104
</ManSection>
105
106
107
<ManSection>
108
<Oper Arg="C, F" Name="AddKernelEmbedding" Label="for IsCapCategory, IsFunction"/>
109
<Returns>nothing
110
</Returns>
111
<Description>
112
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
113
This operations adds the given function <Math>F</Math>
114
to the category for the basic operation <C>KernelEmbedding</C>.
115
<Math>F: \alpha \mapsto \iota</Math>.
116
</Description>
117
</ManSection>
118
119
120
<ManSection>
121
<Oper Arg="C, F" Name="AddKernelEmbeddingWithGivenKernelObject" Label="for IsCapCategory, IsFunction"/>
122
<Returns>nothing
123
</Returns>
124
<Description>
125
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
126
This operations adds the given function <Math>F</Math>
127
to the category for the basic operation <C>KernelEmbeddingWithGivenKernelObject</C>.
128
<Math>F: (\alpha, K) \mapsto \iota</Math>.
129
</Description>
130
</ManSection>
131
132
133
<ManSection>
134
<Oper Arg="C, F" Name="AddKernelLift" Label="for IsCapCategory, IsFunction"/>
135
<Returns>nothing
136
</Returns>
137
<Description>
138
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
139
This operations adds the given function <Math>F</Math>
140
to the category for the basic operation <C>KernelLift</C>.
141
<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>.
142
</Description>
143
</ManSection>
144
145
146
<ManSection>
147
<Oper Arg="C, F" Name="AddKernelLiftWithGivenKernelObject" Label="for IsCapCategory, IsFunction"/>
148
<Returns>nothing
149
</Returns>
150
<Description>
151
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
152
This operations adds the given function <Math>F</Math>
153
to the category for the basic operation <C>KernelLiftWithGivenKernelObject</C>.
154
<Math>F: (\alpha, \tau, K) \mapsto u</Math>.
155
</Description>
156
</ManSection>
157
158
159
<ManSection>
160
<Oper Arg="L" Name="KernelObjectFunctorial" Label="for IsList"/>
161
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{KernelObject}( \alpha ), \mathrm{KernelObject}( \alpha' ) )</Math>
162
</Returns>
163
<Description>
164
The argument is a list <Math>L = [ \alpha: A \rightarrow B, [ \mu: A \rightarrow A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ]</Math> of morphisms.
165
The output is the morphism
166
<Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>
167
given by the functorality of the kernel.
168
</Description>
169
</ManSection>
170
171
172
<ManSection>
173
<Oper Arg="alpha, mu, alpha_prime" Name="KernelObjectFunctorial" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryMorphism"/>
174
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{KernelObject}( \alpha ), \mathrm{KernelObject}( \alpha' ) )</Math>
175
</Returns>
176
<Description>
177
The arguments are three morphisms
178
<Math>\alpha: A \rightarrow B</Math>, <Math>\mu: A \rightarrow A'</Math>, <Math>\alpha': A' \rightarrow B'</Math>.
179
The output is the morphism
180
<Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>
181
given by the functorality of the kernel.
182
</Description>
183
</ManSection>
184
185
186
<ManSection>
187
<Oper Arg="s, alpha, mu, alpha_prime, r" Name="KernelObjectFunctorialWithGivenKernelObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryMorphism,IsCapCategoryMorphism, IsCapCategoryObject"/>
188
<Returns>a morphism in <Math>\mathrm{Hom}( s, r )</Math>
189
</Returns>
190
<Description>
191
The arguments are an object <Math>s = \mathrm{KernelObject}( \alpha )</Math>,
192
three morphisms
193
<Math>\alpha: A \rightarrow B</Math>, <Math>\mu: A \rightarrow A'</Math>, <Math>\alpha': A' \rightarrow B'</Math>,
194
and an object <Math>r = \mathrm{KernelObject}( \alpha' )</Math>.
195
The output is the morphism
196
<Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>
197
given by the functorality of the kernel.
198
</Description>
199
</ManSection>
200
201
202
<ManSection>
203
<Oper Arg="C, F" Name="AddKernelObjectFunctorialWithGivenKernelObjects" Label="for IsCapCategory, IsFunction"/>
204
<Returns>nothing
205
</Returns>
206
<Description>
207
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
208
This operations adds the given function <Math>F</Math>
209
to the category for the basic operation <C>KernelObjectFunctorialWithGivenKernelObjects</C>.
210
<Math>F: (\mathrm{KernelObject}( \alpha ), \alpha, \mu, \alpha', \mathrm{KernelObject}( \alpha' )) \mapsto (\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' ))</Math>.
211
</Description>
212
</ManSection>
213
214
215
</Section>
216
217
218
<Section Label="Chapter_Universal_Objects_Section_Cokernel">
219
<Heading>Cokernel</Heading>
220
221
For a given morphism <Math>\alpha: A \rightarrow B</Math>, a cokernel of <Math>\alpha</Math> consists of three parts:
222
<List>
223
<Item>
224
an object <Math>K</Math>,
225
</Item>
226
<Item>
227
a morphism <Math>\epsilon: B \rightarrow K</Math> such that <Math>\epsilon \circ \alpha \sim_{A,K} 0</Math>,
228
</Item>
229
<Item>
230
a dependent function <Math>u</Math> mapping each <Math>\tau: B \rightarrow T</Math> satisfying <Math>\tau \circ \alpha \sim_{A, T} 0</Math> to a morphism <Math>u(\tau):K \rightarrow T</Math> such that <Math>u(\tau) \circ \epsilon \sim_{B,T} \tau</Math>.
231
</Item>
232
</List>
233
The triple <Math>( K, \epsilon, u )</Math> is called a <Emph>cokernel</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
234
congruence of morphisms.
235
We denote the object <Math>K</Math> of such a triple by <Math>\mathrm{CokernelObject}(\alpha)</Math>.
236
We say that the morphism <Math>u(\tau)</Math> is induced by the
237
<Emph>universal property of the cokernel</Emph>.
238
<Math>\\ </Math>
239
<Math>\mathrm{CokernelObject}</Math> is a functorial operation. This means:
240
for <Math>\mu: A \rightarrow A'</Math>, <Math>\nu: B \rightarrow B'</Math>,
241
<Math>\alpha: A \rightarrow B</Math>, <Math>\alpha': A' \rightarrow B'</Math> such that <Math>\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu</Math>,
242
we obtain a morphism <Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>.
243
<ManSection>
244
<Attr Arg="alpha" Name="CokernelObject" Label="for IsCapCategoryMorphism"/>
245
<Returns>an object
246
</Returns>
247
<Description>
248
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
249
The output is the cokernel <Math>K</Math> of <Math>\alpha</Math>.
250
</Description>
251
</ManSection>
252
253
254
<ManSection>
255
<Attr Arg="alpha" Name="CokernelProjection" Label="for IsCapCategoryMorphism"/>
256
<Returns>a morphism in <Math>\mathrm{Hom}(B, \mathrm{CokernelObject}( \alpha ))</Math>
257
</Returns>
258
<Description>
259
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
260
The output is the cokernel projection <Math>\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )</Math>.
261
</Description>
262
</ManSection>
263
264
265
<ManSection>
266
<Oper Arg="alpha, K" Name="CokernelProjectionWithGivenCokernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>
267
<Returns>a morphism in <Math>\mathrm{Hom}(B, K)</Math>
268
</Returns>
269
<Description>
270
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
271
and an object <Math>K = \mathrm{CokernelObject}(\alpha)</Math>.
272
The output is the cokernel projection <Math>\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )</Math>.
273
</Description>
274
</ManSection>
275
276
277
<ManSection>
278
<Oper Arg="alpha, tau" Name="CokernelColift" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism"/>
279
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{CokernelObject}(\alpha),T)</Math>
280
</Returns>
281
<Description>
282
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
283
and a test morphism <Math>\tau: B \rightarrow T</Math> satisfying <Math>\tau \circ \alpha \sim_{A, T} 0</Math>.
284
The output is the morphism <Math>u(\tau): \mathrm{CokernelObject}(\alpha) \rightarrow T</Math>
285
given by the universal property of the cokernel.
286
</Description>
287
</ManSection>
288
289
290
<ManSection>
291
<Oper Arg="alpha, tau, K" Name="CokernelColiftWithGivenCokernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryObject"/>
292
<Returns>a morphism in <Math>\mathrm{Hom}(K,T)</Math>
293
</Returns>
294
<Description>
295
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,
296
a test morphism <Math>\tau: B \rightarrow T</Math> satisfying <Math>\tau \circ \alpha \sim_{A, T} 0</Math>,
297
and an object <Math>K = \mathrm{CokernelObject}(\alpha)</Math>.
298
The output is the morphism <Math>u(\tau): K \rightarrow T</Math>
299
given by the universal property of the cokernel.
300
</Description>
301
</ManSection>
302
303
304
<ManSection>
305
<Oper Arg="C, F" Name="AddCokernelObject" Label="for IsCapCategory, IsFunction"/>
306
<Returns>nothing
307
</Returns>
308
<Description>
309
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
310
This operations adds the given function <Math>F</Math>
311
to the category for the basic operation <C>CokernelObject</C>.
312
<Math>F: \alpha \mapsto K</Math>.
313
</Description>
314
</ManSection>
315
316
317
<ManSection>
318
<Oper Arg="C, F" Name="AddCokernelProjection" Label="for IsCapCategory, IsFunction"/>
319
<Returns>nothing
320
</Returns>
321
<Description>
322
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
323
This operations adds the given function <Math>F</Math>
324
to the category for the basic operation <C>CokernelProjection</C>.
325
<Math>F: \alpha \mapsto \epsilon</Math>.
326
</Description>
327
</ManSection>
328
329
330
<ManSection>
331
<Oper Arg="C, F" Name="AddCokernelProjectionWithGivenCokernelObject" Label="for IsCapCategory, IsFunction"/>
332
<Returns>nothing
333
</Returns>
334
<Description>
335
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
336
This operations adds the given function <Math>F</Math>
337
to the category for the basic operation <C>CokernelProjection</C>.
338
<Math>F: (\alpha, K) \mapsto \epsilon</Math>.
339
</Description>
340
</ManSection>
341
342
343
<ManSection>
344
<Oper Arg="C, F" Name="AddCokernelColift" Label="for IsCapCategory, IsFunction"/>
345
<Returns>nothing
346
</Returns>
347
<Description>
348
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
349
This operations adds the given function <Math>F</Math>
350
to the category for the basic operation <C>CokernelProjection</C>.
351
<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>.
352
</Description>
353
</ManSection>
354
355
356
<ManSection>
357
<Oper Arg="C, F" Name="AddCokernelColiftWithGivenCokernelObject" Label="for IsCapCategory, IsFunction"/>
358
<Returns>nothing
359
</Returns>
360
<Description>
361
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
362
This operations adds the given function <Math>F</Math>
363
to the category for the basic operation <C>CokernelProjection</C>.
364
<Math>F: (\alpha, \tau, K) \mapsto u(\tau)</Math>.
365
</Description>
366
</ManSection>
367
368
369
<ManSection>
370
<Oper Arg="L" Name="CokernelObjectFunctorial" Label="for IsList"/>
371
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{CokernelObject}( \alpha ), \mathrm{CokernelObject}( \alpha' ))</Math>
372
</Returns>
373
<Description>
374
The argument is a list <Math>L = [ \alpha: A \rightarrow B, [ \mu:A \rightarrow A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ]</Math>.
375
The output is the morphism
376
<Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>
377
given by the functorality of the cokernel.
378
</Description>
379
</ManSection>
380
381
382
<ManSection>
383
<Oper Arg="alpha, nu, alpha_prime" Name="CokernelObjectFunctorial" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryMorphism"/>
384
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{CokernelObject}( \alpha ), \mathrm{CokernelObject}( \alpha' ))</Math>
385
</Returns>
386
<Description>
387
The arguments are three morphisms
388
<Math>\alpha: A \rightarrow B, \nu: B \rightarrow B', \alpha': A' \rightarrow B'</Math>.
389
The output is the morphism
390
<Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>
391
given by the functorality of the cokernel.
392
</Description>
393
</ManSection>
394
395
396
<ManSection>
397
<Oper Arg="s, alpha, nu, alpha_prime, r" Name="CokernelObjectFunctorialWithGivenCokernelObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryMorphism,IsCapCategoryMorphism, IsCapCategoryObject"/>
398
<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>
399
</Returns>
400
<Description>
401
The arguments are an object <Math>s = \mathrm{CokernelObject}( \alpha )</Math>,
402
three morphisms
403
<Math>\alpha: A \rightarrow B, \nu: B \rightarrow B', \alpha': A' \rightarrow B'</Math>,
404
and an object <Math>r = \mathrm{CokernelObject}( \alpha' )</Math>.
405
The output is the morphism
406
<Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>
407
given by the functorality of the cokernel.
408
</Description>
409
</ManSection>
410
411
412
<ManSection>
413
<Oper Arg="C, F" Name="AddCokernelObjectFunctorialWithGivenCokernelObjects" Label="for IsCapCategory, IsFunction"/>
414
<Returns>nothing
415
</Returns>
416
<Description>
417
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
418
This operations adds the given function <Math>F</Math>
419
to the category for the basic operation <C>CokernelObjectFunctorialWithGivenCokernelObjects</C>.
420
<Math>F: (\mathrm{CokernelObject}( \alpha ), \alpha, \nu, \alpha', \mathrm{CokernelObject}( \alpha' )) \mapsto (\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' ))</Math>.
421
</Description>
422
</ManSection>
423
424
425
</Section>
426
427
428
<Section Label="Chapter_Universal_Objects_Section_Zero_Object">
429
<Heading>Zero Object</Heading>
430
431
A zero object consists of three parts:
432
<List>
433
<Item>
434
an object <Math>Z</Math>,
435
</Item>
436
<Item>
437
a function <Math>u_{\mathrm{in}}</Math> mapping each object <Math>A</Math> to a morphism <Math>u_{\mathrm{in}}(A): A \rightarrow Z</Math>,
438
</Item>
439
<Item>
440
a function <Math>u_{\mathrm{out}}</Math> mapping each object <Math>A</Math> to a morphism <Math>u_{\mathrm{out}}(A): Z \rightarrow A</Math>.
441
</Item>
442
</List>
443
The triple <Math>(Z, u_{\mathrm{in}}, u_{\mathrm{out}})</Math> is called a <Emph>zero object</Emph> if the morphisms
444
<Math>u_{\mathrm{in}}(A)</Math>, <Math>u_{\mathrm{out}}(A)</Math> are uniquely determined up to congruence of morphisms.
445
We denote the object <Math>Z</Math> of such a triple by <Math>\mathrm{ZeroObject}</Math>.
446
We say that the morphisms <Math>u_{\mathrm{in}}(A)</Math> and <Math>u_{\mathrm{out}}(A)</Math> are induced by the
447
<Emph>universal property of the zero object</Emph>.
448
<ManSection>
449
<Attr Arg="C" Name="ZeroObject" Label="for IsCapCategory"/>
450
<Returns>an object
451
</Returns>
452
<Description>
453
The argument is a category <Math>C</Math>.
454
The output is a zero object <Math>Z</Math> of <Math>C</Math>.
455
</Description>
456
</ManSection>
457
458
459
<ManSection>
460
<Attr Arg="c" Name="ZeroObject" Label="for IsCapCategoryCell"/>
461
<Returns>an object
462
</Returns>
463
<Description>
464
This is a convenience method.
465
The argument is a cell <Math>c</Math>.
466
The output is a zero object <Math>Z</Math> of the
467
category <Math>C</Math> for which <Math>c \in C</Math>.
468
</Description>
469
</ManSection>
470
471
472
<ManSection>
473
<Attr Arg="A" Name="MorphismFromZeroObject" Label="for IsCapCategoryObject"/>
474
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, A)</Math>
475
</Returns>
476
<Description>
477
This is a convenience method.
478
The argument is an object <Math>A</Math>.
479
It calls <Math>\mathrm{UniversalMorphismFromZeroObject}</Math> on <Math>A</Math>.
480
</Description>
481
</ManSection>
482
483
484
<ManSection>
485
<Attr Arg="A" Name="MorphismIntoZeroObject" Label="for IsCapCategoryObject"/>
486
<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{ZeroObject})</Math>
487
</Returns>
488
<Description>
489
This is a convenience method.
490
The argument is an object <Math>A</Math>.
491
It calls <Math>\mathrm{UniversalMorphismIntoZeroObject}</Math> on <Math>A</Math>.
492
</Description>
493
</ManSection>
494
495
496
<ManSection>
497
<Attr Arg="A" Name="UniversalMorphismFromZeroObject" Label="for IsCapCategoryObject"/>
498
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, A)</Math>
499
</Returns>
500
<Description>
501
The argument is an object <Math>A</Math>.
502
The output is the universal morphism <Math>u_{\mathrm{out}}: \mathrm{ZeroObject} \rightarrow A</Math>.
503
</Description>
504
</ManSection>
505
506
507
<ManSection>
508
<Oper Arg="A, Z" Name="UniversalMorphismFromZeroObjectWithGivenZeroObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>
509
<Returns>a morphism in <Math>\mathrm{Hom}(Z, A)</Math>
510
</Returns>
511
<Description>
512
The arguments are an object <Math>A</Math>,
513
and a zero object <Math>Z = \mathrm{ZeroObject}</Math>.
514
The output is the universal morphism <Math>u_{\mathrm{out}}: Z \rightarrow A</Math>.
515
</Description>
516
</ManSection>
517
518
519
<ManSection>
520
<Attr Arg="A" Name="UniversalMorphismIntoZeroObject" Label="for IsCapCategoryObject"/>
521
<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{ZeroObject})</Math>
522
</Returns>
523
<Description>
524
The argument is an object <Math>A</Math>.
525
The output is the universal morphism <Math>u_{\mathrm{in}}: A \rightarrow \mathrm{ZeroObject}</Math>.
526
</Description>
527
</ManSection>
528
529
530
<ManSection>
531
<Oper Arg="A, Z" Name="UniversalMorphismIntoZeroObjectWithGivenZeroObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>
532
<Returns>a morphism in <Math>\mathrm{Hom}(A, Z)</Math>
533
</Returns>
534
<Description>
535
The arguments are an object <Math>A</Math>,
536
and a zero object <Math>Z = \mathrm{ZeroObject}</Math>.
537
The output is the universal morphism <Math>u_{\mathrm{in}}: A \rightarrow Z</Math>.
538
</Description>
539
</ManSection>
540
541
542
<ManSection>
543
<Attr Arg="C" Name="IsomorphismFromZeroObjectToInitialObject" Label="for IsCapCategory"/>
544
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{InitialObject})</Math>
545
</Returns>
546
<Description>
547
The argument is a category <Math>C</Math>.
548
The output is the unique isomorphism <Math>\mathrm{ZeroObject} \rightarrow \mathrm{InitialObject}</Math>.
549
</Description>
550
</ManSection>
551
552
553
<ManSection>
554
<Attr Arg="C" Name="IsomorphismFromInitialObjectToZeroObject" Label="for IsCapCategory"/>
555
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{InitialObject}, \mathrm{ZeroObject})</Math>
556
</Returns>
557
<Description>
558
The argument is a category <Math>C</Math>.
559
The output is the unique isomorphism <Math>\mathrm{InitialObject} \rightarrow \mathrm{ZeroObject}</Math>.
560
</Description>
561
</ManSection>
562
563
564
<ManSection>
565
<Attr Arg="C" Name="IsomorphismFromZeroObjectToTerminalObject" Label="for IsCapCategory"/>
566
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{TerminalObject})</Math>
567
</Returns>
568
<Description>
569
The argument is a category <Math>C</Math>.
570
The output is the unique isomorphism <Math>\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject}</Math>.
571
</Description>
572
</ManSection>
573
574
575
<ManSection>
576
<Attr Arg="C" Name="IsomorphismFromTerminalObjectToZeroObject" Label="for IsCapCategory"/>
577
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{TerminalObject}, \mathrm{ZeroObject})</Math>
578
</Returns>
579
<Description>
580
The argument is a category <Math>C</Math>.
581
The output is the unique isomorphism <Math>\mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject}</Math>.
582
</Description>
583
</ManSection>
584
585
586
<ManSection>
587
<Oper Arg="C, F" Name="AddZeroObject" Label="for IsCapCategory, IsFunction"/>
588
<Returns>nothing
589
</Returns>
590
<Description>
591
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
592
This operations adds the given function <Math>F</Math>
593
to the category for the basic operation <C>ZeroObject</C>.
594
<Math>F: () \mapsto \mathrm{ZeroObject}</Math>.
595
</Description>
596
</ManSection>
597
598
599
<ManSection>
600
<Oper Arg="C, F" Name="AddUniversalMorphismIntoZeroObject" Label="for IsCapCategory, IsFunction"/>
601
<Returns>nothing
602
</Returns>
603
<Description>
604
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
605
This operations adds the given function <Math>F</Math>
606
to the category for the basic operation <C>UniversalMorphismIntoZeroObject</C>.
607
<Math>F: A \mapsto u_{\mathrm{in}}(A)</Math>.
608
</Description>
609
</ManSection>
610
611
612
<ManSection>
613
<Oper Arg="C, F" Name="AddUniversalMorphismIntoZeroObjectWithGivenZeroObject" Label="for IsCapCategory, IsFunction"/>
614
<Returns>nothing
615
</Returns>
616
<Description>
617
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
618
This operations adds the given function <Math>F</Math>
619
to the category for the basic operation <C>UniversalMorphismIntoZeroObjectWithGivenZeroObject</C>.
620
<Math>F: (A, Z) \mapsto u_{\mathrm{in}}(A)</Math>.
621
</Description>
622
</ManSection>
623
624
625
<ManSection>
626
<Oper Arg="C, F" Name="AddUniversalMorphismFromZeroObject" Label="for IsCapCategory, IsFunction"/>
627
<Returns>nothing
628
</Returns>
629
<Description>
630
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
631
This operations adds the given function <Math>F</Math>
632
to the category for the basic operation <C>UniversalMorphismFromZeroObject</C>.
633
<Math>F: A \mapsto u_{\mathrm{out}}(A)</Math>.
634
</Description>
635
</ManSection>
636
637
638
<ManSection>
639
<Oper Arg="C, F" Name="AddUniversalMorphismFromZeroObjectWithGivenZeroObject" Label="for IsCapCategory, IsFunction"/>
640
<Returns>nothing
641
</Returns>
642
<Description>
643
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
644
This operations adds the given function <Math>F</Math>
645
to the category for the basic operation <C>UniversalMorphismFromZeroObjectWithGivenZeroObject</C>.
646
<Math>F: (A,Z) \mapsto u_{\mathrm{out}}(A)</Math>.
647
</Description>
648
</ManSection>
649
650
651
<ManSection>
652
<Oper Arg="C, F" Name="AddIsomorphismFromZeroObjectToInitialObject" Label="for IsCapCategory, IsFunction"/>
653
<Returns>nothing
654
</Returns>
655
<Description>
656
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
657
This operations adds the given function <Math>F</Math>
658
to the category for the basic operation <C>IsomorphismFromZeroObjectToInitialObject</C>.
659
<Math>F: () \mapsto (\mathrm{ZeroObject} \rightarrow \mathrm{InitialObject})</Math>.
660
</Description>
661
</ManSection>
662
663
664
<ManSection>
665
<Oper Arg="C, F" Name="AddIsomorphismFromInitialObjectToZeroObject" Label="for IsCapCategory, IsFunction"/>
666
<Returns>nothing
667
</Returns>
668
<Description>
669
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
670
This operations adds the given function <Math>F</Math>
671
to the category for the basic operation <C>IsomorphismFromInitialObjectToZeroObject</C>.
672
<Math>F: () \mapsto ( \mathrm{InitialObject} \rightarrow \mathrm{ZeroObject})</Math>.
673
</Description>
674
</ManSection>
675
676
677
<ManSection>
678
<Oper Arg="C, F" Name="AddIsomorphismFromZeroObjectToTerminalObject" Label="for IsCapCategory, IsFunction"/>
679
<Returns>nothing
680
</Returns>
681
<Description>
682
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
683
This operations adds the given function <Math>F</Math>
684
to the category for the basic operation <C>IsomorphismFromZeroObjectToTerminalObject</C>.
685
<Math>F: () \mapsto (\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject})</Math>.
686
</Description>
687
</ManSection>
688
689
690
<ManSection>
691
<Oper Arg="C, F" Name="AddIsomorphismFromTerminalObjectToZeroObject" Label="for IsCapCategory, IsFunction"/>
692
<Returns>nothing
693
</Returns>
694
<Description>
695
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
696
This operations adds the given function <Math>F</Math>
697
to the category for the basic operation <C>IsomorphismFromTerminalObjectToZeroObject</C>.
698
<Math>F: () \mapsto ( \mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject})</Math>.
699
</Description>
700
</ManSection>
701
702
703
<ManSection>
704
<Attr Arg="C" Name="ZeroObjectFunctorial" Label="for IsCapCategory"/>
705
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{ZeroObject} )</Math>
706
</Returns>
707
<Description>
708
The argument is a category <Math>C</Math>.
709
The output is the unique morphism <Math>\mathrm{ZeroObject} \rightarrow \mathrm{ZeroObject}</Math>.
710
</Description>
711
</ManSection>
712
713
714
<ManSection>
715
<Oper Arg="C, F" Name="AddZeroObjectFunctorial" Label="for IsCapCategory, IsFunction"/>
716
<Returns>nothing
717
</Returns>
718
<Description>
719
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
720
This operations adds the given function <Math>F</Math>
721
to the category for the basic operation <C>ZeroObjectFunctorial</C>.
722
<Math>F: () \mapsto (T \rightarrow T)</Math>.
723
</Description>
724
</ManSection>
725
726
727
</Section>
728
729
730
<Section Label="Chapter_Universal_Objects_Section_Terminal_Object">
731
<Heading>Terminal Object</Heading>
732
733
A terminal object consists of two parts:
734
<List>
735
<Item>
736
an object <Math>T</Math>,
737
</Item>
738
<Item>
739
a function <Math>u</Math> mapping each object <Math>A</Math> to a morphism <Math>u( A ): A \rightarrow T</Math>.
740
</Item>
741
</List>
742
The pair <Math>( T, u )</Math> is called a <Emph>terminal object</Emph> if the morphisms <Math>u( A )</Math> are uniquely determined up to
743
congruence of morphisms.
744
We denote the object <Math>T</Math> of such a pair by <Math>\mathrm{TerminalObject}</Math>.
745
We say that the morphism <Math>u( A )</Math> is induced by the
746
<Emph>universal property of the terminal object</Emph>.
747
<Math>\\ </Math>
748
<Math>\mathrm{TerminalObject}</Math> is a functorial operation. This just means:
749
There exists a unique morphism <Math>T \rightarrow T</Math>.
750
<ManSection>
751
<Attr Arg="C" Name="TerminalObject" Label="for IsCapCategory"/>
752
<Returns>an object
753
</Returns>
754
<Description>
755
The argument is a category <Math>C</Math>.
756
The output is a terminal object <Math>T</Math> of <Math>C</Math>.
757
</Description>
758
</ManSection>
759
760
761
<ManSection>
762
<Attr Arg="c" Name="TerminalObject" Label="for IsCapCategoryCell"/>
763
<Returns>an object
764
</Returns>
765
<Description>
766
This is a convenience method.
767
The argument is a cell <Math>c</Math>.
768
The output is a terminal object <Math>T</Math> of the
769
category <Math>C</Math> for which <Math>c \in C</Math>.
770
</Description>
771
</ManSection>
772
773
774
<ManSection>
775
<Attr Arg="A" Name="UniversalMorphismIntoTerminalObject" Label="for IsCapCategoryObject"/>
776
<Returns>a morphism in <Math>\mathrm{Hom}( A, \mathrm{TerminalObject} )</Math>
777
</Returns>
778
<Description>
779
The argument is an object <Math>A</Math>.
780
The output is the universal morphism <Math>u(A): A \rightarrow \mathrm{TerminalObject}</Math>.
781
</Description>
782
</ManSection>
783
784
785
<ManSection>
786
<Oper Arg="A, T" Name="UniversalMorphismIntoTerminalObjectWithGivenTerminalObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>
787
<Returns>a morphism in <Math>\mathrm{Hom}( A, T )</Math>
788
</Returns>
789
<Description>
790
The argument are an object <Math>A</Math>,
791
and an object <Math>T = \mathrm{TerminalObject}</Math>.
792
The output is the universal morphism <Math>u(A): A \rightarrow T</Math>.
793
</Description>
794
</ManSection>
795
796
797
<ManSection>
798
<Oper Arg="C, F" Name="AddTerminalObject" Label="for IsCapCategory, IsFunction"/>
799
<Returns>nothing
800
</Returns>
801
<Description>
802
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
803
This operations adds the given function <Math>F</Math>
804
to the category for the basic operation <C>TerminalObject</C>.
805
<Math>F: () \mapsto T</Math>.
806
</Description>
807
</ManSection>
808
809
810
<ManSection>
811
<Oper Arg="C, F" Name="AddUniversalMorphismIntoTerminalObject" Label="for IsCapCategory, IsFunction"/>
812
<Returns>nothing
813
</Returns>
814
<Description>
815
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
816
This operations adds the given function <Math>F</Math>
817
to the category for the basic operation <C>UniversalMorphismIntoTerminalObject</C>.
818
<Math>F: A \mapsto u(A)</Math>.
819
</Description>
820
</ManSection>
821
822
823
<ManSection>
824
<Oper Arg="C, F" Name="AddUniversalMorphismIntoTerminalObjectWithGivenTerminalObject" Label="for IsCapCategory, IsFunction"/>
825
<Returns>nothing
826
</Returns>
827
<Description>
828
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
829
This operations adds the given function <Math>F</Math>
830
to the category for the basic operation <C>UniversalMorphismIntoTerminalObjectWithGivenTerminalObject</C>.
831
<Math>F: (A,T) \mapsto u(A)</Math>.
832
</Description>
833
</ManSection>
834
835
836
<ManSection>
837
<Attr Arg="C" Name="TerminalObjectFunctorial" Label="for IsCapCategory"/>
838
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{TerminalObject}, \mathrm{TerminalObject} )</Math>
839
</Returns>
840
<Description>
841
The argument is a category <Math>C</Math>.
842
The output is the unique morphism <Math>\mathrm{TerminalObject} \rightarrow \mathrm{TerminalObject}</Math>.
843
</Description>
844
</ManSection>
845
846
847
<ManSection>
848
<Oper Arg="C, F" Name="AddTerminalObjectFunctorial" Label="for IsCapCategory, IsFunction"/>
849
<Returns>nothing
850
</Returns>
851
<Description>
852
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
853
This operations adds the given function <Math>F</Math>
854
to the category for the basic operation <C>TerminalObjectFunctorial</C>.
855
<Math>F: () \mapsto (T \rightarrow T)</Math>.
856
</Description>
857
</ManSection>
858
859
860
</Section>
861
862
863
<Section Label="Chapter_Universal_Objects_Section_Initial_Object">
864
<Heading>Initial Object</Heading>
865
866
An initial object consists of two parts:
867
<List>
868
<Item>
869
an object <Math>I</Math>,
870
</Item>
871
<Item>
872
a function <Math>u</Math> mapping each object <Math>A</Math> to a morphism <Math>u( A ): I \rightarrow A</Math>.
873
</Item>
874
</List>
875
The pair <Math>(I,u)</Math> is called a <Emph>initial object</Emph> if the morphisms <Math>u(A)</Math> are uniquely determined up to
876
congruence of morphisms.
877
We denote the object <Math>I</Math> of such a triple by <Math>\mathrm{InitialObject}</Math>.
878
We say that the morphism <Math>u( A )</Math> is induced by the
879
<Emph>universal property of the initial object</Emph>.
880
<Math>\\ </Math>
881
<Math>\mathrm{InitialObject}</Math> is a functorial operation. This just means:
882
There exists a unique morphisms <Math>I \rightarrow I</Math>.
883
<ManSection>
884
<Attr Arg="C" Name="InitialObject" Label="for IsCapCategory"/>
885
<Returns>an object
886
</Returns>
887
<Description>
888
The argument is a category <Math>C</Math>.
889
The output is an initial object <Math>I</Math> of <Math>C</Math>.
890
</Description>
891
</ManSection>
892
893
894
<ManSection>
895
<Attr Arg="c" Name="InitialObject" Label="for IsCapCategoryCell"/>
896
<Returns>an object
897
</Returns>
898
<Description>
899
This is a convenience method.
900
The argument is a cell <Math>c</Math>.
901
The output is an initial object <Math>I</Math> of the category <Math>C</Math>
902
for which <Math>c \in C</Math>.
903
</Description>
904
</ManSection>
905
906
907
<ManSection>
908
<Attr Arg="A" Name="UniversalMorphismFromInitialObject" Label="for IsCapCategoryObject"/>
909
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{InitialObject} \rightarrow A)</Math>.
910
</Returns>
911
<Description>
912
The argument is an object <Math>A</Math>.
913
The output is the universal morphism <Math>u(A): \mathrm{InitialObject} \rightarrow A</Math>.
914
</Description>
915
</ManSection>
916
917
918
<ManSection>
919
<Oper Arg="A, I" Name="UniversalMorphismFromInitialObjectWithGivenInitialObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>
920
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{InitialObject} \rightarrow A)</Math>.
921
</Returns>
922
<Description>
923
The arguments are an object <Math>A</Math>,
924
and an object <Math>I = \mathrm{InitialObject}</Math>.
925
The output is the universal morphism <Math>u(A): \mathrm{InitialObject} \rightarrow A</Math>.
926
</Description>
927
</ManSection>
928
929
930
<ManSection>
931
<Oper Arg="C, F" Name="AddInitialObject" Label="for IsCapCategory, IsFunction"/>
932
<Returns>nothing
933
</Returns>
934
<Description>
935
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
936
This operations adds the given function <Math>F</Math>
937
to the category for the basic operation <C>InitialObject</C>.
938
<Math>F: () \mapsto I</Math>.
939
</Description>
940
</ManSection>
941
942
943
<ManSection>
944
<Oper Arg="C, F" Name="AddUniversalMorphismFromInitialObject" Label="for IsCapCategory, IsFunction"/>
945
<Returns>nothing
946
</Returns>
947
<Description>
948
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
949
This operations adds the given function <Math>F</Math>
950
to the category for the basic operation <C>UniversalMorphismFromInitialObject</C>.
951
<Math>F: A \mapsto u(A)</Math>.
952
</Description>
953
</ManSection>
954
955
956
<ManSection>
957
<Oper Arg="C, F" Name="AddUniversalMorphismFromInitialObjectWithGivenInitialObject" Label="for IsCapCategory, IsFunction"/>
958
<Returns>nothing
959
</Returns>
960
<Description>
961
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
962
This operations adds the given function <Math>F</Math>
963
to the category for the basic operation <C>UniversalMorphismFromInitialObjectWithGivenInitialObject</C>.
964
<Math>F: (A,I) \mapsto u(A)</Math>.
965
</Description>
966
</ManSection>
967
968
969
<ManSection>
970
<Attr Arg="C" Name="InitialObjectFunctorial" Label="for IsCapCategory"/>
971
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{InitialObject}, \mathrm{InitialObject} )</Math>
972
</Returns>
973
<Description>
974
The argument is a category <Math>C</Math>.
975
The output is the unique morphism <Math>\mathrm{InitialObject} \rightarrow \mathrm{InitialObject}</Math>.
976
</Description>
977
</ManSection>
978
979
980
<ManSection>
981
<Oper Arg="C, F" Name="AddInitialObjectFunctorial" Label="for IsCapCategory, IsFunction"/>
982
<Returns>nothing
983
</Returns>
984
<Description>
985
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
986
This operations adds the given function <Math>F</Math>
987
to the category for the basic operation <C>InitialObjectFunctorial</C>.
988
<Math>F: () \rightarrow ( I \rightarrow I )</Math>.
989
</Description>
990
</ManSection>
991
992
993
</Section>
994
995
996
<Section Label="Chapter_Universal_Objects_Section_Direct_Sum">
997
<Heading>Direct Sum</Heading>
998
999
For a given list <Math>D = (S_1, \dots, S_n)</Math> in an Ab-category, a direct sum consists of five parts:
1000
<List>
1001
<Item>
1002
an object <Math>S</Math>,
1003
</Item>
1004
<Item>
1005
a list of morphisms <Math>\pi = (\pi_i: S \rightarrow S_i)_{i = 1 \dots n}</Math>,
1006
</Item>
1007
<Item>
1008
a list of morphisms <Math>\iota = (\iota_i: S_i \rightarrow S)_{i = 1 \dots n}</Math>,
1009
</Item>
1010
<Item>
1011
a dependent function <Math>u_{\mathrm{in}}</Math> mapping every list <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>
1012
to a morphism <Math>u_{\mathrm{in}}(\tau): T \rightarrow S</Math> such that
1013
<Math>\pi_i \circ u_{\mathrm{in}}(\tau) \sim_{T,S_i} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.
1014
</Item>
1015
<Item>
1016
a dependent function <Math>u_{\mathrm{out}}</Math> mapping every list <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>
1017
to a morphism <Math>u_{\mathrm{out}}(\tau): S \rightarrow T</Math> such that
1018
<Math>u_{\mathrm{out}}(\tau) \circ \iota_i \sim_{S_i, T} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>,
1019
</Item>
1020
</List>
1021
such that
1022
<List>
1023
<Item>
1024
<Math>\sum_{i=1}^{n} \iota_i \circ \pi_i = \mathrm{id}_S</Math>,
1025
</Item>
1026
<Item>
1027
<Math>\pi_j \circ \iota_i = \delta_{i,j}</Math>,
1028
</Item>
1029
</List>
1030
where <Math>\delta_{i,j} \in \mathrm{Hom}( S_i, S_j )</Math> is the identity if <Math>i=j</Math>, and <Math>0</Math> otherwise.
1031
The <Math>5</Math>-tuple <Math>(S, \pi, \iota, u_{\mathrm{in}}, u_{\mathrm{out}})</Math> is called a <Emph>direct sum</Emph> of <Math>D</Math>.
1032
We denote the object <Math>S</Math> of such a <Math>5</Math>-tuple by <Math>\bigoplus_{i=1}^n S_i</Math>.
1033
We say that the morphisms <Math>u_{\mathrm{in}}(\tau), u_{\mathrm{out}}(\tau)</Math> are induced by the
1034
<Emph>universal property of the direct sum</Emph>.
1035
<Math>\\ </Math>
1036
<Math>\mathrm{DirectSum}</Math> is a functorial operation. This means:
1037
For <Math>(\mu_i: S_i \rightarrow S'_i)_{i=1\dots n}</Math>,
1038
we obtain a morphism <Math>\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i'</Math>.
1039
<ManSection>
1040
<Oper Arg="D, method_selection_object" Name="DirectSumOp" Label="for IsList, IsCapCategoryObject"/>
1041
<Returns>an object
1042
</Returns>
1043
<Description>
1044
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1045
and an object for method selection.
1046
The output is the direct sum <Math>\bigoplus_{i=1}^n S_i</Math>.
1047
</Description>
1048
</ManSection>
1049
1050
1051
<ManSection>
1052
<Oper Arg="D,k" Name="ProjectionInFactorOfDirectSum" Label="for IsList, IsInt"/>
1053
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, S_k )</Math>
1054
</Returns>
1055
<Description>
1056
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1057
and an integer <Math>k</Math>.
1058
The output is the <Math>k</Math>-th projection
1059
<Math>\pi_k: \bigoplus_{i=1}^n S_i \rightarrow S_k</Math>.
1060
</Description>
1061
</ManSection>
1062
1063
1064
<ManSection>
1065
<Oper Arg="D,k, method_selection_object" Name="ProjectionInFactorOfDirectSumOp" Label="for IsList, IsInt, IsCapCategoryObject"/>
1066
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, S_k )</Math>
1067
</Returns>
1068
<Description>
1069
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1070
an integer <Math>k</Math>,
1071
and an object for method selection.
1072
The output is the <Math>k</Math>-th projection
1073
<Math>\pi_k: \bigoplus_{i=1}^n S_i \rightarrow S_k</Math>.
1074
</Description>
1075
</ManSection>
1076
1077
1078
<ManSection>
1079
<Oper Arg="D,k,S" Name="ProjectionInFactorOfDirectSumWithGivenDirectSum" Label="for IsList, IsInt, IsCapCategoryObject"/>
1080
<Returns>a morphism in <Math>\mathrm{Hom}( S, S_k )</Math>
1081
</Returns>
1082
<Description>
1083
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1084
an integer <Math>k</Math>,
1085
and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.
1086
The output is the <Math>k</Math>-th projection
1087
<Math>\pi_k: S \rightarrow S_k</Math>.
1088
</Description>
1089
</ManSection>
1090
1091
1092
<ManSection>
1093
<Oper Arg="D,k" Name="InjectionOfCofactorOfDirectSum" Label="for IsList, IsInt"/>
1094
<Returns>a morphism in <Math>\mathrm{Hom}( S_k, \bigoplus_{i=1}^n S_i )</Math>
1095
</Returns>
1096
<Description>
1097
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1098
and an integer <Math>k</Math>.
1099
The output is the <Math>k</Math>-th injection
1100
<Math>\iota_k: S_k \rightarrow \bigoplus_{i=1}^n S_i</Math>.
1101
</Description>
1102
</ManSection>
1103
1104
1105
<ManSection>
1106
<Oper Arg="D,k,method_selection_object" Name="InjectionOfCofactorOfDirectSumOp" Label="for IsList, IsInt, IsCapCategoryObject"/>
1107
<Returns>a morphism in <Math>\mathrm{Hom}( S_k, \bigoplus_{i=1}^n S_i )</Math>
1108
</Returns>
1109
<Description>
1110
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1111
an integer <Math>k</Math>,
1112
and an object for method selection.
1113
The output is the <Math>k</Math>-th injection
1114
<Math>\iota_k: S_k \rightarrow \bigoplus_{i=1}^n S_i</Math>.
1115
</Description>
1116
</ManSection>
1117
1118
1119
<ManSection>
1120
<Oper Arg="D,k,S" Name="InjectionOfCofactorOfDirectSumWithGivenDirectSum" Label="for IsList, IsInt, IsCapCategoryObject"/>
1121
<Returns>a morphism in <Math>\mathrm{Hom}( S_k, S )</Math>
1122
</Returns>
1123
<Description>
1124
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1125
an integer <Math>k</Math>,
1126
and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.
1127
The output is the <Math>k</Math>-th injection
1128
<Math>\iota_k: S_k \rightarrow S</Math>.
1129
</Description>
1130
</ManSection>
1131
1132
1133
<ManSection>
1134
<Func Arg="arg" Name="UniversalMorphismIntoDirectSum" />
1135
<Returns>a morphism in <Math>\mathrm{Hom}(T, \bigoplus_{i=1}^n S_i)</Math>
1136
</Returns>
1137
<Description>
1138
This is a convenience method.
1139
There are three different ways to use this method:
1140
<List>
1141
<Item>
1142
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1143
and a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>.
1144
</Item>
1145
<Item>
1146
The argument is a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>.
1147
</Item>
1148
<Item>
1149
The arguments are morphisms <Math>\tau_1: T \rightarrow S_1, \dots, \tau_n: T \rightarrow S_n</Math>.
1150
</Item>
1151
</List>
1152
The output is the morphism
1153
<Math>u_{\mathrm{in}}(\tau): T \rightarrow \bigoplus_{i=1}^n S_i</Math>
1154
given by the universal property of the direct sum.
1155
</Description>
1156
</ManSection>
1157
1158
1159
<ManSection>
1160
<Oper Arg="D,tau,method_selection_object" Name="UniversalMorphismIntoDirectSumOp" Label="for IsList, IsList, IsCapCategoryObject"/>
1161
<Returns>a morphism in <Math>\mathrm{Hom}(T, \bigoplus_{i=1}^n S_i)</Math>
1162
</Returns>
1163
<Description>
1164
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1165
a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>,
1166
and an object for method selection.
1167
The output is the morphism
1168
<Math>u_{\mathrm{in}}(\tau): T \rightarrow \bigoplus_{i=1}^n S_i</Math>
1169
given by the universal property of the direct sum.
1170
</Description>
1171
</ManSection>
1172
1173
1174
<ManSection>
1175
<Oper Arg="D,tau,S" Name="UniversalMorphismIntoDirectSumWithGivenDirectSum" Label="for IsList, IsList, IsCapCategoryObject"/>
1176
<Returns>a morphism in <Math>\mathrm{Hom}(T, S)</Math>
1177
</Returns>
1178
<Description>
1179
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1180
a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>,
1181
and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.
1182
The output is the morphism
1183
<Math>u_{\mathrm{in}}(\tau): T \rightarrow S</Math>
1184
given by the universal property of the direct sum.
1185
</Description>
1186
</ManSection>
1187
1188
1189
<ManSection>
1190
<Func Arg="arg" Name="UniversalMorphismFromDirectSum" />
1191
<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^n S_i, T)</Math>
1192
</Returns>
1193
<Description>
1194
This is a convenience method.
1195
There are three different ways to use this method:
1196
<List>
1197
<Item>
1198
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1199
and a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>.
1200
</Item>
1201
<Item>
1202
The argument is a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>.
1203
</Item>
1204
<Item>
1205
The arguments are morphisms <Math>S_1 \rightarrow T, \dots, S_n \rightarrow T</Math>.
1206
</Item>
1207
</List>
1208
The output is the morphism
1209
<Math>u_{\mathrm{out}}(\tau): \bigoplus_{i=1}^n S_i \rightarrow T</Math>
1210
given by the universal property of the direct sum.
1211
</Description>
1212
</ManSection>
1213
1214
1215
<ManSection>
1216
<Oper Arg="D, tau, method_selection_object" Name="UniversalMorphismFromDirectSumOp" Label="for IsList, IsList, IsCapCategoryObject"/>
1217
<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^n S_i, T)</Math>
1218
</Returns>
1219
<Description>
1220
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1221
a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>,
1222
and an object for method selection.
1223
The output is the morphism
1224
<Math>u_{\mathrm{out}}(\tau): \bigoplus_{i=1}^n S_i \rightarrow T</Math>
1225
given by the universal property of the direct sum.
1226
</Description>
1227
</ManSection>
1228
1229
1230
<ManSection>
1231
<Oper Arg="D, tau, S" Name="UniversalMorphismFromDirectSumWithGivenDirectSum" Label="for IsList, IsList, IsCapCategoryObject"/>
1232
<Returns>a morphism in <Math>\mathrm{Hom}(S, T)</Math>
1233
</Returns>
1234
<Description>
1235
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,
1236
a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>,
1237
and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.
1238
The output is the morphism
1239
<Math>u_{\mathrm{out}}(\tau): S \rightarrow T</Math>
1240
given by the universal property of the direct sum.
1241
</Description>
1242
</ManSection>
1243
1244
1245
<ManSection>
1246
<Oper Arg="D" Name="IsomorphismFromDirectSumToDirectProduct" Label="for IsList"/>
1247
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \prod_{i=1}^{n}S_i )</Math>
1248
</Returns>
1249
<Description>
1250
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.
1251
The output is the canonical isomorphism
1252
<Math>\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i</Math>.
1253
</Description>
1254
</ManSection>
1255
1256
1257
<ManSection>
1258
<Oper Arg="D, method_selection_object" Name="IsomorphismFromDirectSumToDirectProductOp" Label="for IsList, IsCapCategoryObject"/>
1259
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \prod_{i=1}^{n}S_i )</Math>
1260
</Returns>
1261
<Description>
1262
The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1263
and an object for method selection.
1264
The output is the canonical isomorphism
1265
<Math>\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i</Math>.
1266
</Description>
1267
</ManSection>
1268
1269
1270
<ManSection>
1271
<Oper Arg="D" Name="IsomorphismFromDirectProductToDirectSum" Label="for IsList"/>
1272
<Returns>a morphism in <Math>\mathrm{Hom}( \prod_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>
1273
</Returns>
1274
<Description>
1275
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.
1276
The output is the canonical isomorphism
1277
<Math>\prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.
1278
</Description>
1279
</ManSection>
1280
1281
1282
<ManSection>
1283
<Oper Arg="D, method_selection_object" Name="IsomorphismFromDirectProductToDirectSumOp" Label="for IsList, IsCapCategoryObject"/>
1284
<Returns>a morphism in <Math>\mathrm{Hom}( \prod_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>
1285
</Returns>
1286
<Description>
1287
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1288
and an object for method selection.
1289
The output is the canonical isomorphism
1290
<Math>\prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.
1291
</Description>
1292
</ManSection>
1293
1294
1295
<ManSection>
1296
<Oper Arg="D" Name="IsomorphismFromDirectSumToCoproduct" Label="for IsList"/>
1297
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \bigsqcup_{i=1}^{n}S_i )</Math>
1298
</Returns>
1299
<Description>
1300
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.
1301
The output is the canonical isomorphism
1302
<Math>\bigoplus_{i=1}^n S_i \rightarrow \bigsqcup_{i=1}^{n}S_i</Math>.
1303
</Description>
1304
</ManSection>
1305
1306
1307
<ManSection>
1308
<Oper Arg="D, method_selection_object" Name="IsomorphismFromDirectSumToCoproductOp" Label="for IsList, IsCapCategoryObject"/>
1309
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \bigsqcup_{i=1}^{n}S_i )</Math>
1310
</Returns>
1311
<Description>
1312
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1313
and an object for method selection.
1314
The output is the canonical isomorphism
1315
<Math>\bigoplus_{i=1}^n S_i \rightarrow \bigsqcup_{i=1}^{n}S_i</Math>.
1316
</Description>
1317
</ManSection>
1318
1319
1320
<ManSection>
1321
<Oper Arg="D" Name="IsomorphismFromCoproductToDirectSum" Label="for IsList"/>
1322
<Returns>a morphism in <Math>\mathrm{Hom}( \bigsqcup_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>
1323
</Returns>
1324
<Description>
1325
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.
1326
The output is the canonical isomorphism
1327
<Math>\bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.
1328
</Description>
1329
</ManSection>
1330
1331
1332
<ManSection>
1333
<Oper Arg="D, method_selection_object" Name="IsomorphismFromCoproductToDirectSumOp" Label="for IsList, IsCapCategoryObject"/>
1334
<Returns>a morphism in <Math>\mathrm{Hom}( \bigsqcup_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>
1335
</Returns>
1336
<Description>
1337
The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>
1338
and an object for method selection.
1339
The output is the canonical isomorphism
1340
<Math>\bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.
1341
</Description>
1342
</ManSection>
1343
1344
1345
<ManSection Label="MorphismBetweenDirectSums">
1346
<Oper Arg="M" Name="MorphismBetweenDirectSums" Label="for IsList"/>
1347
<Oper Arg="S, M, T" Name="MorphismBetweenDirectSums" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>
1348
<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^{m}A_i, \bigoplus_{j=1}^n B_j)</Math>
1349
</Returns>
1350
<Description>
1351
The argument <Math>M = ( ( \phi_{i,j}: A_i \rightarrow B_j )_{j = 1 \dots n} )_{i = 1 \dots m}</Math>
1352
is a list of lists of morphisms.
1353
The output is the morphism
1354
<Math>\bigoplus_{i=1}^{m}A_i \rightarrow \bigoplus_{j=1}^n B_j</Math>
1355
defined by the matrix <Math>M</Math>.
1356
The extra arguments <Math>S = \bigoplus_{i=1}^{m}A_i</Math>
1357
and <Math>T = \bigoplus_{j=1}^n B_j</Math> are source and target of the output,
1358
respectively. They must be provided in case <Math>M</Math> is an empty list
1359
or a list of empty lists.
1360
</Description>
1361
</ManSection>
1362
1363
1364
<ManSection>
1365
<Oper Arg="M, m, n, method_selection_morphism" Name="MorphismBetweenDirectSumsOp" Label="for IsList, IsInt, IsInt, IsCapCategoryMorphism"/>
1366
<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^{m}A_i, \bigoplus_{j=1}^n B_j)</Math>
1367
</Returns>
1368
<Description>
1369
The arguments are a list
1370
<Math>M = ( \phi_{1,1}, \phi_{1,2}, \dots, \phi_{1,n}, \phi_{2,1}, \dots, \phi_{m,n} )</Math>
1371
of morphisms <Math>\phi_{i,j}: A_i \rightarrow B_j</Math>,
1372
an integer <Math>m</Math>,
1373
an integer <Math>n</Math>,
1374
and a method selection morphism.
1375
The output is the morphism
1376
<Math>\bigoplus_{i=1}^{m}A_i \rightarrow \bigoplus_{j=1}^n B_j</Math>
1377
defined by the list <Math>M</Math> regarded as a matrix of dimension <Math>m \times n</Math>.
1378
</Description>
1379
</ManSection>
1380
1381
1382
<ManSection>
1383
<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectSum" Label="for IsCapCategory, IsFunction"/>
1384
<Returns>nothing
1385
</Returns>
1386
<Description>
1387
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1388
This operations adds the given function <Math>F</Math>
1389
to the category for the basic operation <C>ProjectionInFactorOfDirectSum</C>.
1390
<Math>F: (D,k) \mapsto \pi_{k}</Math>.
1391
</Description>
1392
</ManSection>
1393
1394
1395
<ManSection>
1396
<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>
1397
<Returns>nothing
1398
</Returns>
1399
<Description>
1400
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1401
This operations adds the given function <Math>F</Math>
1402
to the category for the basic operation <C>ProjectionInFactorOfDirectSumWithGivenDirectSum</C>.
1403
<Math>F: (D,k,S) \mapsto \pi_{k}</Math>.
1404
</Description>
1405
</ManSection>
1406
1407
1408
<ManSection>
1409
<Oper Arg="C, F" Name="AddInjectionOfCofactorOfDirectSum" Label="for IsCapCategory, IsFunction"/>
1410
<Returns>nothing
1411
</Returns>
1412
<Description>
1413
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1414
This operations adds the given function <Math>F</Math>
1415
to the category for the basic operation <C>InjectionOfCofactorOfDirectSum</C>.
1416
<Math>F: (D,k) \mapsto \iota_{k}</Math>.
1417
</Description>
1418
</ManSection>
1419
1420
1421
<ManSection>
1422
<Oper Arg="C, F" Name="AddInjectionOfCofactorOfDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>
1423
<Returns>nothing
1424
</Returns>
1425
<Description>
1426
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1427
This operations adds the given function <Math>F</Math>
1428
to the category for the basic operation <C>InjectionOfCofactorOfDirectSumWithGivenDirectSum</C>.
1429
<Math>F: (D,k,S) \mapsto \iota_{k}</Math>.
1430
</Description>
1431
</ManSection>
1432
1433
1434
<ManSection>
1435
<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectSum" Label="for IsCapCategory, IsFunction"/>
1436
<Returns>nothing
1437
</Returns>
1438
<Description>
1439
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1440
This operations adds the given function <Math>F</Math>
1441
to the category for the basic operation <C>UniversalMorphismIntoDirectSum</C>.
1442
<Math>F: (D,\tau) \mapsto u_{\mathrm{in}}(\tau)</Math>.
1443
</Description>
1444
</ManSection>
1445
1446
1447
<ManSection>
1448
<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>
1449
<Returns>nothing
1450
</Returns>
1451
<Description>
1452
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1453
This operations adds the given function <Math>F</Math>
1454
to the category for the basic operation <C>UniversalMorphismIntoDirectSumWithGivenDirectSum</C>.
1455
<Math>F: (D,\tau,S) \mapsto u_{\mathrm{in}}(\tau)</Math>.
1456
</Description>
1457
</ManSection>
1458
1459
1460
<ManSection>
1461
<Oper Arg="C, F" Name="AddUniversalMorphismFromDirectSum" Label="for IsCapCategory, IsFunction"/>
1462
<Returns>nothing
1463
</Returns>
1464
<Description>
1465
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1466
This operations adds the given function <Math>F</Math>
1467
to the category for the basic operation <C>UniversalMorphismFromDirectSum</C>.
1468
<Math>F: (D,\tau) \mapsto u_{\mathrm{out}}(\tau)</Math>.
1469
</Description>
1470
</ManSection>
1471
1472
1473
<ManSection>
1474
<Oper Arg="C, F" Name="AddUniversalMorphismFromDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>
1475
<Returns>nothing
1476
</Returns>
1477
<Description>
1478
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1479
This operations adds the given function <Math>F</Math>
1480
to the category for the basic operation <C>UniversalMorphismFromDirectSumWithGivenDirectSum</C>.
1481
<Math>F: (D,\tau,S) \mapsto u_{\mathrm{out}}(\tau)</Math>.
1482
</Description>
1483
</ManSection>
1484
1485
1486
<ManSection>
1487
<Oper Arg="C, F" Name="AddIsomorphismFromDirectSumToDirectProduct" Label="for IsCapCategory, IsFunction"/>
1488
<Returns>nothing
1489
</Returns>
1490
<Description>
1491
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1492
This operations adds the given function <Math>F</Math>
1493
to the category for the basic operation <C>IsomorphismFromDirectSumToDirectProduct</C>.
1494
<Math>F: D \mapsto (\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i)</Math>.
1495
</Description>
1496
</ManSection>
1497
1498
1499
<ManSection>
1500
<Oper Arg="C, F" Name="AddIsomorphismFromDirectProductToDirectSum" Label="for IsCapCategory, IsFunction"/>
1501
<Returns>nothing
1502
</Returns>
1503
<Description>
1504
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1505
This operations adds the given function <Math>F</Math>
1506
to the category for the basic operation <C>IsomorphismFromDirectProductToDirectSum</C>.
1507
<Math>F: D \mapsto ( \prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i )</Math>.
1508
</Description>
1509
</ManSection>
1510
1511
1512
<ManSection>
1513
<Oper Arg="C, F" Name="AddIsomorphismFromDirectSumToCoproduct" Label="for IsCapCategory, IsFunction"/>
1514
<Returns>nothing
1515
</Returns>
1516
<Description>
1517
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1518
This operations adds the given function <Math>F</Math>
1519
to the category for the basic operation <C>IsomorphismFromDirectSumToCoproduct</C>.
1520
<Math>F: D \mapsto ( \bigoplus_{i=1}^n S_i \rightarrow \bigsqcup_{i=1}^{n}S_i )</Math>.
1521
</Description>
1522
</ManSection>
1523
1524
1525
<ManSection>
1526
<Oper Arg="C, F" Name="AddIsomorphismFromCoproductToDirectSum" Label="for IsCapCategory, IsFunction"/>
1527
<Returns>nothing
1528
</Returns>
1529
<Description>
1530
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1531
This operations adds the given function <Math>F</Math>
1532
to the category for the basic operation <C>IsomorphismFromCoproductToDirectSum</C>.
1533
<Math>F: D \mapsto ( \bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i )</Math>.
1534
</Description>
1535
</ManSection>
1536
1537
1538
<ManSection>
1539
<Oper Arg="C, F" Name="AddDirectSum" Label="for IsCapCategory, IsFunction"/>
1540
<Returns>nothing
1541
</Returns>
1542
<Description>
1543
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1544
This operations adds the given function <Math>F</Math>
1545
to the category for the basic operation <C>DirectSum</C>.
1546
<Math>F: D \mapsto \bigoplus_{i=1}^n S_i</Math>.
1547
</Description>
1548
</ManSection>
1549
1550
1551
<ManSection>
1552
<Oper Arg="L" Name="DirectSumFunctorial" Label="for IsList"/>
1553
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \bigoplus_{i=1}^n S_i' )</Math>
1554
</Returns>
1555
<Description>
1556
The argument is a list of morphisms <Math>L = ( \mu_1: S_1 \rightarrow S_1', \dots, \mu_n: S_n \rightarrow S_n' )</Math>.
1557
The output is a morphism
1558
<Math>\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i'</Math>
1559
given by the functorality of the direct sum.
1560
</Description>
1561
</ManSection>
1562
1563
1564
<ManSection>
1565
<Oper Arg="d_1, L, d_2" Name="DirectSumFunctorialWithGivenDirectSums" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>
1566
<Returns>a morphism in <Math>\mathrm{Hom}( d_1, d_2 )</Math>
1567
</Returns>
1568
<Description>
1569
The arguments are an object <Math>d_1 = \bigoplus_{i=1}^n S_i</Math>,
1570
a list of morphisms <Math>L = ( \mu_1: S_1 \rightarrow S_1', \dots, \mu_n: S_n \rightarrow S_n' )</Math>,
1571
and an object <Math>d_2 = \bigoplus_{i=1}^n S_i'</Math>.
1572
The output is a morphism
1573
<Math>d_1 \rightarrow d_2</Math>
1574
given by the functorality of the direct sum.
1575
</Description>
1576
</ManSection>
1577
1578
1579
<ManSection>
1580
<Oper Arg="C, F" Name="AddDirectSumFunctorialWithGivenDirectSums" Label="for IsCapCategory, IsFunction"/>
1581
<Returns>nothing
1582
</Returns>
1583
<Description>
1584
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1585
This operations adds the given function <Math>F</Math>
1586
to the category for the basic operation <C>DirectSumFunctorialWithGivenDirectSums</C>.
1587
<Math>F: (\bigoplus_{i=1}^n S_i, ( \mu_1, \dots, \mu_n ), \bigoplus_{i=1}^n S_i') \mapsto (\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i')</Math>.
1588
</Description>
1589
</ManSection>
1590
1591
1592
</Section>
1593
1594
1595
<Section Label="Chapter_Universal_Objects_Section_Coproduct">
1596
<Heading>Coproduct</Heading>
1597
1598
For a given list of objects <Math>D = ( I_1, \dots, I_n )</Math>, a coproduct of <Math>D</Math> consists of three parts:
1599
<List>
1600
<Item>
1601
an object <Math>I</Math>,
1602
</Item>
1603
<Item>
1604
a list of morphisms <Math>\iota = ( \iota_i: I_i \rightarrow I )_{i = 1 \dots n}</Math>
1605
</Item>
1606
<Item>
1607
a dependent function <Math>u</Math> mapping each list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>
1608
to a morphism <Math>u( \tau ): I \rightarrow T</Math> such that <Math>u( \tau ) \circ \iota_i \sim_{I_i, T} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.
1609
</Item>
1610
</List>
1611
The triple <Math>( I, \iota, u )</Math> is called a <Emph>coproduct</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
1612
congruence of morphisms.
1613
We denote the object <Math>I</Math> of such a triple by <Math>\bigsqcup_{i=1}^n I_i</Math>.
1614
We say that the morphism <Math>u( \tau )</Math> is induced by the
1615
<Emph>universal property of the coproduct</Emph>.
1616
<Math>\\ </Math>
1617
<Math>\mathrm{Coproduct}</Math> is a functorial operation. This means:
1618
For <Math>(\mu_i: I_i \rightarrow I'_i)_{i=1\dots n}</Math>,
1619
we obtain a morphism <Math>\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i'</Math>.
1620
<ManSection>
1621
<Attr Arg="D" Name="Coproduct" Label="for IsList"/>
1622
<Returns>an object
1623
</Returns>
1624
<Description>
1625
The argument is a list of objects <Math>D = ( I_1, \dots, I_n )</Math>.
1626
The output is the coproduct <Math>\bigsqcup_{i=1}^n I_i</Math>.
1627
</Description>
1628
</ManSection>
1629
1630
1631
<ManSection>
1632
<Oper Arg="I1, I2" Name="Coproduct" Label="for IsCapCategoryObject, IsCapCategoryObject"/>
1633
<Returns>an object
1634
</Returns>
1635
<Description>
1636
This is a convenience method.
1637
The arguments are two objects <Math>I_1, I_2</Math>.
1638
The output is the coproduct <Math>I_1 \bigsqcup I_2</Math>.
1639
</Description>
1640
</ManSection>
1641
1642
1643
<ManSection>
1644
<Oper Arg="I1, I2" Name="Coproduct" Label="for IsCapCategoryObject, IsCapCategoryObject, IsCapCategoryObject"/>
1645
<Returns>an object
1646
</Returns>
1647
<Description>
1648
This is a convenience method.
1649
The arguments are three objects <Math>I_1, I_2, I_3</Math>.
1650
The output is the coproduct <Math>I_1 \bigsqcup I_2 \bigsqcup I_3</Math>.
1651
</Description>
1652
</ManSection>
1653
1654
1655
<ManSection>
1656
<Oper Arg="D, method_selection_object" Name="CoproductOp" Label="for IsList, IsCapCategoryObject"/>
1657
<Returns>an object
1658
</Returns>
1659
<Description>
1660
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>
1661
and a method selection object.
1662
The output is the coproduct <Math>\bigsqcup_{i=1}^n I_i</Math>.
1663
</Description>
1664
</ManSection>
1665
1666
1667
<ManSection>
1668
<Oper Arg="D,k" Name="InjectionOfCofactorOfCoproduct" Label="for IsList, IsInt"/>
1669
<Returns>a morphism in <Math>\mathrm{Hom}(I_k, \bigsqcup_{i=1}^n I_i)</Math>
1670
</Returns>
1671
<Description>
1672
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>
1673
and an integer <Math>k</Math>.
1674
The output is the <Math>k</Math>-th injection
1675
<Math>\iota_k: I_k \rightarrow \bigsqcup_{i=1}^n I_i</Math>.
1676
</Description>
1677
</ManSection>
1678
1679
1680
<ManSection>
1681
<Oper Arg="D,k,method_selection_object" Name="InjectionOfCofactorOfCoproductOp" Label="for IsList, IsInt, IsCapCategoryObject"/>
1682
<Returns>a morphism in <Math>\mathrm{Hom}(I_k, \bigsqcup_{i=1}^n I_i)</Math>
1683
</Returns>
1684
<Description>
1685
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,
1686
an integer <Math>k</Math>,
1687
and a method selection object.
1688
The output is the <Math>k</Math>-th injection
1689
<Math>\iota_k: I_k \rightarrow \bigsqcup_{i=1}^n I_i</Math>.
1690
</Description>
1691
</ManSection>
1692
1693
1694
<ManSection>
1695
<Oper Arg="D,k,I" Name="InjectionOfCofactorOfCoproductWithGivenCoproduct" Label="for IsList, IsInt, IsCapCategoryObject"/>
1696
<Returns>a morphism in <Math>\mathrm{Hom}(I_k, I)</Math>
1697
</Returns>
1698
<Description>
1699
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,
1700
an integer <Math>k</Math>,
1701
and an object <Math>I = \bigsqcup_{i=1}^n I_i</Math>.
1702
The output is the <Math>k</Math>-th injection
1703
<Math>\iota_k: I_k \rightarrow I</Math>.
1704
</Description>
1705
</ManSection>
1706
1707
1708
<ManSection>
1709
<Func Arg="arg" Name="UniversalMorphismFromCoproduct" />
1710
<Returns>a morphism in <Math>\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, T)</Math>
1711
</Returns>
1712
<Description>
1713
This is a convenience method.
1714
There are three different ways to use this method.
1715
<List>
1716
<Item>
1717
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,
1718
a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>.
1719
</Item>
1720
<Item>
1721
The argument is a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>.
1722
</Item>
1723
<Item>
1724
The arguments are morphisms <Math>\tau_1: I_1 \rightarrow T, \dots, \tau_n: I_n \rightarrow T</Math>
1725
</Item>
1726
</List>
1727
The output is the morphism
1728
<Math>u( \tau ): \bigsqcup_{i=1}^n I_i \rightarrow T</Math>
1729
given by the universal property of the coproduct.
1730
</Description>
1731
</ManSection>
1732
1733
1734
<ManSection>
1735
<Oper Arg="D, tau, method_selection_object" Name="UniversalMorphismFromCoproductOp" Label="for IsList, IsList, IsCapCategoryObject"/>
1736
<Returns>a morphism in <Math>\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, T)</Math>
1737
</Returns>
1738
<Description>
1739
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,
1740
a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>,
1741
and a method selection object.
1742
The output is the morphism
1743
<Math>u( \tau ): \bigsqcup_{i=1}^n I_i \rightarrow T</Math>
1744
given by the universal property of the coproduct.
1745
</Description>
1746
</ManSection>
1747
1748
1749
<ManSection>
1750
<Oper Arg="D, tau, I" Name="UniversalMorphismFromCoproductWithGivenCoproduct" Label="for IsList, IsList, IsCapCategoryObject"/>
1751
<Returns>a morphism in <Math>\mathrm{Hom}(I, T)</Math>
1752
</Returns>
1753
<Description>
1754
The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,
1755
a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>,
1756
and an object <Math>I = \bigsqcup_{i=1}^n I_i</Math>.
1757
The output is the morphism
1758
<Math>u( \tau ): I \rightarrow T</Math>
1759
given by the universal property of the coproduct.
1760
</Description>
1761
</ManSection>
1762
1763
1764
<ManSection>
1765
<Oper Arg="C, F" Name="AddCoproduct" Label="for IsCapCategory, IsFunction"/>
1766
<Returns>nothing
1767
</Returns>
1768
<Description>
1769
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1770
This operations adds the given function <Math>F</Math>
1771
to the category for the basic operation <C>Coproduct</C>.
1772
<Math>F: ( (I_1, \dots, I_n) ) \mapsto I</Math>.
1773
</Description>
1774
</ManSection>
1775
1776
1777
<ManSection>
1778
<Oper Arg="C, F" Name="AddInjectionOfCofactorOfCoproduct" Label="for IsCapCategory, IsFunction"/>
1779
<Returns>nothing
1780
</Returns>
1781
<Description>
1782
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1783
This operations adds the given function <Math>F</Math>
1784
to the category for the basic operation <C>InjectionOfCofactorOfCoproduct</C>.
1785
<Math>F: ( (I_1, \dots, I_n), i ) \mapsto \iota_i</Math>.
1786
</Description>
1787
</ManSection>
1788
1789
1790
<ManSection>
1791
<Oper Arg="C, F" Name="AddInjectionOfCofactorOfCoproductWithGivenCoproduct" Label="for IsCapCategory, IsFunction"/>
1792
<Returns>nothing
1793
</Returns>
1794
<Description>
1795
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1796
This operations adds the given function <Math>F</Math>
1797
to the category for the basic operation <C>InjectionOfCofactorOfCoproductWithGivenCoproduct</C>.
1798
<Math>F: ( (I_1, \dots, I_n), i, I ) \mapsto \iota_i</Math>.
1799
</Description>
1800
</ManSection>
1801
1802
1803
<ManSection>
1804
<Oper Arg="C, F" Name="AddUniversalMorphismFromCoproduct" Label="for IsCapCategory, IsFunction"/>
1805
<Returns>nothing
1806
</Returns>
1807
<Description>
1808
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1809
This operations adds the given function <Math>F</Math>
1810
to the category for the basic operation <C>UniversalMorphismFromCoproduct</C>.
1811
<Math>F: ( (I_1, \dots, I_n), \tau ) \mapsto u( \tau )</Math>.
1812
</Description>
1813
</ManSection>
1814
1815
1816
<ManSection>
1817
<Oper Arg="C, F" Name="AddUniversalMorphismFromCoproductWithGivenCoproduct" Label="for IsCapCategory, IsFunction"/>
1818
<Returns>nothing
1819
</Returns>
1820
<Description>
1821
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1822
This operations adds the given function <Math>F</Math>
1823
to the category for the basic operation <C>UniversalMorphismFromCoproductWithGivenCoproduct</C>.
1824
<Math>F: ( (I_1, \dots, I_n), \tau, I ) \mapsto u( \tau )</Math>.
1825
</Description>
1826
</ManSection>
1827
1828
1829
<ManSection>
1830
<Oper Arg="L" Name="CoproductFunctorial" Label="for IsList"/>
1831
<Returns>a morphism in <Math>\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, \bigsqcup_{i=1}^n I_i')</Math>
1832
</Returns>
1833
<Description>
1834
The argument is a list <Math>L = ( \mu_1: I_1 \rightarrow I_1', \dots, \mu_n: I_n \rightarrow I_n' )</Math>.
1835
The output is a morphism
1836
<Math>\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i'</Math>
1837
given by the functorality of the coproduct.
1838
</Description>
1839
</ManSection>
1840
1841
1842
<ManSection>
1843
<Oper Arg="s, L, r" Name="CoproductFunctorialWithGivenCoproducts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>
1844
<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>
1845
</Returns>
1846
<Description>
1847
The arguments are an object <Math>s = \bigsqcup_{i=1}^n I_i</Math>,
1848
a list <Math>L = ( \mu_1: I_1 \rightarrow I_1', \dots, \mu_n: I_n \rightarrow I_n' )</Math>,
1849
and an object <Math>r = \bigsqcup_{i=1}^n I_i'</Math>.
1850
The output is a morphism
1851
<Math>\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i'</Math>
1852
given by the functorality of the coproduct.
1853
</Description>
1854
</ManSection>
1855
1856
1857
<ManSection>
1858
<Oper Arg="C, F" Name="AddCoproductFunctorialWithGivenCoproducts" Label="for IsCapCategory, IsFunction"/>
1859
<Returns>nothing
1860
</Returns>
1861
<Description>
1862
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
1863
This operations adds the given function <Math>F</Math>
1864
to the category for the basic operation <C>CoproductFunctorialWithGivenCoproducts</C>.
1865
<Math>F: (\bigsqcup_{i=1}^n I_i, (\mu_1, \dots, \mu_n), \bigsqcup_{i=1}^n I_i') \rightarrow (\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i')</Math>.
1866
</Description>
1867
</ManSection>
1868
1869
1870
</Section>
1871
1872
1873
<Section Label="Chapter_Universal_Objects_Section_Direct_Product">
1874
<Heading>Direct Product</Heading>
1875
1876
For a given list of objects <Math>D = ( P_1, \dots, P_n )</Math>, a direct product of <Math>D</Math> consists of three parts:
1877
<List>
1878
<Item>
1879
an object <Math>P</Math>,
1880
</Item>
1881
<Item>
1882
a list of morphisms <Math>\pi = ( \pi_i: P \rightarrow P_i )_{i = 1 \dots n}</Math>
1883
</Item>
1884
<Item>
1885
a dependent function <Math>u</Math> mapping each list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>
1886
to a morphism <Math>u(\tau): T \rightarrow P</Math> such that <Math>\pi_i \circ u( \tau ) \sim_{T,P_i} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.
1887
</Item>
1888
</List>
1889
The triple <Math>( P, \pi, u )</Math> is called a <Emph>direct product</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
1890
congruence of morphisms.
1891
We denote the object <Math>P</Math> of such a triple by <Math>\prod_{i=1}^n P_i</Math>.
1892
We say that the morphism <Math>u( \tau )</Math> is induced by the
1893
<Emph>universal property of the direct product</Emph>.
1894
<Math>\\ </Math>
1895
<Math>\mathrm{DirectProduct}</Math> is a functorial operation. This means:
1896
For <Math>(\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math>,
1897
we obtain a morphism <Math>\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i'</Math>.
1898
<ManSection>
1899
<Oper Arg="D" Name="DirectProductOp" Label="for IsList, IsCapCategoryObject"/>
1900
<Returns>an object
1901
</Returns>
1902
<Description>
1903
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>
1904
and an object for method selection.
1905
The output is the direct product <Math>\prod_{i=1}^n P_i</Math>.
1906
</Description>
1907
</ManSection>
1908
1909
1910
<ManSection>
1911
<Oper Arg="D,k" Name="ProjectionInFactorOfDirectProduct" Label="for IsList, IsInt"/>
1912
<Returns>a morphism in <Math>\mathrm{Hom}(\prod_{i=1}^n P_i, P_k)</Math>
1913
</Returns>
1914
<Description>
1915
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>
1916
and an integer <Math>k</Math>.
1917
The output is the <Math>k</Math>-th projection
1918
<Math>\pi_k: \prod_{i=1}^n P_i \rightarrow P_k</Math>.
1919
</Description>
1920
</ManSection>
1921
1922
1923
<ManSection>
1924
<Oper Arg="D,k,method_selection_object" Name="ProjectionInFactorOfDirectProductOp" Label="for IsList, IsInt, IsCapCategoryObject"/>
1925
<Returns>a morphism in <Math>\mathrm{Hom}(\prod_{i=1}^n P_i, P_k)</Math>
1926
</Returns>
1927
<Description>
1928
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,
1929
an integer <Math>k</Math>,
1930
and an object for method selection.
1931
The output is the <Math>k</Math>-th projection
1932
<Math>\pi_k: \prod_{i=1}^n P_i \rightarrow P_k</Math>.
1933
</Description>
1934
</ManSection>
1935
1936
1937
<ManSection>
1938
<Oper Arg="D,k,P" Name="ProjectionInFactorOfDirectProductWithGivenDirectProduct" Label="for IsList, IsInt, IsCapCategoryObject"/>
1939
<Returns>a morphism in <Math>\mathrm{Hom}(P, P_k)</Math>
1940
</Returns>
1941
<Description>
1942
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,
1943
an integer <Math>k</Math>,
1944
and an object <Math>P = \prod_{i=1}^n P_i</Math>.
1945
The output is the <Math>k</Math>-th projection
1946
<Math>\pi_k: P \rightarrow P_k</Math>.
1947
</Description>
1948
</ManSection>
1949
1950
1951
<ManSection>
1952
<Func Arg="arg" Name="UniversalMorphismIntoDirectProduct" />
1953
<Returns>a morphism in <Math>\mathrm{Hom}(T, \prod_{i=1}^n P_i)</Math>
1954
</Returns>
1955
<Description>
1956
This is a convenience method.
1957
There are three different ways to use this method.
1958
<List>
1959
<Item>
1960
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>
1961
and a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>.
1962
</Item>
1963
<Item>
1964
The argument is a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>.
1965
</Item>
1966
<Item>
1967
The arguments are morphisms <Math>\tau_1: T \rightarrow P_1, \dots, \tau_n: T \rightarrow P_n</Math>.
1968
</Item>
1969
</List>
1970
The output is the morphism
1971
<Math>u(\tau): T \rightarrow \prod_{i=1}^n P_i</Math>
1972
given by the universal property of the direct product.
1973
</Description>
1974
</ManSection>
1975
1976
1977
<ManSection>
1978
<Oper Arg="D, tau, method_selection_object" Name="UniversalMorphismIntoDirectProductOp" Label="for IsList, IsList, IsCapCategoryObject"/>
1979
<Returns>a morphism in <Math>\mathrm{Hom}(T, \prod_{i=1}^n P_i)</Math>
1980
</Returns>
1981
<Description>
1982
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,
1983
a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>,
1984
and an object for method selection.
1985
The output is the morphism
1986
<Math>u(\tau): T \rightarrow \prod_{i=1}^n P_i</Math>
1987
given by the universal property of the direct product.
1988
</Description>
1989
</ManSection>
1990
1991
1992
<ManSection>
1993
<Oper Arg="D, tau, P" Name="UniversalMorphismIntoDirectProductWithGivenDirectProduct" Label="for IsList, IsList, IsCapCategoryObject"/>
1994
<Returns>a morphism in <Math>\mathrm{Hom}(T, \prod_{i=1}^n P_i)</Math>
1995
</Returns>
1996
<Description>
1997
The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,
1998
a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>,
1999
and an object <Math>P = \prod_{i=1}^n P_i</Math>.
2000
The output is the morphism
2001
<Math>u(\tau): T \rightarrow \prod_{i=1}^n P_i</Math>
2002
given by the universal property of the direct product.
2003
</Description>
2004
</ManSection>
2005
2006
2007
<ManSection>
2008
<Oper Arg="C, F" Name="AddDirectProduct" Label="for IsCapCategory, IsFunction"/>
2009
<Returns>nothing
2010
</Returns>
2011
<Description>
2012
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2013
This operations adds the given function <Math>F</Math>
2014
to the category for the basic operation <C>DirectProduct</C>.
2015
<Math>F: ( (P_1, \dots, P_n) ) \mapsto P</Math>
2016
</Description>
2017
</ManSection>
2018
2019
2020
<ManSection>
2021
<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectProduct" Label="for IsCapCategory, IsFunction"/>
2022
<Returns>nothing
2023
</Returns>
2024
<Description>
2025
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2026
This operations adds the given function <Math>F</Math>
2027
to the category for the basic operation <C>ProjectionInFactorOfDirectProduct</C>.
2028
<Math>F: ( (P_1, \dots, P_n),k ) \mapsto \pi_k</Math>
2029
</Description>
2030
</ManSection>
2031
2032
2033
<ManSection>
2034
<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectProductWithGivenDirectProduct" Label="for IsCapCategory, IsFunction"/>
2035
<Returns>nothing
2036
</Returns>
2037
<Description>
2038
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2039
This operations adds the given function <Math>F</Math>
2040
to the category for the basic operation <C>ProjectionInFactorOfDirectProductWithGivenDirectProduct</C>.
2041
<Math>F: ( (P_1, \dots, P_n),k,P ) \mapsto \pi_k</Math>
2042
</Description>
2043
</ManSection>
2044
2045
2046
<ManSection>
2047
<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectProduct" Label="for IsCapCategory, IsFunction"/>
2048
<Returns>nothing
2049
</Returns>
2050
<Description>
2051
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2052
This operations adds the given function <Math>F</Math>
2053
to the category for the basic operation <C>UniversalMorphismIntoDirectProduct</C>.
2054
<Math>F: ( (P_1, \dots, P_n), \tau ) \mapsto u( \tau )</Math>
2055
</Description>
2056
</ManSection>
2057
2058
2059
<ManSection>
2060
<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectProductWithGivenDirectProduct" Label="for IsCapCategory, IsFunction"/>
2061
<Returns>nothing
2062
</Returns>
2063
<Description>
2064
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2065
This operations adds the given function <Math>F</Math>
2066
to the category for the basic operation <C>UniversalMorphismIntoDirectProductWithGivenDirectProduct</C>.
2067
<Math>F: ( (P_1, \dots, P_n), \tau, P ) \mapsto u( \tau )</Math>
2068
</Description>
2069
</ManSection>
2070
2071
2072
<ManSection>
2073
<Oper Arg="L" Name="DirectProductFunctorial" Label="for IsList"/>
2074
<Returns>a morphism in <Math>\mathrm{Hom}( \prod_{i=1}^n P_i, \prod_{i=1}^n P_i' )</Math>
2075
</Returns>
2076
<Description>
2077
The argument is a list of morphisms <Math>L = (\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math>.
2078
The output is a morphism
2079
<Math>\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i'</Math>
2080
given by the functorality of the direct product.
2081
</Description>
2082
</ManSection>
2083
2084
2085
<ManSection>
2086
<Oper Arg="s, L, r" Name="DirectProductFunctorialWithGivenDirectProducts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>
2087
<Returns>a morphism in <Math>\mathrm{Hom}( s, r )</Math>
2088
</Returns>
2089
<Description>
2090
The arguments are an object <Math>s = \prod_{i=1}^n P_i</Math>,
2091
a list of morphisms <Math>L = (\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math>,
2092
and an object <Math>r = \prod_{i=1}^n P_i'</Math>.
2093
The output is a morphism
2094
<Math>\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i'</Math>
2095
given by the functorality of the direct product.
2096
</Description>
2097
</ManSection>
2098
2099
2100
<ManSection>
2101
<Oper Arg="C, F" Name="AddDirectProductFunctorialWithGivenDirectProducts" Label="for IsCapCategory, IsFunction"/>
2102
<Returns>nothing
2103
</Returns>
2104
<Description>
2105
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2106
This operations adds the given function <Math>F</Math>
2107
to the category for the basic operation <C>DirectProductFunctorialWithGivenDirectProducts</C>.
2108
<Math>F: ( \prod_{i=1}^n P_i, (\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}, \prod_{i=1}^n P_i' ) \mapsto (\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i')</Math>
2109
</Description>
2110
</ManSection>
2111
2112
2113
</Section>
2114
2115
2116
<Section Label="Chapter_Universal_Objects_Section_Fiber_Product">
2117
<Heading>Fiber Product</Heading>
2118
2119
For a given list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,
2120
a fiber product of <Math>D</Math> consists of three parts:
2121
<List>
2122
<Item>
2123
an object <Math>P</Math>,
2124
</Item>
2125
<Item>
2126
a list of morphisms <Math>\pi = ( \pi_i: P \rightarrow P_i )_{i = 1 \dots n}</Math> such that
2127
<Math>\beta_i \circ \pi_i \sim_{P, B} \beta_j \circ \pi_j</Math> for all pairs <Math>i,j</Math>.
2128
</Item>
2129
<Item>
2130
a dependent function <Math>u</Math> mapping each list of morphisms
2131
<Math>\tau = ( \tau_i: T \rightarrow P_i )</Math> such that
2132
<Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>
2133
to a morphism <Math>u( \tau ): T \rightarrow P</Math> such that
2134
<Math>\pi_i \circ u( \tau ) \sim_{T, P_i} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.
2135
</Item>
2136
</List>
2137
The triple <Math>( P, \pi, u )</Math> is called a <Emph>fiber product</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
2138
congruence of morphisms.
2139
We denote the object <Math>P</Math> of such a triple by <Math>\mathrm{FiberProduct}(D)</Math>.
2140
We say that the morphism <Math>u( \tau )</Math> is induced by the
2141
<Emph>universal property of the fiber product</Emph>.
2142
<Math>\\ </Math>
2143
<Math>\mathrm{FiberProduct}</Math> is a functorial operation. This means:
2144
For a second diagram <Math>D' = (\beta_i': P_i' \rightarrow B')_{i = 1 \dots n}</Math> and a natural morphism
2145
between pullback diagrams (i.e., a collection of morphisms
2146
<Math>(\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math> and <Math>\beta: B \rightarrow B'</Math>
2147
such that <Math>\beta_i' \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i</Math> for <Math>i = 1, \dots, n</Math>)
2148
we obtain a morphism <Math>\mathrm{FiberProduct}( D ) \rightarrow \mathrm{FiberProduct}( D' )</Math>.
2149
<ManSection>
2150
<Oper Arg="D" Name="IsomorphismFromFiberProductToKernelOfDiagonalDifference" Label="for IsList"/>
2151
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)</Math>
2152
</Returns>
2153
<Description>
2154
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.
2155
The output is a morphism
2156
<Math>\mathrm{FiberProduct}(D) \rightarrow \Delta</Math>,
2157
where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.
2158
</Description>
2159
</ManSection>
2160
2161
2162
<ManSection>
2163
<Oper Arg="D, method_selection_morphism" Name="IsomorphismFromFiberProductToKernelOfDiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>
2164
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)</Math>
2165
</Returns>
2166
<Description>
2167
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2168
and a morphism for method selection.
2169
The output is a morphism
2170
<Math>\mathrm{FiberProduct}(D) \rightarrow \Delta</Math>,
2171
where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.
2172
</Description>
2173
</ManSection>
2174
2175
2176
<ManSection>
2177
<Oper Arg="C, F" Name="AddIsomorphismFromFiberProductToKernelOfDiagonalDifference" Label="for IsCapCategory, IsFunction"/>
2178
<Returns>nothing
2179
</Returns>
2180
<Description>
2181
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2182
This operations adds the given function <Math>F</Math>
2183
to the category for the basic operation <C>IsomorphismFromFiberProductToKernelOfDiagonalDifference</C>.
2184
<Math>F: ( ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n} ) \mapsto \mathrm{FiberProduct}(D) \rightarrow \Delta</Math>
2185
</Description>
2186
</ManSection>
2187
2188
2189
<ManSection>
2190
<Oper Arg="D" Name="IsomorphismFromKernelOfDiagonalDifferenceToFiberProduct" Label="for IsList"/>
2191
<Returns>a morphism in <Math>\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))</Math>
2192
</Returns>
2193
<Description>
2194
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.
2195
The output is a morphism
2196
<Math>\Delta \rightarrow \mathrm{FiberProduct}(D)</Math>,
2197
where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.
2198
</Description>
2199
</ManSection>
2200
2201
2202
<ManSection>
2203
<Oper Arg="D" Name="IsomorphismFromKernelOfDiagonalDifferenceToFiberProductOp" Label="for IsList, IsCapCategoryMorphism"/>
2204
<Returns>a morphism in <Math>\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))</Math>
2205
</Returns>
2206
<Description>
2207
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2208
and a morphism for method selection.
2209
The output is a morphism
2210
<Math>\Delta \rightarrow \mathrm{FiberProduct}(D)</Math>,
2211
where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.
2212
</Description>
2213
</ManSection>
2214
2215
2216
<ManSection>
2217
<Oper Arg="C, F" Name="AddIsomorphismFromKernelOfDiagonalDifferenceToFiberProduct" Label="for IsCapCategory, IsFunction"/>
2218
<Returns>nothing
2219
</Returns>
2220
<Description>
2221
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2222
This operations adds the given function <Math>F</Math>
2223
to the category for the basic operation <C>IsomorphismFromKernelOfDiagonalDifferenceToFiberProduct</C>.
2224
<Math>F: ( ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n} ) \mapsto \Delta \rightarrow \mathrm{FiberProduct}(D)</Math>
2225
</Description>
2226
</ManSection>
2227
2228
2229
<ManSection>
2230
<Oper Arg="D" Name="DirectSumDiagonalDifference" Label="for IsList"/>
2231
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n P_i, B )</Math>
2232
</Returns>
2233
<Description>
2234
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.
2235
The output is a morphism
2236
<Math>\bigoplus_{i=1}^n P_i \rightarrow B</Math>
2237
such that its kernel equalizes the <Math>\beta_i</Math>.
2238
</Description>
2239
</ManSection>
2240
2241
2242
<ManSection>
2243
<Oper Arg="D, method_selection_morphism" Name="DirectSumDiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>
2244
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n P_i, B )</Math>
2245
</Returns>
2246
<Description>
2247
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2248
and a morphism for method selection.
2249
The output is a morphism
2250
<Math>\bigoplus_{i=1}^n P_i \rightarrow B</Math>
2251
such that its kernel equalizes the <Math>\beta_i</Math>.
2252
</Description>
2253
</ManSection>
2254
2255
2256
<ManSection>
2257
<Oper Arg="C, F" Name="AddDirectSumDiagonalDifference" Label="for IsCapCategory, IsFunction"/>
2258
<Returns>nothing
2259
</Returns>
2260
<Description>
2261
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2262
This operations adds the given function <Math>F</Math>
2263
to the category for the basic operation <C>DirectSumDiagonalDifference</C>.
2264
<Math>F: ( D ) \mapsto \mathrm{DirectSumDiagonalDifference}(D)</Math>
2265
</Description>
2266
</ManSection>
2267
2268
2269
<ManSection>
2270
<Oper Arg="D" Name="FiberProductEmbeddingInDirectSum" Label="for IsList"/>
2271
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), \bigoplus_{i=1}^n P_i )</Math>
2272
</Returns>
2273
<Description>
2274
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.
2275
The output is the natural embedding
2276
<Math>\mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i</Math>.
2277
</Description>
2278
</ManSection>
2279
2280
2281
<ManSection>
2282
<Oper Arg="D, method_selection_morphism" Name="FiberProductEmbeddingInDirectSumOp" Label="for IsList, IsCapCategoryMorphism"/>
2283
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), \bigoplus_{i=1}^n P_i )</Math>
2284
</Returns>
2285
<Description>
2286
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2287
and a morphism for method selection.
2288
The output is the natural embedding
2289
<Math>\mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i</Math>.
2290
</Description>
2291
</ManSection>
2292
2293
2294
<ManSection>
2295
<Oper Arg="C, F" Name="AddFiberProductEmbeddingInDirectSum" Label="for IsCapCategory, IsFunction"/>
2296
<Returns>nothing
2297
</Returns>
2298
<Description>
2299
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2300
This operations adds the given function <Math>F</Math>
2301
to the category for the basic operation <C>FiberProductEmbeddingInDirectSum</C>.
2302
<Math>F: ( ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n} ) \mapsto \mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i</Math>
2303
</Description>
2304
</ManSection>
2305
2306
2307
<ManSection>
2308
<Func Arg="arg" Name="FiberProduct" />
2309
<Returns>an object
2310
</Returns>
2311
<Description>
2312
This is a convenience method.
2313
There are two different ways to use this method:
2314
<List>
2315
<Item>
2316
The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.
2317
</Item>
2318
<Item>
2319
The arguments are morphisms <Math>\beta_1: P_1 \rightarrow B, \dots, \beta_n: P_n \rightarrow B</Math>.
2320
</Item>
2321
</List>
2322
The output is the fiber product <Math>\mathrm{FiberProduct}(D)</Math>.
2323
</Description>
2324
</ManSection>
2325
2326
2327
<ManSection>
2328
<Oper Arg="D, method_selection_morphism" Name="FiberProductOp" Label="for IsList, IsCapCategoryMorphism"/>
2329
<Returns>an object
2330
</Returns>
2331
<Description>
2332
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2333
and a morphism for method selection.
2334
The output is the fiber product <Math>\mathrm{FiberProduct}(D)</Math>.
2335
</Description>
2336
</ManSection>
2337
2338
2339
<ManSection>
2340
<Oper Arg="D,k" Name="ProjectionInFactorOfFiberProduct" Label="for IsList, IsInt"/>
2341
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), P_k )</Math>
2342
</Returns>
2343
<Description>
2344
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2345
and an integer <Math>k</Math>.
2346
The output is the <Math>k</Math>-th projection
2347
<Math>\pi_{k}: \mathrm{FiberProduct}(D) \rightarrow P_k</Math>.
2348
</Description>
2349
</ManSection>
2350
2351
2352
<ManSection>
2353
<Oper Arg="D,k,method_selection_morphism" Name="ProjectionInFactorOfFiberProductOp" Label="for IsList, IsInt, IsCapCategoryMorphism"/>
2354
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), P_k )</Math>
2355
</Returns>
2356
<Description>
2357
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,
2358
an integer <Math>k</Math>,
2359
and a morphism for method selection.
2360
The output is the <Math>k</Math>-th projection
2361
<Math>\pi_{k}: \mathrm{FiberProduct}(D) \rightarrow P_k</Math>.
2362
</Description>
2363
</ManSection>
2364
2365
2366
<ManSection>
2367
<Oper Arg="D,k,P" Name="ProjectionInFactorOfFiberProductWithGivenFiberProduct" Label="for IsList, IsInt, IsCapCategoryObject"/>
2368
<Returns>a morphism in <Math>\mathrm{Hom}( P, P_k )</Math>
2369
</Returns>
2370
<Description>
2371
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,
2372
an integer <Math>k</Math>,
2373
and an object <Math>P = \mathrm{FiberProduct}(D)</Math>.
2374
The output is the <Math>k</Math>-th projection
2375
<Math>\pi_{k}: P \rightarrow P_k</Math>.
2376
</Description>
2377
</ManSection>
2378
2379
2380
<ManSection>
2381
<Func Arg="arg" Name="UniversalMorphismIntoFiberProduct" />
2382
<Description>
2383
This is a convenience method.
2384
There are three different ways to use this method:
2385
<List>
2386
<Item>
2387
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2388
and a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )</Math>
2389
such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>.
2390
The output is the morphism
2391
<Math>u( \tau ): T \rightarrow \mathrm{FiberProduct}(D)</Math>
2392
given by the universal property of the fiber product.
2393
</Item>
2394
<Item>
2395
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>
2396
and morphisms <Math>\tau_1: T \rightarrow P_1, \dots, \tau_n: T \rightarrow P_n</Math>
2397
such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>.
2398
The output is the morphism
2399
<Math>u( \tau ): T \rightarrow \mathrm{FiberProduct}(D)</Math>
2400
given by the universal property of the fiber product.
2401
</Item>
2402
</List>
2403
</Description>
2404
</ManSection>
2405
2406
2407
<ManSection>
2408
<Oper Arg="D, tau, method_selection_morphism" Name="UniversalMorphismIntoFiberProductOp" Label="for IsList, IsList, IsCapCategoryMorphism"/>
2409
<Returns>a morphism in <Math>\mathrm{Hom}( T, \mathrm{FiberProduct}(D) )</Math>
2410
</Returns>
2411
<Description>
2412
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,
2413
a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )</Math>
2414
such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>,
2415
and a morphism for method selection.
2416
The output is the morphism
2417
<Math>u( \tau ): T \rightarrow \mathrm{FiberProduct}(D)</Math>
2418
given by the universal property of the fiber product.
2419
</Description>
2420
</ManSection>
2421
2422
2423
<ManSection>
2424
<Oper Arg="D, tau, P" Name="UniversalMorphismIntoFiberProductWithGivenFiberProduct" Label="for IsList, IsList, IsCapCategoryObject"/>
2425
<Returns>a morphism in <Math>\mathrm{Hom}( T, P )</Math>
2426
</Returns>
2427
<Description>
2428
The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,
2429
a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )</Math>
2430
such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>,
2431
and an object <Math>P = \mathrm{FiberProduct}(D)</Math>.
2432
The output is the morphism
2433
<Math>u( \tau ): T \rightarrow P</Math>
2434
given by the universal property of the fiber product.
2435
</Description>
2436
</ManSection>
2437
2438
2439
<ManSection>
2440
<Oper Arg="C, F" Name="AddFiberProduct" Label="for IsCapCategory, IsFunction"/>
2441
<Returns>nothing
2442
</Returns>
2443
<Description>
2444
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2445
This operations adds the given function <Math>F</Math>
2446
to the category for the basic operation <C>FiberProduct</C>.
2447
<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n} ) \mapsto P</Math>
2448
</Description>
2449
</ManSection>
2450
2451
2452
<ManSection>
2453
<Oper Arg="C, F" Name="AddProjectionInFactorOfFiberProduct" Label="for IsCapCategory, IsFunction"/>
2454
<Returns>nothing
2455
</Returns>
2456
<Description>
2457
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2458
This operations adds the given function <Math>F</Math>
2459
to the category for the basic operation <C>ProjectionInFactorOfFiberProduct</C>.
2460
<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, k ) \mapsto \pi_k</Math>
2461
</Description>
2462
</ManSection>
2463
2464
2465
<ManSection>
2466
<Oper Arg="C, F" Name="AddProjectionInFactorOfFiberProductWithGivenFiberProduct" Label="for IsCapCategory, IsFunction"/>
2467
<Returns>nothing
2468
</Returns>
2469
<Description>
2470
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2471
This operations adds the given function <Math>F</Math>
2472
to the category for the basic operation <C>ProjectionInFactorOfFiberProductWithGivenFiberProduct</C>.
2473
<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, k,P ) \mapsto \pi_k</Math>
2474
</Description>
2475
</ManSection>
2476
2477
2478
<ManSection>
2479
<Oper Arg="C, F" Name="AddUniversalMorphismIntoFiberProduct" Label="for IsCapCategory, IsFunction"/>
2480
<Returns>nothing
2481
</Returns>
2482
<Description>
2483
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2484
This operations adds the given function <Math>F</Math>
2485
to the category for the basic operation <C>UniversalMorphismIntoFiberProduct</C>.
2486
<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, \tau ) \mapsto u(\tau)</Math>
2487
</Description>
2488
</ManSection>
2489
2490
2491
<ManSection>
2492
<Oper Arg="C, F" Name="AddUniversalMorphismIntoFiberProductWithGivenFiberProduct" Label="for IsCapCategory, IsFunction"/>
2493
<Returns>nothing
2494
</Returns>
2495
<Description>
2496
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2497
This operations adds the given function <Math>F</Math>
2498
to the category for the basic operation <C>UniversalMorphismIntoFiberProductWithGivenFiberProduct</C>.
2499
<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, \tau, P ) \mapsto u(\tau)</Math>
2500
</Description>
2501
</ManSection>
2502
2503
2504
<ManSection>
2505
<Oper Arg="L" Name="FiberProductFunctorial" Label="for IsList"/>
2506
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ), \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ))</Math>
2507
</Returns>
2508
<Description>
2509
The argument is a list of triples of morphisms
2510
<Math>L = ( (\beta_i: P_i \rightarrow B, \mu_i: P_i \rightarrow P_i', \beta_i': P_i' \rightarrow B')_{i = 1 \dots n} )</Math>
2511
such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>
2512
such that <Math>\beta_i' \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i</Math> for <Math>i = 1, \dots, n</Math>.
2513
The output is the morphism
2514
<Math>\mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ) \rightarrow \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} )</Math>
2515
given by the functorality of the fiber product.
2516
</Description>
2517
</ManSection>
2518
2519
2520
<ManSection>
2521
<Oper Arg="s, L, r" Name="FiberProductFunctorialWithGivenFiberProducts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>
2522
<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>
2523
</Returns>
2524
<Description>
2525
The arguments are an object <Math>s = \mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} )</Math>,
2526
a list of triples of morphisms
2527
<Math>L = ( (\beta_i: P_i \rightarrow B, \mu_i: P_i \rightarrow P_i', \beta_i': P_i' \rightarrow B')_{i = 1 \dots n} )</Math>
2528
such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>
2529
such that <Math>\beta_i' \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i</Math> for <Math>i = 1, \dots, n</Math>,
2530
and an object <Math>r = \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} )</Math>.
2531
The output is the morphism
2532
<Math>s \rightarrow r</Math>
2533
given by the functorality of the fiber product.
2534
</Description>
2535
</ManSection>
2536
2537
2538
<ManSection>
2539
<Oper Arg="C, F" Name="AddFiberProductFunctorialWithGivenFiberProducts" Label="for IsCapCategory, IsFunction"/>
2540
<Returns>nothing
2541
</Returns>
2542
<Description>
2543
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2544
This operations adds the given function <Math>F</Math>
2545
to the category for the basic operation <C>FiberProductFunctorialWithGivenFiberProducts</C>.
2546
<Math>F: ( \mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ), (\beta_i: P_i \rightarrow B, \mu_i: P_i \rightarrow P_i', \beta_i': P_i' \rightarrow B')_{i = 1 \dots n}, \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ) ) \mapsto (\mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ) \rightarrow \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ) )</Math>
2547
</Description>
2548
</ManSection>
2549
2550
2551
</Section>
2552
2553
2554
<Section Label="Chapter_Universal_Objects_Section_Pushout">
2555
<Heading>Pushout</Heading>
2556
2557
For a given list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,
2558
a pushout of <Math>D</Math> consists of three parts:
2559
<List>
2560
<Item>
2561
an object <Math>I</Math>,
2562
</Item>
2563
<Item>
2564
a list of morphisms <Math>\iota = ( \iota_i: I_i \rightarrow I )_{i = 1 \dots n}</Math> such that
2565
<Math>\iota_i \circ \beta_i \sim_{B,I} \iota_j \circ \beta_j</Math> for all pairs <Math>i,j</Math>,
2566
</Item>
2567
<Item>
2568
a dependent function <Math>u</Math> mapping each list of morphisms
2569
<Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that
2570
<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>
2571
to a morphism <Math>u( \tau ): I \rightarrow T</Math> such that
2572
<Math>u( \tau ) \circ \iota_i \sim_{I_i, T} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.
2573
</Item>
2574
</List>
2575
The triple <Math>( I, \iota, u )</Math> is called a <Emph>pushout</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
2576
congruence of morphisms.
2577
We denote the object <Math>I</Math> of such a triple by <Math>\mathrm{Pushout}(D)</Math>.
2578
We say that the morphism <Math>u( \tau )</Math> is induced by the
2579
<Emph>universal property of the pushout</Emph>.
2580
<Math>\\ </Math>
2581
<Math>\mathrm{Pushout}</Math> is a functorial operation. This means:
2582
For a second diagram <Math>D' = (\beta_i': B' \rightarrow I_i')_{i = 1 \dots n}</Math> and a natural morphism
2583
between pushout diagrams (i.e., a collection of morphisms
2584
<Math>(\mu_i: I_i \rightarrow I'_i)_{i=1\dots n}</Math> and <Math>\beta: B \rightarrow B'</Math>
2585
such that <Math>\beta_i' \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i</Math> for <Math>i = 1, \dots n</Math>)
2586
we obtain a morphism <Math>\mathrm{Pushout}( D ) \rightarrow \mathrm{Pushout}( D' )</Math>.
2587
<ManSection>
2588
<Oper Arg="D" Name="IsomorphismFromPushoutToCokernelOfDiagonalDifference" Label="for IsList"/>
2589
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)</Math>
2590
</Returns>
2591
<Description>
2592
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.
2593
The output is a morphism
2594
<Math>\mathrm{Pushout}(D) \rightarrow \Delta</Math>,
2595
where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.
2596
</Description>
2597
</ManSection>
2598
2599
2600
<ManSection>
2601
<Oper Arg="D, method_selection_morphism" Name="IsomorphismFromPushoutToCokernelOfDiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>
2602
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)</Math>
2603
</Returns>
2604
<Description>
2605
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2606
and a morphism for method selection.
2607
The output is a morphism
2608
<Math>\mathrm{Pushout}(D) \rightarrow \Delta</Math>,
2609
where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.
2610
</Description>
2611
</ManSection>
2612
2613
2614
<ManSection>
2615
<Oper Arg="C, F" Name="AddIsomorphismFromPushoutToCokernelOfDiagonalDifference" Label="for IsCapCategory, IsFunction"/>
2616
<Returns>nothing
2617
</Returns>
2618
<Description>
2619
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2620
This operations adds the given function <Math>F</Math>
2621
to the category for the basic operation <C>IsomorphismFromPushoutToCokernelOfDiagonalDifference</C>.
2622
<Math>F: ( ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\mathrm{Pushout}(D) \rightarrow \Delta)</Math>
2623
</Description>
2624
</ManSection>
2625
2626
2627
<ManSection>
2628
<Oper Arg="D" Name="IsomorphismFromCokernelOfDiagonalDifferenceToPushout" Label="for IsList"/>
2629
<Returns>a morphism in <Math>\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))</Math>
2630
</Returns>
2631
<Description>
2632
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.
2633
The output is a morphism
2634
<Math>\Delta \rightarrow \mathrm{Pushout}(D)</Math>,
2635
where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.
2636
</Description>
2637
</ManSection>
2638
2639
2640
<ManSection>
2641
<Oper Arg="D, method_selection_morphism" Name="IsomorphismFromCokernelOfDiagonalDifferenceToPushoutOp" Label="for IsList, IsCapCategoryMorphism"/>
2642
<Returns>a morphism in <Math>\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))</Math>
2643
</Returns>
2644
<Description>
2645
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2646
and a morphism for method selection.
2647
The output is a morphism
2648
<Math>\Delta \rightarrow \mathrm{Pushout}(D)</Math>,
2649
where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.
2650
</Description>
2651
</ManSection>
2652
2653
2654
<ManSection>
2655
<Oper Arg="C, F" Name="AddIsomorphismFromCokernelOfDiagonalDifferenceToPushout" Label="for IsCapCategory, IsFunction"/>
2656
<Returns>nothing
2657
</Returns>
2658
<Description>
2659
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2660
This operations adds the given function <Math>F</Math>
2661
to the category for the basic operation <C>IsomorphismFromCokernelOfDiagonalDifferenceToPushout</C>.
2662
<Math>F: ( ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\Delta \rightarrow \mathrm{Pushout}(D))</Math>
2663
</Description>
2664
</ManSection>
2665
2666
2667
<ManSection>
2668
<Oper Arg="D" Name="DirectSumCodiagonalDifference" Label="for IsList"/>
2669
<Returns>a morphism in <Math>\mathrm{Hom}(B, \bigoplus_{i=1}^n I_i)</Math>
2670
</Returns>
2671
<Description>
2672
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.
2673
The output is a morphism
2674
<Math>B \rightarrow \bigoplus_{i=1}^n I_i</Math>
2675
such that its cokernel coequalizes the <Math>\beta_i</Math>.
2676
</Description>
2677
</ManSection>
2678
2679
2680
<ManSection>
2681
<Oper Arg="D, method_selection_morphism" Name="DirectSumCodiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>
2682
<Returns>a morphism in <Math>\mathrm{Hom}(B, \bigoplus_{i=1}^n I_i)</Math>
2683
</Returns>
2684
<Description>
2685
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2686
and a morphism for method selection.
2687
The output is a morphism
2688
<Math>B \rightarrow \bigoplus_{i=1}^n I_i</Math>
2689
such that its cokernel coequalizes the <Math>\beta_i</Math>.
2690
</Description>
2691
</ManSection>
2692
2693
2694
<ManSection>
2695
<Oper Arg="C, F" Name="AddDirectSumCodiagonalDifference" Label="for IsCapCategory, IsFunction"/>
2696
<Returns>nothing
2697
</Returns>
2698
<Description>
2699
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2700
This operations adds the given function <Math>F</Math>
2701
to the category for the basic operation <C>DirectSumCodiagonalDifference</C>.
2702
<Math>F: ( D ) \mapsto \mathrm{DirectSumCodiagonalDifference}(D)</Math>
2703
</Description>
2704
</ManSection>
2705
2706
2707
<ManSection>
2708
<Oper Arg="D" Name="DirectSumProjectionInPushout" Label="for IsList"/>
2709
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n I_i, \mathrm{Pushout}(D) )</Math>
2710
</Returns>
2711
<Description>
2712
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.
2713
The output is the natural projection
2714
<Math>\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)</Math>.
2715
</Description>
2716
</ManSection>
2717
2718
2719
<ManSection>
2720
<Oper Arg="D, method_selection_morphism" Name="DirectSumProjectionInPushoutOp" Label="for IsList, IsCapCategoryMorphism"/>
2721
<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n I_i, \mathrm{Pushout}(D) )</Math>
2722
</Returns>
2723
<Description>
2724
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2725
and a morphism for method selection.
2726
The output is the natural projection
2727
<Math>\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)</Math>.
2728
</Description>
2729
</ManSection>
2730
2731
2732
<ManSection>
2733
<Oper Arg="C, F" Name="AddDirectSumProjectionInPushout" Label="for IsCapCategory, IsFunction"/>
2734
<Returns>nothing
2735
</Returns>
2736
<Description>
2737
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2738
This operations adds the given function <Math>F</Math>
2739
to the category for the basic operation <C>DirectSumProjectionInPushout</C>.
2740
<Math>F: ( ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D))</Math>
2741
</Description>
2742
</ManSection>
2743
2744
2745
<ManSection>
2746
<Oper Arg="D" Name="Pushout" Label="for IsList"/>
2747
<Returns>an object
2748
</Returns>
2749
<Description>
2750
The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2751
The output is the pushout <Math>\mathrm{Pushout}(D)</Math>.
2752
</Description>
2753
</ManSection>
2754
2755
2756
<ManSection>
2757
<Oper Arg="D" Name="Pushout" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism"/>
2758
<Returns>an object
2759
</Returns>
2760
<Description>
2761
This is a convenience method.
2762
The arguments are a morphism <Math>\alpha</Math> and a morphism <Math>\beta</Math>.
2763
The output is the pushout <Math>\mathrm{Pushout}(\alpha, \beta)</Math>.
2764
</Description>
2765
</ManSection>
2766
2767
2768
<ManSection>
2769
<Oper Arg="D" Name="PushoutOp" Label="for IsList, IsCapCategoryMorphism"/>
2770
<Returns>an object
2771
</Returns>
2772
<Description>
2773
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2774
and a morphism for method selection.
2775
The output is the pushout <Math>\mathrm{Pushout}(D)</Math>.
2776
</Description>
2777
</ManSection>
2778
2779
2780
<ManSection>
2781
<Oper Arg="D, k" Name="InjectionOfCofactorOfPushout" Label="for IsList, IsInt"/>
2782
<Returns>a morphism in <Math>\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )</Math>.
2783
</Returns>
2784
<Description>
2785
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2786
and an integer <Math>k</Math>.
2787
The output is the <Math>k</Math>-th injection
2788
<Math>\iota_k: I_k \rightarrow \mathrm{Pushout}( D )</Math>.
2789
</Description>
2790
</ManSection>
2791
2792
2793
<ManSection>
2794
<Oper Arg="D, k, method_selection_morphism" Name="InjectionOfCofactorOfPushoutOp" Label="for IsList, IsInt, IsCapCategoryMorphism"/>
2795
<Returns>a morphism in <Math>\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )</Math>.
2796
</Returns>
2797
<Description>
2798
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,
2799
an integer <Math>k</Math>,
2800
and a morphism for method selection.
2801
The output is the <Math>k</Math>-th injection
2802
<Math>\iota_k: I_k \rightarrow \mathrm{Pushout}( D )</Math>.
2803
</Description>
2804
</ManSection>
2805
2806
2807
<ManSection>
2808
<Oper Arg="D, k, I" Name="InjectionOfCofactorOfPushoutWithGivenPushout" Label="for IsList, IsInt, IsCapCategoryObject"/>
2809
<Returns>a morphism in <Math>\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )</Math>.
2810
</Returns>
2811
<Description>
2812
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,
2813
an integer <Math>k</Math>,
2814
and an object <Math>I = \mathrm{Pushout}(D)</Math>.
2815
The output is the <Math>k</Math>-th injection
2816
<Math>\iota_k: I_k \rightarrow \mathrm{Pushout}( D )</Math>.
2817
</Description>
2818
</ManSection>
2819
2820
2821
<ManSection>
2822
<Func Arg="arg" Name="UniversalMorphismFromPushout" />
2823
<Description>
2824
This is a convenience method.
2825
There are three different ways to use this method:
2826
<List>
2827
<Item>
2828
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2829
and a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that
2830
<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>.
2831
The output is the morphism
2832
<Math>u( \tau ): \mathrm{Pushout}(D) \rightarrow T</Math>
2833
given by the universal property of the pushout.
2834
</Item>
2835
<Item>
2836
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>
2837
and morphisms <Math>\tau_1: I_1 \rightarrow T, \dots, \tau_n: I_n \rightarrow T</Math> such that
2838
<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>.
2839
The output is the morphism
2840
<Math>u( \tau ): \mathrm{Pushout}(D) \rightarrow T</Math>
2841
given by the universal property of the pushout.
2842
</Item>
2843
</List>
2844
</Description>
2845
</ManSection>
2846
2847
2848
<ManSection>
2849
<Oper Arg="D, tau, method_selection_morphism" Name="UniversalMorphismFromPushoutOp" Label="for IsList, IsList, IsCapCategoryMorphism"/>
2850
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{Pushout}(D), T )</Math>
2851
</Returns>
2852
<Description>
2853
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,
2854
a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that
2855
<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>,
2856
and a morphism for method selection.
2857
The output is the morphism
2858
<Math>u( \tau ): \mathrm{Pushout}(D) \rightarrow T</Math>
2859
given by the universal property of the pushout.
2860
</Description>
2861
</ManSection>
2862
2863
2864
<ManSection>
2865
<Oper Arg="D, tau, I" Name="UniversalMorphismFromPushoutWithGivenPushout" Label="for IsList, IsList, IsCapCategoryObject"/>
2866
<Returns>a morphism in <Math>\mathrm{Hom}( I, T )</Math>
2867
</Returns>
2868
<Description>
2869
The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,
2870
a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that
2871
<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>,
2872
and an object <Math>I = \mathrm{Pushout}(D)</Math>.
2873
The output is the morphism
2874
<Math>u( \tau ): I \rightarrow T</Math>
2875
given by the universal property of the pushout.
2876
</Description>
2877
</ManSection>
2878
2879
2880
<ManSection>
2881
<Oper Arg="C, F" Name="AddPushout" Label="for IsCapCategory, IsFunction"/>
2882
<Returns>nothing
2883
</Returns>
2884
<Description>
2885
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2886
This operations adds the given function <Math>F</Math>
2887
to the category for the basic operation <C>Pushout</C>.
2888
<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n} ) \mapsto I</Math>
2889
</Description>
2890
</ManSection>
2891
2892
2893
<ManSection>
2894
<Oper Arg="C, F" Name="AddInjectionOfCofactorOfPushout" Label="for IsCapCategory, IsFunction"/>
2895
<Returns>nothing
2896
</Returns>
2897
<Description>
2898
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2899
This operations adds the given function <Math>F</Math>
2900
to the category for the basic operation <C>InjectionOfCofactorOfPushout</C>.
2901
<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, k ) \mapsto \iota_k</Math>
2902
</Description>
2903
</ManSection>
2904
2905
2906
<ManSection>
2907
<Oper Arg="C, F" Name="AddInjectionOfCofactorOfPushoutWithGivenPushout" Label="for IsCapCategory, IsFunction"/>
2908
<Returns>nothing
2909
</Returns>
2910
<Description>
2911
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2912
This operations adds the given function <Math>F</Math>
2913
to the category for the basic operation <C>InjectionOfCofactorOfPushoutWithGivenPushout</C>.
2914
<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, k, I ) \mapsto \iota_k</Math>
2915
</Description>
2916
</ManSection>
2917
2918
2919
<ManSection>
2920
<Oper Arg="C, F" Name="AddUniversalMorphismFromPushout" Label="for IsCapCategory, IsFunction"/>
2921
<Returns>nothing
2922
</Returns>
2923
<Description>
2924
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2925
This operations adds the given function <Math>F</Math>
2926
to the category for the basic operation <C>UniversalMorphismFromPushout</C>.
2927
<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, \tau ) \mapsto u(\tau)</Math>
2928
</Description>
2929
</ManSection>
2930
2931
2932
<ManSection>
2933
<Oper Arg="C, F" Name="AddUniversalMorphismFromPushoutWithGivenPushout" Label="for IsCapCategory, IsFunction"/>
2934
<Returns>nothing
2935
</Returns>
2936
<Description>
2937
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2938
This operations adds the given function <Math>F</Math>
2939
to the category for the basic operation <C>UniversalMorphismFromPushout</C>.
2940
<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, \tau, I ) \mapsto u(\tau)</Math>
2941
</Description>
2942
</ManSection>
2943
2944
2945
<ManSection>
2946
<Oper Arg="L" Name="PushoutFunctorial" Label="for IsList"/>
2947
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{Pushout}( ( \beta_i )_{i=1}^n ), \mathrm{Pushout}( ( \beta_i' )_{i=1}^n ))</Math>
2948
</Returns>
2949
<Description>
2950
The argument is a list
2951
<Math>L = ( ( \beta_i: B \rightarrow I_i, \mu_i: I_i \rightarrow I_i', \beta_i': B' \rightarrow I_i' )_{i = 1 \dots n} )</Math>
2952
such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>
2953
such that <Math>\beta_i' \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i</Math> for <Math>i = 1, \dots n</Math>.
2954
The output is the morphism
2955
<Math>\mathrm{Pushout}( ( \beta_i )_{i=1}^n ) \rightarrow \mathrm{Pushout}( ( \beta_i' )_{i=1}^n )</Math>
2956
given by the functorality of the pushout.
2957
</Description>
2958
</ManSection>
2959
2960
2961
<ManSection>
2962
<Oper Arg="s, L, r" Name="PushoutFunctorialWithGivenPushouts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>
2963
<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>
2964
</Returns>
2965
<Description>
2966
The arguments are an object <Math>s = \mathrm{Pushout}( ( \beta_i )_{i=1}^n )</Math>,
2967
a list
2968
<Math>L = ( ( \beta_i: B \rightarrow I_i, \mu_i: I_i \rightarrow I_i', \beta_i': B' \rightarrow I_i' )_{i = 1 \dots n} )</Math>
2969
such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>
2970
such that <Math>\beta_i' \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i</Math> for <Math>i = 1, \dots n</Math>,
2971
and an object <Math>r = \mathrm{Pushout}( ( \beta_i' )_{i=1}^n )</Math>.
2972
The output is the morphism
2973
<Math>s \rightarrow r</Math>
2974
given by the functorality of the pushout.
2975
</Description>
2976
</ManSection>
2977
2978
2979
<ManSection>
2980
<Oper Arg="C, F" Name="AddPushoutFunctorialWithGivenPushouts" Label="for IsCapCategory, IsFunction"/>
2981
<Returns>nothing
2982
</Returns>
2983
<Description>
2984
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
2985
This operations adds the given function <Math>F</Math>
2986
to the category for the basic operation <C>PushoutFunctorial</C>.
2987
<Math>F: ( \mathrm{Pushout}( ( \beta_i )_{i=1}^n ), ( \beta_i: B \rightarrow I_i, \mu_i: I_i \rightarrow I_i', \beta_i': B' \rightarrow I_i' )_{i = 1 \dots n}, \mathrm{Pushout}( ( \beta_i' )_{i=1}^n ) ) \mapsto (\mathrm{Pushout}( ( \beta_i )_{i=1}^n ) \rightarrow \mathrm{Pushout}( ( \beta_i' )_{i=1}^n ) )</Math>
2988
</Description>
2989
</ManSection>
2990
2991
2992
</Section>
2993
2994
2995
<Section Label="Chapter_Universal_Objects_Section_Image">
2996
<Heading>Image</Heading>
2997
2998
For a given morphism <Math>\alpha: A \rightarrow B</Math>, an image of <Math>\alpha</Math> consists of four parts:
2999
<List>
3000
<Item>
3001
an object <Math>I</Math>,
3002
</Item>
3003
<Item>
3004
a morphism <Math>c: A \rightarrow I</Math>,
3005
</Item>
3006
<Item>
3007
a monomorphism <Math>\iota: I \hookrightarrow B</Math> such that <Math>\iota \circ c \sim_{A,B} \alpha</Math>,
3008
</Item>
3009
<Item>
3010
a dependent function <Math>u</Math> mapping each pair of morphisms <Math>\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )</Math>
3011
where <Math>\tau_2</Math> is a monomorphism
3012
such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math> to a morphism
3013
<Math>u(\tau): I \rightarrow T</Math> such that
3014
<Math>\tau_2 \circ u(\tau) \sim_{I,B} \iota</Math> and <Math>u(\tau) \circ c \sim_{A,T} \tau_1</Math>.
3015
</Item>
3016
</List>
3017
The <Math>4</Math>-tuple <Math>( I, c, \iota, u )</Math> is called an <Emph>image</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
3018
congruence of morphisms.
3019
We denote the object <Math>I</Math> of such a <Math>4</Math>-tuple by <Math>\mathrm{im}(\alpha)</Math>.
3020
We say that the morphism <Math>u( \tau )</Math> is induced by the
3021
<Emph>universal property of the image</Emph>.
3022
<ManSection>
3023
<Attr Arg="alpha" Name="IsomorphismFromImageObjectToKernelOfCokernel" Label="for IsCapCategoryMorphism"/>
3024
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{im}(\alpha), \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) )</Math>
3025
</Returns>
3026
<Description>
3027
The argument is a morphism <Math>\alpha</Math>.
3028
The output is the canonical morphism
3029
<Math>\mathrm{im}(\alpha) \rightarrow \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) )</Math>.
3030
</Description>
3031
</ManSection>
3032
3033
3034
<ManSection>
3035
<Oper Arg="C, F" Name="AddIsomorphismFromImageObjectToKernelOfCokernel" Label="for IsCapCategory, IsFunction"/>
3036
<Returns>nothing
3037
</Returns>
3038
<Description>
3039
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3040
This operations adds the given function <Math>F</Math>
3041
to the category for the basic operation <C>IsomorphismFromImageObjectToKernelOfCokernel</C>.
3042
<Math>F: \alpha \mapsto ( \mathrm{im}(\alpha) \rightarrow \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) )</Math>
3043
</Description>
3044
</ManSection>
3045
3046
3047
<ManSection>
3048
<Attr Arg="alpha" Name="IsomorphismFromKernelOfCokernelToImageObject" Label="for IsCapCategoryMorphism"/>
3049
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ), \mathrm{im}(\alpha) )</Math>
3050
</Returns>
3051
<Description>
3052
The argument is a morphism <Math>\alpha</Math>.
3053
The output is the canonical morphism
3054
<Math>\mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) \rightarrow \mathrm{im}(\alpha)</Math>.
3055
</Description>
3056
</ManSection>
3057
3058
3059
<ManSection>
3060
<Oper Arg="C, F" Name="AddIsomorphismFromKernelOfCokernelToImageObject" Label="for IsCapCategory, IsFunction"/>
3061
<Returns>nothing
3062
</Returns>
3063
<Description>
3064
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3065
This operations adds the given function <Math>F</Math>
3066
to the category for the basic operation <C>IsomorphismFromKernelOfCokernelToImageObject</C>.
3067
<Math>F: \alpha \mapsto ( \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) \rightarrow \mathrm{im}(\alpha) )</Math>
3068
</Description>
3069
</ManSection>
3070
3071
3072
<ManSection>
3073
<Attr Arg="alpha" Name="ImageObject" Label="for IsCapCategoryMorphism"/>
3074
<Returns>an object
3075
</Returns>
3076
<Description>
3077
The argument is a morphism <Math>\alpha</Math>.
3078
The output is the image <Math>\mathrm{im}( \alpha )</Math>.
3079
</Description>
3080
</ManSection>
3081
3082
3083
<ManSection>
3084
<Attr Arg="alpha" Name="ImageEmbedding" Label="for IsCapCategoryMorphism"/>
3085
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{im}(\alpha), B)</Math>
3086
</Returns>
3087
<Description>
3088
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3089
The output is the image embedding
3090
<Math>\iota: \mathrm{im}(\alpha) \hookrightarrow B</Math>.
3091
</Description>
3092
</ManSection>
3093
3094
3095
<ManSection>
3096
<Oper Arg="alpha, I" Name="ImageEmbeddingWithGivenImageObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>
3097
<Returns>a morphism in <Math>\mathrm{Hom}(I, B)</Math>
3098
</Returns>
3099
<Description>
3100
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>
3101
and an object <Math>I = \mathrm{im}( \alpha )</Math>.
3102
The output is the image embedding
3103
<Math>\iota: I \hookrightarrow B</Math>.
3104
</Description>
3105
</ManSection>
3106
3107
3108
<ManSection>
3109
<Attr Arg="alpha" Name="CoastrictionToImage" Label="for IsCapCategoryMorphism"/>
3110
<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{im}( \alpha ))</Math>
3111
</Returns>
3112
<Description>
3113
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3114
The output is the coastriction to image
3115
<Math>c: A \rightarrow \mathrm{im}( \alpha )</Math>.
3116
</Description>
3117
</ManSection>
3118
3119
3120
<ManSection>
3121
<Oper Arg="alpha, I" Name="CoastrictionToImageWithGivenImageObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>
3122
<Returns>a morphism in <Math>\mathrm{Hom}(A, I)</Math>
3123
</Returns>
3124
<Description>
3125
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>
3126
and an object <Math>I = \mathrm{im}( \alpha )</Math>.
3127
The output is the coastriction to image
3128
<Math>c: A \rightarrow I</Math>.
3129
</Description>
3130
</ManSection>
3131
3132
3133
<ManSection>
3134
<Oper Arg="alpha, tau" Name="UniversalMorphismFromImage" Label="for IsCapCategoryMorphism, IsList"/>
3135
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{im}(\alpha), T)</Math>
3136
</Returns>
3137
<Description>
3138
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
3139
and a pair of morphisms
3140
<Math>\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )</Math>
3141
where <Math>\tau_2</Math> is a monomorphism
3142
such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>.
3143
The output is the morphism
3144
<Math>u(\tau): \mathrm{im}(\alpha) \rightarrow T</Math>
3145
given by the universal property of the image.
3146
</Description>
3147
</ManSection>
3148
3149
3150
<ManSection>
3151
<Oper Arg="alpha, tau, I" Name="UniversalMorphismFromImageWithGivenImageObject" Label="for IsCapCategoryMorphism, IsList, IsCapCategoryObject"/>
3152
<Returns>a morphism in <Math>\mathrm{Hom}(I, T)</Math>
3153
</Returns>
3154
<Description>
3155
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,
3156
a pair of morphisms
3157
<Math>\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )</Math>
3158
where <Math>\tau_2</Math> is a monomorphism
3159
such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>,
3160
and an object <Math>I = \mathrm{im}( \alpha )</Math>.
3161
The output is the morphism
3162
<Math>u(\tau): \mathrm{im}(\alpha) \rightarrow T</Math>
3163
given by the universal property of the image.
3164
</Description>
3165
</ManSection>
3166
3167
3168
<ManSection>
3169
<Oper Arg="C, F" Name="AddImageObject" Label="for IsCapCategory, IsFunction"/>
3170
<Returns>nothing
3171
</Returns>
3172
<Description>
3173
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3174
This operations adds the given function <Math>F</Math>
3175
to the category for the basic operation <C>ImageObject</C>.
3176
<Math>F: \alpha \mapsto I</Math>.
3177
</Description>
3178
</ManSection>
3179
3180
3181
<ManSection>
3182
<Oper Arg="C, F" Name="AddImageEmbedding" Label="for IsCapCategory, IsFunction"/>
3183
<Returns>nothing
3184
</Returns>
3185
<Description>
3186
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3187
This operations adds the given function <Math>F</Math>
3188
to the category for the basic operation <C>ImageEmbedding</C>.
3189
<Math>F: \alpha \mapsto \iota</Math>.
3190
</Description>
3191
</ManSection>
3192
3193
3194
<ManSection>
3195
<Oper Arg="C, F" Name="AddImageEmbeddingWithGivenImageObject" Label="for IsCapCategory, IsFunction"/>
3196
<Returns>nothing
3197
</Returns>
3198
<Description>
3199
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3200
This operations adds the given function <Math>F</Math>
3201
to the category for the basic operation <C>ImageEmbeddingWithGivenImageObject</C>.
3202
<Math>F: (\alpha,I) \mapsto \iota</Math>.
3203
</Description>
3204
</ManSection>
3205
3206
3207
<ManSection>
3208
<Oper Arg="C, F" Name="AddCoastrictionToImage" Label="for IsCapCategory, IsFunction"/>
3209
<Returns>nothing
3210
</Returns>
3211
<Description>
3212
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3213
This operations adds the given function <Math>F</Math>
3214
to the category for the basic operation <C>CoastrictionToImage</C>.
3215
<Math>F: \alpha \mapsto c</Math>.
3216
</Description>
3217
</ManSection>
3218
3219
3220
<ManSection>
3221
<Oper Arg="C, F" Name="AddCoastrictionToImageWithGivenImageObject" Label="for IsCapCategory, IsFunction"/>
3222
<Returns>nothing
3223
</Returns>
3224
<Description>
3225
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3226
This operations adds the given function <Math>F</Math>
3227
to the category for the basic operation <C>CoastrictionToImageWithGivenImageObject</C>.
3228
<Math>F: (\alpha,I) \mapsto c</Math>.
3229
</Description>
3230
</ManSection>
3231
3232
3233
<ManSection>
3234
<Oper Arg="C, F" Name="AddUniversalMorphismFromImage" Label="for IsCapCategory, IsFunction"/>
3235
<Returns>nothing
3236
</Returns>
3237
<Description>
3238
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3239
This operations adds the given function <Math>F</Math>
3240
to the category for the basic operation <C>UniversalMorphismFromImage</C>.
3241
<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>.
3242
</Description>
3243
</ManSection>
3244
3245
3246
<ManSection>
3247
<Oper Arg="C, F" Name="AddUniversalMorphismFromImageWithGivenImageObject" Label="for IsCapCategory, IsFunction"/>
3248
<Returns>nothing
3249
</Returns>
3250
<Description>
3251
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3252
This operations adds the given function <Math>F</Math>
3253
to the category for the basic operation <C>UniversalMorphismFromImageWithGivenImageObject</C>.
3254
<Math>F: (\alpha, \tau, I) \mapsto u(\tau)</Math>.
3255
</Description>
3256
</ManSection>
3257
3258
3259
</Section>
3260
3261
3262
<Section Label="Chapter_Universal_Objects_Section_Coimage">
3263
<Heading>Coimage</Heading>
3264
3265
For a given morphism <Math>\alpha: A \rightarrow B</Math>, a coimage of <Math>\alpha</Math> consists of four parts:
3266
<List>
3267
<Item>
3268
an object <Math>C</Math>,
3269
</Item>
3270
<Item>
3271
an epimorphism <Math>\pi: A \twoheadrightarrow C</Math>,
3272
</Item>
3273
<Item>
3274
a morphism <Math>a: C \rightarrow B</Math> such that <Math>a \circ \pi \sim_{A,B} \alpha</Math>,
3275
</Item>
3276
<Item>
3277
a dependent function <Math>u</Math> mapping each pair of morphisms <Math>\tau = ( \tau_1: A \twoheadrightarrow T, \tau_2: T \rightarrow B )</Math>
3278
where <Math>\tau_1</Math> is an epimorphism
3279
such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math> to a morphism
3280
<Math>u(\tau): T \rightarrow C</Math> such that
3281
<Math>u( \tau ) \circ \tau_1 \sim_{A,C} \pi</Math> and <Math>a \circ u( \tau ) \sim_{T,B} \tau_2</Math>.
3282
</Item>
3283
</List>
3284
The <Math>4</Math>-tuple <Math>( C, \pi, a, u )</Math> is called a <Emph>coimage</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to
3285
congruence of morphisms.
3286
We denote the object <Math>C</Math> of such a <Math>4</Math>-tuple by <Math>\mathrm{coim}(\alpha)</Math>.
3287
We say that the morphism <Math>u( \tau )</Math> is induced by the
3288
<Emph>universal property of the coimage</Emph>.
3289
<ManSection>
3290
<Attr Arg="alpha" Name="MorphismFromCoimageToImage" Label="for IsCapCategoryMorphism"/>
3291
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{coim}(\alpha), \mathrm{im}(\alpha))</Math>
3292
</Returns>
3293
<Description>
3294
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3295
The output is the canonical morphism (in a preabelian category)
3296
<Math>\mathrm{coim}(\alpha) \rightarrow \mathrm{im}(\alpha)</Math>.
3297
</Description>
3298
</ManSection>
3299
3300
3301
<ManSection>
3302
<Oper Arg="alpha" Name="MorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryObject"/>
3303
<Returns>a morphism in <Math>\mathrm{Hom}(C,I)</Math>
3304
</Returns>
3305
<Description>
3306
The argument is an object <Math>C = \mathrm{coim}(\alpha)</Math>,
3307
a morphism <Math>\alpha: A \rightarrow B</Math>,
3308
and an object <Math>I = \mathrm{im}(\alpha)</Math>.
3309
The output is the canonical morphism (in a preabelian category)
3310
<Math>C \rightarrow I</Math>.
3311
</Description>
3312
</ManSection>
3313
3314
3315
<ManSection>
3316
<Oper Arg="C, F" Name="AddMorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategory, IsFunction"/>
3317
<Returns>nothing
3318
</Returns>
3319
<Description>
3320
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3321
This operations adds the given function <Math>F</Math>
3322
to the category for the basic operation <C>MorphismFromCoimageToImageWithGivenObjects</C>.
3323
<Math>F: (C, \alpha, I) \mapsto ( C \rightarrow I )</Math>.
3324
</Description>
3325
</ManSection>
3326
3327
3328
<ManSection>
3329
<Attr Arg="alpha" Name="InverseMorphismFromCoimageToImage" Label="for IsCapCategoryMorphism"/>
3330
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{im}(\alpha), \mathrm{coim}(\alpha))</Math>
3331
</Returns>
3332
<Description>
3333
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3334
The output is the inverse of the canonical morphism (in an abelian category)
3335
<Math>\mathrm{im}(\alpha) \rightarrow \mathrm{coim}(\alpha)</Math>.
3336
</Description>
3337
</ManSection>
3338
3339
3340
<ManSection>
3341
<Oper Arg="alpha" Name="InverseMorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryObject"/>
3342
<Returns>a morphism in <Math>\mathrm{Hom}(I,C)</Math>
3343
</Returns>
3344
<Description>
3345
The argument is an object <Math>C = \mathrm{coim}(\alpha)</Math>,
3346
a morphism <Math>\alpha: A \rightarrow B</Math>,
3347
and an object <Math>I = \mathrm{im}(\alpha)</Math>.
3348
The output is the inverse of the canonical morphism (in an abelian category)
3349
<Math>I \rightarrow C</Math>.
3350
</Description>
3351
</ManSection>
3352
3353
3354
<ManSection>
3355
<Oper Arg="C, F" Name="AddInverseMorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategory, IsFunction"/>
3356
<Returns>nothing
3357
</Returns>
3358
<Description>
3359
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3360
This operations adds the given function <Math>F</Math>
3361
to the category for the basic operation <C>MorphismFromCoimageToImageWithGivenObjects</C>.
3362
<Math>F: (C, \alpha, I) \mapsto ( I \rightarrow C )</Math>.
3363
</Description>
3364
</ManSection>
3365
3366
3367
<ManSection>
3368
<Attr Arg="alpha" Name="IsomorphismFromCoimageToCokernelOfKernel" Label="for IsCapCategoryMorphism"/>
3369
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{coim}( \alpha ), \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) )</Math>.
3370
</Returns>
3371
<Description>
3372
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3373
The output is the canonical morphism
3374
<Math>\mathrm{coim}( \alpha ) \rightarrow \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) )</Math>.
3375
</Description>
3376
</ManSection>
3377
3378
3379
<ManSection>
3380
<Oper Arg="C, F" Name="AddIsomorphismFromCoimageToCokernelOfKernel" Label="for IsCapCategory, IsFunction"/>
3381
<Returns>nothing
3382
</Returns>
3383
<Description>
3384
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3385
This operations adds the given function <Math>F</Math>
3386
to the category for the basic operation <C>IsomorphismFromCoimageToCokernelOfKernel</C>.
3387
<Math>F: \alpha \mapsto ( \mathrm{coim}( \alpha ) \rightarrow \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) )</Math>.
3388
</Description>
3389
</ManSection>
3390
3391
3392
<ManSection>
3393
<Attr Arg="alpha" Name="IsomorphismFromCokernelOfKernelToCoimage" Label="for IsCapCategoryMorphism"/>
3394
<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ), \mathrm{coim}( \alpha ) )</Math>.
3395
</Returns>
3396
<Description>
3397
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3398
The output is the canonical morphism
3399
<Math>\mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) \rightarrow \mathrm{coim}( \alpha )</Math>.
3400
</Description>
3401
</ManSection>
3402
3403
3404
<ManSection>
3405
<Oper Arg="C, F" Name="AddIsomorphismFromCokernelOfKernelToCoimage" Label="for IsCapCategory, IsFunction"/>
3406
<Returns>nothing
3407
</Returns>
3408
<Description>
3409
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3410
This operations adds the given function <Math>F</Math>
3411
to the category for the basic operation <C>IsomorphismFromCokernelOfKernelToCoimage</C>.
3412
<Math>F: \alpha \mapsto ( \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) \rightarrow \mathrm{coim}( \alpha ) )</Math>.
3413
</Description>
3414
</ManSection>
3415
3416
3417
<ManSection>
3418
<Attr Arg="alpha" Name="Coimage" Label="for IsCapCategoryMorphism"/>
3419
<Returns>an object
3420
</Returns>
3421
<Description>
3422
The argument is a morphism <Math>\alpha</Math>.
3423
The output is the coimage <Math>\mathrm{coim}( \alpha )</Math>.
3424
</Description>
3425
</ManSection>
3426
3427
3428
<ManSection>
3429
<Attr Arg="C" Name="CoimageProjection" Label="for IsCapCategoryObject"/>
3430
<Returns>a morphism in <Math>\mathrm{Hom}(A, C)</Math>
3431
</Returns>
3432
<Description>
3433
This is a convenience method.
3434
The argument is an object <Math>C</Math> which was created as a coimage
3435
of a morphism <Math>\alpha: A \rightarrow B</Math>.
3436
The output is the coimage projection
3437
<Math>\pi: A \twoheadrightarrow C</Math>.
3438
</Description>
3439
</ManSection>
3440
3441
3442
<ManSection>
3443
<Attr Arg="alpha" Name="CoimageProjection" Label="for IsCapCategoryMorphism"/>
3444
<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{coim}( \alpha ))</Math>
3445
</Returns>
3446
<Description>
3447
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3448
The output is the coimage projection
3449
<Math>\pi: A \twoheadrightarrow \mathrm{coim}( \alpha )</Math>.
3450
</Description>
3451
</ManSection>
3452
3453
3454
<ManSection>
3455
<Oper Arg="alpha, C" Name="CoimageProjectionWithGivenCoimage" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>
3456
<Returns>a morphism in <Math>\mathrm{Hom}(A, C)</Math>
3457
</Returns>
3458
<Description>
3459
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
3460
and an object <Math>C = \mathrm{coim}(\alpha)</Math>.
3461
The output is the coimage projection
3462
<Math>\pi: A \twoheadrightarrow C</Math>.
3463
</Description>
3464
</ManSection>
3465
3466
3467
<ManSection>
3468
<Attr Arg="C" Name="AstrictionToCoimage" Label="for IsCapCategoryObject"/>
3469
<Returns>a morphism in <Math>\mathrm{Hom}(C,B)</Math>
3470
</Returns>
3471
<Description>
3472
This is a convenience method.
3473
The argument is an object <Math>C</Math> which was created as a coimage
3474
of a morphism <Math>\alpha: A \rightarrow B</Math>.
3475
The output is the astriction to coimage
3476
<Math>a: C \rightarrow B</Math>.
3477
</Description>
3478
</ManSection>
3479
3480
3481
<ManSection>
3482
<Attr Arg="alpha" Name="AstrictionToCoimage" Label="for IsCapCategoryMorphism"/>
3483
<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{coim}( \alpha ),B)</Math>
3484
</Returns>
3485
<Description>
3486
The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.
3487
The output is the astriction to coimage
3488
<Math>a: \mathrm{coim}( \alpha ) \rightarrow B</Math>.
3489
</Description>
3490
</ManSection>
3491
3492
3493
<ManSection>
3494
<Oper Arg="alpha, C" Name="AstrictionToCoimageWithGivenCoimage" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>
3495
<Returns>a morphism in <Math>\mathrm{Hom}(C,B)</Math>
3496
</Returns>
3497
<Description>
3498
The argument are a morphism <Math>\alpha: A \rightarrow B</Math>
3499
and an object <Math>C = \mathrm{coim}( \alpha )</Math>.
3500
The output is the astriction to coimage
3501
<Math>a: C \rightarrow B</Math>.
3502
</Description>
3503
</ManSection>
3504
3505
3506
<ManSection>
3507
<Oper Arg="alpha, tau" Name="UniversalMorphismIntoCoimage" Label="for IsCapCategoryMorphism, IsList"/>
3508
<Returns>a morphism in <Math>\mathrm{Hom}(T, \mathrm{coim}( \alpha ))</Math>
3509
</Returns>
3510
<Description>
3511
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>
3512
and a pair of morphisms
3513
<Math>\tau = ( \tau_1: A \twoheadrightarrow T, \tau_2: T \rightarrow B )</Math>
3514
where <Math>\tau_1</Math> is an epimorphism
3515
such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>.
3516
The output is the morphism
3517
<Math>u(\tau): T \rightarrow \mathrm{coim}( \alpha )</Math>
3518
given by the universal property of the coimage.
3519
</Description>
3520
</ManSection>
3521
3522
3523
<ManSection>
3524
<Oper Arg="alpha, tau, C" Name="UniversalMorphismIntoCoimageWithGivenCoimage" Label="for IsCapCategoryMorphism, IsList, IsCapCategoryObject"/>
3525
<Returns>a morphism in <Math>\mathrm{Hom}(T, C)</Math>
3526
</Returns>
3527
<Description>
3528
The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,
3529
a pair of morphisms
3530
<Math>\tau = ( \tau_1: A \twoheadrightarrow T, \tau_2: T \rightarrow B )</Math>
3531
where <Math>\tau_1</Math> is an epimorphism
3532
such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>,
3533
and an object <Math>C = \mathrm{coim}( \alpha )</Math>.
3534
The output is the morphism
3535
<Math>u(\tau): T \rightarrow C</Math>
3536
given by the universal property of the coimage.
3537
</Description>
3538
</ManSection>
3539
3540
3541
<ManSection>
3542
<Oper Arg="C, F" Name="AddCoimage" Label="for IsCapCategory, IsFunction"/>
3543
<Returns>nothing
3544
</Returns>
3545
<Description>
3546
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3547
This operations adds the given function <Math>F</Math>
3548
to the category for the basic operation <C>Coimage</C>.
3549
<Math>F: \alpha \mapsto C</Math>
3550
</Description>
3551
</ManSection>
3552
3553
3554
<ManSection>
3555
<Oper Arg="C, F" Name="AddCoimageProjection" Label="for IsCapCategory, IsFunction"/>
3556
<Returns>nothing
3557
</Returns>
3558
<Description>
3559
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3560
This operations adds the given function <Math>F</Math>
3561
to the category for the basic operation <C>CoimageProjection</C>.
3562
<Math>F: \alpha \mapsto \pi</Math>
3563
</Description>
3564
</ManSection>
3565
3566
3567
<ManSection>
3568
<Oper Arg="C, F" Name="AddCoimageProjectionWithGivenCoimage" Label="for IsCapCategory, IsFunction"/>
3569
<Returns>nothing
3570
</Returns>
3571
<Description>
3572
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3573
This operations adds the given function <Math>F</Math>
3574
to the category for the basic operation <C>CoimageProjectionWithGivenCoimage</C>.
3575
<Math>F: (\alpha,C) \mapsto \pi</Math>
3576
</Description>
3577
</ManSection>
3578
3579
3580
<ManSection>
3581
<Oper Arg="C, F" Name="AddAstrictionToCoimage" Label="for IsCapCategory, IsFunction"/>
3582
<Returns>nothing
3583
</Returns>
3584
<Description>
3585
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3586
This operations adds the given function <Math>F</Math>
3587
to the category for the basic operation <C>AstrictionToCoimage</C>.
3588
<Math>F: \alpha \mapsto a</Math>
3589
</Description>
3590
</ManSection>
3591
3592
3593
<ManSection>
3594
<Oper Arg="C, F" Name="AddAstrictionToCoimageWithGivenCoimage" Label="for IsCapCategory, IsFunction"/>
3595
<Returns>nothing
3596
</Returns>
3597
<Description>
3598
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3599
This operations adds the given function <Math>F</Math>
3600
to the category for the basic operation <C>AstrictionToCoimageWithGivenCoimage</C>.
3601
<Math>F: (\alpha,C) \mapsto a</Math>
3602
</Description>
3603
</ManSection>
3604
3605
3606
<ManSection>
3607
<Oper Arg="C, F" Name="AddUniversalMorphismIntoCoimage" Label="for IsCapCategory, IsFunction"/>
3608
<Returns>nothing
3609
</Returns>
3610
<Description>
3611
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3612
This operations adds the given function <Math>F</Math>
3613
to the category for the basic operation <C>UniversalMorphismIntoCoimage</C>.
3614
<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>
3615
</Description>
3616
</ManSection>
3617
3618
3619
<ManSection>
3620
<Oper Arg="C, F" Name="AddUniversalMorphismIntoCoimageWithGivenCoimage" Label="for IsCapCategory, IsFunction"/>
3621
<Returns>nothing
3622
</Returns>
3623
<Description>
3624
The arguments are a category <Math>C</Math> and a function <Math>F</Math>.
3625
This operations adds the given function <Math>F</Math>
3626
to the category for the basic operation <C>UniversalMorphismIntoCoimageWithGivenCoimage</C>.
3627
<Math>F: (\alpha, \tau,C) \mapsto u(\tau)</Math>
3628
</Description>
3629
</ManSection>
3630
3631
3632
</Section>
3633
3634
3635
3636
<P/>
3637
</Chapter>
3638
3639
3640