@@ -503,6 +503,56 @@ InstallGlobalFunction( FiberProduct,
503503
504504end );
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
783833end );
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