Skip to content

Commit df5e4b4

Browse files
authored
Merge pull request #728 from zickgraf/master
Add ComponentOfMorphismInto/FromDirectSum to CategoryOfRows
2 parents 365fd02 + 186410e commit df5e4b4

File tree

6 files changed

+165
-5
lines changed

6 files changed

+165
-5
lines changed

FreydCategoriesForCAP/PackageInfo.g

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SetPackageInfo( rec(
1010

1111
PackageName := "FreydCategoriesForCAP",
1212
Subtitle := "Freyd categories - Formal (co)kernels for additive categories",
13-
Version := "2021.10-01",
13+
Version := "2021.10-02",
1414
Date := Concatenation( "01/", ~.Version{[ 6, 7 ]}, "/", ~.Version{[ 1 .. 4 ]} ),
1515
License := "GPL-2.0-or-later",
1616

FreydCategoriesForCAP/examples/Basics.gi

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,21 @@ UniversalMorphismIntoZeroObject( obj2 );;
2323
UniversalMorphismFromZeroObject( obj1 );;
2424
DirectSum( obj1, obj2 );;
2525
DirectSumFunctorial( [ alpha, beta, id ] );;
26-
ProjectionInFactorOfDirectSum( [ obj2, obj1, obj2 ], 3 );;
26+
proj := ProjectionInFactorOfDirectSum( [ obj2, obj1, obj2 ], 2 );;
27+
IsZero( ComponentOfMorphismFromDirectSum( proj, [ obj2, obj1, obj2 ], 1 ) );
28+
#! true
29+
IsOne( ComponentOfMorphismFromDirectSum( proj, [ obj2, obj1, obj2 ], 2 ) );
30+
#! true
31+
IsZero( ComponentOfMorphismFromDirectSum( proj, [ obj2, obj1, obj2 ], 3 ) );
32+
#! true
2733
UniversalMorphismIntoDirectSum( [ alpha, alpha, alpha ] );;
28-
InjectionOfCofactorOfDirectSum( [ obj2, obj2, obj1 ], 2 );;
34+
inj := InjectionOfCofactorOfDirectSum( [ obj2, obj2, obj1 ], 2 );;
35+
IsZero( ComponentOfMorphismIntoDirectSum( inj, [ obj2, obj2, obj1 ], 1 ) );
36+
#! true
37+
IsOne( ComponentOfMorphismIntoDirectSum( inj, [ obj2, obj2, obj1 ], 2 ) );
38+
#! true
39+
IsZero( ComponentOfMorphismIntoDirectSum( inj, [ obj2, obj2, obj1 ], 3 ) );
40+
#! true
2941
gamma := CategoryOfRowsMorphism( obj2, HomalgMatrix( [ [ 1, 1 ], [ 1, 1 ] ], 2, 2, R ), obj2 );;
3042
IsColiftable( beta, gamma );
3143
#! true
@@ -229,9 +241,21 @@ UniversalMorphismIntoZeroObject( obj2 );;
229241
UniversalMorphismFromZeroObject( obj1 );;
230242
DirectSum( obj1, obj2 );;
231243
DirectSumFunctorial( [ alpha, beta, id ] );;
232-
ProjectionInFactorOfDirectSum( [ obj2, obj1, obj2 ], 3 );;
244+
proj := ProjectionInFactorOfDirectSum( [ obj2, obj1, obj2 ], 2 );;
245+
IsZero( ComponentOfMorphismFromDirectSum( proj, [ obj2, obj1, obj2 ], 1 ) );
246+
#! true
247+
IsOne( ComponentOfMorphismFromDirectSum( proj, [ obj2, obj1, obj2 ], 2 ) );
248+
#! true
249+
IsZero( ComponentOfMorphismFromDirectSum( proj, [ obj2, obj1, obj2 ], 3 ) );
250+
#! true
233251
UniversalMorphismIntoDirectSum( [ alpha, alpha, alpha ] );;
234-
InjectionOfCofactorOfDirectSum( [ obj2, obj2, obj1 ], 2 );;
252+
inj := InjectionOfCofactorOfDirectSum( [ obj2, obj2, obj1 ], 2 );;
253+
IsZero( ComponentOfMorphismIntoDirectSum( inj, [ obj2, obj2, obj1 ], 1 ) );
254+
#! true
255+
IsOne( ComponentOfMorphismIntoDirectSum( inj, [ obj2, obj2, obj1 ], 2 ) );
256+
#! true
257+
IsZero( ComponentOfMorphismIntoDirectSum( inj, [ obj2, obj2, obj1 ], 3 ) );
258+
#! true
235259
gamma := CategoryOfColumnsMorphism( obj2, HomalgMatrix( [ [ 1, 1 ], [ 1, 1 ] ], 2, 2, R ), obj2 );;
236260
IsColiftable( beta, gamma );
237261
#! false

FreydCategoriesForCAP/gap/CategoryOfRows.gi

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,40 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_ROWS,
600600

601601
end );
602602

603+
##
604+
AddComponentOfMorphismIntoDirectSum( category,
605+
function( cat, morphism, summands, nr )
606+
local ranks, start, stop;
607+
608+
ranks := List( summands, RankOfObject );
609+
610+
start := Sum( ranks{[ 1 .. nr-1 ]} ) + 1;
611+
612+
stop := (start - 1) + ranks[nr];
613+
614+
return CategoryOfRowsMorphism( cat, Source( morphism ),
615+
CertainColumns( UnderlyingMatrix( morphism ), [ start .. stop ] ),
616+
summands[nr] );
617+
618+
end );
619+
620+
##
621+
AddComponentOfMorphismFromDirectSum( category,
622+
function( cat, morphism, summands, nr )
623+
local ranks, start, stop;
624+
625+
ranks := List( summands, RankOfObject );
626+
627+
start := Sum( ranks{[ 1 .. nr-1 ]} ) + 1;
628+
629+
stop := (start - 1) + ranks[nr];
630+
631+
return CategoryOfRowsMorphism( cat, summands[nr],
632+
CertainRows( UnderlyingMatrix( morphism ), [ start .. stop ] ),
633+
Range( morphism ) );
634+
635+
end );
636+
603637
## Operations important for Freyd categories
604638

605639
AddWeakKernelEmbedding( category,

FreydCategoriesForCAP/gap/precompiled_categories/CategoryOfColumnsAsOppositeOfCategoryOfRowsOfArbitraryRingPrecompiled.gi

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,40 @@ end
4141

4242
);
4343

44+
##
45+
AddComponentOfMorphismFromDirectSum( cat,
46+
47+
########
48+
function ( cat_1, alpha_1, S_1, i_1 )
49+
local cap_jit_deduplicated_expression_1_1, cap_jit_deduplicated_expression_2_1;
50+
cap_jit_deduplicated_expression_1_1 := Sum( List( S_1, function ( logic_new_func_x_2 )
51+
return RankOfObject( logic_new_func_x_2 );
52+
end ){[ 1 .. i_1 - 1 ]} ) + 1;
53+
cap_jit_deduplicated_expression_2_1 := S_1[i_1];
54+
return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec(
55+
), cat_1, cap_jit_deduplicated_expression_2_1, Range( alpha_1 ), UnderlyingMatrix, CertainColumns( UnderlyingMatrix( alpha_1 ), [ cap_jit_deduplicated_expression_1_1 .. cap_jit_deduplicated_expression_1_1 - 1 + RankOfObject( cap_jit_deduplicated_expression_2_1 ) ] ) );
56+
end
57+
########
58+
59+
);
60+
61+
##
62+
AddComponentOfMorphismIntoDirectSum( cat,
63+
64+
########
65+
function ( cat_1, alpha_1, S_1, i_1 )
66+
local cap_jit_deduplicated_expression_1_1, cap_jit_deduplicated_expression_2_1;
67+
cap_jit_deduplicated_expression_1_1 := Sum( List( S_1, function ( logic_new_func_x_2 )
68+
return RankOfObject( logic_new_func_x_2 );
69+
end ){[ 1 .. i_1 - 1 ]} ) + 1;
70+
cap_jit_deduplicated_expression_2_1 := S_1[i_1];
71+
return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec(
72+
), cat_1, Source( alpha_1 ), cap_jit_deduplicated_expression_2_1, UnderlyingMatrix, CertainRows( UnderlyingMatrix( alpha_1 ), [ cap_jit_deduplicated_expression_1_1 .. cap_jit_deduplicated_expression_1_1 - 1 + RankOfObject( cap_jit_deduplicated_expression_2_1 ) ] ) );
73+
end
74+
########
75+
76+
);
77+
4478
##
4579
AddDirectSum( cat,
4680

FreydCategoriesForCAP/gap/precompiled_categories/CategoryOfColumnsAsOppositeOfCategoryOfRowsOfCommutativeRingPrecompiled.gi

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,40 @@ end
8585

8686
);
8787

88+
##
89+
AddComponentOfMorphismFromDirectSum( cat,
90+
91+
########
92+
function ( cat_1, alpha_1, S_1, i_1 )
93+
local cap_jit_deduplicated_expression_1_1, cap_jit_deduplicated_expression_2_1;
94+
cap_jit_deduplicated_expression_1_1 := Sum( List( S_1, function ( logic_new_func_x_2 )
95+
return RankOfObject( logic_new_func_x_2 );
96+
end ){[ 1 .. i_1 - 1 ]} ) + 1;
97+
cap_jit_deduplicated_expression_2_1 := S_1[i_1];
98+
return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec(
99+
), cat_1, cap_jit_deduplicated_expression_2_1, Range( alpha_1 ), UnderlyingMatrix, CertainColumns( UnderlyingMatrix( alpha_1 ), [ cap_jit_deduplicated_expression_1_1 .. cap_jit_deduplicated_expression_1_1 - 1 + RankOfObject( cap_jit_deduplicated_expression_2_1 ) ] ) );
100+
end
101+
########
102+
103+
);
104+
105+
##
106+
AddComponentOfMorphismIntoDirectSum( cat,
107+
108+
########
109+
function ( cat_1, alpha_1, S_1, i_1 )
110+
local cap_jit_deduplicated_expression_1_1, cap_jit_deduplicated_expression_2_1;
111+
cap_jit_deduplicated_expression_1_1 := Sum( List( S_1, function ( logic_new_func_x_2 )
112+
return RankOfObject( logic_new_func_x_2 );
113+
end ){[ 1 .. i_1 - 1 ]} ) + 1;
114+
cap_jit_deduplicated_expression_2_1 := S_1[i_1];
115+
return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec(
116+
), cat_1, Source( alpha_1 ), cap_jit_deduplicated_expression_2_1, UnderlyingMatrix, CertainRows( UnderlyingMatrix( alpha_1 ), [ cap_jit_deduplicated_expression_1_1 .. cap_jit_deduplicated_expression_1_1 - 1 + RankOfObject( cap_jit_deduplicated_expression_2_1 ) ] ) );
117+
end
118+
########
119+
120+
);
121+
88122
##
89123
AddDirectSum( cat,
90124

FreydCategoriesForCAP/gap/precompiled_categories/CategoryOfColumnsAsOppositeOfCategoryOfRowsOfFieldPrecompiled.gi

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,40 @@ end
150150

151151
);
152152

153+
##
154+
AddComponentOfMorphismFromDirectSum( cat,
155+
156+
########
157+
function ( cat_1, alpha_1, S_1, i_1 )
158+
local cap_jit_deduplicated_expression_1_1, cap_jit_deduplicated_expression_2_1;
159+
cap_jit_deduplicated_expression_1_1 := Sum( List( S_1, function ( logic_new_func_x_2 )
160+
return RankOfObject( logic_new_func_x_2 );
161+
end ){[ 1 .. i_1 - 1 ]} ) + 1;
162+
cap_jit_deduplicated_expression_2_1 := S_1[i_1];
163+
return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec(
164+
), cat_1, cap_jit_deduplicated_expression_2_1, Range( alpha_1 ), UnderlyingMatrix, CertainColumns( UnderlyingMatrix( alpha_1 ), [ cap_jit_deduplicated_expression_1_1 .. cap_jit_deduplicated_expression_1_1 - 1 + RankOfObject( cap_jit_deduplicated_expression_2_1 ) ] ) );
165+
end
166+
########
167+
168+
);
169+
170+
##
171+
AddComponentOfMorphismIntoDirectSum( cat,
172+
173+
########
174+
function ( cat_1, alpha_1, S_1, i_1 )
175+
local cap_jit_deduplicated_expression_1_1, cap_jit_deduplicated_expression_2_1;
176+
cap_jit_deduplicated_expression_1_1 := Sum( List( S_1, function ( logic_new_func_x_2 )
177+
return RankOfObject( logic_new_func_x_2 );
178+
end ){[ 1 .. i_1 - 1 ]} ) + 1;
179+
cap_jit_deduplicated_expression_2_1 := S_1[i_1];
180+
return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec(
181+
), cat_1, Source( alpha_1 ), cap_jit_deduplicated_expression_2_1, UnderlyingMatrix, CertainRows( UnderlyingMatrix( alpha_1 ), [ cap_jit_deduplicated_expression_1_1 .. cap_jit_deduplicated_expression_1_1 - 1 + RankOfObject( cap_jit_deduplicated_expression_2_1 ) ] ) );
182+
end
183+
########
184+
185+
);
186+
153187
##
154188
AddDirectSum( cat,
155189

0 commit comments

Comments
 (0)