44# Implementations
55#
66
7+ # #
8+ @InstallMethod ( TestMonoidalUnitorsForInvertibility,
9+ [ IsCapCategory, IsCapCategoryObject ],
10+
11+ function ( cat, object )
12+
13+ @Assert ( 0 , HasIsMonoidalCategory ( cat ) && IsMonoidalCategory ( cat ) );
14+ @Assert ( 0 , IsIdenticalObj ( cat, CapCategory ( object ) ) );
15+
16+ return IsOne ( PreCompose ( LeftUnitor ( object ), LeftUnitorInverse ( object ) ) ) &&
17+ IsOne ( PreCompose ( LeftUnitorInverse ( object ), LeftUnitor ( object ) ) ) &&
18+ IsOne ( PreCompose ( RightUnitor ( object ), RightUnitorInverse ( object ) ) ) &&
19+ IsOne ( PreCompose ( RightUnitorInverse ( object ), RightUnitor ( object ) ) );
20+
21+ end );
22+
723# #
824@InstallMethod ( TestMonoidalTriangleIdentity,
925 [ IsCapCategory, IsCapCategoryObject, IsCapCategoryObject ],
@@ -289,6 +305,8 @@ end );
289305
290306 if (IsEmpty ( MissingOperationsForConstructivenessOfCategory ( cat, " IsMonoidalCategory" ) ))
291307
308+ @Assert ( 0 , ForAll ( [ a, b, c ], obj -> TestMonoidalUnitorsForInvertibility ( cat, obj ) ) );
309+
292310 @Assert ( 0 , TestMonoidalTriangleIdentityForAllPairsInList ( cat, [ a, b, c ] ) );
293311
294312 @Assert ( 0 , TestMonoidalPentagonIdentity ( cat, a, b, c, b ) );
@@ -299,6 +317,8 @@ end );
299317
300318 if (IsEmpty ( MissingOperationsForConstructivenessOfCategory ( opposite, " IsMonoidalCategory" ) ))
301319
320+ @Assert ( 0 , ForAll ( [ a_op, b_op, c_op ], obj -> TestMonoidalUnitorsForInvertibility ( opposite, obj ) ) );
321+
302322 @Assert ( 0 , TestMonoidalTriangleIdentityForAllPairsInList ( opposite, [ a_op, b_op, c_op ] ) );
303323
304324 @Assert ( 0 , TestMonoidalPentagonIdentity ( opposite, a_op, b_op, c_op, b_op ) );
0 commit comments