@@ -28,6 +28,17 @@ BindGlobal( "_complexes_DistinguishedObjectOfHomomorphismStructure",
28
28
29
29
end ) );
30
30
31
+ # #
32
+ BindGlobal( " _complexes_DistinguishedObjectOfHomomorphismStructure_Weight" ,
33
+ function ( ch_cat )
34
+ local cat;
35
+
36
+ cat := UnderlyingCategory( ch_cat );
37
+
38
+ return OperationWeight( cat, " DistinguishedObjectOfHomomorphismStructure" );
39
+
40
+ end );
41
+
31
42
BindGlobal( " _complexes_HomomorphismStructureOnObjects" ,
32
43
function ( ch_cat, B, C )
33
44
local cat, range_cat, ch_range_cat, l_B, l_C, u_B, u_C, diagrams, objs, diffs;
@@ -83,7 +94,23 @@ BindGlobal( "_complexes_HomomorphismStructureOnObjects",
83
94
return CreateComplex( ch_range_cat, objs, diffs, l_C - u_B, u_C - l_B );
84
95
85
96
end );
97
+
98
+ # #
99
+ BindGlobal( " _complexes_HomomorphismStructureOnObjects_Weight" ,
100
+ function ( ch_cat )
101
+ local cat, range_cat;
86
102
103
+ cat := UnderlyingCategory( ch_cat );
104
+ range_cat := RangeCategoryOfHomomorphismStructure( ch_cat );
105
+
106
+ return
107
+ 4 * OperationWeight( cat, " HomomorphismStructureOnObjects" ) +
108
+ 8 * OperationWeight( cat, " HomomorphismStructureOnMorphismsWithGivenObjects" ) +
109
+ 8 * OperationWeight( range_cat, " ZeroMorphism" ) +
110
+ 2 * OperationWeight( range_cat, " MorphismBetweenDirectSumsWithGivenDirectSums" ) +
111
+ 1 ;
112
+ end );
113
+
87
114
# phi
88
115
# A -------> B
89
116
#
@@ -163,6 +190,23 @@ BindGlobal( "_complexes_HomomorphismStructureOnMorphismsWithGivenObjects",
163
190
164
191
end );
165
192
193
+ # #
194
+ BindGlobal( " _complexes_HomomorphismStructureOnMorphismsWithGivenObjects_Weight" ,
195
+ function ( ch_cat )
196
+ local cat, range_cat;
197
+
198
+ cat := UnderlyingCategory( ch_cat );
199
+ range_cat := RangeCategoryOfHomomorphismStructure( ch_cat );
200
+
201
+ return
202
+ 8 * OperationWeight( cat, " HomomorphismStructureOnObjects" ) +
203
+ 8 * OperationWeight( cat, " HomomorphismStructureOnMorphismsWithGivenObjects" ) +
204
+ 8 * OperationWeight( range_cat, " ZeroMorphism" ) +
205
+ 2 * OperationWeight( range_cat, " MorphismBetweenDirectSumsWithGivenDirectSums" ) +
206
+ 1 ;
207
+ end );
208
+
209
+ # #
166
210
BindGlobal( " _complexes_HomomorphismStructureOnMorphisms" ,
167
211
168
212
function ( ch_cat, phi, psi )
@@ -176,6 +220,17 @@ BindGlobal( "_complexes_HomomorphismStructureOnMorphisms",
176
220
177
221
end );
178
222
223
+ # #
224
+ BindGlobal( " _complexes_HomomorphismStructureOnMorphisms_Weight" ,
225
+ function ( ch_cat )
226
+
227
+ return
228
+ 2 * _complexes_HomomorphismStructureOnObjects_Weight( ch_cat ) +
229
+ _complexes_HomomorphismStructureOnMorphismsWithGivenObjects_Weight( ch_cat ) +
230
+ 1 ;
231
+
232
+ end );
233
+
179
234
# #
180
235
BindGlobal( " _complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects" ,
181
236
@@ -210,6 +265,22 @@ BindGlobal( "_complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomo
210
265
211
266
end );
212
267
268
+ # #
269
+ BindGlobal( " _complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects_Weight" ,
270
+ function ( ch_cat )
271
+ local cat, range_cat;
272
+
273
+ cat := UnderlyingCategory( ch_cat );
274
+ range_cat := RangeCategoryOfHomomorphismStructure( ch_cat );
275
+
276
+ return
277
+ OperationWeight( cat, " HomomorphismStructureOnObjects" ) +
278
+ 2 * OperationWeight( cat, " InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects" ) +
279
+ OperationWeight( range_cat, " MorphismBetweenDirectSumsWithGivenDirectSums" ) +
280
+ 1 ;
281
+
282
+ end );
283
+
213
284
# #
214
285
BindGlobal( " _complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure" ,
215
286
@@ -224,6 +295,18 @@ BindGlobal( "_complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomo
224
295
225
296
end );
226
297
298
+ # #
299
+ BindGlobal( " _complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure_Weight" ,
300
+ function ( ch_cat )
301
+
302
+ return
303
+ _complexes_DistinguishedObjectOfHomomorphismStructure_Weight( ch_cat ) +
304
+ _complexes_HomomorphismStructureOnObjects_Weight( ch_cat ) +
305
+ _complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects_Weight( ch_cat ) +
306
+ 1 ;
307
+
308
+ end );
309
+
227
310
# #
228
311
BindGlobal( " _complexes_InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism" ,
229
312
@@ -255,6 +338,23 @@ BindGlobal( "_complexes_InterpretMorphismFromDistinguishedObjectToHomomorphismSt
255
338
256
339
end );
257
340
341
+ # #
342
+ BindGlobal( " _complexes_InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism_Weight" ,
343
+ function ( ch_cat )
344
+ local cat, range_cat;
345
+
346
+ cat := UnderlyingCategory( ch_cat );
347
+ range_cat := RangeCategoryOfHomomorphismStructure( ch_cat );
348
+
349
+ return
350
+ 2 * OperationWeight( cat, " HomomorphismStructureOnObjects" ) +
351
+ 2 * OperationWeight( cat, " InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism" ) +
352
+ 2 * OperationWeight( range_cat, " PreCompose" ) +
353
+ 2 * OperationWeight( range_cat, " ProjectionInFactorOfDirectSumWithGivenDirectSum" ) +
354
+ 1 ;
355
+
356
+ end );
357
+
258
358
# #
259
359
InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLEX_CATEGORY,
260
360
function ( ch_cat )
@@ -307,7 +407,9 @@ InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLE
307
407
308
408
AddDistinguishedObjectOfHomomorphismStructure( ch_cat,
309
409
310
- ch_cat -> as_object_in_abelian_category( _complexes_DistinguishedObjectOfHomomorphismStructure( ch_cat )[ 0 ] )
410
+ ch_cat -> as_object_in_abelian_category( _complexes_DistinguishedObjectOfHomomorphismStructure( ch_cat )[ 0 ] ),
411
+ _complexes_DistinguishedObjectOfHomomorphismStructure_Weight( ch_cat )
412
+ + 1
311
413
);
312
414
313
415
AddHomomorphismStructureOnObjects( ch_cat,
@@ -316,7 +418,10 @@ InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLE
316
418
317
419
return KernelObject( range_cat, as_morphism_in_abelian_category( _complexes_HomomorphismStructureOnObjects( ch_cat, B, C )^ 0 ) );
318
420
319
- end );
421
+ end ,
422
+ _complexes_HomomorphismStructureOnObjects_Weight( ch_cat ) +
423
+ OperationWeight( range_cat, " KernelObject" ) +
424
+ 1 );
320
425
321
426
AddHomomorphismStructureOnMorphismsWithGivenObjects( ch_cat,
322
427
@@ -333,7 +438,10 @@ InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLE
333
438
as_morphism_in_abelian_category( Range( hom_phi_psi )^ 0 ),
334
439
hom_AD );
335
440
336
- end );
441
+ end ,
442
+ _complexes_HomomorphismStructureOnMorphisms_Weight( ch_cat ) +
443
+ OperationWeight( range_cat, " KernelObjectFunctorialWithGivenKernelObjects" ) +
444
+ 1 );
337
445
338
446
AddHomomorphismStructureOnMorphisms( ch_cat,
339
447
@@ -348,7 +456,10 @@ InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLE
348
456
as_morphism_in_abelian_category( hom_phi_psi[ 0 ] ),
349
457
as_morphism_in_abelian_category( Range( hom_phi_psi )^ 0 ) );
350
458
351
- end );
459
+ end ,
460
+ _complexes_HomomorphismStructureOnMorphisms_Weight( ch_cat ) +
461
+ OperationWeight( range_cat, " KernelObjectFunctorial" ) +
462
+ 1 );
352
463
353
464
AddInterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( ch_cat,
354
465
@@ -366,7 +477,13 @@ InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLE
366
477
KernelEmbedding( range_cat, as_morphism_in_abelian_category( hom_BC^ 0 ) ),
367
478
as_morphism_in_abelian_category( ell[ 0 ] ) );
368
479
369
- end );
480
+ end ,
481
+ _complexes_DistinguishedObjectOfHomomorphismStructure_Weight( ch_cat ) +
482
+ _complexes_HomomorphismStructureOnObjects_Weight( ch_cat ) +
483
+ _complexes_InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects_Weight( ch_cat ) +
484
+ OperationWeight( range_cat, " LiftAlongMonomorphism" ) +
485
+ OperationWeight( range_cat, " KernelEmbedding" ) +
486
+ 1 );
370
487
371
488
AddInterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( ch_cat,
372
489
function ( ch_cat, B, C, ell )
@@ -382,7 +499,13 @@ InstallGlobalFunction( ADD_FUNCTIONS_OF_HOMOMORPHISM_STRUCTURE_TO_COCHAIN_COMPLE
382
499
383
500
return _complexes_InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( ch_cat, B, C, ell );
384
501
385
- end );
502
+ end ,
503
+ _complexes_DistinguishedObjectOfHomomorphismStructure_Weight( ch_cat ) +
504
+ _complexes_HomomorphismStructureOnObjects_Weight( ch_cat ) +
505
+ OperationWeight( range_cat, " PreCompose" ) +
506
+ OperationWeight( range_cat, " KernelEmbedding" ) +
507
+ _complexes_InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism_Weight( ch_cat ) +
508
+ 1 );
386
509
387
510
else
388
511
0 commit comments