Skip to content

Commit 169079a

Browse files
committed
Add BasisOfExternalHom & CoefficientsOfMorphismWithGivenBasisOfExternalHom
as primitive methods in additive closure category.
1 parent 39e0986 commit 169079a

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

FreydCategoriesForCAP/gap/AdditiveClosure.gi

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,90 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_ADDITIVE_CLOSURE,
11271127

11281128
fi;
11291129

1130+
if ForAll( [ "BasisOfExternalHom",
1131+
"CoefficientsOfMorphismWithGivenBasisOfExternalHom",
1132+
"ZeroMorphism" ], op -> CanCompute( underlying_category, op ) ) then
1133+
1134+
##
1135+
AddBasisOfExternalHom( category,
1136+
function( cat, object_1, object_2 )
1137+
local size_i, size_j, listlist, L;
1138+
1139+
size_i := Size( ObjectList( object_1 ) );
1140+
size_j := Size( ObjectList( object_2 ) );
1141+
1142+
listlist := List( [ 1 .. size_i ], i ->
1143+
List( [ 1 .. size_j ], j ->
1144+
ZeroMorphism( object_1[i], object_2[j] )
1145+
)
1146+
);
1147+
1148+
return
1149+
Concatenation(
1150+
List( [ 1 .. size_i ], i ->
1151+
Concatenation(
1152+
List( [ 1 .. size_j ],
1153+
function( j )
1154+
local current_basis;
1155+
1156+
current_basis := BasisOfExternalHom( object_1[ i ], object_2[ j ] );
1157+
1158+
return List( current_basis,
1159+
function( m )
1160+
local z;
1161+
z := listlist[ i, j ];
1162+
listlist[ i, j ] := m;
1163+
m := AdditiveClosureMorphismListList( object_1, listlist, object_2 );
1164+
listlist[ i, j ] := z;
1165+
return m;
1166+
end
1167+
);
1168+
1169+
end
1170+
)
1171+
)
1172+
)
1173+
);
1174+
end );
1175+
1176+
##
1177+
InstallMethod( CoefficientsOfMorphism,
1178+
[ IsAdditiveClosureMorphism and MorphismFilter( category ) ],
1179+
1180+
function( morphism )
1181+
local object_1, object_2, nr_rows, nr_cols;
1182+
1183+
object_1 := Source( morphism );
1184+
1185+
object_2 := Range( morphism );
1186+
1187+
nr_rows := NumberRows( morphism );
1188+
1189+
nr_cols := NumberColumns( morphism );
1190+
1191+
return
1192+
Concatenation(
1193+
List( [ 1 .. nr_rows ],
1194+
i -> Concatenation(
1195+
List( [ 1 .. nr_cols ],
1196+
j -> CoefficientsOfMorphismWithGivenBasisOfExternalHom(
1197+
morphism[ i, j ],
1198+
BasisOfExternalHom( object_1[ i ], object_2[ j ] )
1199+
)
1200+
)
1201+
)
1202+
)
1203+
);
1204+
1205+
end );
1206+
1207+
##
1208+
AddCoefficientsOfMorphismWithGivenBasisOfExternalHom( category,
1209+
{cat, morphism, B} -> CoefficientsOfMorphism( morphism )
1210+
);
1211+
1212+
fi;
1213+
11301214
end );
11311215

11321216
####################################

0 commit comments

Comments
 (0)