@@ -1933,51 +1933,63 @@ end : Description := "IsomorphismFromCoimageToCokernelOfKernel as the inverse of
19331933AddDerivationToCAP( IsomorphismFromEqualizerToKernelOfJointPairwiseDifferencesOfMorphismsIntoDirectProduct,
19341934
19351935 function ( cat, A, diagram )
1936- local joint_pairwise_differences, equalizer_embedding;
1936+ local joint_pairwise_differences, equalizer, equalizer_embedding;
19371937
19381938 joint_pairwise_differences := JointPairwiseDifferencesOfMorphismsIntoDirectProduct( cat, A, diagram );
19391939
1940- equalizer_embedding := EmbeddingOfEqualizer ( cat, A, diagram );
1940+ equalizer := Equalizer ( cat, A, diagram );
19411941
1942- return KernelLift( cat, joint_pairwise_differences, Source( equalizer_embedding ), equalizer_embedding );
1942+ equalizer_embedding := EmbeddingOfEqualizerWithGivenEqualizer( cat, A, diagram, equalizer );
1943+
1944+ return KernelLift( cat, joint_pairwise_differences, equalizer, equalizer_embedding );
19431945
19441946end : Description := " IsomorphismFromEqualizerToKernelOfJointPairwiseDifferencesOfMorphismsIntoDirectProduct using the universal property of the kernel" );
19451947
19461948# #
19471949AddDerivationToCAP( IsomorphismFromKernelOfJointPairwiseDifferencesOfMorphismsIntoDirectProductToEqualizer,
19481950
19491951 function ( cat, A, diagram )
1950- local kernel_embedding;
1952+ local joint_pairwise_differences, kernel_object, kernel_embedding;
1953+
1954+ joint_pairwise_differences := JointPairwiseDifferencesOfMorphismsIntoDirectProduct( cat, A, diagram );
1955+
1956+ kernel_object := KernelObject( cat, joint_pairwise_differences );
19511957
1952- kernel_embedding := KernelEmbedding ( cat, JointPairwiseDifferencesOfMorphismsIntoDirectProduct( cat, A, diagram ) );
1958+ kernel_embedding := KernelEmbeddingWithGivenKernelObject ( cat, joint_pairwise_differences, kernel_object );
19531959
1954- return UniversalMorphismIntoEqualizer( cat, A, diagram, Source( kernel_embedding ) , kernel_embedding );
1960+ return UniversalMorphismIntoEqualizer( cat, A, diagram, kernel_object , kernel_embedding );
19551961
19561962end : Description := " IsomorphismFromKernelOfJointPairwiseDifferencesOfMorphismsIntoDirectProductToEqualizer using the universal property of the equalizer" );
19571963
19581964# #
19591965AddDerivationToCAP( IsomorphismFromCoequalizerToCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproduct,
19601966
19611967 function ( cat, A, diagram )
1962- local cokernel_proj;
1968+ local joint_pairwise_differences, cokernel_object, cokernel_proj;
19631969
1964- cokernel_proj := CokernelProjection( cat, JointPairwiseDifferencesOfMorphismsFromCoproduct( cat, A, diagram ) );
1970+ joint_pairwise_differences := JointPairwiseDifferencesOfMorphismsFromCoproduct( cat, A, diagram );
1971+
1972+ cokernel_object := CokernelObject( cat, joint_pairwise_differences );
19651973
1966- return UniversalMorphismFromCoequalizer( cat, A, diagram, Range( cokernel_proj ), cokernel_proj );
1974+ cokernel_proj := CokernelProjectionWithGivenCokernelObject( cat, joint_pairwise_differences, cokernel_object );
1975+
1976+ return UniversalMorphismFromCoequalizer( cat, A, diagram, cokernel_object, cokernel_proj );
19671977
19681978end : Description := " IsomorphismFromCoequalizerToCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproduct using the universal property of the coequalizer" );
19691979
19701980# #
19711981AddDerivationToCAP( IsomorphismFromCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproductToCoequalizer,
19721982
19731983 function ( cat, A, diagram )
1974- local joint_pairwise_differences, coequalizer_projection;
1984+ local joint_pairwise_differences, coequalizer, coequalizer_projection;
19751985
19761986 joint_pairwise_differences := JointPairwiseDifferencesOfMorphismsFromCoproduct( cat, A, diagram );
19771987
1978- coequalizer_projection := ProjectionOntoCoequalizer( cat, A, diagram );
1988+ coequalizer := Coequalizer( cat, A, diagram );
1989+
1990+ coequalizer_projection := ProjectionOntoCoequalizerWithGivenCoequalizer( cat, A, diagram, coequalizer );
19791991
1980- return CokernelColift( cat, joint_pairwise_differences, Range( coequalizer_projection ) , coequalizer_projection );
1992+ return CokernelColift( cat, joint_pairwise_differences, coequalizer , coequalizer_projection );
19811993
19821994end : Description := " IsomorphismFromCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproductToCoequalizer using the universal property of the cokernel" );
19831995
@@ -1986,13 +1998,13 @@ AddDerivationToCAP( IsomorphismFromFiberProductToEqualizerOfDirectProductDiagram
19861998 [ [ DirectProduct, 1 ] ,
19871999 [ PreCompose, 2 ] ,
19882000 [ ProjectionInFactorOfDirectProductWithGivenDirectProduct, 2 ] ,
1989- [ ProjectionInFactorOfFiberProduct , 2 ] ,
2001+ [ ProjectionInFactorOfFiberProductWithGivenFiberProduct , 2 ] ,
19902002 [ UniversalMorphismIntoDirectProductWithGivenDirectProduct, 1 ] ,
19912003 [ FiberProduct, 1 ] ,
19922004 [ UniversalMorphismIntoEqualizer, 1 ] ] ,
19932005
19942006 function ( cat, diagram )
1995- local sources_of_diagram, direct_product, direct_product_diagram, test_source, fiber_product_embedding;
2007+ local sources_of_diagram, direct_product, direct_product_diagram, fiber_product, test_source, fiber_product_embedding;
19962008
19972009 sources_of_diagram := List( diagram, Source );
19982010
@@ -2001,11 +2013,13 @@ AddDerivationToCAP( IsomorphismFromFiberProductToEqualizerOfDirectProductDiagram
20012013 direct_product_diagram := List( [ 1 .. Length( sources_of_diagram ) ] ,
20022014 i -> PreCompose( cat, ProjectionInFactorOfDirectProductWithGivenDirectProduct( cat, sources_of_diagram, i, direct_product ), diagram[ i ] ) );
20032015
2004- test_source := List( [ 1 .. Length( diagram ) ] , i -> ProjectionInFactorOfFiberProduct( cat, diagram, i ) );
2016+ fiber_product := FiberProduct( cat, diagram );
20052017
2006- fiber_product_embedding := UniversalMorphismIntoDirectProductWithGivenDirectProduct( cat, sources_of_diagram, FiberProduct ( cat, diagram ), test_source, direct_product );
2018+ test_source := List( [ 1 .. Length( diagram ) ] , i -> ProjectionInFactorOfFiberProductWithGivenFiberProduct ( cat, diagram, i, fiber_product ) );
20072019
2008- return UniversalMorphismIntoEqualizer( cat, direct_product, direct_product_diagram, Source( fiber_product_embedding ), fiber_product_embedding );
2020+ fiber_product_embedding := UniversalMorphismIntoDirectProductWithGivenDirectProduct( cat, sources_of_diagram, fiber_product, test_source, direct_product );
2021+
2022+ return UniversalMorphismIntoEqualizer( cat, direct_product, direct_product_diagram, fiber_product, fiber_product_embedding );
20092023
20102024end : Description := " IsomorphismFromFiberProductToEqualizerOfDirectProductDiagram using the universal property of the equalizer" );
20112025
@@ -2025,11 +2039,12 @@ AddDerivationToCAP( IsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct
20252039 [ [ PreCompose, 4 ] ,
20262040 [ ProjectionInFactorOfDirectProductWithGivenDirectProduct, 2 ] ,
20272041 [ DirectProduct, 1 ] ,
2028- [ EmbeddingOfEqualizer, 1 ] ,
2042+ [ Equalizer, 1 ] ,
2043+ [ EmbeddingOfEqualizerWithGivenEqualizer, 1 ] ,
20292044 [ UniversalMorphismIntoFiberProduct, 1 ] ] ,
20302045
20312046 function ( cat, diagram )
2032- local sources_of_diagram, direct_product_diagram, direct_product , equalizer_embedding, equalizer_of_direct_product_diagram;
2047+ local sources_of_diagram, direct_product, direct_product_diagram, equalizer , equalizer_embedding, equalizer_of_direct_product_diagram;
20332048
20342049 sources_of_diagram := List( diagram, Source );
20352050
@@ -2038,11 +2053,13 @@ AddDerivationToCAP( IsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct
20382053 direct_product_diagram := List( [ 1 .. Length( sources_of_diagram ) ] ,
20392054 i -> PreCompose( cat, ProjectionInFactorOfDirectProductWithGivenDirectProduct( cat, sources_of_diagram, i, direct_product ), diagram[ i ] ) );
20402055
2041- equalizer_embedding := EmbeddingOfEqualizer( cat, direct_product, direct_product_diagram );
2056+ equalizer := Equalizer( cat, direct_product, direct_product_diagram );
2057+
2058+ equalizer_embedding := EmbeddingOfEqualizerWithGivenEqualizer( cat, direct_product, direct_product_diagram, equalizer );
20422059
20432060 equalizer_of_direct_product_diagram := List( [ 1 .. Length( direct_product_diagram ) ] , i -> PreCompose( cat, equalizer_embedding, direct_product_diagram[ i ] ) );
20442061
2045- return UniversalMorphismIntoFiberProduct( cat, diagram, Source( equalizer_embedding ) , equalizer_of_direct_product_diagram );
2062+ return UniversalMorphismIntoFiberProduct( cat, diagram, equalizer , equalizer_of_direct_product_diagram );
20462063
20472064end : Description := " IsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct using the universal property of the fiber product" );
20482065
@@ -2062,24 +2079,27 @@ AddDerivationToCAP( IsomorphismFromPushoutToCoequalizerOfCoproductDiagram,
20622079 [ [ Coproduct, 1 ] ,
20632080 [ PreCompose, 4 ] ,
20642081 [ InjectionOfCofactorOfCoproductWithGivenCoproduct, 2 ] ,
2065- [ ProjectionOntoCoequalizer, 1 ] ,
2082+ [ Coequalizer, 1 ] ,
2083+ [ ProjectionOntoCoequalizerWithGivenCoequalizer, 1 ] ,
20662084 [ UniversalMorphismFromPushout, 1 ] ] ,
20672085
20682086 function ( cat, diagram )
2069- local ranges_of_diagram, coproduct, coproduct_diagram, coequalizer_projection, coequalizer_of_coproduct_diagram;
2087+ local ranges_of_diagram, coproduct, coproduct_diagram, coequalizer, coequalizer_projection, coequalizer_of_coproduct_diagram;
20702088
20712089 ranges_of_diagram := List( diagram, Range );
20722090
20732091 coproduct := Coproduct( cat, ranges_of_diagram );
20742092
2075- coproduct_diagram := List( [ 1 .. Length( ranges_of_diagram ) ] ,
2076- i -> PreCompose( cat, diagram[ i ] , InjectionOfCofactorOfCoproductWithGivenCoproduct( cat, ranges_of_diagram, i, coproduct ) ) );
2093+ coproduct_diagram := List( [ 1 .. Length( ranges_of_diagram ) ] ,
2094+ i -> PreCompose( cat, diagram[ i ] , InjectionOfCofactorOfCoproductWithGivenCoproduct( cat, ranges_of_diagram, i, coproduct ) ) );
20772095
2078- coequalizer_projection := ProjectionOntoCoequalizer( cat, coproduct, coproduct_diagram );
2096+ coequalizer := Coequalizer( cat, coproduct, coproduct_diagram );
2097+
2098+ coequalizer_projection := ProjectionOntoCoequalizerWithGivenCoequalizer( cat, coproduct, coproduct_diagram, coequalizer );
20792099
20802100 coequalizer_of_coproduct_diagram := List( [ 1 .. Length( coproduct_diagram ) ] , i -> PreCompose( cat, coproduct_diagram[ i ] , coequalizer_projection ) );
20812101
2082- return UniversalMorphismFromPushout( cat, diagram, Range( coequalizer_projection ) , coequalizer_of_coproduct_diagram );
2102+ return UniversalMorphismFromPushout( cat, diagram, coequalizer , coequalizer_of_coproduct_diagram );
20832103
20842104end : Description := " IsomorphismFromPushoutToCoequalizerOfCoproductDiagram using the universal property of the pushout" );
20852105
@@ -2099,26 +2119,28 @@ AddDerivationToCAP( IsomorphismFromCoequalizerOfCoproductDiagramToPushout,
20992119 [ [ Coproduct, 1 ] ,
21002120 [ PreCompose, 2 ] ,
21012121 [ InjectionOfCofactorOfCoproductWithGivenCoproduct, 2 ] ,
2102- [ InjectionOfCofactorOfPushout , 2 ] ,
2122+ [ InjectionOfCofactorOfPushoutWithGivenPushout , 2 ] ,
21032123 [ UniversalMorphismFromCoproductWithGivenCoproduct, 1 ] ,
21042124 [ Pushout, 1 ] ,
21052125 [ UniversalMorphismFromCoequalizer, 1 ] ] ,
21062126
21072127 function ( cat, diagram )
2108- local ranges_of_diagram, coproduct, coproduct_diagram, test_source , pushout_injection;
2128+ local ranges_of_diagram, coproduct, coproduct_diagram, pushout, test_sink , pushout_injection;
21092129
21102130 ranges_of_diagram := List( diagram, Range );
21112131
21122132 coproduct := Coproduct( cat, ranges_of_diagram );
21132133
2114- coproduct_diagram := List( [ 1 .. Length( ranges_of_diagram ) ] ,
2115- i -> PreCompose( cat, diagram[ i ] , InjectionOfCofactorOfCoproductWithGivenCoproduct( cat, ranges_of_diagram, i, coproduct ) ) );
2134+ coproduct_diagram := List( [ 1 .. Length( ranges_of_diagram ) ] ,
2135+ i -> PreCompose( cat, diagram[ i ] , InjectionOfCofactorOfCoproductWithGivenCoproduct( cat, ranges_of_diagram, i, coproduct ) ) );
2136+
2137+ pushout := Pushout( cat, diagram );
21162138
2117- test_source := List( [ 1 .. Length( diagram ) ] , i -> InjectionOfCofactorOfPushout ( cat, diagram, i ) );
2139+ test_sink := List( [ 1 .. Length( diagram ) ] , i -> InjectionOfCofactorOfPushoutWithGivenPushout ( cat, diagram, i, pushout ) );
21182140
2119- pushout_injection := UniversalMorphismFromCoproductWithGivenCoproduct( cat, ranges_of_diagram, Pushout( cat, diagram ), test_source , coproduct );
2141+ pushout_injection := UniversalMorphismFromCoproductWithGivenCoproduct( cat, ranges_of_diagram, pushout, test_sink , coproduct );
21202142
2121- return UniversalMorphismFromCoequalizer( cat, coproduct, coproduct_diagram, Source( pushout_injection ) , pushout_injection );
2143+ return UniversalMorphismFromCoequalizer( cat, coproduct, coproduct_diagram, pushout , pushout_injection );
21222144
21232145end : Description := " IsomorphismFromCoequalizerOfCoproductDiagramToPushout using the universal property of the coequalizer" );
21242146
0 commit comments