@@ -19,7 +19,7 @@ InstallMethod( CategoryOfColumnsAsOppositeOfCategoryOfRows,
19
19
20
20
category_of_rows := CategoryOfRows( homalg_ring : FinalizeCategory := true );
21
21
22
- op := Opposite( category_of_rows, Concatenation( " Columns( " , RingName( homalg_ring )," )" ) : FinalizeCategory := false );
22
+ op := Opposite( category_of_rows, Concatenation( " Columns( " , RingName( homalg_ring )," )" ) : only_primitive_operations := true , FinalizeCategory := false );
23
23
24
24
# #
25
25
AddObjectConstructor( op, function ( cat, underlying_object )
@@ -66,6 +66,7 @@ InstallMethod( CategoryOfColumnsAsOppositeOfCategoryOfRows,
66
66
op!. compiler_hints := rec (
67
67
category_attribute_names := [
68
68
" UnderlyingRing" ,
69
+ " Opposite" ,
69
70
] ,
70
71
source_and_range_attributes_from_morphism_attribute := rec (
71
72
object_attribute_name := " RankOfObject" ,
@@ -145,14 +146,6 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
145
146
146
147
if HasIsCommutative( ring ) and IsCommutative( ring ) then
147
148
148
- # #
149
- AddMultiplyWithElementOfCommutativeRingForMorphisms( category,
150
- function ( cat, r, alpha )
151
-
152
- return CategoryOfColumnsMorphism( cat, Source( alpha ), r * UnderlyingMatrix( alpha ), Range( alpha ) );
153
-
154
- end );
155
-
156
149
# # Operations related to homomorphism structure
157
150
158
151
SetRangeCategoryOfHomomorphismStructure( category, category );
@@ -195,7 +188,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
195
188
return CategoryOfColumnsMorphism( cat,
196
189
DistinguishedObjectOfHomomorphismStructure( cat ),
197
190
underlying_matrix,
198
- HomomorphismStructureOnObjects( Source( alpha ), Range( alpha ) )
191
+ HomomorphismStructureOnObjects( cat, Source( alpha ), Range( alpha ) )
199
192
);
200
193
201
194
end );
@@ -294,7 +287,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
294
287
295
288
if rank = 0 then
296
289
297
- return ZeroMorphism( tensor_object, unit );
290
+ return ZeroMorphism( cat, tensor_object, unit );
298
291
299
292
fi ;
300
293
@@ -316,7 +309,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
316
309
317
310
if rank = 0 then
318
311
319
- return ZeroMorphism( unit, tensor_object );
312
+ return ZeroMorphism( cat, unit, tensor_object );
320
313
321
314
fi ;
322
315
@@ -329,158 +322,10 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
329
322
end );
330
323
331
324
# #
332
- AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( obj ) );
325
+ AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( cat, obj ) );
333
326
334
327
fi ; # # commutative case
335
328
336
- # # Simplifications
337
-
338
- # # Source and Range
339
- # #
340
- AddSimplifySourceAndRange( category,
341
- function ( cat, alpha, i )
342
-
343
- return
344
- CategoryOfColumnsMorphism( cat,
345
- Source( alpha ),
346
- CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[ 1 ] ,
347
- Range( alpha )
348
- );
349
-
350
- end );
351
-
352
- # #
353
- AddSimplifySourceAndRange_IsoToInputRange( category,
354
- function ( cat, alpha, i )
355
-
356
- return
357
- CategoryOfColumnsMorphism( cat,
358
- Range( alpha ),
359
- CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[ 4 ] ,
360
- Range( alpha )
361
- );
362
-
363
- end );
364
-
365
- # #
366
- AddSimplifySourceAndRange_IsoFromInputRange( category,
367
- function ( cat, alpha, i )
368
-
369
- return
370
- CategoryOfColumnsMorphism( cat,
371
- Range( alpha ),
372
- CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[ 2 ] ,
373
- Range( alpha )
374
- );
375
-
376
- end );
377
-
378
- # #
379
- AddSimplifySourceAndRange_IsoToInputSource( category,
380
- function ( cat, alpha, i )
381
-
382
- return
383
- CategoryOfColumnsMorphism( cat,
384
- Source( alpha ),
385
- CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[ 3 ] ,
386
- Source( alpha )
387
- );
388
-
389
- end );
390
-
391
- # #
392
- AddSimplifySourceAndRange_IsoFromInputSource( category,
393
- function ( cat, alpha, i )
394
-
395
- return
396
- CategoryOfColumnsMorphism( cat,
397
- Source( alpha ),
398
- CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[ 5 ] ,
399
- Source( alpha )
400
- );
401
-
402
- end );
403
-
404
- # # only Source
405
- # #
406
- AddSimplifySource( category,
407
- function ( cat, alpha, i )
408
-
409
- return
410
- CategoryOfColumnsMorphism( cat,
411
- Source( alpha ),
412
- CATEGORY_OF_COLUMNS_SimplificationSourceTuple( alpha )[ 1 ] ,
413
- Range( alpha )
414
- );
415
-
416
- end );
417
-
418
- # #
419
- AddSimplifySource_IsoToInputObject( category,
420
- function ( cat, alpha, i )
421
-
422
- return
423
- CategoryOfColumnsMorphism( cat,
424
- Source( alpha ),
425
- CATEGORY_OF_COLUMNS_SimplificationSourceTuple( alpha )[ 2 ] ,
426
- Source( alpha )
427
- );
428
-
429
- end );
430
-
431
- # #
432
- AddSimplifySource_IsoFromInputObject( category,
433
- function ( cat, alpha, i )
434
-
435
- return
436
- CategoryOfColumnsMorphism( cat,
437
- Source( alpha ),
438
- CATEGORY_OF_COLUMNS_SimplificationSourceTuple( alpha )[ 3 ] ,
439
- Source( alpha )
440
- );
441
-
442
- end );
443
-
444
- # # only Range
445
- # #
446
- AddSimplifyRange( category,
447
- function ( cat, alpha, i )
448
-
449
- return
450
- CategoryOfColumnsMorphism( cat,
451
- Source( alpha ),
452
- CATEGORY_OF_COLUMNS_SimplificationRangeTuple( alpha )[ 1 ] ,
453
- Range( alpha )
454
- );
455
-
456
- end );
457
-
458
- # #
459
- AddSimplifyRange_IsoToInputObject( category,
460
- function ( cat, alpha, i )
461
-
462
- return
463
- CategoryOfColumnsMorphism( cat,
464
- Range( alpha ),
465
- CATEGORY_OF_COLUMNS_SimplificationRangeTuple( alpha )[ 3 ] ,
466
- Range( alpha )
467
- );
468
-
469
- end );
470
-
471
- # #
472
- AddSimplifyRange_IsoFromInputObject( category,
473
- function ( cat, alpha, i )
474
-
475
- return
476
- CategoryOfColumnsMorphism( cat,
477
- Range( alpha ),
478
- CATEGORY_OF_COLUMNS_SimplificationRangeTuple( alpha )[ 2 ] ,
479
- Range( alpha )
480
- );
481
-
482
- end );
483
-
484
329
# #
485
330
AddSomeReductionBySplitEpiSummand( category,
486
331
function ( cat, alpha )
0 commit comments