@@ -1127,6 +1127,90 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_ADDITIVE_CLOSURE,
1127
1127
1128
1128
fi ;
1129
1129
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
+
1130
1214
end );
1131
1215
1132
1216
# ###################################
0 commit comments