Skip to content

Commit 505ee95

Browse files
Update to new packages
* CAP v2025.04-04 * CartesianCategories v2025.05-01 * FreydCategoriesForCAP v2025.04-01 * LinearAlgebraForCAP v2025.05-01
1 parent 22a7a08 commit 505ee95

9 files changed

+67
-24
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ authors = [
66
"Øystein Skartsæterhagen <oysteini@math.ntnu.no>",
77
"Fabian Zickgraf <f.zickgraf@dashdos.com>",
88
]
9-
version = "0.4.0"
9+
version = "0.5.0"
1010

1111
[deps]
1212
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"

src/gap/CAP.gd.autogen.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,20 @@ AddCategoricalProperty( [ "IsLinearCategoryOverCommutativeRing", "IsLinearCatego
253253

254254
AddCategoricalProperty( [ "IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms", "IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms" ] );
255255

256+
#! @Description
257+
#! The property of the category <A>C</A> having all kernels.
258+
#! @Arguments C
259+
@DeclareProperty( "IsCategoryWithKernels", IsCapCategory );
260+
261+
AddCategoricalProperty( [ "IsCategoryWithKernels", "IsCategoryWithCokernels" ] );
262+
263+
#! @Description
264+
#! The property of the category <A>C</A> having all cokernels.
265+
#! @Arguments C
266+
@DeclareProperty( "IsCategoryWithCokernels", IsCapCategory );
267+
268+
AddCategoricalProperty( [ "IsCategoryWithCokernels", "IsCategoryWithKernels" ] );
269+
256270
#! @Description
257271
#! The property of the category <A>C</A> being additive.
258272
#! @Arguments C

src/gap/CAP.gi.autogen.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,24 @@ InstallTrueMethod( IsLinearCategoryOverCommutativeRing, IsLinearCategoryOverComm
3939

4040
InstallTrueMethod( IsAbCategory, IsAdditiveCategory );
4141

42+
#= comment for Julia
43+
InstallTrueMethod( IsCategoryWithEqualizers, IsAdditiveCategory && IsCategoryWithKernels );
44+
45+
InstallTrueMethod( IsCategoryWithKernels, IsAdditiveCategory && IsCategoryWithEqualizers );
46+
47+
InstallTrueMethod( IsCategoryWithCoequalizers, IsAdditiveCategory && IsCategoryWithCokernels );
48+
49+
InstallTrueMethod( IsCategoryWithCokernels, IsAdditiveCategory && IsCategoryWithCoequalizers );
50+
51+
InstallTrueMethod( IsPreAbelianCategory, IsAdditiveCategory && IsCategoryWithKernels && IsCategoryWithCokernels );
52+
# =#
53+
4254
InstallTrueMethod( IsAdditiveCategory, IsPreAbelianCategory );
4355

56+
InstallTrueMethod( IsCategoryWithKernels, IsPreAbelianCategory );
57+
58+
InstallTrueMethod( IsCategoryWithCokernels, IsPreAbelianCategory );
59+
4460
InstallTrueMethod( IsCategoryWithEqualizers, IsPreAbelianCategory );
4561

4662
InstallTrueMethod( IsCategoryWithCoequalizers, IsPreAbelianCategory );

src/gap/CategoriesCategory.gi.autogen.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ end );
358358
end;
359359

360360
for i in (1):(Length( input_signature ))
361-
CAP_INTERNAL_ASSERT_IS_OBJECT_OF_CATEGORY( arguments[ i ], input_signature[ i ][ 1 ], () -> @Concatenation( "the ", StringGAP(i), "-th argument passed to the functor named \033[1m", Name(functor), "\033[0m" ) );
361+
CAP_INTERNAL_ASSERT_IS_OBJECT_OF_CATEGORY( arguments[ i ], input_signature[ i ][ 1 ], () -> @Concatenation( "the ", StringGAP(i), ". argument passed to the functor named \033[1m", Name(functor), "\033[0m" ) );
362362
end;
363363
end;
364364

@@ -382,7 +382,7 @@ end );
382382
end;
383383

384384
for i in (1):(Length( input_signature ))
385-
CAP_INTERNAL_ASSERT_IS_MORPHISM_OF_CATEGORY( arguments[ i ], input_signature[ i ][ 1 ], () -> @Concatenation( "the ", StringGAP(i), "-th argument passed to the functor named \033[1m", Name(functor), "\033[0m" ) );
385+
CAP_INTERNAL_ASSERT_IS_MORPHISM_OF_CATEGORY( arguments[ i ], input_signature[ i ][ 1 ], () -> @Concatenation( "the ", StringGAP(i), ". argument passed to the functor named \033[1m", Name(functor), "\033[0m" ) );
386386
end;
387387
end;
388388

@@ -520,7 +520,7 @@ AddProjectionInFactorOfDirectProductWithGivenDirectProduct( category,
520520
local projection_functor;
521521

522522
projection_functor = CapFunctor(
523-
@Concatenation( "Projection into ", StringGAP( projection_number ),"-th factor of ", Name( AsCapCategory( direct_product ) ) ),
523+
@Concatenation( "Projection into ", StringGAP( projection_number ),". factor of ", Name( AsCapCategory( direct_product ) ) ),
524524
direct_product,
525525
object_product_list[ projection_number ]
526526
);

src/gap/ConstructiveCategoriesRecord.gi.autogen.jl

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,17 @@ CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsCategoryWithEqualizers = @Concaten
7070
ListOfDefiningOperations( "IsCapCategory" ),
7171
[
7272
"Equalizer",
73-
"EmbeddingOfEqualizerWithGivenEqualizer",
74-
"UniversalMorphismIntoEqualizerWithGivenEqualizer",
73+
"EmbeddingOfEqualizer",
74+
"UniversalMorphismIntoEqualizer",
7575
]
7676
);
7777

7878
CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsCategoryWithCoequalizers = @Concatenation(
7979
ListOfDefiningOperations( "IsCapCategory" ),
8080
[
8181
"Coequalizer",
82-
"ProjectionOntoCoequalizerWithGivenCoequalizer",
83-
"UniversalMorphismFromCoequalizerWithGivenCoequalizer",
82+
"ProjectionOntoCoequalizer",
83+
"UniversalMorphismFromCoequalizer",
8484
]
8585
);
8686

@@ -116,6 +116,24 @@ CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsLinearCategoryOverCommutativeRingW
116116
]
117117
);
118118

119+
CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsCategoryWithKernels = @Concatenation(
120+
ListOfDefiningOperations( "IsCapCategory" ),
121+
[
122+
"KernelObject",
123+
"KernelEmbedding",
124+
"KernelLift",
125+
]
126+
);
127+
128+
CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsCategoryWithCokernels = @Concatenation(
129+
ListOfDefiningOperations( "IsCapCategory" ),
130+
[
131+
"CokernelObject",
132+
"CokernelProjection",
133+
"CokernelColift",
134+
]
135+
);
136+
119137
CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsAdditiveCategory = @Concatenation(
120138
ListOfDefiningOperations( "IsAbCategory" ),
121139
ListOfDefiningOperations( "IsCategoryWithZeroObject" ),
@@ -130,21 +148,16 @@ CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsAdditiveCategory = @Concatenation(
130148

131149
CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsPreAbelianCategory = @Concatenation(
132150
ListOfDefiningOperations( "IsAdditiveCategory" ),
133-
[
134-
"KernelObject",
135-
"KernelEmbedding",
136-
"KernelLift",
137-
"CokernelObject",
138-
"CokernelProjection",
139-
"CokernelColift",
140-
]
151+
ListOfDefiningOperations( "IsCategoryWithKernels" ),
152+
ListOfDefiningOperations( "IsCategoryWithCokernels" )
141153
);
142154

143155
CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsAbelianCategory = @Concatenation(
144156
ListOfDefiningOperations( "IsPreAbelianCategory" ),
145157
[
146158
"LiftAlongMonomorphism",
147159
"ColiftAlongEpimorphism",
160+
"InverseOfMorphismFromCoimageToImage",
148161
]
149162
);
150163

src/gap/InstallAdds.gi.autogen.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ end );
153153
end;
154154

155155
# prepare input sanity check
156-
input_human_readable_identifier_getter = ( i, function_name, category_name ) -> @Concatenation( "the ", StringGAP( i ), "-th argument of the function \033[1m", function_name, "\033[0m of the category named \033[1m", category_name, "\033[0m" );
156+
input_human_readable_identifier_getter = ( i, function_name, category_name ) -> @Concatenation( "the ", StringGAP( i ), ". argument of the function \033[1m", function_name, "\033[0m of the category named \033[1m", category_name, "\033[0m" );
157157

158158
input_sanity_check_functions = [ ];
159159

src/gap/MethodRecord.gi.autogen.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3355,21 +3355,21 @@ MorphismBetweenDirectSums = @rec(
33553355

33563356
if (Length( listlist[i] ) != Length( range_diagram ))
33573357

3358-
return [ false, @Concatenation( "the ", StringGAP(i), "-th row has not the same length as the range diagram" ) ];
3358+
return [ false, @Concatenation( "the ", StringGAP(i), ". row has not the same length as the range diagram" ) ];
33593359

33603360
end;
33613361

33623362
for j in (1):(Length( range_diagram ))
33633363

33643364
if (@not IsEqualForObjects( cat, source_diagram[i], Source( listlist[i][j] ) ))
33653365

3366-
return [ false, @Concatenation( "the sources of the morphisms in the ", StringGAP(i), "-th row must be equal to the ", StringGAP(i), "-th entry of the source diagram" ) ];
3366+
return [ false, @Concatenation( "the sources of the morphisms in the ", StringGAP(i), ". row must be equal to the ", StringGAP(i), ". entry of the source diagram" ) ];
33673367

33683368
end;
33693369

33703370
if (@not IsEqualForObjects( cat, range_diagram[j], Range( listlist[i][j] ) ))
33713371

3372-
return [ false, @Concatenation( "the ranges of the morphisms in the ", StringGAP(j), "-th column must be equal to the ", StringGAP(j), "-th entry of the range diagram" ) ];
3372+
return [ false, @Concatenation( "the ranges of the morphisms in the ", StringGAP(j), ". column must be equal to the ", StringGAP(j), ". entry of the range diagram" ) ];
33733373

33743374
end;
33753375

src/gap/MethodRecordTools.gi.autogen.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2112,7 +2112,7 @@ end );
21122112

21132113
if (@not IsSubset( ListInstalledOperationsOfCategory( category ), previous_operations ))
21142114

2115-
Error( "the operations of the ", i - 1, "-th category are not a subset of the operations of the ", i, "-th category" );
2115+
Error( "the operations of the ", i - 1, ". category are not a subset of the operations of the ", i, ". category" );
21162116

21172117
end;
21182118

src/gap/ToolsForCategories.gi.autogen.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ end );
420420

421421
elseif (IsSpecializationOfFilter( IsList, filter ))
422422

423-
assert_value_is_of_element_type = CAP_INTERNAL_ASSERT_VALUE_IS_OF_TYPE_GETTER( data_type.element_type, ( i, outer_args ) -> @Concatenation( "the ", StringGAP( i ), "-th entry of ", CallFuncList( human_readable_identifier_getter, outer_args ) ) );
423+
assert_value_is_of_element_type = CAP_INTERNAL_ASSERT_VALUE_IS_OF_TYPE_GETTER( data_type.element_type, ( i, outer_args ) -> @Concatenation( "the ", StringGAP( i ), ". entry of ", CallFuncList( human_readable_identifier_getter, outer_args ) ) );
424424

425425
return function( value, args... )
426426
local i;
@@ -437,7 +437,7 @@ end );
437437
# Julia does not have non-dense lists
438438
if (@not @IsBound( value[i] ))
439439
440-
Error( "the ", i, "-th entry of ", CallFuncList( human_readable_identifier_getter, args ), " is not bound.", generic_help_string );
440+
Error( "the ", i, ". entry of ", CallFuncList( human_readable_identifier_getter, args ), " is not bound.", generic_help_string );
441441
442442
end;
443443
# =#
@@ -450,7 +450,7 @@ end );
450450

451451
elseif (IsSpecializationOfFilter( IsNTuple, filter ))
452452

453-
asserts_value_is_of_element_type = List( (1):(Length( data_type.element_types )), i -> CAP_INTERNAL_ASSERT_VALUE_IS_OF_TYPE_GETTER( data_type.element_types[i], ( outer_args ) -> @Concatenation( "the ", StringGAP( i ), "-th entry of ", CallFuncList( human_readable_identifier_getter, outer_args ) ) ) );
453+
asserts_value_is_of_element_type = List( (1):(Length( data_type.element_types )), i -> CAP_INTERNAL_ASSERT_VALUE_IS_OF_TYPE_GETTER( data_type.element_types[i], ( outer_args ) -> @Concatenation( "the ", StringGAP( i ), ". entry of ", CallFuncList( human_readable_identifier_getter, outer_args ) ) ) );
454454

455455
return function( value, args... )
456456
local i;

0 commit comments

Comments
 (0)