@@ -15,60 +15,82 @@ InstallMethod( LeftPresentationsAsFreydCategoryOfCategoryOfRows,
15
15
[ IsHomalgRing ] ,
16
16
17
17
function ( ring )
18
- local category_of_rows, freyd, object_constructor, object_datum, morphism_constructor, morphism_datum, wrapper;
18
+ local category_of_rows, freyd, object_constructor, modeling_tower_object_constructor, object_datum, modeling_tower_object_datum, morphism_constructor, modeling_tower_morphism_datum, morphism_datum, modeling_tower_morphism_constructor , wrapper;
19
19
20
20
category_of_rows := CategoryOfRows( ring : FinalizeCategory := true );
21
21
22
- freyd := FREYD_CATEGORY ( category_of_rows : FinalizeCategory := true );
22
+ freyd := FreydCategory ( category_of_rows : FinalizeCategory := true );
23
23
24
- object_constructor := function ( cat, object_in_freyd )
25
-
26
- return ObjectifyObjectForCAPWithAttributes( rec ( ), cat,
27
- UnderlyingMatrix, UnderlyingMatrix( RelationMorphism( object_in_freyd ) )
28
- );
24
+ # #
25
+ object_constructor := function ( cat, matrix )
29
26
27
+ return ObjectifyObjectForCAPWithAttributes( rec (), cat,
28
+ UnderlyingMatrix, matrix );
29
+
30
30
end ;
31
31
32
- object_datum := function ( cat, obj )
33
- local freyd, category_of_rows, relation_morphism;
32
+ # #
33
+ modeling_tower_object_constructor := function ( cat, matrix )
34
+ local freyd, rows;
34
35
35
36
freyd := ModelingCategory( cat );
36
37
37
- category_of_rows := UnderlyingCategory( freyd );
38
+ rows := UnderlyingCategory( freyd );
39
+
40
+ return FreydCategoryObject( freyd,
41
+ AsCategoryOfRowsMorphism( rows, matrix ) );
42
+
43
+ end ;
44
+
45
+ # #
46
+ object_datum := function ( cat, obj )
38
47
39
- relation_morphism := CategoryOfRowsMorphism( category_of_rows,
40
- CategoryOfRowsObject( category_of_rows, NrRows( UnderlyingMatrix( obj ) ) ),
41
- UnderlyingMatrix( obj ),
42
- CategoryOfRowsObject( category_of_rows, NrCols( UnderlyingMatrix( obj ) ) )
43
- );
48
+ return UnderlyingMatrix( obj );
44
49
45
- return FreydCategoryObject( freyd, relation_morphism );
50
+ end ;
51
+
52
+ # #
53
+ modeling_tower_object_datum := function ( cat, obj )
54
+
55
+ return UnderlyingMatrix( RelationMorphism( obj ) );
46
56
47
57
end ;
48
58
49
- morphism_constructor := function ( cat, source, morphism_in_freyd, range )
59
+ # #
60
+ morphism_constructor := function ( cat, source, underlying_matrix, range )
50
61
51
- return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec ( ), cat,
52
- source,
53
- range,
54
- UnderlyingMatrix, UnderlyingMatrix( UnderlyingMorphism( morphism_in_freyd ) ) );
62
+ return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec (), cat,
63
+ source,
64
+ range,
65
+ UnderlyingMatrix, underlying_matrix );
55
66
56
67
end ;
57
68
58
- morphism_datum := function ( cat, mor )
59
- local freyd, category_of_rows, morphism_datum;
69
+ # #
70
+ modeling_tower_morphism_constructor := function ( cat, source, underlying_matrix, range )
71
+ local freyd, rows, rows_morphism;
60
72
61
73
freyd := ModelingCategory( cat );
62
74
63
- category_of_rows := UnderlyingCategory( freyd );
75
+ rows := UnderlyingCategory( freyd );
76
+
77
+ rows_morphism := CategoryOfRowsMorphism( rows, source, underlying_matrix, range );
78
+
79
+ return AsFreydCategoryMorphism( freyd, rows_morphism );
80
+
81
+ end ;
82
+
83
+ # #
84
+ morphism_datum := function ( cat, mor )
85
+
86
+ return UnderlyingMatrix( mor );
64
87
65
- morphism_datum := CategoryOfRowsMorphism( category_of_rows,
66
- CategoryOfRowsObject( category_of_rows, NrRows( UnderlyingMatrix( mor ) ) ),
67
- UnderlyingMatrix( mor ),
68
- CategoryOfRowsObject( category_of_rows, NrCols( UnderlyingMatrix( mor ) ) )
69
- );
88
+ end ;
89
+
90
+ # #
91
+ modeling_tower_morphism_datum := function ( cat, mor )
70
92
71
- return FreydCategoryMorphism( freyd, ObjectDatum( cat, Source( mor ) ), morphism_datum, ObjectDatum( cat, Range( mor ) ) );
93
+ return UnderlyingMatrix( UnderlyingMorphism( mor ) );
72
94
73
95
end ;
74
96
@@ -81,11 +103,10 @@ InstallMethod( LeftPresentationsAsFreydCategoryOfCategoryOfRows,
81
103
object_datum := object_datum,
82
104
morphism_constructor := morphism_constructor,
83
105
morphism_datum := morphism_datum,
84
- # TODO: use new system
85
- modeling_tower_object_constructor := { cat, obj } -> obj,
86
- modeling_tower_object_datum := { cat, obj } -> obj,
87
- modeling_tower_morphism_constructor := { cat, source, mor, range } -> mor,
88
- modeling_tower_morphism_datum := { cat, mor } -> mor,
106
+ modeling_tower_object_constructor := modeling_tower_object_constructor,
107
+ modeling_tower_object_datum := modeling_tower_object_datum,
108
+ modeling_tower_morphism_constructor := modeling_tower_morphism_constructor,
109
+ modeling_tower_morphism_datum := modeling_tower_morphism_datum,
89
110
only_primitive_operations := true ,
90
111
) : FinalizeCategory := false );
91
112
@@ -129,60 +150,82 @@ InstallMethod( RightPresentationsAsFreydCategoryOfCategoryOfColumns,
129
150
[ IsHomalgRing ] ,
130
151
131
152
function ( ring )
132
- local category_of_columns, freyd, object_constructor, object_datum, morphism_constructor, morphism_datum, wrapper;
153
+ local category_of_columns, freyd, object_constructor, modeling_tower_object_constructor, object_datum, modeling_tower_object_datum, morphism_constructor, modeling_tower_morphism_datum, morphism_datum, modeling_tower_morphism_constructor , wrapper;
133
154
134
155
category_of_columns := CategoryOfColumns( ring : FinalizeCategory := true );
135
156
136
- freyd := FREYD_CATEGORY ( category_of_columns : FinalizeCategory := true );
157
+ freyd := FreydCategory ( category_of_columns : FinalizeCategory := true );
137
158
138
- object_constructor := function ( cat, object_in_freyd )
139
-
140
- return ObjectifyObjectForCAPWithAttributes( rec ( ), cat,
141
- UnderlyingMatrix, UnderlyingMatrix( RelationMorphism( object_in_freyd ) )
142
- );
159
+ # #
160
+ object_constructor := function ( cat, matrix )
143
161
162
+ return ObjectifyObjectForCAPWithAttributes( rec (), cat,
163
+ UnderlyingMatrix, matrix );
164
+
144
165
end ;
145
166
146
- object_datum := function ( cat, obj )
147
- local freyd, category_of_columns, relation_morphism;
167
+ # #
168
+ modeling_tower_object_constructor := function ( cat, matrix )
169
+ local freyd, columns;
148
170
149
171
freyd := ModelingCategory( cat );
150
172
151
- category_of_columns := UnderlyingCategory( freyd );
173
+ columns := UnderlyingCategory( freyd );
174
+
175
+ return FreydCategoryObject( freyd,
176
+ AsCategoryOfColumnsMorphism( columns, matrix ) );
177
+
178
+ end ;
179
+
180
+ # #
181
+ object_datum := function ( cat, obj )
152
182
153
- relation_morphism := CategoryOfColumnsMorphism( category_of_columns,
154
- CategoryOfColumnsObject( category_of_columns, NrCols( UnderlyingMatrix( obj ) ) ),
155
- UnderlyingMatrix( obj ),
156
- CategoryOfColumnsObject( category_of_columns, NrRows( UnderlyingMatrix( obj ) ) )
157
- );
183
+ return UnderlyingMatrix( obj );
158
184
159
- return FreydCategoryObject( freyd, relation_morphism );
185
+ end ;
186
+
187
+ # #
188
+ modeling_tower_object_datum := function ( cat, obj )
189
+
190
+ return UnderlyingMatrix( RelationMorphism( obj ) );
160
191
161
192
end ;
162
193
163
- morphism_constructor := function ( cat, source, morphism_in_freyd, range )
194
+ # #
195
+ morphism_constructor := function ( cat, source, underlying_matrix, range )
164
196
165
- return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec ( ), cat,
166
- source,
167
- range,
168
- UnderlyingMatrix, UnderlyingMatrix( UnderlyingMorphism( morphism_in_freyd ) ) );
197
+ return ObjectifyMorphismWithSourceAndRangeForCAPWithAttributes( rec (), cat,
198
+ source,
199
+ range,
200
+ UnderlyingMatrix, underlying_matrix );
169
201
170
202
end ;
171
203
172
- morphism_datum := function ( cat, mor )
173
- local freyd, category_of_columns, morphism_datum;
204
+ # #
205
+ modeling_tower_morphism_constructor := function ( cat, source, underlying_matrix, range )
206
+ local freyd, columns, columns_morphism;
174
207
175
208
freyd := ModelingCategory( cat );
176
209
177
- category_of_columns := UnderlyingCategory( freyd );
210
+ columns := UnderlyingCategory( freyd );
211
+
212
+ columns_morphism := CategoryOfColumnsMorphism( columns, source, underlying_matrix, range );
213
+
214
+ return AsFreydCategoryMorphism( freyd, columns_morphism );
215
+
216
+ end ;
217
+
218
+ # #
219
+ morphism_datum := function ( cat, mor )
220
+
221
+ return UnderlyingMatrix( mor );
178
222
179
- morphism_datum := CategoryOfColumnsMorphism( category_of_columns,
180
- CategoryOfColumnsObject( category_of_columns, NrCols( UnderlyingMatrix( mor ) ) ),
181
- UnderlyingMatrix( mor ),
182
- CategoryOfColumnsObject( category_of_columns, NrRows( UnderlyingMatrix( mor ) ) )
183
- );
223
+ end ;
224
+
225
+ # #
226
+ modeling_tower_morphism_datum := function ( cat, mor )
184
227
185
- return FreydCategoryMorphism( freyd, ObjectDatum( cat, Source( mor ) ), morphism_datum, ObjectDatum( cat, Range( mor ) ) );
228
+ return UnderlyingMatrix( UnderlyingMorphism( mor ) );
186
229
187
230
end ;
188
231
@@ -195,11 +238,10 @@ InstallMethod( RightPresentationsAsFreydCategoryOfCategoryOfColumns,
195
238
object_datum := object_datum,
196
239
morphism_constructor := morphism_constructor,
197
240
morphism_datum := morphism_datum,
198
- # TODO: use new system
199
- modeling_tower_object_constructor := { cat, obj } -> obj,
200
- modeling_tower_object_datum := { cat, obj } -> obj,
201
- modeling_tower_morphism_constructor := { cat, source, mor, range } -> mor,
202
- modeling_tower_morphism_datum := { cat, mor } -> mor,
241
+ modeling_tower_object_constructor := modeling_tower_object_constructor,
242
+ modeling_tower_object_datum := modeling_tower_object_datum,
243
+ modeling_tower_morphism_constructor := modeling_tower_morphism_constructor,
244
+ modeling_tower_morphism_datum := modeling_tower_morphism_datum,
203
245
only_primitive_operations := true ,
204
246
) : FinalizeCategory := false );
205
247
0 commit comments