Skip to content

Commit 8afafc0

Browse files
author
Tom Kuhmichel
committed
Turn FiberProductEmbeddingOfDirect(Product/Sum) into a GAP function
Also for the duals
1 parent 3956135 commit 8afafc0

File tree

2 files changed

+118
-1
lines changed

2 files changed

+118
-1
lines changed

CAP/gap/UniversalObjects.gd

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1762,6 +1762,14 @@ DeclareOperation( "IsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct"
17621762
#! @Description
17631763
#! The argument is a list of morphisms $D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}$.
17641764
#! The output is the natural embedding
1765+
#! $\mathrm{FiberProduct}(D) \rightarrow \prod_{i=1}^n P_i$.
1766+
#! @Returns a morphism in $\mathrm{Hom}( \mathrm{FiberProduct}(D), \prod_{i=1}^n P_i )$
1767+
#! @Arguments D
1768+
DeclareOperation( "FiberProductEmbeddingInDirectProduct",
1769+
[ IsList ] );
1770+
#! @Description
1771+
#! The argument is a list of morphisms $D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}$.
1772+
#! The output is the natural embedding
17651773
#! $\mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i$.
17661774
#! @Returns a morphism in $\mathrm{Hom}( \mathrm{FiberProduct}(D), \bigoplus_{i=1}^n P_i )$
17671775
#! @Arguments D
@@ -1958,13 +1966,22 @@ DeclareOperation( "IsomorphismFromPushoutToCoequalizerOfCoproductDiagram",
19581966
DeclareOperation( "IsomorphismFromCoequalizerOfCoproductDiagramToPushout",
19591967
[ IsList ] );
19601968

1969+
#! @Description
1970+
#! The argument is a list of morphisms $D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}$.
1971+
#! The output is the natural projection
1972+
#! $\bigsqcup_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)$.
1973+
#! @Returns a morphism in $\mathrm{Hom}( \bigsqcup {i=1}^n I_i, \mathrm{Pushout}(D) )$
1974+
#! @Arguments D
1975+
DeclareOperation( "PushoutProjectionFromCoproduct",
1976+
[ IsList ] );
1977+
19611978
#! @Description
19621979
#! The argument is a list of morphisms $D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}$.
19631980
#! The output is the natural projection
19641981
#! $\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)$.
19651982
#! @Returns a morphism in $\mathrm{Hom}( \bigoplus_{i=1}^n I_i, \mathrm{Pushout}(D) )$
19661983
#! @Arguments D
1967-
DeclareOperation( "DirectSumProjectionInPushout",
1984+
DeclareOperation( "PushoutProjectionFromDirectSum",
19681985
[ IsList ] );
19691986

19701987
#! @Description

CAP/gap/UniversalObjects.gi

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,56 @@ InstallGlobalFunction( FiberProduct,
503503

504504
end );
505505

506+
##
507+
InstallMethod( FiberProductEmbeddingInDirectProduct,
508+
[ IsList ],
509+
510+
function( diagram )
511+
512+
return FiberProductEmbeddingInDirectProduct( CapCategory( diagram[1] ), diagram );
513+
514+
end );
515+
516+
##
517+
InstallOtherMethod( FiberProductEmbeddingInDirectProduct,
518+
[ IsCapCategory, IsList ],
519+
520+
function( cat, diagram )
521+
local sources_of_diagram, test_source;
522+
523+
sources_of_diagram := List( diagram, Source );
524+
525+
test_source := List( [ 1 .. Length( diagram ) ], i -> ProjectionInFactorOfFiberProduct( cat, diagram, i ) );
526+
527+
return UniversalMorphismIntoDirectProduct( cat, sources_of_diagram, FiberProduct( cat, diagram ), test_source );
528+
529+
end );
530+
531+
##
532+
InstallMethod( FiberProductEmbeddingInDirectSum,
533+
[ IsList ],
534+
535+
function( diagram )
536+
537+
return FiberProductEmbeddingInDirectProduct( CapCategory( diagram[1] ), diagram );
538+
539+
end );
540+
541+
##
542+
InstallOtherMethod( FiberProductEmbeddingInDirectSum,
543+
[ IsCapCategory, IsList ],
544+
545+
function( cat, diagram )
546+
local sources_of_diagram, test_source;
547+
548+
sources_of_diagram := List( diagram, Source );
549+
550+
test_source := List( [ 1 .. Length( diagram ) ], i -> ProjectionInFactorOfFiberProduct( cat, diagram, i ) );
551+
552+
return UniversalMorphismIntoDirectSum( cat, sources_of_diagram, FiberProduct( cat, diagram ), test_source );
553+
554+
end );
555+
506556
####################################
507557
##
508558
## Coequalizer
@@ -782,6 +832,56 @@ InstallMethod( Pushout,
782832

783833
end );
784834

835+
##
836+
InstallMethod( PushoutProjectionFromCoproduct,
837+
[ IsList ],
838+
839+
function( diagram )
840+
841+
return PushoutProjectionFromCoproduct( CapCategory( diagram[1] ), diagram );
842+
843+
end );
844+
845+
##
846+
InstallOtherMethod( PushoutProjectionFromCoproduct,
847+
[ IsCapCategory, IsList ],
848+
849+
function( cat, diagram )
850+
local ranges_of_diagram, test_sink;
851+
852+
ranges_of_diagram := List( diagram, Range );
853+
854+
test_sink := List( [ 1 .. Length( diagram ) ], i -> InjectionOfCofactorOfPushout( cat, diagram, i ) );
855+
856+
return UniversalMorphismFromCoproduct( cat, ranges_of_diagram, Pushout( cat, diagram ), test_sink );
857+
858+
end );
859+
860+
##
861+
InstallMethod( PushoutProjectionFromDirectSum,
862+
[ IsList ],
863+
864+
function( diagram )
865+
866+
return PushoutProjectionFromDirectSum( CapCategory( diagram[1] ), diagram );
867+
868+
end );
869+
870+
##
871+
InstallOtherMethod( PushoutProjectionFromDirectSum,
872+
[ IsCapCategory, IsList ],
873+
874+
function( cat, diagram )
875+
local ranges_of_diagram, test_sink;
876+
877+
ranges_of_diagram := List( diagram, Range );
878+
879+
test_sink := List( [ 1 .. Length( diagram ) ], i -> InjectionOfCofactorOfPushout( cat, diagram, i ) );
880+
881+
return UniversalMorphismFromDirectSum( cat, ranges_of_diagram, Pushout( cat, diagram ), test_sink );
882+
883+
end );
884+
785885
####################################
786886
##
787887
## Coimage

0 commit comments

Comments
 (0)