@@ -15,7 +15,7 @@ InstallMethod( GroupAsCategory,
1515 [ IsGroup ] ,
1616
1717 function ( group )
18- local group_name, category , is_finite;
18+ local group_name, group_as_category , is_finite;
1919
2020 if HasName( group ) then
2121 group_name := Name( group );
@@ -25,7 +25,7 @@ InstallMethod( GroupAsCategory,
2525 group_name := String( group );
2626 fi ;
2727
28- category :=
28+ group_as_category :=
2929 CreateCapCategoryWithDataTypes(
3030 Concatenation( " GroupAsCategory( " , group_name," )" ),
3131 IsGroupAsCategory,
@@ -37,58 +37,58 @@ InstallMethod( GroupAsCategory,
3737 fail
3838 : overhead := false );
3939
40- category !. compiler_hints := rec (
41- category_attribute_names := [
42- " UnderlyingGroup" ,
43- ] ,
44- );
40+ group_as_category !. compiler_hints :=
41+ rec ( category_attribute_names := [
42+ " UnderlyingGroup" ,
43+ ] ,
44+ );
4545
46- SetUnderlyingGroup( category , group );
46+ SetUnderlyingGroup( group_as_category , group );
4747
48- SetIsObjectFiniteCategory( category , true );
48+ SetIsObjectFiniteCategory( group_as_category , true );
4949
5050 is_finite := HasIsFinite( group ) and IsFinite( group );
5151
5252 if is_finite then
5353
54- SetIsFiniteCategory( category , true );
54+ SetIsFiniteCategory( group_as_category , true );
5555
5656 if IsPackageMarkedForLoading( " FinSetsForCAP" , " >= 2023.07-03" ) then
5757
58- SET_HOMOMORPHISM_STRUCTURE_ATTRIBUTES_FOR_GROUP_AS_CATEGORY( category );
58+ SET_HOMOMORPHISM_STRUCTURE_ATTRIBUTES_FOR_GROUP_AS_CATEGORY( group_as_category );
5959
6060 fi ;
6161
6262 fi ;
6363
64- INSTALL_FUNCTIONS_FOR_GROUP_AS_CATEGORY( category , is_finite );
64+ INSTALL_FUNCTIONS_FOR_GROUP_AS_CATEGORY( group_as_category , is_finite );
6565
66- Finalize( category );
66+ Finalize( group_as_category );
6767
68- return category ;
68+ return group_as_category ;
6969
7070end );
7171
7272# #
7373InstallMethod( GroupAsCategoryUniqueObject,
7474 [ IsGroupAsCategory ] ,
7575
76- function ( category )
76+ function ( group_as_category )
7777
78- return CreateCapCategoryObjectWithAttributes( category );
78+ return CreateCapCategoryObjectWithAttributes( group_as_category );
7979
8080end );
8181
8282# #
8383InstallMethod( GroupAsCategoryMorphismOp,
8484 [ IsGroupAsCategory, IsObject ] ,
8585
86- function ( category , element )
86+ function ( group_as_category , element )
8787 local unique_object;
8888
89- unique_object := GroupAsCategoryUniqueObject( category );
89+ unique_object := GroupAsCategoryUniqueObject( group_as_category );
9090
91- return CreateCapCategoryMorphismWithAttributes( category ,
91+ return CreateCapCategoryMorphismWithAttributes( group_as_category ,
9292 unique_object,
9393 unique_object,
9494 UnderlyingGroupElement, element );
9999InstallOtherMethod( GroupAsCategoryMorphism,
100100 [ IsObject, IsGroupAsCategory ] ,
101101
102- function ( element, category )
102+ function ( element, group_as_category )
103103
104- return GroupAsCategoryMorphism( category , element );
104+ return GroupAsCategoryMorphism( group_as_category , element );
105105
106106end );
107107
@@ -141,9 +141,9 @@ end );
141141InstallMethod( ElementsOfUnderlyingGroup,
142142 [ IsGroupAsCategory ] ,
143143
144- function ( CG )
144+ function ( group_as_category )
145145
146- return Elements( UnderlyingGroup( CG ) );
146+ return Elements( UnderlyingGroup( group_as_category ) );
147147
148148end );
149149
@@ -165,123 +165,157 @@ end );
165165
166166InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_GROUP_AS_CATEGORY,
167167
168- function ( category, is_finite )
169- local group, equality_func,
170- sets, t_obj, elements, size, RG, HOM_PERMUTATION_ARRAY;
168+ function ( group_as_category, is_finite )
169+ local group;
171170
172- group := UnderlyingGroup( category );
171+ group := UnderlyingGroup( group_as_category );
173172
174173 # #
175- AddIsEqualForObjects( category, { cat, a, b } -> true );
176-
177- equality_func := { cat, alpha, beta } -> UnderlyingGroupElement( alpha ) = UnderlyingGroupElement( beta );
178-
179- # #
180- AddIsEqualForMorphisms( category, equality_func );
174+ AddIsEqualForObjects( group_as_category,
175+ function ( group_as_category, a, b )
176+
177+ return true ;
178+
179+ end );
181180
182181 # #
183- AddIsCongruentForMorphisms( category, equality_func );
182+ AddIsEqualForMorphisms( group_as_category,
183+ function ( group_as_category, alpha, beta )
184+
185+ return UnderlyingGroupElement( alpha ) = UnderlyingGroupElement( beta );
186+
187+ end );
184188
185189 # #
186- AddIsWellDefinedForObjects( category, { cat, x} -> IsIdenticalObj( category, CapCategory( x ) ) );
190+ AddIsCongruentForMorphisms( group_as_category,
191+ function ( group_as_category, alpha, beta )
192+
193+ return IsEqualForMorphisms( group_as_category, alpha, beta );
194+
195+ end );
187196
188197 # #
189- AddIsWellDefinedForMorphisms( category ,
190- function ( cat, alpha )
198+ AddIsWellDefinedForObjects( group_as_category ,
199+ function ( group_as_category, x )
191200
192- return UnderlyingGroupElement( alpha ) in UnderlyingGroup( category );
201+ return IsIdenticalObj( group_as_category, CapCategory( x ) );
193202
194203 end );
195204
196205 # #
197- AddPreCompose( category ,
198- function ( cat , alpha, beta )
206+ AddIsWellDefinedForMorphisms( group_as_category ,
207+ function ( group_as_category , alpha )
199208
200- return GroupAsCategoryMorphism(
201- category,
202- UnderlyingGroupElement( alpha ) * UnderlyingGroupElement( beta )
203- );
209+ return UnderlyingGroupElement( alpha ) in UnderlyingGroup( group_as_category );
204210
205211 end );
206212
207213 # #
208- AddIdentityMorphism( category ,
209- function ( cat, unique_object )
214+ AddPreCompose( group_as_category ,
215+ function ( group_as_category, alpha, beta )
210216
211- return GroupAsCategoryMorphism(
212- category,
213- One( group )
214- );
217+ return GroupAsCategoryMorphism( group_as_category,
218+ UnderlyingGroupElement( alpha ) * UnderlyingGroupElement( beta ) );
215219
216220 end );
217221
218222 # #
219- AddInverseForMorphisms( category ,
220- function ( cat, alpha )
223+ AddIdentityMorphism( group_as_category ,
224+ function ( group_as_category, unique_object )
221225
222- return GroupAsCategoryMorphism(
223- category,
224- Inverse( UnderlyingGroupElement( alpha ) )
225- );
226+ return GroupAsCategoryMorphism( group_as_category,
227+ One( group ) );
226228
227229 end );
228230
229231 # #
230- AddIsIsomorphism( category, { cat, mor} -> true );
232+ AddInverseForMorphisms( group_as_category,
233+ function ( group_as_category, alpha )
234+
235+ return GroupAsCategoryMorphism( group_as_category,
236+ Inverse( UnderlyingGroupElement( alpha ) ) );
237+
238+ end );
231239
232240 # #
233- AddIsEpimorphism( category, { cat, mor} -> true );
241+ AddIsIsomorphism( group_as_category,
242+ function ( group_as_category, mor )
243+
244+ return true ;
245+
246+ end );
234247
235248 # #
236- AddIsMonomorphism( category, { cat, mor} -> true );
249+ AddIsEpimorphism( group_as_category,
250+ function ( group_as_category, mor )
251+
252+ return true ;
253+
254+ end );
237255
238256 # #
239- AddIsLiftable( category, { cat, mor1, mor2} -> true );
257+ AddIsMonomorphism( group_as_category,
258+ function ( group_as_category, mor )
259+
260+ return true ;
261+
262+ end );
240263
241264 # #
242- AddIsColiftable( category, { cat, mor1, mor2} -> true );
265+ AddIsLiftable( group_as_category,
266+ function ( group_as_category, mor1, mor2 )
267+
268+ return true ;
269+
270+ end );
243271
244272 # #
245- AddLift( category,
246- function ( cat, alpha, beta )
247- return GroupAsCategoryMorphism(
248- category,
249- UnderlyingGroupElement( alpha ) * Inverse( UnderlyingGroupElement( beta ) )
250- );
273+ AddIsColiftable( group_as_category,
274+ function ( group_as_category, mor1, mor2 )
275+
276+ return true ;
277+
251278 end );
252279
253280 # #
254- AddColift( category ,
255- function ( cat , alpha, beta )
256- return GroupAsCategoryMorphism(
257- category ,
258- Inverse( UnderlyingGroupElement( alpha ) ) * UnderlyingGroupElement( beta )
259- );
281+ AddLift( group_as_category ,
282+ function ( group_as_category , alpha, beta )
283+
284+ return GroupAsCategoryMorphism( group_as_category ,
285+ UnderlyingGroupElement( alpha ) * Inverse( UnderlyingGroupElement( beta ) ) );
286+
260287 end );
261288
262289 # #
263- AddSetOfObjectsOfCategory( category ,
264- function ( cat )
290+ AddColift( group_as_category ,
291+ function ( group_as_category, alpha, beta )
265292
266- return [ GroupAsCategoryUniqueObject( cat ) ] ;
293+ return GroupAsCategoryMorphism( group_as_category,
294+ Inverse( UnderlyingGroupElement( alpha ) ) * UnderlyingGroupElement( beta ) );
267295
268296 end );
297+
298+ # #
299+ AddSetOfObjectsOfCategory( group_as_category,
300+ function ( group_as_category )
269301
270- if is_finite then
302+ return [ GroupAsCategoryUniqueObject( group_as_category ) ] ;
271303
272- elements := ElementsOfUnderlyingGroup( category );
304+ end );
305+
306+ if is_finite then
273307
274308 # #
275- AddSetOfMorphismsOfFiniteCategory( category ,
276- function ( cat )
309+ AddSetOfMorphismsOfFiniteCategory( group_as_category ,
310+ function ( group_as_category )
277311
278- return List( elements , el -> GroupAsCategoryMorphism( category , el ) );
312+ return List( ElementsOfUnderlyingGroup( group_as_category ) , el -> GroupAsCategoryMorphism( group_as_category , el ) );
279313
280314 end );
281315
282316 if IsPackageMarkedForLoading( " FinSetsForCAP" , " >= 2023.07-03" ) then
283317
284- INSTALL_HOMOMORPHISM_STRUCTURE_FOR_GROUP_AS_CATEGORY( category );
318+ INSTALL_HOMOMORPHISM_STRUCTURE_FOR_GROUP_AS_CATEGORY( group_as_category );
285319
286320 fi ;
287321
@@ -315,7 +349,8 @@ InstallOtherMethod( \/,
315349
316350# #
317351InstallMethod( Down,
318- [ IsGroupAsCategoryObject ] ,
352+ [ IsGroupAsCategoryObject ] ,
353+
319354 function ( obj )
320355
321356 return " *" ;
@@ -324,7 +359,8 @@ end );
324359
325360# #
326361InstallMethod( DownOnlyMorphismData,
327- [ IsGroupAsCategoryMorphism ] ,
362+ [ IsGroupAsCategoryMorphism ] ,
363+
328364 function ( mor )
329365
330366 return UnderlyingGroupElement( mor );
0 commit comments