Skip to content

Commit dbfdcbc

Browse files
AddDerivationToCAP( MorphismFromCoimageToImageWithGivenObjects, ... )
1 parent 23b9c23 commit dbfdcbc

File tree

5 files changed

+41
-16
lines changed

5 files changed

+41
-16
lines changed

CAP/PackageInfo.g

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SetPackageInfo( rec(
1010

1111
PackageName := "CAP",
1212
Subtitle := "Categories, Algorithms, Programming",
13-
Version := "2023.10-01",
13+
Version := "2023.10-02",
1414
Date := (function ( ) if IsBound( GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE ) then return GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE; else return Concatenation( ~.Version{[ 1 .. 4 ]}, "-", ~.Version{[ 6, 7 ]}, "-01" ); fi; end)( ),
1515
License := "GPL-2.0-or-later",
1616

CAP/gap/DerivedMethods.autogen.gi

+15
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,21 @@ end : CategoryFilter := IsCapCategory,
10481048
Weight := 1,
10491049
is_autogenerated_by_CompilerForCAP := true );
10501050

1051+
##
1052+
AddDerivationToCAP( MorphismFromCoimageToImageWithGivenObjects,
1053+
"dualizing the derivation of MorphismFromCoimageToImageWithGivenObjects by MorphismFromCoimageToImageWithGivenObjects using that the image embedding lifts the coimage astriction",
1054+
[
1055+
[ CoimageProjectionWithGivenCoimageObject, 1 ],
1056+
[ CoastrictionToImageWithGivenImageObject, 1 ],
1057+
[ ColiftAlongEpimorphism, 1 ],
1058+
],
1059+
1060+
function ( cat_1, C_1, alpha_1, I_1 )
1061+
return ColiftAlongEpimorphism( cat_1, CoimageProjectionWithGivenCoimageObject( cat_1, alpha_1, C_1 ), CoastrictionToImageWithGivenImageObject( cat_1, alpha_1, I_1 ) );
1062+
end : CategoryFilter := IsCapCategory,
1063+
Weight := 1,
1064+
is_autogenerated_by_CompilerForCAP := true );
1065+
10511066
##
10521067
AddDerivationToCAP( MorphismFromCoimageToImageWithGivenObjects,
10531068
"dualizing the derivation of MorphismFromCoimageToImageWithGivenObjects by MorphismFromCoimageToImageWithGivenObjects using that images are given by kernels of cokernels",

CAP/gap/DerivedMethods.gi

+15
Original file line numberDiff line numberDiff line change
@@ -2907,6 +2907,21 @@ AddFinalDerivationBundle( "IsomorphismFromImageObjectToKernelOfCokernel as the i
29072907
end,
29082908
] : CategoryFilter := IsAbelianCategory );
29092909

2910+
##
2911+
AddDerivationToCAP( MorphismFromCoimageToImageWithGivenObjects,
2912+
"MorphismFromCoimageToImageWithGivenObjects using that the image embedding lifts the coimage astriction",
2913+
[ [ ImageEmbeddingWithGivenImageObject, 1 ],
2914+
[ AstrictionToCoimageWithGivenCoimageObject, 1 ],
2915+
[ LiftAlongMonomorphism, 1 ] ],
2916+
2917+
function( cat, coimage, morphism, image )
2918+
2919+
return LiftAlongMonomorphism( cat,
2920+
ImageEmbeddingWithGivenImageObject( cat, morphism, image ),
2921+
AstrictionToCoimageWithGivenCoimageObject( cat, morphism, coimage ) );
2922+
2923+
end );
2924+
29102925
##
29112926
AddDerivationToCAP( MorphismFromCoimageToImageWithGivenObjects,
29122927
"MorphismFromCoimageToImageWithGivenObjects using that images are given by kernels of cokernels",

LinearAlgebraForCAP/PackageInfo.g

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SetPackageInfo( rec(
1010

1111
PackageName := "LinearAlgebraForCAP",
1212
Subtitle := "Category of Matrices over a Field for CAP",
13-
Version := "2023.09-03",
13+
Version := "2023.10-01",
1414
Date := (function ( ) if IsBound( GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE ) then return GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE; else return Concatenation( ~.Version{[ 1 .. 4 ]}, "-", ~.Version{[ 6, 7 ]}, "-01" ); fi; end)( ),
1515
License := "GPL-2.0-or-later",
1616

@@ -89,7 +89,7 @@ Dependencies := rec(
8989
NeededOtherPackages := [ [ "ToolsForHomalg", ">= 2015.09.18" ],
9090
[ "MatricesForHomalg", ">= 2023.01-01" ],
9191
[ "GaussForHomalg", ">= 2021.04-02" ],
92-
[ "CAP", ">= 2023.08-16" ],
92+
[ "CAP", ">= 2023.10-02" ],
9393
[ "MonoidalCategories", ">= 2023.08-11" ],
9494
],
9595
SuggestedOtherPackages := [

LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi

+8-13
Original file line numberDiff line numberDiff line change
@@ -2108,16 +2108,13 @@ end
21082108

21092109
########
21102110
function ( cat_1, C_1, alpha_1, I_1 )
2111-
local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1;
2112-
deduped_4_1 := UnderlyingRing( cat_1 );
2113-
deduped_3_1 := UnderlyingMatrix( alpha_1 );
2114-
deduped_2_1 := SyzygiesOfRows( SyzygiesOfColumns( deduped_3_1 ) );
2115-
morphism_attr_1_1 := UniqueRightDivide( HomalgIdentityMatrix( RowRankOfMatrix( deduped_3_1 ), deduped_4_1 ), UniqueRightDivide( UniqueLeftDivide( BasisOfColumns( deduped_3_1 ), deduped_3_1 ), deduped_2_1 ) * UniqueRightDivide( HomalgIdentityMatrix( NumberRows( deduped_2_1 ), deduped_4_1 ), UniqueRightDivide( BasisOfRows( deduped_3_1 ), deduped_2_1 ) ) );
2116-
return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), C_1, UnderlyingMatrix, morphism_attr_1_1 );
2111+
local deduped_1_1;
2112+
deduped_1_1 := UnderlyingMatrix( alpha_1 );
2113+
return CreateCapCategoryMorphismWithAttributes( cat_1, I_1, C_1, UnderlyingMatrix, UniqueRightDivide( HomalgIdentityMatrix( Dimension( I_1 ), UnderlyingRing( cat_1 ) ), UniqueRightDivide( UniqueLeftDivide( BasisOfColumns( deduped_1_1 ), deduped_1_1 ), BasisOfRows( deduped_1_1 ) ) ) );
21172114
end
21182115
########
21192116

2120-
, 1610 : IsPrecompiledDerivation := true );
2117+
, 604 : IsPrecompiledDerivation := true );
21212118

21222119
##
21232120
AddIsAutomorphism( cat,
@@ -4039,15 +4036,13 @@ end
40394036

40404037
########
40414038
function ( cat_1, C_1, alpha_1, I_1 )
4042-
local morphism_attr_1_1, deduped_2_1, deduped_3_1;
4043-
deduped_3_1 := UnderlyingMatrix( alpha_1 );
4044-
deduped_2_1 := SyzygiesOfRows( SyzygiesOfColumns( deduped_3_1 ) );
4045-
morphism_attr_1_1 := UniqueRightDivide( UniqueLeftDivide( BasisOfColumns( deduped_3_1 ), deduped_3_1 ), deduped_2_1 ) * UniqueRightDivide( HomalgIdentityMatrix( NumberRows( deduped_2_1 ), UnderlyingRing( cat_1 ) ), UniqueRightDivide( BasisOfRows( deduped_3_1 ), deduped_2_1 ) );
4046-
return CreateCapCategoryMorphismWithAttributes( cat_1, C_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 );
4039+
local deduped_1_1;
4040+
deduped_1_1 := UnderlyingMatrix( alpha_1 );
4041+
return CreateCapCategoryMorphismWithAttributes( cat_1, C_1, I_1, UnderlyingMatrix, UniqueRightDivide( UniqueLeftDivide( BasisOfColumns( deduped_1_1 ), deduped_1_1 ), BasisOfRows( deduped_1_1 ) ) );
40474042
end
40484043
########
40494044

4050-
, 1408 : IsPrecompiledDerivation := true );
4045+
, 402 : IsPrecompiledDerivation := true );
40514046

40524047
##
40534048
AddMorphismFromEqualizerToSink( cat,

0 commit comments

Comments
 (0)