Skip to content

Commit b7c7d4e

Browse files
committed
Choose hom(B,C) = C ⊗ B^v instead of B^v ⊗ C
1 parent 993058f commit b7c7d4e

File tree

2 files changed

+68
-103
lines changed

2 files changed

+68
-103
lines changed

MonoidalCategories/gap/RigidSymmetricClosedMonoidalCategoriesDerivedMethods.gi

+59-102
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ AddDerivationToCAP( InternalHomOnMorphismsWithGivenInternalHoms,
4949
# |
5050
# |
5151
# v
52-
# a'^v ⊗ b
52+
# b ⊗ a'^v
5353
# |
54-
# | Dual(alpha) ⊗ beta
54+
# | beta ⊗ Dual(alpha)
5555
# v
56-
# a^vb'
56+
# b'a^v
5757
# |
5858
# |
5959
# v
@@ -64,7 +64,7 @@ AddDerivationToCAP( InternalHomOnMorphismsWithGivenInternalHoms,
6464
return PreComposeList( cat,
6565
internal_hom_source,
6666
[ IsomorphismFromInternalHomToTensorProductWithDualObject( cat, Range( alpha ), Source( beta ) ),
67-
TensorProductOnMorphisms( cat, dual_alpha, beta ),
67+
TensorProductOnMorphisms( cat, beta, dual_alpha ),
6868
IsomorphismFromTensorProductWithDualObjectToInternalHom( cat, Source( alpha ), Range( beta ) ) ],
6969
internal_hom_range );
7070

@@ -102,11 +102,10 @@ end : CategoryFilter := IsRigidSymmetricClosedMonoidalCategory );
102102
AddDerivationToCAP( EvaluationMorphismWithGivenSource,
103103
"EvaluationMorphismWithGivenSource using the rigidity of the monoidal category",
104104
[ [ PreComposeList, 1 ],
105-
[ TensorProductOnMorphisms, 3 ],
105+
[ TensorProductOnMorphisms, 2 ],
106106
[ IsomorphismFromInternalHomToTensorProductWithDualObject, 1 ],
107-
[ IdentityMorphism, 3 ],
108-
[ Braiding, 1 ],
109-
[ DualOnObjects, 2 ],
107+
[ IdentityMorphism, 2 ],
108+
[ DualOnObjects, 1 ],
110109
[ AssociatorLeftToRight, 1 ],
111110
[ EvaluationForDual, 1 ],
112111
[ RightUnitor, 1 ] ],
@@ -118,10 +117,6 @@ AddDerivationToCAP( EvaluationMorphismWithGivenSource,
118117
# |
119118
# | Isomorphism ⊗ id_a
120119
# v
121-
# (a^v ⊗ b) ⊗ a
122-
# |
123-
# | B_( Dual(a), b ) ⊗ id_a
124-
# v
125120
# (b ⊗ a^v) ⊗ a
126121
# |
127122
# | α_( ( b, a^v ), a )
@@ -142,9 +137,6 @@ AddDerivationToCAP( EvaluationMorphismWithGivenSource,
142137
IsomorphismFromInternalHomToTensorProductWithDualObject( cat, a, b ),
143138
IdentityMorphism( cat, a ) ),
144139

145-
TensorProductOnMorphisms( cat,
146-
Braiding( cat, DualOnObjects( cat, a ), b ),
147-
IdentityMorphism( cat, a ) ),
148140
AssociatorLeftToRight( cat, b, DualOnObjects( cat, a ), a ),
149141

150142
TensorProductOnMorphisms( cat,
@@ -162,11 +154,9 @@ end : CategoryFilter := IsRigidSymmetricClosedMonoidalCategory );
162154
AddDerivationToCAP( EvaluationMorphismWithGivenSource,
163155
"EvaluationMorphismWithGivenSource using the rigidity and strictness of the monoidal category",
164156
[ [ PreComposeList, 1 ],
165-
[ TensorProductOnMorphisms, 3 ],
157+
[ TensorProductOnMorphisms, 2 ],
166158
[ IsomorphismFromInternalHomToTensorProductWithDualObject, 1 ],
167-
[ IdentityMorphism, 3 ],
168-
[ Braiding, 1 ],
169-
[ DualOnObjects, 1 ],
159+
[ IdentityMorphism, 2 ],
170160
[ EvaluationForDual, 1 ] ],
171161

172162
function( cat, a, b, internal_hom_tensored_a )
@@ -176,10 +166,6 @@ AddDerivationToCAP( EvaluationMorphismWithGivenSource,
176166
# |
177167
# | Isomorphism ⊗ id_a
178168
# v
179-
# a^v ⊗ b ⊗ a
180-
# |
181-
# | B_( Dual(a), b ) ⊗ id_a
182-
# v
183169
# b ⊗ a^v ⊗ a
184170
# |
185171
# | id_b ⊗ ev_a
@@ -192,10 +178,6 @@ AddDerivationToCAP( EvaluationMorphismWithGivenSource,
192178
IsomorphismFromInternalHomToTensorProductWithDualObject( cat, a, b ),
193179
IdentityMorphism( cat, a ) ),
194180

195-
TensorProductOnMorphisms( cat,
196-
Braiding( cat, DualOnObjects( cat, a ), b ),
197-
IdentityMorphism( cat, a ) ),
198-
199181
TensorProductOnMorphisms( cat,
200182
IdentityMorphism( cat, b ),
201183
EvaluationForDual( cat, a ) ) ],
@@ -209,13 +191,12 @@ end : CategoryFilter := cat -> HasIsRigidSymmetricClosedMonoidalCategory( cat )
209191
AddDerivationToCAP( CoevaluationMorphismWithGivenRange,
210192
"CoevaluationMorphismWithGivenRange using the rigidity of the monoidal category",
211193
[ [ DualOnObjects, 1 ],
212-
[ IdentityMorphism, 2 ],
194+
[ IdentityMorphism, 1 ],
213195
[ PreComposeList, 1 ],
214-
[ LeftUnitorInverse, 1 ],
215-
[ TensorProductOnMorphisms, 3 ],
196+
[ RightUnitorInverse, 1 ],
197+
[ TensorProductOnMorphisms, 1 ],
216198
[ CoevaluationForDual, 1 ],
217-
[ Braiding, 2 ],
218-
[ AssociatorLeftToRight, 1 ],
199+
[ AssociatorRightToLeft, 1 ],
219200
[ IsomorphismFromTensorProductWithDualObjectToInternalHom, 1 ],
220201
[ TensorProductOnObjects, 1 ] ],
221202

@@ -224,25 +205,17 @@ AddDerivationToCAP( CoevaluationMorphismWithGivenRange,
224205

225206
# a
226207
# |
227-
# | (λ_a)^-1
228-
# v
229-
# 1 ⊗ a
230-
# |
231-
# | coev_b ⊗ id_a
232-
# v
233-
# (b ⊗ b^v) ⊗ a
234-
# |
235-
# | B_( b, b^v ) ⊗ id_a
208+
# | (ρ_a)^-1
236209
# v
237-
# (b^v ⊗ b) ⊗ a
210+
# a ⊗ 1
238211
# |
239-
# | α_( ( b^v, b ), a )
212+
# | id_a ⊗ coev_b
240213
# v
241-
# b^v ⊗ (b ⊗ a)
214+
# a ⊗ (b ⊗ b^v)
242215
# |
243-
# | id_(b^v) ⊗ B_( b, a )
216+
# | α_( a, ( b, b^v ) )
244217
# v
245-
# b^v ⊗ (a ⊗ b)
218+
# (a ⊗ b) ⊗ b^v
246219
# |
247220
# | Isomorphism
248221
# v
@@ -254,21 +227,13 @@ AddDerivationToCAP( CoevaluationMorphismWithGivenRange,
254227

255228
morphism := PreComposeList( cat,
256229
a,
257-
[ LeftUnitorInverse( cat, a ),
258-
259-
TensorProductOnMorphisms( cat,
260-
CoevaluationForDual( cat, b ),
261-
id_a ),
230+
[ RightUnitorInverse( cat, a ),
262231

263232
TensorProductOnMorphisms( cat,
264-
Braiding( cat, b, dual_b ),
265-
id_a ),
266-
267-
AssociatorLeftToRight( cat, dual_b, b, a ),
233+
id_a,
234+
CoevaluationForDual( cat, b ) ),
268235

269-
TensorProductOnMorphisms( cat,
270-
IdentityMorphism( cat, dual_b ),
271-
Braiding( cat, b, a ) ),
236+
AssociatorRightToLeft( cat, a, b, dual_b ),
272237

273238
IsomorphismFromTensorProductWithDualObjectToInternalHom( cat,
274239
b,
@@ -283,33 +248,24 @@ end : CategoryFilter := IsRigidSymmetricClosedMonoidalCategory );
283248
AddDerivationToCAP( CoevaluationMorphismWithGivenRange,
284249
"CoevaluationMorphismWithGivenRange using the rigidity of the monoidal category",
285250
[ [ DualOnObjects, 1 ],
286-
[ IdentityMorphism, 2 ],
251+
[ IdentityMorphism, 1 ],
287252
[ PreComposeList, 1 ],
288-
[ TensorProductOnMorphisms, 3 ],
253+
[ TensorProductOnMorphisms, 1 ],
289254
[ CoevaluationForDual, 1 ],
290-
[ Braiding, 2 ],
291255
[ IsomorphismFromTensorProductWithDualObjectToInternalHom, 1 ],
292256
[ TensorProductOnObjects, 1 ] ],
293257

294258
function( cat, a, b, internal_hom )
295259
local dual_b, id_a, morphism;
296260

297-
# 1 ⊗ a
298-
# |
299-
# | coev_b ⊗ id_a
300-
# v
301-
# b ⊗ b^v ⊗ a
302-
# |
303-
# | B_( b, b^v ) ⊗ id_a
304-
# v
305-
# b^v ⊗ b ⊗ a
306-
# |
307-
# | id_(b^v) ⊗ B_( b, a )
308-
# v
309-
# b^v ⊗ a ⊗ b
310-
# |
311-
# | Isomorphism
312-
# v
261+
# a
262+
# |
263+
# | id_a ⊗ coev_b
264+
# v
265+
# (a ⊗ b) ⊗ b^v
266+
# |
267+
# | Isomorphism
268+
# v
313269
# Hom(b, a ⊗ b)
314270

315271
dual_b := DualOnObjects( cat, b );
@@ -319,16 +275,8 @@ AddDerivationToCAP( CoevaluationMorphismWithGivenRange,
319275
morphism := PreComposeList( cat,
320276
a,
321277
[ TensorProductOnMorphisms( cat,
322-
CoevaluationForDual( cat, b ),
323-
id_a ),
324-
325-
TensorProductOnMorphisms( cat,
326-
Braiding( cat, b, dual_b ),
327-
id_a ),
328-
329-
TensorProductOnMorphisms( cat,
330-
IdentityMorphism( cat, dual_b ),
331-
Braiding( cat, b, a ) ),
278+
id_a,
279+
CoevaluationForDual( cat, b ) ),
332280

333281
IsomorphismFromTensorProductWithDualObjectToInternalHom( cat,
334282
b,
@@ -388,6 +336,8 @@ AddDerivationToCAP( MorphismFromInternalHomToTensorProductWithGivenObjects,
388336
"MorphismFromInternalHomToTensorProductWithGivenObjects using TensorProductInternalHomCompatibilityMorphismInverse",
389337
[ [ TensorUnit, 1 ],
390338
[ PostComposeList, 1 ],
339+
[ Braiding, 1 ],
340+
[ DualOnObjects, 1 ],
391341
[ TensorProductOnMorphisms, 1 ],
392342
[ IsomorphismFromInternalHomIntoTensorUnitToDualObject, 1 ],
393343
[ IsomorphismFromInternalHomToObject, 1 ],
@@ -401,6 +351,10 @@ AddDerivationToCAP( MorphismFromInternalHomToTensorProductWithGivenObjects,
401351

402352
# inverse of the derivation of MorphismFromTensorProductToInternalHomWithGivenObjects using TensorProductInternalHomCompatibilityMorphism
403353

354+
# b ⊗ a^v
355+
# ʌ
356+
# | B_( a^v, b )
357+
# |
404358
# a^v ⊗ b
405359
# ʌ
406360
# |
@@ -417,6 +371,8 @@ AddDerivationToCAP( MorphismFromInternalHomToTensorProductWithGivenObjects,
417371
unit := TensorUnit( cat );
418372

419373
return PostComposeList( cat, [
374+
Braiding( cat, DualOnObjects( cat, a ), b ),
375+
420376
TensorProductOnMorphisms( cat,
421377
IsomorphismFromInternalHomIntoTensorUnitToDualObject( cat, a ),
422378
IsomorphismFromInternalHomToObject( cat, b ) ),
@@ -438,7 +394,6 @@ AddDerivationToCAP( CoevaluationForDualWithGivenTensorProduct,
438394
[ PreComposeList, 1 ],
439395
[ LambdaIntroduction, 1 ],
440396
[ IsomorphismFromInternalHomToTensorProductWithDualObject, 1 ],
441-
[ Braiding, 1 ],
442397
[ DualOnObjects, 1 ] ],
443398

444399
function( cat, unit, a, tensor_object )
@@ -452,19 +407,14 @@ AddDerivationToCAP( CoevaluationForDualWithGivenTensorProduct,
452407
# |
453408
# | Isomorphism
454409
# v
455-
# a^v ⊗ a
456-
# |
457-
# | B_( a^v, a )
458-
# v
459410
# a ⊗ a^v
460411

461412
morphism := IdentityMorphism( cat, a );
462413

463414
morphism := PreComposeList( cat,
464415
unit,
465416
[ LambdaIntroduction( cat, morphism ),
466-
IsomorphismFromInternalHomToTensorProductWithDualObject( cat, a, a ),
467-
Braiding( cat, DualOnObjects( cat, a ), a ) ],
417+
IsomorphismFromInternalHomToTensorProductWithDualObject( cat, a, a ) ],
468418
tensor_object );
469419

470420
return morphism;
@@ -478,6 +428,8 @@ AddDerivationToCAP( TraceMap,
478428
[ PreComposeList, 1 ],
479429
[ LambdaIntroduction, 1 ],
480430
[ IsomorphismFromInternalHomToTensorProductWithDualObject, 1 ],
431+
[ Braiding, 1 ],
432+
[ DualOnObjects, 1 ],
481433
[ EvaluationForDual, 1 ] ],
482434

483435
function( cat, alpha )
@@ -493,6 +445,10 @@ AddDerivationToCAP( TraceMap,
493445
# |
494446
# | Isomorphism
495447
# v
448+
# a ⊗ a^v
449+
# |
450+
# | B_( a, a^v )
451+
# v
496452
# a^v ⊗ a
497453
# |
498454
# | ev_a
@@ -507,6 +463,7 @@ AddDerivationToCAP( TraceMap,
507463
unit,
508464
[ LambdaIntroduction( cat, alpha ),
509465
IsomorphismFromInternalHomToTensorProductWithDualObject( cat, a, a ),
466+
Braiding( cat, a, DualOnObjects( a ) ),
510467
EvaluationForDual( cat, a ) ],
511468
unit );
512469

@@ -612,8 +569,8 @@ end : CategoryFilter := IsRigidSymmetricClosedMonoidalCategory );
612569
AddFinalDerivationBundle( "deriving the internal hom by tensoring with the dual object",
613570
[ [ IdentityMorphism, 1 ],
614571
[ DualOnObjects, 1 ],
615-
[ RightUnitor, 1 ],
616-
[ RightUnitorInverse, 1 ],
572+
[ LeftUnitor, 1 ],
573+
[ LeftUnitorInverse, 1 ],
617574
[ TensorProductOnObjects, 1 ] ],
618575
[ InternalHomOnObjects,
619576
InternalHomOnMorphismsWithGivenInternalHoms,
@@ -639,7 +596,7 @@ AddFinalDerivationBundle( "deriving the internal hom by tensoring with the dual
639596
[ DualOnObjects, 1 ] ],
640597
function( cat, a, b )
641598

642-
return IdentityMorphism( cat, TensorProductOnObjects( cat, DualOnObjects( cat, a ), b ) );
599+
return IdentityMorphism( cat, TensorProductOnObjects( cat, b, DualOnObjects( cat, a ) ) );
643600

644601
end
645602
],
@@ -650,27 +607,27 @@ AddFinalDerivationBundle( "deriving the internal hom by tensoring with the dual
650607
[ DualOnObjects, 1 ] ],
651608
function( cat, a, b )
652609

653-
return IdentityMorphism( cat, TensorProductOnObjects( cat, DualOnObjects( cat, a ), b ) );
610+
return IdentityMorphism( cat, TensorProductOnObjects( cat, b, DualOnObjects( cat, a ) ) );
654611

655612
end
656613
],
657614
[
658615
IsomorphismFromInternalHomIntoTensorUnitToDualObject,
659-
[ [ RightUnitor, 1 ],
616+
[ [ LeftUnitor, 1 ],
660617
[ DualOnObjects, 1 ] ],
661618
function( cat, object )
662619

663-
return RightUnitor( cat, DualOnObjects( cat, object ) );
620+
return LeftUnitor( cat, DualOnObjects( cat, object ) );
664621

665622
end
666623
],
667624
[
668625
IsomorphismFromDualObjectToInternalHomIntoTensorUnit,
669-
[ [ RightUnitorInverse, 1 ],
626+
[ [ LeftUnitorInverse, 1 ],
670627
[ DualOnObjects, 1 ] ],
671628
function( cat, object )
672629

673-
return RightUnitorInverse( cat, DualOnObjects( cat, object ) );
630+
return LeftUnitorInverse( cat, DualOnObjects( cat, object ) );
674631

675632
end
676633
] : CategoryFilter := IsRigidSymmetricClosedMonoidalCategory );

0 commit comments

Comments
 (0)