  
  [1X6 [33X[0;0YUniversal Objects[133X[101X
  
  
  [1X6.1 [33X[0;0YKernel[133X[101X
  
  [33X[0;0YFor a given morphism [23X\alpha: A \rightarrow B[123X, a kernel of [23X\alpha[123X consists of
  three parts:[133X
  
  [30X    [33X[0;6Yan object [23XK[123X,[133X
  
  [30X    [33X[0;6Ya  morphism  [23X\iota:  K  \rightarrow  A[123X  such  that  [23X\alpha \circ \iota
        \sim_{K,B} 0[123X,[133X
  
  [30X    [33X[0;6Ya  dependent  function  [23Xu[123X  mapping each morphism [23X\tau: T \rightarrow A[123X
        satisfying  [23X\alpha  \circ  \tau  \sim_{T,B} 0[123X to a morphism [23Xu(\tau): T
        \rightarrow K[123X such that [23X\iota \circ u( \tau ) \sim_{T,A} \tau[123X.[133X
  
  [33X[0;0YThe  triple [23X( K, \iota, u )[123X is called a [13Xkernel[113X of [23X\alpha[123X if the morphisms [23Xu(
  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote the
  object  [23XK[123X of such a triple by [23X\mathrm{KernelObject}(\alpha)[123X. We say that the
  morphism  [23Xu(\tau)[123X  is  induced  by the [13Xuniversal property of the kernel[113X. [23X\\ [123X
  [23X\mathrm{KernelObject}[123X  is  a  functorial  operation.  This means: for [23X\mu: A
  \rightarrow  A'[123X, [23X\nu: B \rightarrow B'[123X, [23X\alpha: A \rightarrow B[123X, [23X\alpha': A'
  \rightarrow  B'[123X such that [23X\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu[123X, we
  obtain    a    morphism    [23X\mathrm{KernelObject}(   \alpha   )   \rightarrow
  \mathrm{KernelObject}( \alpha' )[123X.[133X
  
  [1X6.1-1 KernelObject[101X
  
  [33X[1;0Y[29X[2XKernelObject[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe argument is a morphism [23X\alpha[123X. The output is the kernel [23XK[123X of [23X\alpha[123X.[133X
  
  [1X6.1-2 KernelEmbedding[101X
  
  [33X[1;0Y[29X[2XKernelEmbedding[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{KernelObject}(\alpha),A)[123X[133X
  
  [33X[0;0YThe argument is a morphism [23X\alpha: A \rightarrow B[123X. The output is the kernel
  embedding [23X\iota: \mathrm{KernelObject}(\alpha) \rightarrow A[123X.[133X
  
  [1X6.1-3 KernelEmbeddingWithGivenKernelObject[101X
  
  [33X[1;0Y[29X[2XKernelEmbeddingWithGivenKernelObject[102X( [3Xalpha[103X, [3XK[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(K,A)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism  [23X\alpha:  A \rightarrow B[123X and an object [23XK =
  \mathrm{KernelObject}(\alpha)[123X.  The  output is the kernel embedding [23X\iota: K
  \rightarrow A[123X.[133X
  
  [1X6.1-4 KernelLift[101X
  
  [33X[1;0Y[29X[2XKernelLift[102X( [3Xalpha[103X, [3Xtau[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T,\mathrm{KernelObject}(\alpha))[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism [23X\alpha: A \rightarrow B[123X and a test morphism
  [23X\tau:  T \rightarrow A[123X satisfying [23X\alpha \circ \tau \sim_{T,B} 0[123X. The output
  is  the  morphism [23Xu(\tau): T \rightarrow \mathrm{KernelObject}(\alpha)[123X given
  by the universal property of the kernel.[133X
  
  [1X6.1-5 KernelLiftWithGivenKernelObject[101X
  
  [33X[1;0Y[29X[2XKernelLiftWithGivenKernelObject[102X( [3Xalpha[103X, [3Xtau[103X, [3XK[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T,K)[123X[133X
  
  [33X[0;0YThe  arguments are a morphism [23X\alpha: A \rightarrow B[123X, a test morphism [23X\tau:
  T \rightarrow A[123X satisfying [23X\alpha \circ \tau \sim_{T,B} 0[123X, and an object [23XK =
  \mathrm{KernelObject}(\alpha)[123X.   The  output  is  the  morphism  [23Xu(\tau):  T
  \rightarrow K[123X given by the universal property of the kernel.[133X
  
  [1X6.1-6 AddKernelObject[101X
  
  [33X[1;0Y[29X[2XAddKernelObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to the category for the basic operation [10XKernelObject[110X. [23XF:
  \alpha \mapsto \mathrm{KernelObject}(\alpha)[123X.[133X
  
  [1X6.1-7 AddKernelEmbedding[101X
  
  [33X[1;0Y[29X[2XAddKernelEmbedding[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given function [23XF[123X to the category for the basic operation [10XKernelEmbedding[110X. [23XF:
  \alpha \mapsto \iota[123X.[133X
  
  [1X6.1-8 AddKernelEmbeddingWithGivenKernelObject[101X
  
  [33X[1;0Y[29X[2XAddKernelEmbeddingWithGivenKernelObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XKernelEmbeddingWithGivenKernelObject[110X. [23XF: (\alpha, K) \mapsto \iota[123X.[133X
  
  [1X6.1-9 AddKernelLift[101X
  
  [33X[1;0Y[29X[2XAddKernelLift[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to  the  category for the basic operation [10XKernelLift[110X. [23XF:
  (\alpha, \tau) \mapsto u(\tau)[123X.[133X
  
  [1X6.1-10 AddKernelLiftWithGivenKernelObject[101X
  
  [33X[1;0Y[29X[2XAddKernelLiftWithGivenKernelObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XKernelLiftWithGivenKernelObject[110X. [23XF: (\alpha, \tau, K) \mapsto u[123X.[133X
  
  [1X6.1-11 KernelObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XKernelObjectFunctorial[102X( [3XL[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism  in  [23X\mathrm{Hom}(  \mathrm{KernelObject}(  \alpha  ),
            \mathrm{KernelObject}( \alpha' ) )[123X[133X
  
  [33X[0;0YThe  argument  is a list [23XL = [ \alpha: A \rightarrow B, [ \mu: A \rightarrow
  A',  \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ][123X of morphisms. The
  output   is   the   morphism  [23X\mathrm{KernelObject}(  \alpha  )  \rightarrow
  \mathrm{KernelObject}( \alpha' )[123X given by the functoriality of the kernel.[133X
  
  [1X6.1-12 KernelObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XKernelObjectFunctorial[102X( [3Xalpha[103X, [3Xmu[103X, [3Xalpha_prime[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism  in  [23X\mathrm{Hom}(  \mathrm{KernelObject}(  \alpha  ),
            \mathrm{KernelObject}( \alpha' ) )[123X[133X
  
  [33X[0;0YThe   arguments  are  three  morphisms  [23X\alpha:  A  \rightarrow  B[123X,  [23X\mu:  A
  \rightarrow  A'[123X,  [23X\alpha':  A'  \rightarrow  B'[123X.  The output is the morphism
  [23X\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )[123X
  given by the functoriality of the kernel.[133X
  
  [1X6.1-13 KernelObjectFunctorialWithGivenKernelObjects[101X
  
  [33X[1;0Y[29X[2XKernelObjectFunctorialWithGivenKernelObjects[102X( [3Xs[103X, [3Xalpha[103X, [3Xmu[103X, [3Xalpha_prime[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( s, r )[123X[133X
  
  [33X[0;0YThe  arguments  are  an  object  [23Xs  = \mathrm{KernelObject}( \alpha )[123X, three
  morphisms  [23X\alpha:  A  \rightarrow  B[123X,  [23X\mu:  A  \rightarrow A'[123X, [23X\alpha': A'
  \rightarrow  B'[123X,  and  an  object  [23Xr = \mathrm{KernelObject}( \alpha' )[123X. The
  output   is   the   morphism  [23X\mathrm{KernelObject}(  \alpha  )  \rightarrow
  \mathrm{KernelObject}( \alpha' )[123X given by the functoriality of the kernel.[133X
  
  [1X6.1-14 KernelObjectFunctorialWithGivenKernelObjects[101X
  
  [33X[1;0Y[29X[2XKernelObjectFunctorialWithGivenKernelObjects[102X( [3Xs[103X, [3Xalpha[103X, [3Xmu[103X, [3Xnu[103X, [3Xalpha_prime[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( s, r )[123X[133X
  
  [33X[0;0YThe  arguments  are  an  object  [23Xs  =  \mathrm{KernelObject}( \alpha )[123X, four
  morphisms [23X\alpha: A \rightarrow B[123X, [23X\mu: A \rightarrow A'[123X, [23X\nu: B \rightarrow
  B'[123X,  [23X\alpha':  A'  \rightarrow  B'[123X, and an object [23Xr = \mathrm{KernelObject}(
  \alpha'  )[123X.  The  output  is  the  morphism  [23X\mathrm{KernelObject}( \alpha )
  \rightarrow  \mathrm{KernelObject}(  \alpha' )[123X given by the functoriality of
  the kernel.[133X
  
  [1X6.1-15 AddKernelObjectFunctorialWithGivenKernelObjects[101X
  
  [33X[1;0Y[29X[2XAddKernelObjectFunctorialWithGivenKernelObjects[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XKernelObjectFunctorialWithGivenKernelObjects[110X.   [23XF:   (\mathrm{KernelObject}(
  \alpha  ),  \alpha,  \mu, \alpha', \mathrm{KernelObject}( \alpha' )) \mapsto
  (\mathrm{KernelObject}(  \alpha ) \rightarrow \mathrm{KernelObject}( \alpha'
  ))[123X.[133X
  
  
  [1X6.2 [33X[0;0YCokernel[133X[101X
  
  [33X[0;0YFor  a given morphism [23X\alpha: A \rightarrow B[123X, a cokernel of [23X\alpha[123X consists
  of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XK[123X,[133X
  
  [30X    [33X[0;6Ya  morphism  [23X\epsilon: B \rightarrow K[123X such that [23X\epsilon \circ \alpha
        \sim_{A,K} 0[123X,[133X
  
  [30X    [33X[0;6Ya  dependent  function [23Xu[123X mapping each [23X\tau: B \rightarrow T[123X satisfying
        [23X\tau  \circ \alpha \sim_{A, T} 0[123X to a morphism [23Xu(\tau):K \rightarrow T[123X
        such that [23Xu(\tau) \circ \epsilon \sim_{B,T} \tau[123X.[133X
  
  [33X[0;0YThe  triple  [23X(  K,  \epsilon,  u  )[123X  is  called  a [13Xcokernel[113X of [23X\alpha[123X if the
  morphisms  [23Xu(  \tau )[123X are uniquely determined up to congruence of morphisms.
  We  denote the object [23XK[123X of such a triple by [23X\mathrm{CokernelObject}(\alpha)[123X.
  We say that the morphism [23Xu(\tau)[123X is induced by the [13Xuniversal property of the
  cokernel[113X. [23X\\ [123X [23X\mathrm{CokernelObject}[123X is a functorial operation. This means:
  for  [23X\mu:  A \rightarrow A'[123X, [23X\nu: B \rightarrow B'[123X, [23X\alpha: A \rightarrow B[123X,
  [23X\alpha':  A'  \rightarrow  B'[123X such that [23X\nu \circ \alpha \sim_{A,B'} \alpha'
  \circ   \mu[123X,   we   obtain  a  morphism  [23X\mathrm{CokernelObject}(  \alpha  )
  \rightarrow \mathrm{CokernelObject}( \alpha' )[123X.[133X
  
  [1X6.2-1 CokernelObject[101X
  
  [33X[1;0Y[29X[2XCokernelObject[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  cokernel [23XK[123X of [23X\alpha[123X.[133X
  
  [1X6.2-2 CokernelProjection[101X
  
  [33X[1;0Y[29X[2XCokernelProjection[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(B, \mathrm{CokernelObject}( \alpha ))[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  cokernel  projection [23X\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha
  )[123X.[133X
  
  [1X6.2-3 CokernelProjectionWithGivenCokernelObject[101X
  
  [33X[1;0Y[29X[2XCokernelProjectionWithGivenCokernelObject[102X( [3Xalpha[103X, [3XK[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(B, K)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism  [23X\alpha:  A \rightarrow B[123X and an object [23XK =
  \mathrm{CokernelObject}(\alpha)[123X.  The  output  is  the  cokernel  projection
  [23X\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )[123X.[133X
  
  [1X6.2-4 CokernelColift[101X
  
  [33X[1;0Y[29X[2XCokernelColift[102X( [3Xalpha[103X, [3Xtau[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{CokernelObject}(\alpha),T)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism [23X\alpha: A \rightarrow B[123X and a test morphism
  [23X\tau: B \rightarrow T[123X satisfying [23X\tau \circ \alpha \sim_{A, T} 0[123X. The output
  is the morphism [23Xu(\tau): \mathrm{CokernelObject}(\alpha) \rightarrow T[123X given
  by the universal property of the cokernel.[133X
  
  [1X6.2-5 CokernelColiftWithGivenCokernelObject[101X
  
  [33X[1;0Y[29X[2XCokernelColiftWithGivenCokernelObject[102X( [3Xalpha[103X, [3Xtau[103X, [3XK[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(K,T)[123X[133X
  
  [33X[0;0YThe  arguments are a morphism [23X\alpha: A \rightarrow B[123X, a test morphism [23X\tau:
  B  \rightarrow T[123X satisfying [23X\tau \circ \alpha \sim_{A, T} 0[123X, and an object [23XK
  =  \mathrm{CokernelObject}(\alpha)[123X.  The  output  is the morphism [23Xu(\tau): K
  \rightarrow T[123X given by the universal property of the cokernel.[133X
  
  [1X6.2-6 AddCokernelObject[101X
  
  [33X[1;0Y[29X[2XAddCokernelObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XCokernelObject[110X. [23XF:
  \alpha \mapsto K[123X.[133X
  
  [1X6.2-7 AddCokernelProjection[101X
  
  [33X[1;0Y[29X[2XAddCokernelProjection[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given function [23XF[123X to the category for the basic operation [10XCokernelProjection[110X.
  [23XF: \alpha \mapsto \epsilon[123X.[133X
  
  [1X6.2-8 AddCokernelProjectionWithGivenCokernelObject[101X
  
  [33X[1;0Y[29X[2XAddCokernelProjectionWithGivenCokernelObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given function [23XF[123X to the category for the basic operation [10XCokernelProjection[110X.
  [23XF: (\alpha, K) \mapsto \epsilon[123X.[133X
  
  [1X6.2-9 AddCokernelColift[101X
  
  [33X[1;0Y[29X[2XAddCokernelColift[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given function [23XF[123X to the category for the basic operation [10XCokernelProjection[110X.
  [23XF: (\alpha, \tau) \mapsto u(\tau)[123X.[133X
  
  [1X6.2-10 AddCokernelColiftWithGivenCokernelObject[101X
  
  [33X[1;0Y[29X[2XAddCokernelColiftWithGivenCokernelObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given function [23XF[123X to the category for the basic operation [10XCokernelProjection[110X.
  [23XF: (\alpha, \tau, K) \mapsto u(\tau)[123X.[133X
  
  [1X6.2-11 CokernelObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XCokernelObjectFunctorial[102X( [3XL[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism  in  [23X\mathrm{Hom}(\mathrm{CokernelObject}(  \alpha  ),
            \mathrm{CokernelObject}( \alpha' ))[123X[133X
  
  [33X[0;0YThe  argument  is  a list [23XL = [ \alpha: A \rightarrow B, [ \mu:A \rightarrow
  A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ][123X. The output is the
  morphism       [23X\mathrm{CokernelObject}(       \alpha      )      \rightarrow
  \mathrm{CokernelObject}(  \alpha'  )[123X  given  by  the  functoriality  of  the
  cokernel.[133X
  
  [1X6.2-12 CokernelObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XCokernelObjectFunctorial[102X( [3Xalpha[103X, [3Xnu[103X, [3Xalpha_prime[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism  in  [23X\mathrm{Hom}(\mathrm{CokernelObject}(  \alpha  ),
            \mathrm{CokernelObject}( \alpha' ))[123X[133X
  
  [33X[0;0YThe   arguments  are  three  morphisms  [23X\alpha:  A  \rightarrow  B,  \nu:  B
  \rightarrow  B',  \alpha':  A'  \rightarrow  B'[123X.  The output is the morphism
  [23X\mathrm{CokernelObject}(   \alpha   )  \rightarrow  \mathrm{CokernelObject}(
  \alpha' )[123X given by the functoriality of the cokernel.[133X
  
  [1X6.2-13 CokernelObjectFunctorialWithGivenCokernelObjects[101X
  
  [33X[1;0Y[29X[2XCokernelObjectFunctorialWithGivenCokernelObjects[102X( [3Xs[103X, [3Xalpha[103X, [3Xnu[103X, [3Xalpha_prime[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe  arguments  are  an  object [23Xs = \mathrm{CokernelObject}( \alpha )[123X, three
  morphisms  [23X\alpha:  A  \rightarrow  B,  \nu:  B  \rightarrow B', \alpha': A'
  \rightarrow  B'[123X,  and  an object [23Xr = \mathrm{CokernelObject}( \alpha' )[123X. The
  output   is  the  morphism  [23X\mathrm{CokernelObject}(  \alpha  )  \rightarrow
  \mathrm{CokernelObject}(  \alpha'  )[123X  given  by  the  functoriality  of  the
  cokernel.[133X
  
  [1X6.2-14 CokernelObjectFunctorialWithGivenCokernelObjects[101X
  
  [33X[1;0Y[29X[2XCokernelObjectFunctorialWithGivenCokernelObjects[102X( [3Xs[103X, [3Xalpha[103X, [3Xmu[103X, [3Xnu[103X, [3Xalpha_prime[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe  arguments  are  an  object  [23Xs = \mathrm{CokernelObject}( \alpha )[123X, four
  morphisms [23X\alpha: A \rightarrow B, \mu: A \rightarrow A', \nu: B \rightarrow
  B',  \alpha':  A' \rightarrow B'[123X, and an object [23Xr = \mathrm{CokernelObject}(
  \alpha'  )[123X.  The  output  is  the morphism [23X\mathrm{CokernelObject}( \alpha )
  \rightarrow \mathrm{CokernelObject}( \alpha' )[123X given by the functoriality of
  the cokernel.[133X
  
  [1X6.2-15 AddCokernelObjectFunctorialWithGivenCokernelObjects[101X
  
  [33X[1;0Y[29X[2XAddCokernelObjectFunctorialWithGivenCokernelObjects[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XCokernelObjectFunctorialWithGivenCokernelObjects[110X.                         [23XF:
  (\mathrm{CokernelObject}(     \alpha     ),     \alpha,     \nu,    \alpha',
  \mathrm{CokernelObject}( \alpha' )) \mapsto (\mathrm{CokernelObject}( \alpha
  ) \rightarrow \mathrm{CokernelObject}( \alpha' ))[123X.[133X
  
  
  [1X6.3 [33X[0;0YZero Object[133X[101X
  
  [33X[0;0YA zero object consists of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XZ[123X,[133X
  
  [30X    [33X[0;6Ya  function  [23Xu_{\mathrm{in}}[123X  mapping  each  object  [23XA[123X  to  a morphism
        [23Xu_{\mathrm{in}}(A): A \rightarrow Z[123X,[133X
  
  [30X    [33X[0;6Ya  function  [23Xu_{\mathrm{out}}[123X  mapping  each  object  [23XA[123X  to a morphism
        [23Xu_{\mathrm{out}}(A): Z \rightarrow A[123X.[133X
  
  [33X[0;0YThe triple [23X(Z, u_{\mathrm{in}}, u_{\mathrm{out}})[123X is called a [13Xzero object[113X if
  the   morphisms   [23Xu_{\mathrm{in}}(A)[123X,   [23Xu_{\mathrm{out}}(A)[123X   are   uniquely
  determined  up  to congruence of morphisms. We denote the object [23XZ[123X of such a
  triple  by [23X\mathrm{ZeroObject}[123X. We say that the morphisms [23Xu_{\mathrm{in}}(A)[123X
  and  [23Xu_{\mathrm{out}}(A)[123X  are  induced by the [13Xuniversal property of the zero
  object[113X.[133X
  
  [1X6.3-1 ZeroObject[101X
  
  [33X[1;0Y[29X[2XZeroObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is a zero object [23XZ[123X of [23XC[123X.[133X
  
  [1X6.3-2 ZeroObject[101X
  
  [33X[1;0Y[29X[2XZeroObject[102X( [3Xc[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis is a convenience method. The argument is a cell [23Xc[123X. The output is a zero
  object [23XZ[123X of the category [23XC[123X for which [23Xc \in C[123X.[133X
  
  [1X6.3-3 MorphismFromZeroObject[101X
  
  [33X[1;0Y[29X[2XMorphismFromZeroObject[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{ZeroObject}, A)[123X[133X
  
  [33X[0;0YThis  is  a  convenience  method.  The  argument  is  an  object [23XA[123X. It calls
  [23X\mathrm{UniversalMorphismFromZeroObject}[123X on [23XA[123X.[133X
  
  [1X6.3-4 MorphismIntoZeroObject[101X
  
  [33X[1;0Y[29X[2XMorphismIntoZeroObject[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, \mathrm{ZeroObject})[123X[133X
  
  [33X[0;0YThis  is  a  convenience  method.  The  argument  is  an  object [23XA[123X. It calls
  [23X\mathrm{UniversalMorphismIntoZeroObject}[123X on [23XA[123X.[133X
  
  [1X6.3-5 UniversalMorphismFromZeroObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromZeroObject[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{ZeroObject}, A)[123X[133X
  
  [33X[0;0YThe  argument  is  an  object  [23XA[123X.  The  output  is  the  universal  morphism
  [23Xu_{\mathrm{out}}: \mathrm{ZeroObject} \rightarrow A[123X.[133X
  
  [1X6.3-6 UniversalMorphismFromZeroObjectWithGivenZeroObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromZeroObjectWithGivenZeroObject[102X( [3XA[103X, [3XZ[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(Z, A)[123X[133X
  
  [33X[0;0YThe  arguments  are  an object [23XA[123X, and a zero object [23XZ = \mathrm{ZeroObject}[123X.
  The output is the universal morphism [23Xu_{\mathrm{out}}: Z \rightarrow A[123X.[133X
  
  [1X6.3-7 UniversalMorphismIntoZeroObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoZeroObject[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, \mathrm{ZeroObject})[123X[133X
  
  [33X[0;0YThe  argument  is  an  object  [23XA[123X.  The  output  is  the  universal  morphism
  [23Xu_{\mathrm{in}}: A \rightarrow \mathrm{ZeroObject}[123X.[133X
  
  [1X6.3-8 UniversalMorphismIntoZeroObjectWithGivenZeroObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoZeroObjectWithGivenZeroObject[102X( [3XA[103X, [3XZ[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, Z)[123X[133X
  
  [33X[0;0YThe  arguments  are  an object [23XA[123X, and a zero object [23XZ = \mathrm{ZeroObject}[123X.
  The output is the universal morphism [23Xu_{\mathrm{in}}: A \rightarrow Z[123X.[133X
  
  [1X6.3-9 IsomorphismFromZeroObjectToInitialObject[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromZeroObjectToInitialObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya        morphism       in       [23X\mathrm{Hom}(\mathrm{ZeroObject},
            \mathrm{InitialObject})[123X[133X
  
  [33X[0;0YThe  argument  is  a  category  [23XC[123X.  The  output  is  the  unique isomorphism
  [23X\mathrm{ZeroObject} \rightarrow \mathrm{InitialObject}[123X.[133X
  
  [1X6.3-10 IsomorphismFromInitialObjectToZeroObject[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromInitialObjectToZeroObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya       morphism      in      [23X\mathrm{Hom}(\mathrm{InitialObject},
            \mathrm{ZeroObject})[123X[133X
  
  [33X[0;0YThe  argument  is  a  category  [23XC[123X.  The  output  is  the  unique isomorphism
  [23X\mathrm{InitialObject} \rightarrow \mathrm{ZeroObject}[123X.[133X
  
  [1X6.3-11 IsomorphismFromZeroObjectToTerminalObject[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromZeroObjectToTerminalObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya        morphism       in       [23X\mathrm{Hom}(\mathrm{ZeroObject},
            \mathrm{TerminalObject})[123X[133X
  
  [33X[0;0YThe  argument  is  a  category  [23XC[123X.  The  output  is  the  unique isomorphism
  [23X\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject}[123X.[133X
  
  [1X6.3-12 IsomorphismFromTerminalObjectToZeroObject[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromTerminalObjectToZeroObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya      morphism      in      [23X\mathrm{Hom}(\mathrm{TerminalObject},
            \mathrm{ZeroObject})[123X[133X
  
  [33X[0;0YThe  argument  is  a  category  [23XC[123X.  The  output  is  the  unique isomorphism
  [23X\mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject}[123X.[133X
  
  [1X6.3-13 AddZeroObject[101X
  
  [33X[1;0Y[29X[2XAddZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X to the category for the basic operation [10XZeroObject[110X. [23XF: ()
  \mapsto \mathrm{ZeroObject}[123X.[133X
  
  [1X6.3-14 AddUniversalMorphismIntoZeroObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoZeroObject[110X. [23XF: A \mapsto u_{\mathrm{in}}(A)[123X.[133X
  
  [1X6.3-15 AddUniversalMorphismIntoZeroObjectWithGivenZeroObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoZeroObjectWithGivenZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoZeroObjectWithGivenZeroObject[110X.   [23XF:   (A,   Z)  \mapsto
  u_{\mathrm{in}}(A)[123X.[133X
  
  [1X6.3-16 AddUniversalMorphismFromZeroObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromZeroObject[110X. [23XF: A \mapsto u_{\mathrm{out}}(A)[123X.[133X
  
  [1X6.3-17 AddUniversalMorphismFromZeroObjectWithGivenZeroObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromZeroObjectWithGivenZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromZeroObjectWithGivenZeroObject[110X.    [23XF:    (A,Z)   \mapsto
  u_{\mathrm{out}}(A)[123X.[133X
  
  [1X6.3-18 AddIsomorphismFromZeroObjectToInitialObject[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromZeroObjectToInitialObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromZeroObjectToInitialObject[110X. [23XF: () \mapsto (\mathrm{ZeroObject}
  \rightarrow \mathrm{InitialObject})[123X.[133X
  
  [1X6.3-19 AddIsomorphismFromInitialObjectToZeroObject[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromInitialObjectToZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromInitialObjectToZeroObject[110X.      [23XF:      ()      \mapsto     (
  \mathrm{InitialObject} \rightarrow \mathrm{ZeroObject})[123X.[133X
  
  [1X6.3-20 AddIsomorphismFromZeroObjectToTerminalObject[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromZeroObjectToTerminalObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromZeroObjectToTerminalObject[110X.        [23XF:        ()       \mapsto
  (\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject})[123X.[133X
  
  [1X6.3-21 AddIsomorphismFromTerminalObjectToZeroObject[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromTerminalObjectToZeroObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromTerminalObjectToZeroObject[110X.      [23XF:      ()     \mapsto     (
  \mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject})[123X.[133X
  
  [1X6.3-22 ZeroObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XZeroObjectFunctorial[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya        morphism       in       [23X\mathrm{Hom}(\mathrm{ZeroObject},
            \mathrm{ZeroObject} )[123X[133X
  
  [33X[0;0YThe   argument   is  a  category  [23XC[123X.  The  output  is  the  unique  morphism
  [23X\mathrm{ZeroObject} \rightarrow \mathrm{ZeroObject}[123X.[133X
  
  [1X6.3-23 AddZeroObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XAddZeroObjectFunctorial[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XZeroObjectFunctorial[110X. [23XF: () \mapsto (T \rightarrow T)[123X.[133X
  
  
  [1X6.4 [33X[0;0YTerminal Object[133X[101X
  
  [33X[0;0YA terminal object consists of two parts:[133X
  
  [30X    [33X[0;6Yan object [23XT[123X,[133X
  
  [30X    [33X[0;6Ya function [23Xu[123X mapping each object [23XA[123X to a morphism [23Xu( A ): A \rightarrow
        T[123X.[133X
  
  [33X[0;0YThe  pair  [23X(  T, u )[123X is called a [13Xterminal object[113X if the morphisms [23Xu( A )[123X are
  uniquely determined up to congruence of morphisms. We denote the object [23XT[123X of
  such  a  pair by [23X\mathrm{TerminalObject}[123X. We say that the morphism [23Xu( A )[123X is
  induced   by   the   [13Xuniversal   property   of  the  terminal  object[113X.  [23X\\  [123X
  [23X\mathrm{TerminalObject}[123X  is  a  functorial operation. This just means: There
  exists a unique morphism [23XT \rightarrow T[123X.[133X
  
  [1X6.4-1 TerminalObject[101X
  
  [33X[1;0Y[29X[2XTerminalObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is a terminal object [23XT[123X of [23XC[123X.[133X
  
  [1X6.4-2 TerminalObject[101X
  
  [33X[1;0Y[29X[2XTerminalObject[102X( [3Xc[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience  method.  The argument is a cell [23Xc[123X. The output is a
  terminal object [23XT[123X of the category [23XC[123X for which [23Xc \in C[123X.[133X
  
  [1X6.4-3 UniversalMorphismIntoTerminalObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoTerminalObject[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( A, \mathrm{TerminalObject} )[123X[133X
  
  [33X[0;0YThe  argument  is  an object [23XA[123X. The output is the universal morphism [23Xu(A): A
  \rightarrow \mathrm{TerminalObject}[123X.[133X
  
  [1X6.4-4 UniversalMorphismIntoTerminalObjectWithGivenTerminalObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoTerminalObjectWithGivenTerminalObject[102X( [3XA[103X, [3XT[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( A, T )[123X[133X
  
  [33X[0;0YThe argument are an object [23XA[123X, and an object [23XT = \mathrm{TerminalObject}[123X. The
  output is the universal morphism [23Xu(A): A \rightarrow T[123X.[133X
  
  [1X6.4-5 AddTerminalObject[101X
  
  [33X[1;0Y[29X[2XAddTerminalObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XTerminalObject[110X. [23XF:
  () \mapsto T[123X.[133X
  
  [1X6.4-6 AddUniversalMorphismIntoTerminalObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoTerminalObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoTerminalObject[110X. [23XF: A \mapsto u(A)[123X.[133X
  
  [1X6.4-7 AddUniversalMorphismIntoTerminalObjectWithGivenTerminalObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoTerminalObjectWithGivenTerminalObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoTerminalObjectWithGivenTerminalObject[110X. [23XF: (A,T) \mapsto
  u(A)[123X.[133X
  
  [1X6.4-8 TerminalObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XTerminalObjectFunctorial[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya      morphism      in      [23X\mathrm{Hom}(\mathrm{TerminalObject},
            \mathrm{TerminalObject} )[123X[133X
  
  [33X[0;0YThe   argument   is  a  category  [23XC[123X.  The  output  is  the  unique  morphism
  [23X\mathrm{TerminalObject} \rightarrow \mathrm{TerminalObject}[123X.[133X
  
  [1X6.4-9 AddTerminalObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XAddTerminalObjectFunctorial[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XTerminalObjectFunctorial[110X. [23XF: () \mapsto (T \rightarrow T)[123X.[133X
  
  
  [1X6.5 [33X[0;0YInitial Object[133X[101X
  
  [33X[0;0YAn initial object consists of two parts:[133X
  
  [30X    [33X[0;6Yan object [23XI[123X,[133X
  
  [30X    [33X[0;6Ya function [23Xu[123X mapping each object [23XA[123X to a morphism [23Xu( A ): I \rightarrow
        A[123X.[133X
  
  [33X[0;0YThe pair [23X(I,u)[123X is called a [13Xinitial object[113X if the morphisms [23Xu(A)[123X are uniquely
  determined  up  to congruence of morphisms. We denote the object [23XI[123X of such a
  triple by [23X\mathrm{InitialObject}[123X. We say that the morphism [23Xu( A )[123X is induced
  by  the [13Xuniversal property of the initial object[113X. [23X\\ [123X [23X\mathrm{InitialObject}[123X
  is  a functorial operation. This just means: There exists a unique morphisms
  [23XI \rightarrow I[123X.[133X
  
  [1X6.5-1 InitialObject[101X
  
  [33X[1;0Y[29X[2XInitialObject[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is an initial object [23XI[123X of [23XC[123X.[133X
  
  [1X6.5-2 InitialObject[101X
  
  [33X[1;0Y[29X[2XInitialObject[102X( [3Xc[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience  method. The argument is a cell [23Xc[123X. The output is an
  initial object [23XI[123X of the category [23XC[123X for which [23Xc \in C[123X.[133X
  
  [1X6.5-3 UniversalMorphismFromInitialObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromInitialObject[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{InitialObject} \rightarrow A)[123X.[133X
  
  [33X[0;0YThe  argument  is  an  object  [23XA[123X. The output is the universal morphism [23Xu(A):
  \mathrm{InitialObject} \rightarrow A[123X.[133X
  
  [1X6.5-4 UniversalMorphismFromInitialObjectWithGivenInitialObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromInitialObjectWithGivenInitialObject[102X( [3XA[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{InitialObject} \rightarrow A)[123X.[133X
  
  [33X[0;0YThe arguments are an object [23XA[123X, and an object [23XI = \mathrm{InitialObject}[123X. The
  output is the universal morphism [23Xu(A): \mathrm{InitialObject} \rightarrow A[123X.[133X
  
  [1X6.5-5 AddInitialObject[101X
  
  [33X[1;0Y[29X[2XAddInitialObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X to the category for the basic operation [10XInitialObject[110X. [23XF:
  () \mapsto I[123X.[133X
  
  [1X6.5-6 AddUniversalMorphismFromInitialObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromInitialObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromInitialObject[110X. [23XF: A \mapsto u(A)[123X.[133X
  
  [1X6.5-7 AddUniversalMorphismFromInitialObjectWithGivenInitialObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromInitialObjectWithGivenInitialObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromInitialObjectWithGivenInitialObject[110X.  [23XF:  (A,I) \mapsto
  u(A)[123X.[133X
  
  [1X6.5-8 InitialObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XInitialObjectFunctorial[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism     in     [23X\mathrm{Hom}(    \mathrm{InitialObject},
            \mathrm{InitialObject} )[123X[133X
  
  [33X[0;0YThe   argument   is  a  category  [23XC[123X.  The  output  is  the  unique  morphism
  [23X\mathrm{InitialObject} \rightarrow \mathrm{InitialObject}[123X.[133X
  
  [1X6.5-9 AddInitialObjectFunctorial[101X
  
  [33X[1;0Y[29X[2XAddInitialObjectFunctorial[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInitialObjectFunctorial[110X. [23XF: () \rightarrow ( I \rightarrow I )[123X.[133X
  
  
  [1X6.6 [33X[0;0YDirect Sum[133X[101X
  
  [33X[0;0YFor  an  integer  [23Xn  \geq  1[123X  and  a  given list [23XD = (S_1, \dots, S_n)[123X in an
  Ab-category, a direct sum consists of five parts:[133X
  
  [30X    [33X[0;6Yan object [23XS[123X,[133X
  
  [30X    [33X[0;6Ya list of morphisms [23X\pi = (\pi_i: S \rightarrow S_i)_{i = 1 \dots n}[123X,[133X
  
  [30X    [33X[0;6Ya  list of morphisms [23X\iota = (\iota_i: S_i \rightarrow S)_{i = 1 \dots
        n}[123X,[133X
  
  [30X    [33X[0;6Ya  dependent  function  [23Xu_{\mathrm{in}}[123X  mapping  every  list [23X\tau = (
        \tau_i:   T   \rightarrow  S_i  )_{i  =  1  \dots  n}[123X  to  a  morphism
        [23Xu_{\mathrm{in}}(\tau):   T   \rightarrow   S[123X  such  that  [23X\pi_i  \circ
        u_{\mathrm{in}}(\tau) \sim_{T,S_i} \tau_i[123X for all [23Xi = 1, \dots, n[123X.[133X
  
  [30X    [33X[0;6Ya  dependent  function  [23Xu_{\mathrm{out}}[123X  mapping  every list [23X\tau = (
        \tau_i:   S_i   \rightarrow  T  )_{i  =  1  \dots  n}[123X  to  a  morphism
        [23Xu_{\mathrm{out}}(\tau):      S     \rightarrow     T[123X     such     that
        [23Xu_{\mathrm{out}}(\tau)  \circ \iota_i \sim_{S_i, T} \tau_i[123X for all [23Xi =
        1, \dots, n[123X,[133X
  
  [33X[0;0Ysuch that[133X
  
  [30X    [33X[0;6Y[23X\sum_{i=1}^{n} \iota_i \circ \pi_i \sim_{S,S} \mathrm{id}_S[123X,[133X
  
  [30X    [33X[0;6Y[23X\pi_j \circ \iota_i \sim_{S_i, S_j} \delta_{i,j}[123X,[133X
  
  [33X[0;0Ywhere  [23X\delta_{i,j} \in \mathrm{Hom}( S_i, S_j )[123X is the identity if [23Xi=j[123X, and
  [23X0[123X  otherwise. The [23X5[123X-tuple [23X(S, \pi, \iota, u_{\mathrm{in}}, u_{\mathrm{out}})[123X
  is  called  a  [13Xdirect  sum[113X of [23XD[123X. We denote the object [23XS[123X of such a [23X5[123X-tuple by
  [23X\bigoplus_{i=1}^n  S_i[123X.  We  say  that  the morphisms [23Xu_{\mathrm{in}}(\tau),
  u_{\mathrm{out}}(\tau)[123X  are  induced by the [13Xuniversal property of the direct
  sum[113X.  [23X\\  [123X  [23X\mathrm{DirectSum}[123X  is  a  functorial operation. This means: For
  [23X(\mu_i:   S_i   \rightarrow   S'_i)_{i=1\dots   n}[123X,  we  obtain  a  morphism
  [23X\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i'[123X.[133X
  
  [1X6.6-1 DirectSumOp[101X
  
  [33X[1;0Y[29X[2XDirectSumOp[102X( [3XD[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  argument  is  a list of objects [23XD = (S_1, \dots, S_n)[123X and an object for
  method selection. The output is the direct sum [23X\bigoplus_{i=1}^n S_i[123X.[133X
  
  [1X6.6-2 ProjectionInFactorOfDirectSum[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfDirectSum[102X( [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \bigoplus_{i=1}^n S_i, S_k )[123X[133X
  
  [33X[0;0YThe  arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X and an integer [23Xk[123X.
  The  output  is the [23Xk[123X-th projection [23X\pi_k: \bigoplus_{i=1}^n S_i \rightarrow
  S_k[123X.[133X
  
  [1X6.6-3 ProjectionInFactorOfDirectSumOp[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfDirectSumOp[102X( [3XD[103X, [3Xk[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \bigoplus_{i=1}^n S_i, S_k )[123X[133X
  
  [33X[0;0YThe arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X, an integer [23Xk[123X, and
  an  object  for  method  selection. The output is the [23Xk[123X-th projection [23X\pi_k:
  \bigoplus_{i=1}^n S_i \rightarrow S_k[123X.[133X
  
  [1X6.6-4 ProjectionInFactorOfDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfDirectSumWithGivenDirectSum[102X( [3XD[103X, [3Xk[103X, [3XS[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( S, S_k )[123X[133X
  
  [33X[0;0YThe arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X, an integer [23Xk[123X, and
  an  object  [23XS  =  \bigoplus_{i=1}^n  S_i[123X.  The output is the [23Xk[123X-th projection
  [23X\pi_k: S \rightarrow S_k[123X.[133X
  
  [1X6.6-5 InjectionOfCofactorOfDirectSum[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfDirectSum[102X( [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( S_k, \bigoplus_{i=1}^n S_i )[123X[133X
  
  [33X[0;0YThe  arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X and an integer [23Xk[123X.
  The  output is the [23Xk[123X-th injection [23X\iota_k: S_k \rightarrow \bigoplus_{i=1}^n
  S_i[123X.[133X
  
  [1X6.6-6 InjectionOfCofactorOfDirectSumOp[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfDirectSumOp[102X( [3XD[103X, [3Xk[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( S_k, \bigoplus_{i=1}^n S_i )[123X[133X
  
  [33X[0;0YThe arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X, an integer [23Xk[123X, and
  an  object  for  method selection. The output is the [23Xk[123X-th injection [23X\iota_k:
  S_k \rightarrow \bigoplus_{i=1}^n S_i[123X.[133X
  
  [1X6.6-7 InjectionOfCofactorOfDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfDirectSumWithGivenDirectSum[102X( [3XD[103X, [3Xk[103X, [3XS[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( S_k, S )[123X[133X
  
  [33X[0;0YThe arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X, an integer [23Xk[123X, and
  an  object  [23XS  =  \bigoplus_{i=1}^n  S_i[123X.  The  output is the [23Xk[123X-th injection
  [23X\iota_k: S_k \rightarrow S[123X.[133X
  
  [1X6.6-8 UniversalMorphismIntoDirectSum[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoDirectSum[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, \bigoplus_{i=1}^n S_i)[123X[133X
  
  [33X[0;0YThis  is  a  convenience  method. There are three different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe  arguments  are a list of objects [23XD = (S_1, \dots, S_n)[123X and a list
        of morphisms [23X\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe argument is a list of morphisms [23X\tau = ( \tau_i: T \rightarrow S_i
        )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe  arguments are morphisms [23X\tau_1: T \rightarrow S_1, \dots, \tau_n:
        T \rightarrow S_n[123X.[133X
  
  [33X[0;0YThe   output   is   the   morphism   [23Xu_{\mathrm{in}}(\tau):   T  \rightarrow
  \bigoplus_{i=1}^n S_i[123X given by the universal property of the direct sum.[133X
  
  [1X6.6-9 UniversalMorphismIntoDirectSumOp[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoDirectSumOp[102X( [3XD[103X, [3Xtau[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, \bigoplus_{i=1}^n S_i)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects  [23XD  = (S_1, \dots, S_n)[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i:  T  \rightarrow S_i )_{i = 1 \dots n}[123X, and an
  object    for    method    selection.    The    output   is   the   morphism
  [23Xu_{\mathrm{in}}(\tau):  T  \rightarrow  \bigoplus_{i=1}^n  S_i[123X  given by the
  universal property of the direct sum.[133X
  
  [1X6.6-10 UniversalMorphismIntoDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoDirectSumWithGivenDirectSum[102X( [3XD[103X, [3Xtau[103X, [3XS[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, S)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects  [23XD  = (S_1, \dots, S_n)[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i:  T  \rightarrow S_i )_{i = 1 \dots n}[123X, and an
  object   [23XS   =   \bigoplus_{i=1}^n   S_i[123X.   The   output   is  the  morphism
  [23Xu_{\mathrm{in}}(\tau):  T  \rightarrow  S[123X given by the universal property of
  the direct sum.[133X
  
  [1X6.6-11 UniversalMorphismFromDirectSum[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromDirectSum[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\bigoplus_{i=1}^n S_i, T)[123X[133X
  
  [33X[0;0YThis  is  a  convenience  method. There are three different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe  arguments  are a list of objects [23XD = (S_1, \dots, S_n)[123X and a list
        of morphisms [23X\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe argument is a list of morphisms [23X\tau = ( \tau_i: S_i \rightarrow T
        )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe  arguments are morphisms [23XS_1 \rightarrow T, \dots, S_n \rightarrow
        T[123X.[133X
  
  [33X[0;0YThe  output  is  the  morphism [23Xu_{\mathrm{out}}(\tau): \bigoplus_{i=1}^n S_i
  \rightarrow T[123X given by the universal property of the direct sum.[133X
  
  [1X6.6-12 UniversalMorphismFromDirectSumOp[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromDirectSumOp[102X( [3XD[103X, [3Xtau[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\bigoplus_{i=1}^n S_i, T)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects  [23XD  = (S_1, \dots, S_n)[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i:  S_i  \rightarrow T )_{i = 1 \dots n}[123X, and an
  object    for    method    selection.    The    output   is   the   morphism
  [23Xu_{\mathrm{out}}(\tau):  \bigoplus_{i=1}^n  S_i  \rightarrow  T[123X given by the
  universal property of the direct sum.[133X
  
  [1X6.6-13 UniversalMorphismFromDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromDirectSumWithGivenDirectSum[102X( [3XD[103X, [3Xtau[103X, [3XS[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(S, T)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects  [23XD  = (S_1, \dots, S_n)[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i:  S_i  \rightarrow T )_{i = 1 \dots n}[123X, and an
  object   [23XS   =   \bigoplus_{i=1}^n   S_i[123X.   The   output   is  the  morphism
  [23Xu_{\mathrm{out}}(\tau):  S  \rightarrow T[123X given by the universal property of
  the direct sum.[133X
  
  [1X6.6-14 IsomorphismFromDirectSumToDirectProduct[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromDirectSumToDirectProduct[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    S_i,
            \prod_{i=1}^{n}S_i )[123X[133X
  
  [33X[0;0YThe  argument  is a list of objects [23XD = (S_1, \dots, S_n)[123X. The output is the
  canonical isomorphism [23X\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i[123X.[133X
  
  [1X6.6-15 IsomorphismFromDirectSumToDirectProductOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromDirectSumToDirectProductOp[102X( [3XD[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    S_i,
            \prod_{i=1}^{n}S_i )[123X[133X
  
  [33X[0;0YThe  arguments are a list of objects [23XD = (S_1, \dots, S_n)[123X and an object for
  method  selection. The output is the canonical isomorphism [23X\bigoplus_{i=1}^n
  S_i \rightarrow \prod_{i=1}^{n}S_i[123X.[133X
  
  [1X6.6-16 IsomorphismFromDirectProductToDirectSum[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromDirectProductToDirectSum[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism in [23X\mathrm{Hom}( \prod_{i=1}^{n}S_i, \bigoplus_{i=1}^n
            S_i )[123X[133X
  
  [33X[0;0YThe  argument  is a list of objects [23XD = (S_1, \dots, S_n)[123X. The output is the
  canonical isomorphism [23X\prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i[123X.[133X
  
  [1X6.6-17 IsomorphismFromDirectProductToDirectSumOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromDirectProductToDirectSumOp[102X( [3XD[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism in [23X\mathrm{Hom}( \prod_{i=1}^{n}S_i, \bigoplus_{i=1}^n
            S_i )[123X[133X
  
  [33X[0;0YThe  argument  is  a list of objects [23XD = (S_1, \dots, S_n)[123X and an object for
  method selection. The output is the canonical isomorphism [23X\prod_{i=1}^{n}S_i
  \rightarrow \bigoplus_{i=1}^n S_i[123X.[133X
  
  [1X6.6-18 IsomorphismFromDirectSumToCoproduct[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromDirectSumToCoproduct[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    S_i,
            \bigsqcup_{i=1}^{n}S_i )[123X[133X
  
  [33X[0;0YThe  argument  is a list of objects [23XD = (S_1, \dots, S_n)[123X. The output is the
  canonical       isomorphism      [23X\bigoplus_{i=1}^n      S_i      \rightarrow
  \bigsqcup_{i=1}^{n}S_i[123X.[133X
  
  [1X6.6-19 IsomorphismFromDirectSumToCoproductOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromDirectSumToCoproductOp[102X( [3XD[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    S_i,
            \bigsqcup_{i=1}^{n}S_i )[123X[133X
  
  [33X[0;0YThe  argument  is  a list of objects [23XD = (S_1, \dots, S_n)[123X and an object for
  method  selection. The output is the canonical isomorphism [23X\bigoplus_{i=1}^n
  S_i \rightarrow \bigsqcup_{i=1}^{n}S_i[123X.[133X
  
  [1X6.6-20 IsomorphismFromCoproductToDirectSum[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCoproductToDirectSum[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism     in     [23X\mathrm{Hom}(    \bigsqcup_{i=1}^{n}S_i,
            \bigoplus_{i=1}^n S_i )[123X[133X
  
  [33X[0;0YThe  argument  is a list of objects [23XD = (S_1, \dots, S_n)[123X. The output is the
  canonical  isomorphism  [23X\bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n
  S_i[123X.[133X
  
  [1X6.6-21 IsomorphismFromCoproductToDirectSumOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCoproductToDirectSumOp[102X( [3XD[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism     in     [23X\mathrm{Hom}(    \bigsqcup_{i=1}^{n}S_i,
            \bigoplus_{i=1}^n S_i )[123X[133X
  
  [33X[0;0YThe  argument  is  a list of objects [23XD = (S_1, \dots, S_n)[123X and an object for
  method    selection.    The    output    is    the   canonical   isomorphism
  [23X\bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i[123X.[133X
  
  [1X6.6-22 MorphismBetweenDirectSums[101X
  
  [33X[1;0Y[29X[2XMorphismBetweenDirectSums[102X( [3XM[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XMorphismBetweenDirectSums[102X( [3XS[103X, [3XM[103X, [3XT[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya       morphism      in      [23X\mathrm{Hom}(\bigoplus_{i=1}^{m}A_i,
            \bigoplus_{j=1}^n B_j)[123X[133X
  
  [33X[0;0YThe  argument [23XM = ( ( \phi_{i,j}: A_i \rightarrow B_j )_{j = 1 \dots n} )_{i
  =  1  \dots  m}[123X  is a list of lists of morphisms. The output is the morphism
  [23X\bigoplus_{i=1}^{m}A_i  \rightarrow  \bigoplus_{j=1}^n  B_j[123X  defined  by the
  matrix   [23XM[123X.   The  extra  arguments  [23XS  =  \bigoplus_{i=1}^{m}A_i[123X  and  [23XT  =
  \bigoplus_{j=1}^n  B_j[123X  are  source  and target of the output, respectively.
  They must be provided in case [23XM[123X is an empty list or a list of empty lists.[133X
  
  [1X6.6-23 AddMorphismBetweenDirectSums[101X
  
  [33X[1;0Y[29X[2XAddMorphismBetweenDirectSums[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XMorphismBetweenDirectSums[110X.  [23XF: (\bigoplus_{i=1}^{m}A_i, M, \bigoplus_{j=1}^n
  B_j) \mapsto (\bigoplus_{i=1}^{m}A_i \rightarrow \bigoplus_{j=1}^n B_j)[123X.[133X
  
  [1X6.6-24 MorphismBetweenDirectSumsOp[101X
  
  [33X[1;0Y[29X[2XMorphismBetweenDirectSumsOp[102X( [3XM[103X, [3Xm[103X, [3Xn[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya       morphism      in      [23X\mathrm{Hom}(\bigoplus_{i=1}^{m}A_i,
            \bigoplus_{j=1}^n B_j)[123X[133X
  
  [33X[0;0YThe  arguments  are  a list [23XM = ( \phi_{1,1}, \phi_{1,2}, \dots, \phi_{1,n},
  \phi_{2,1},  \dots,  \phi_{m,n}  )[123X  of morphisms [23X\phi_{i,j}: A_i \rightarrow
  B_j[123X, an integer [23Xm[123X, an integer [23Xn[123X, and a method selection morphism. The output
  is  the  morphism  [23X\bigoplus_{i=1}^{m}A_i  \rightarrow \bigoplus_{j=1}^n B_j[123X
  defined by the list [23XM[123X regarded as a matrix of dimension [23Xm \times n[123X.[133X
  
  [1X6.6-25 ComponentOfMorphismIntoDirectSum[101X
  
  [33X[1;0Y[29X[2XComponentOfMorphismIntoDirectSum[102X( [3Xalpha[103X, [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, S_k)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism  [23X\alpha:  A \rightarrow S[123X, a list [23XD = (S_1,
  \dots, S_n)[123X of objects with [23XS = \bigoplus_{j=1}^n S_j[123X, and an integer [23Xk[123X. The
  output is the component morphism [23XA \rightarrow S_k[123X.[133X
  
  [1X6.6-26 ComponentOfMorphismFromDirectSum[101X
  
  [33X[1;0Y[29X[2XComponentOfMorphismFromDirectSum[102X( [3Xalpha[103X, [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(S_k, A)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism  [23X\alpha:  S \rightarrow A[123X, a list [23XD = (S_1,
  \dots, S_n)[123X of objects with [23XS = \bigoplus_{j=1}^n S_j[123X, and an integer [23Xk[123X. The
  output is the component morphism [23XS_k \rightarrow A[123X.[133X
  
  [1X6.6-27 AddComponentOfMorphismIntoDirectSum[101X
  
  [33X[1;0Y[29X[2XAddComponentOfMorphismIntoDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XComponentOfMorphismIntoDirectSum[110X.  [23XF:  (\alpha: A \rightarrow S,D,k) \mapsto
  (A \rightarrow S_k)[123X.[133X
  
  [1X6.6-28 AddComponentOfMorphismFromDirectSum[101X
  
  [33X[1;0Y[29X[2XAddComponentOfMorphismFromDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XComponentOfMorphismFromDirectSum[110X.  [23XF:  (\alpha: S \rightarrow A,D,k) \mapsto
  (S_k \rightarrow A)[123X.[133X
  
  [1X6.6-29 AddProjectionInFactorOfDirectSum[101X
  
  [33X[1;0Y[29X[2XAddProjectionInFactorOfDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionInFactorOfDirectSum[110X. [23XF: (D,k) \mapsto \pi_{k}[123X.[133X
  
  [1X6.6-30 AddProjectionInFactorOfDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XAddProjectionInFactorOfDirectSumWithGivenDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionInFactorOfDirectSumWithGivenDirectSum[110X. [23XF: (D,k,S) \mapsto \pi_{k}[123X.[133X
  
  [1X6.6-31 AddInjectionOfCofactorOfDirectSum[101X
  
  [33X[1;0Y[29X[2XAddInjectionOfCofactorOfDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInjectionOfCofactorOfDirectSum[110X. [23XF: (D,k) \mapsto \iota_{k}[123X.[133X
  
  [1X6.6-32 AddInjectionOfCofactorOfDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XAddInjectionOfCofactorOfDirectSumWithGivenDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInjectionOfCofactorOfDirectSumWithGivenDirectSum[110X.    [23XF:    (D,k,S)   \mapsto
  \iota_{k}[123X.[133X
  
  [1X6.6-33 AddUniversalMorphismIntoDirectSum[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoDirectSum[110X. [23XF: (D,\tau) \mapsto u_{\mathrm{in}}(\tau)[123X.[133X
  
  [1X6.6-34 AddUniversalMorphismIntoDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoDirectSumWithGivenDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoDirectSumWithGivenDirectSum[110X.   [23XF:   (D,\tau,S)  \mapsto
  u_{\mathrm{in}}(\tau)[123X.[133X
  
  [1X6.6-35 AddUniversalMorphismFromDirectSum[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromDirectSum[110X. [23XF: (D,\tau) \mapsto u_{\mathrm{out}}(\tau)[123X.[133X
  
  [1X6.6-36 AddUniversalMorphismFromDirectSumWithGivenDirectSum[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromDirectSumWithGivenDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromDirectSumWithGivenDirectSum[110X.   [23XF:   (D,\tau,S)  \mapsto
  u_{\mathrm{out}}(\tau)[123X.[133X
  
  [1X6.6-37 AddIsomorphismFromDirectSumToDirectProduct[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromDirectSumToDirectProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromDirectSumToDirectProduct[110X. [23XF: D \mapsto (\bigoplus_{i=1}^n S_i
  \rightarrow \prod_{i=1}^{n}S_i)[123X.[133X
  
  [1X6.6-38 AddIsomorphismFromDirectProductToDirectSum[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromDirectProductToDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromDirectProductToDirectSum[110X.  [23XF:  D \mapsto ( \prod_{i=1}^{n}S_i
  \rightarrow \bigoplus_{i=1}^n S_i )[123X.[133X
  
  [1X6.6-39 AddIsomorphismFromDirectSumToCoproduct[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromDirectSumToCoproduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromDirectSumToCoproduct[110X.  [23XF:  D  \mapsto ( \bigoplus_{i=1}^n S_i
  \rightarrow \bigsqcup_{i=1}^{n}S_i )[123X.[133X
  
  [1X6.6-40 AddIsomorphismFromCoproductToDirectSum[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromCoproductToDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromCoproductToDirectSum[110X.  [23XF:  D \mapsto ( \bigsqcup_{i=1}^{n}S_i
  \rightarrow \bigoplus_{i=1}^n S_i )[123X.[133X
  
  [1X6.6-41 AddDirectSum[101X
  
  [33X[1;0Y[29X[2XAddDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to  the category for the basic operation [10XDirectSum[110X. [23XF: D
  \mapsto \bigoplus_{i=1}^n S_i[123X.[133X
  
  [1X6.6-42 DirectSumFunctorial[101X
  
  [33X[1;0Y[29X[2XDirectSumFunctorial[102X( [3XL[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    S_i,
            \bigoplus_{i=1}^n S_i' )[123X[133X
  
  [33X[0;0YThe  argument  is  a  list  of  morphisms [23XL = ( \mu_1: S_1 \rightarrow S_1',
  \dots,   \mu_n:   S_n   \rightarrow   S_n'  )[123X.  The  output  is  a  morphism
  [23X\bigoplus_{i=1}^n  S_i  \rightarrow  \bigoplus_{i=1}^n  S_i'[123X  given  by  the
  functoriality of the direct sum.[133X
  
  [1X6.6-43 DirectSumFunctorialWithGivenDirectSums[101X
  
  [33X[1;0Y[29X[2XDirectSumFunctorialWithGivenDirectSums[102X( [3Xd_1[103X, [3XL[103X, [3Xd_2[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( d_1, d_2 )[123X[133X
  
  [33X[0;0YThe arguments are an object [23Xd_1 = \bigoplus_{i=1}^n S_i[123X, a list of morphisms
  [23XL = ( \mu_1: S_1 \rightarrow S_1', \dots, \mu_n: S_n \rightarrow S_n' )[123X, and
  an  object  [23Xd_2  =  \bigoplus_{i=1}^n  S_i'[123X.  The  output  is a morphism [23Xd_1
  \rightarrow d_2[123X given by the functoriality of the direct sum.[133X
  
  [1X6.6-44 AddDirectSumFunctorialWithGivenDirectSums[101X
  
  [33X[1;0Y[29X[2XAddDirectSumFunctorialWithGivenDirectSums[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XDirectSumFunctorialWithGivenDirectSums[110X.  [23XF: (\bigoplus_{i=1}^n S_i, ( \mu_1,
  \dots,  \mu_n  ),  \bigoplus_{i=1}^n  S_i')  \mapsto  (\bigoplus_{i=1}^n S_i
  \rightarrow \bigoplus_{i=1}^n S_i')[123X.[133X
  
  
  [1X6.7 [33X[0;0YCoproduct[133X[101X
  
  [33X[0;0YFor an integer [23Xn \geq 1[123X and a given list of objects [23XD = ( I_1, \dots, I_n )[123X,
  a coproduct of [23XD[123X consists of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XI[123X,[133X
  
  [30X    [33X[0;6Ya  list  of  morphisms  [23X\iota  = ( \iota_i: I_i \rightarrow I )_{i = 1
        \dots n}[123X[133X
  
  [30X    [33X[0;6Ya dependent function [23Xu[123X mapping each list of morphisms [23X\tau = ( \tau_i:
        I_i \rightarrow T )[123X to a morphism [23Xu( \tau ): I \rightarrow T[123X such that
        [23Xu( \tau ) \circ \iota_i \sim_{I_i, T} \tau_i[123X for all [23Xi = 1, \dots, n[123X.[133X
  
  [33X[0;0YThe  triple  [23X(  I, \iota, u )[123X is called a [13Xcoproduct[113X of [23XD[123X if the morphisms [23Xu(
  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote the
  object [23XI[123X of such a triple by [23X\bigsqcup_{i=1}^n I_i[123X. We say that the morphism
  [23Xu(  \tau  )[123X  is  induced  by  the  [13Xuniversal  property of the coproduct[113X. [23X\\ [123X
  [23X\mathrm{Coproduct}[123X  is  a  functorial operation. This means: For [23X(\mu_i: I_i
  \rightarrow  I'_i)_{i=1\dots  n}[123X, we obtain a morphism [23X\bigsqcup_{i=1}^n I_i
  \rightarrow \bigsqcup_{i=1}^n I_i'[123X.[133X
  
  [1X6.7-1 Coproduct[101X
  
  [33X[1;0Y[29X[2XCoproduct[102X( [3XD[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe argument is a list of objects [23XD = ( I_1, \dots, I_n )[123X. The output is the
  coproduct [23X\bigsqcup_{i=1}^n I_i[123X.[133X
  
  [1X6.7-2 Coproduct[101X
  
  [33X[1;0Y[29X[2XCoproduct[102X( [3XI1[103X, [3XI2[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience method. The arguments are two objects [23XI_1, I_2[123X. The
  output is the coproduct [23XI_1 \bigsqcup I_2[123X.[133X
  
  [1X6.7-3 Coproduct[101X
  
  [33X[1;0Y[29X[2XCoproduct[102X( [3XI1[103X, [3XI2[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis is a convenience method. The arguments are three objects [23XI_1, I_2, I_3[123X.
  The output is the coproduct [23XI_1 \bigsqcup I_2 \bigsqcup I_3[123X.[133X
  
  [1X6.7-4 CoproductOp[101X
  
  [33X[1;0Y[29X[2XCoproductOp[102X( [3XD[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  arguments  are  a  list of objects [23XD = ( I_1, \dots, I_n )[123X and a method
  selection object. The output is the coproduct [23X\bigsqcup_{i=1}^n I_i[123X.[133X
  
  [1X6.7-5 InjectionOfCofactorOfCoproduct[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfCoproduct[102X( [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I_k, \bigsqcup_{i=1}^n I_i)[123X[133X
  
  [33X[0;0YThe  arguments  are a list of objects [23XD = ( I_1, \dots, I_n )[123X and an integer
  [23Xk[123X.   The   output   is   the   [23Xk[123X-th   injection   [23X\iota_k:  I_k  \rightarrow
  \bigsqcup_{i=1}^n I_i[123X.[133X
  
  [1X6.7-6 InjectionOfCofactorOfCoproductOp[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfCoproductOp[102X( [3XD[103X, [3Xk[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I_k, \bigsqcup_{i=1}^n I_i)[123X[133X
  
  [33X[0;0YThe  arguments  are a list of objects [23XD = ( I_1, \dots, I_n )[123X, an integer [23Xk[123X,
  and a method selection object. The output is the [23Xk[123X-th injection [23X\iota_k: I_k
  \rightarrow \bigsqcup_{i=1}^n I_i[123X.[133X
  
  [1X6.7-7 InjectionOfCofactorOfCoproductWithGivenCoproduct[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfCoproductWithGivenCoproduct[102X( [3XD[103X, [3Xk[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I_k, I)[123X[133X
  
  [33X[0;0YThe  arguments  are a list of objects [23XD = ( I_1, \dots, I_n )[123X, an integer [23Xk[123X,
  and  an  object  [23XI = \bigsqcup_{i=1}^n I_i[123X. The output is the [23Xk[123X-th injection
  [23X\iota_k: I_k \rightarrow I[123X.[133X
  
  [1X6.7-8 UniversalMorphismFromCoproduct[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromCoproduct[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, T)[123X[133X
  
  [33X[0;0YThis  is  a  convenience  method. There are three different ways to use this
  method.[133X
  
  [30X    [33X[0;6YThe arguments are a list of objects [23XD = ( I_1, \dots, I_n )[123X, a list of
        morphisms [23X\tau = ( \tau_i: I_i \rightarrow T )[123X.[133X
  
  [30X    [33X[0;6YThe argument is a list of morphisms [23X\tau = ( \tau_i: I_i \rightarrow T
        )[123X.[133X
  
  [30X    [33X[0;6YThe  arguments are morphisms [23X\tau_1: I_1 \rightarrow T, \dots, \tau_n:
        I_n \rightarrow T[123X[133X
  
  [33X[0;0YThe  output  is  the morphism [23Xu( \tau ): \bigsqcup_{i=1}^n I_i \rightarrow T[123X
  given by the universal property of the coproduct.[133X
  
  [1X6.7-9 UniversalMorphismFromCoproductOp[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromCoproductOp[102X( [3XD[103X, [3Xtau[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, T)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects [23XD = ( I_1, \dots, I_n )[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i:  I_i  \rightarrow T )[123X, and a method selection
  object.  The  output  is  the  morphism  [23Xu(  \tau  ):  \bigsqcup_{i=1}^n I_i
  \rightarrow T[123X given by the universal property of the coproduct.[133X
  
  [1X6.7-10 UniversalMorphismFromCoproductWithGivenCoproduct[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromCoproductWithGivenCoproduct[102X( [3XD[103X, [3Xtau[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I, T)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects [23XD = ( I_1, \dots, I_n )[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i:  I_i  \rightarrow  T  )[123X,  and  an  object [23XI =
  \bigsqcup_{i=1}^n I_i[123X. The output is the morphism [23Xu( \tau ): I \rightarrow T[123X
  given by the universal property of the coproduct.[133X
  
  [1X6.7-11 AddCoproduct[101X
  
  [33X[1;0Y[29X[2XAddCoproduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to  the category for the basic operation [10XCoproduct[110X. [23XF: (
  (I_1, \dots, I_n) ) \mapsto I[123X.[133X
  
  [1X6.7-12 AddInjectionOfCofactorOfCoproduct[101X
  
  [33X[1;0Y[29X[2XAddInjectionOfCofactorOfCoproduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInjectionOfCofactorOfCoproduct[110X. [23XF: ( (I_1, \dots, I_n), i ) \mapsto \iota_i[123X.[133X
  
  [1X6.7-13 AddInjectionOfCofactorOfCoproductWithGivenCoproduct[101X
  
  [33X[1;0Y[29X[2XAddInjectionOfCofactorOfCoproductWithGivenCoproduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInjectionOfCofactorOfCoproductWithGivenCoproduct[110X. [23XF: ( (I_1, \dots, I_n), i,
  I ) \mapsto \iota_i[123X.[133X
  
  [1X6.7-14 AddUniversalMorphismFromCoproduct[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromCoproduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromCoproduct[110X.  [23XF:  (  (I_1, \dots, I_n), \tau ) \mapsto u(
  \tau )[123X.[133X
  
  [1X6.7-15 AddUniversalMorphismFromCoproductWithGivenCoproduct[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromCoproductWithGivenCoproduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromCoproductWithGivenCoproduct[110X.  [23XF:  (  (I_1, \dots, I_n),
  \tau, I ) \mapsto u( \tau )[123X.[133X
  
  [1X6.7-16 CoproductFunctorial[101X
  
  [33X[1;0Y[29X[2XCoproductFunctorial[102X( [3XL[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya      morphism     in     [23X\mathrm{Hom}(\bigsqcup_{i=1}^n     I_i,
            \bigsqcup_{i=1}^n I_i')[123X[133X
  
  [33X[0;0YThe  argument is a list [23XL = ( \mu_1: I_1 \rightarrow I_1', \dots, \mu_n: I_n
  \rightarrow   I_n'  )[123X.  The  output  is  a  morphism  [23X\bigsqcup_{i=1}^n  I_i
  \rightarrow  \bigsqcup_{i=1}^n  I_i'[123X  given  by  the  functoriality  of  the
  coproduct.[133X
  
  [1X6.7-17 CoproductFunctorialWithGivenCoproducts[101X
  
  [33X[1;0Y[29X[2XCoproductFunctorialWithGivenCoproducts[102X( [3Xs[103X, [3XL[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe  arguments  are an object [23Xs = \bigsqcup_{i=1}^n I_i[123X, a list [23XL = ( \mu_1:
  I_1  \rightarrow I_1', \dots, \mu_n: I_n \rightarrow I_n' )[123X, and an object [23Xr
  =  \bigsqcup_{i=1}^n  I_i'[123X.  The  output is a morphism [23X\bigsqcup_{i=1}^n I_i
  \rightarrow  \bigsqcup_{i=1}^n  I_i'[123X  given  by  the  functoriality  of  the
  coproduct.[133X
  
  [1X6.7-18 AddCoproductFunctorialWithGivenCoproducts[101X
  
  [33X[1;0Y[29X[2XAddCoproductFunctorialWithGivenCoproducts[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XCoproductFunctorialWithGivenCoproducts[110X.  [23XF:  (\bigsqcup_{i=1}^n I_i, (\mu_1,
  \dots,  \mu_n),  \bigsqcup_{i=1}^n  I_i') \rightarrow (\bigsqcup_{i=1}^n I_i
  \rightarrow \bigsqcup_{i=1}^n I_i')[123X.[133X
  
  
  [1X6.8 [33X[0;0YDirect Product[133X[101X
  
  [33X[0;0YFor an integer [23Xn \geq 1[123X and a given list of objects [23XD = ( P_1, \dots, P_n )[123X,
  a direct product of [23XD[123X consists of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XP[123X,[133X
  
  [30X    [33X[0;6Ya list of morphisms [23X\pi = ( \pi_i: P \rightarrow P_i )_{i = 1 \dots n}[123X[133X
  
  [30X    [33X[0;6Ya dependent function [23Xu[123X mapping each list of morphisms [23X\tau = ( \tau_i:
        T  \rightarrow  P_i  )_{i  =  1,  \dots,  n}[123X  to a morphism [23Xu(\tau): T
        \rightarrow  P[123X such that [23X\pi_i \circ u( \tau ) \sim_{T,P_i} \tau_i[123X for
        all [23Xi = 1, \dots, n[123X.[133X
  
  [33X[0;0YThe triple [23X( P, \pi, u )[123X is called a [13Xdirect product[113X of [23XD[123X if the morphisms [23Xu(
  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote the
  object  [23XP[123X of such a triple by [23X\prod_{i=1}^n P_i[123X. We say that the morphism [23Xu(
  \tau  )[123X  is  induced  by  the  [13Xuniversal property of the direct product[113X. [23X\\ [123X
  [23X\mathrm{DirectProduct}[123X  is  a  functorial operation. This means: For [23X(\mu_i:
  P_i  \rightarrow  P'_i)_{i=1\dots n}[123X, we obtain a morphism [23X\prod_{i=1}^n P_i
  \rightarrow \prod_{i=1}^n P_i'[123X.[133X
  
  [1X6.8-1 DirectProductOp[101X
  
  [33X[1;0Y[29X[2XDirectProductOp[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  arguments  are  a list of objects [23XD = ( P_1, \dots, P_n )[123X and an object
  for method selection. The output is the direct product [23X\prod_{i=1}^n P_i[123X.[133X
  
  [1X6.8-2 ProjectionInFactorOfDirectProduct[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfDirectProduct[102X( [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\prod_{i=1}^n P_i, P_k)[123X[133X
  
  [33X[0;0YThe  arguments  are a list of objects [23XD = ( P_1, \dots, P_n )[123X and an integer
  [23Xk[123X.  The  output  is the [23Xk[123X-th projection [23X\pi_k: \prod_{i=1}^n P_i \rightarrow
  P_k[123X.[133X
  
  [1X6.8-3 ProjectionInFactorOfDirectProductOp[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfDirectProductOp[102X( [3XD[103X, [3Xk[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\prod_{i=1}^n P_i, P_k)[123X[133X
  
  [33X[0;0YThe  arguments  are a list of objects [23XD = ( P_1, \dots, P_n )[123X, an integer [23Xk[123X,
  and an object for method selection. The output is the [23Xk[123X-th projection [23X\pi_k:
  \prod_{i=1}^n P_i \rightarrow P_k[123X.[133X
  
  [1X6.8-4 ProjectionInFactorOfDirectProductWithGivenDirectProduct[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfDirectProductWithGivenDirectProduct[102X( [3XD[103X, [3Xk[103X, [3XP[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(P, P_k)[123X[133X
  
  [33X[0;0YThe  arguments  are a list of objects [23XD = ( P_1, \dots, P_n )[123X, an integer [23Xk[123X,
  and  an  object  [23XP  =  \prod_{i=1}^n  P_i[123X. The output is the [23Xk[123X-th projection
  [23X\pi_k: P \rightarrow P_k[123X.[133X
  
  [1X6.8-5 UniversalMorphismIntoDirectProduct[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoDirectProduct[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, \prod_{i=1}^n P_i)[123X[133X
  
  [33X[0;0YThis  is  a  convenience  method. There are three different ways to use this
  method.[133X
  
  [30X    [33X[0;6YThe arguments are a list of objects [23XD = ( P_1, \dots, P_n )[123X and a list
        of morphisms [23X\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}[123X.[133X
  
  [30X    [33X[0;6YThe argument is a list of morphisms [23X\tau = ( \tau_i: T \rightarrow P_i
        )_{i = 1, \dots, n}[123X.[133X
  
  [30X    [33X[0;6YThe  arguments are morphisms [23X\tau_1: T \rightarrow P_1, \dots, \tau_n:
        T \rightarrow P_n[123X.[133X
  
  [33X[0;0YThe output is the morphism [23Xu(\tau): T \rightarrow \prod_{i=1}^n P_i[123X given by
  the universal property of the direct product.[133X
  
  [1X6.8-6 UniversalMorphismIntoDirectProductOp[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoDirectProductOp[102X( [3XD[103X, [3Xtau[103X, [3Xmethod_selection_object[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, \prod_{i=1}^n P_i)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects [23XD = ( P_1, \dots, P_n )[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}[123X, and an
  object  for  method  selection.  The  output  is  the  morphism  [23Xu(\tau):  T
  \rightarrow  \prod_{i=1}^n P_i[123X given by the universal property of the direct
  product.[133X
  
  [1X6.8-7 UniversalMorphismIntoDirectProductWithGivenDirectProduct[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoDirectProductWithGivenDirectProduct[102X( [3XD[103X, [3Xtau[103X, [3XP[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, \prod_{i=1}^n P_i)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  list  of  objects [23XD = ( P_1, \dots, P_n )[123X, a list of
  morphisms  [23X\tau  =  (  \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}[123X, and an
  object  [23XP  =  \prod_{i=1}^n  P_i[123X.  The  output  is  the  morphism [23Xu(\tau): T
  \rightarrow  \prod_{i=1}^n P_i[123X given by the universal property of the direct
  product.[133X
  
  [1X6.8-8 AddDirectProduct[101X
  
  [33X[1;0Y[29X[2XAddDirectProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given function [23XF[123X to the category for the basic operation [10XDirectProduct[110X. [23XF: (
  (P_1, \dots, P_n) ) \mapsto P[123X[133X
  
  [1X6.8-9 AddProjectionInFactorOfDirectProduct[101X
  
  [33X[1;0Y[29X[2XAddProjectionInFactorOfDirectProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionInFactorOfDirectProduct[110X. [23XF: ( (P_1, \dots, P_n),k ) \mapsto \pi_k[123X[133X
  
  [1X6.8-10 AddProjectionInFactorOfDirectProductWithGivenDirectProduct[101X
  
  [33X[1;0Y[29X[2XAddProjectionInFactorOfDirectProductWithGivenDirectProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionInFactorOfDirectProductWithGivenDirectProduct[110X.  [23XF:  ( (P_1, \dots,
  P_n),k,P ) \mapsto \pi_k[123X[133X
  
  [1X6.8-11 AddUniversalMorphismIntoDirectProduct[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoDirectProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoDirectProduct[110X.  [23XF:  ( (P_1, \dots, P_n), \tau ) \mapsto
  u( \tau )[123X[133X
  
  [1X6.8-12 AddUniversalMorphismIntoDirectProductWithGivenDirectProduct[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoDirectProductWithGivenDirectProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoDirectProductWithGivenDirectProduct[110X.  [23XF: ( (P_1, \dots,
  P_n), \tau, P ) \mapsto u( \tau )[123X[133X
  
  [1X6.8-13 DirectProductFunctorial[101X
  
  [33X[1;0Y[29X[2XDirectProductFunctorial[102X( [3XL[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism in [23X\mathrm{Hom}( \prod_{i=1}^n P_i, \prod_{i=1}^n P_i'
            )[123X[133X
  
  [33X[0;0YThe   argument   is  a  list  of  morphisms  [23XL  =  (\mu_i:  P_i  \rightarrow
  P'_i)_{i=1\dots  n}[123X.  The output is a morphism [23X\prod_{i=1}^n P_i \rightarrow
  \prod_{i=1}^n P_i'[123X given by the functoriality of the direct product.[133X
  
  [1X6.8-14 DirectProductFunctorialWithGivenDirectProducts[101X
  
  [33X[1;0Y[29X[2XDirectProductFunctorialWithGivenDirectProducts[102X( [3Xs[103X, [3XL[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( s, r )[123X[133X
  
  [33X[0;0YThe  arguments  are an object [23Xs = \prod_{i=1}^n P_i[123X, a list of morphisms [23XL =
  (\mu_i:  P_i \rightarrow P'_i)_{i=1\dots n}[123X, and an object [23Xr = \prod_{i=1}^n
  P_i'[123X.  The  output is a morphism [23X\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n
  P_i'[123X given by the functoriality of the direct product.[133X
  
  [1X6.8-15 AddDirectProductFunctorialWithGivenDirectProducts[101X
  
  [33X[1;0Y[29X[2XAddDirectProductFunctorialWithGivenDirectProducts[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XDirectProductFunctorialWithGivenDirectProducts[110X.   [23XF:  (  \prod_{i=1}^n  P_i,
  (\mu_i:  P_i  \rightarrow  P'_i)_{i=1\dots  n}, \prod_{i=1}^n P_i' ) \mapsto
  (\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i')[123X[133X
  
  
  [1X6.9 [33X[0;0YEqualizer[133X[101X
  
  [33X[0;0YFor  an  integer  [23Xn  \geq  1[123X  and a given list of morphisms [23XD = ( \beta_i: A
  \rightarrow B )_{i = 1 \dots n}[123X, an equalizer of [23XD[123X consists of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XE[123X,[133X
  
  [30X    [33X[0;6Ya  morphism  [23X\iota:  E  \rightarrow  A  [123X such that [23X\beta_i \circ \iota
        \sim_{E, B} \beta_j \circ \iota[123X for all pairs [23Xi,j[123X.[133X
  
  [30X    [33X[0;6Ya  dependent  function  [23Xu[123X  mapping  each  morphism  [23X\tau  =  ( \tau: T
        \rightarrow A )[123X such that [23X\beta_i \circ \tau \sim_{T, B} \beta_j \circ
        \tau[123X  for  all pairs [23Xi,j[123X to a morphism [23Xu( \tau ): T \rightarrow E[123X such
        that [23X\iota \circ u( \tau ) \sim_{T, A} \tau[123X.[133X
  
  [33X[0;0YThe  triple  [23X( E, \iota, u )[123X is called an [13Xequalizer[113X of [23XD[123X if the morphisms [23Xu(
  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote the
  object [23XE[123X of such a triple by [23X\mathrm{Equalizer}(D)[123X. We say that the morphism
  [23Xu(  \tau  )[123X  is  induced  by  the  [13Xuniversal  property of the equalizer[113X. [23X\\ [123X
  [23X\mathrm{Equalizer}[123X  is  a  functorial  operation.  This  means: For a second
  diagram  [23XD'  =  (\beta_i':  A' \rightarrow B')_{i = 1 \dots n}[123X and a natural
  morphism  between equalizer diagrams (i.e., a collection of morphisms [23X\mu: A
  \rightarrow  A'[123X  and  [23X\beta:  B  \rightarrow B'[123X such that [23X\beta_i' \circ \mu
  \sim_{A,B'}  \beta  \circ  \beta_i[123X for [23Xi = 1, \dots, n[123X) we obtain a morphism
  [23X\mathrm{Equalizer}( D ) \rightarrow \mathrm{Equalizer}( D' )[123X.[133X
  
  [1X6.9-1 Equalizer[101X
  
  [33X[1;0Y[29X[2XEqualizer[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience  method.  There  are two different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe  argument  is  a  list of morphisms [23XD = ( \beta_i: A \rightarrow B
        )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe  arguments are morphisms [23X\beta_1: A \rightarrow B, \dots, \beta_n:
        A \rightarrow B[123X.[133X
  
  [33X[0;0YThe output is the equalizer [23X\mathrm{Equalizer}(D)[123X.[133X
  
  [1X6.9-2 EqualizerOp[101X
  
  [33X[1;0Y[29X[2XEqualizerOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: A \rightarrow B )_{i =
  1  \dots n}[123X and a morphism for method selection. The output is the equalizer
  [23X\mathrm{Equalizer}(D)[123X.[133X
  
  [1X6.9-3 EmbeddingOfEqualizer[101X
  
  [33X[1;0Y[29X[2XEmbeddingOfEqualizer[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Equalizer}(D), A )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: A \rightarrow B )_{i =
  1    \dots    n}[123X.   The   output   is   the   equalizer   embedding   [23X\iota:
  \mathrm{Equalizer}(D) \rightarrow A[123X.[133X
  
  [1X6.9-4 EmbeddingOfEqualizerOp[101X
  
  [33X[1;0Y[29X[2XEmbeddingOfEqualizerOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Equalizer}(D), A )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: A \rightarrow B )_{i =
  1 \dots n}[123X. and a morphism for method selection. The output is the equalizer
  embedding [23X\iota: \mathrm{Equalizer}(D) \rightarrow A[123X.[133X
  
  [1X6.9-5 EmbeddingOfEqualizerWithGivenEqualizer[101X
  
  [33X[1;0Y[29X[2XEmbeddingOfEqualizerWithGivenEqualizer[102X( [3XD[103X, [3XE[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( E, A )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: A \rightarrow B )_{i =
  1  \dots  n}[123X,  and  an  object  [23XE = \mathrm{Equalizer}(D)[123X. The output is the
  equalizer embedding [23X\iota: E \rightarrow A[123X.[133X
  
  [1X6.9-6 UniversalMorphismIntoEqualizer[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoEqualizer[102X( [3XD[103X, [3Xtau[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( T, \mathrm{Equalizer}(D) )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: A \rightarrow B )_{i =
  1  \dots  n}[123X  and a morphism [23X \tau: T \rightarrow A [123X such that [23X\beta_i \circ
  \tau  \sim_{T,  B}  \beta_j  \circ \tau[123X for all pairs [23Xi,j[123X. The output is the
  morphism  [23Xu(  \tau  ):  T  \rightarrow  \mathrm{Equalizer}(D)[123X  given  by the
  universal property of the equalizer.[133X
  
  [1X6.9-7 UniversalMorphismIntoEqualizerWithGivenEqualizer[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoEqualizerWithGivenEqualizer[102X( [3XD[103X, [3Xtau[103X, [3XE[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( T, E )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: A \rightarrow B )_{i =
  1  \dots n}[123X, a morphism [23X\tau: T \rightarrow A )[123X such that [23X\beta_i \circ \tau
  \sim_{T,  B}  \beta_j  \circ  \tau[123X  for  all  pairs  [23Xi,j[123X,  and an object [23XE =
  \mathrm{Equalizer}(D)[123X. The output is the morphism [23Xu( \tau ): T \rightarrow E[123X
  given by the universal property of the equalizer.[133X
  
  [1X6.9-8 AddEqualizer[101X
  
  [33X[1;0Y[29X[2XAddEqualizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to  the category for the basic operation [10XEqualizer[110X. [23XF: (
  (\beta_i: A \rightarrow B)_{i = 1 \dots n} ) \mapsto E[123X[133X
  
  [1X6.9-9 AddEmbeddingOfEqualizer[101X
  
  [33X[1;0Y[29X[2XAddEmbeddingOfEqualizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XEmbeddingOfEqualizer[110X.  [23XF:  ( (\beta_i: A \rightarrow B)_{i = 1 \dots n}, k )
  \mapsto \iota[123X[133X
  
  [1X6.9-10 AddEmbeddingOfEqualizerWithGivenEqualizer[101X
  
  [33X[1;0Y[29X[2XAddEmbeddingOfEqualizerWithGivenEqualizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XEmbeddingOfEqualizerWithGivenEqualizer[110X. [23XF: ( (\beta_i: A \rightarrow B)_{i =
  1 \dots n},E ) \mapsto \iota[123X[133X
  
  [1X6.9-11 AddUniversalMorphismIntoEqualizer[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoEqualizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoEqualizer[110X. [23XF: ( (\beta_i: A \rightarrow B)_{i = 1 \dots
  n}, \tau ) \mapsto u(\tau)[123X[133X
  
  [1X6.9-12 AddUniversalMorphismIntoEqualizerWithGivenEqualizer[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoEqualizerWithGivenEqualizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoEqualizerWithGivenEqualizer[110X.    [23XF:    (   (\beta_i:   A
  \rightarrow B)_{i = 1 \dots n}, \tau, E ) \mapsto u(\tau)[123X[133X
  
  [1X6.9-13 EqualizerFunctorial[101X
  
  [33X[1;0Y[29X[2XEqualizerFunctorial[102X( [3XLs[103X, [3Xmu[103X, [3XLr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism  in  [23X\mathrm{Hom}(\mathrm{Equalizer}( ( \beta_i )_{i=1
            \dots n} ), \mathrm{Equalizer}( ( \beta_i' )_{i=1 \dots n} ))[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XL_s = (\beta_i: A \rightarrow B)_{i =
  1  \dots n}[123X, a morphism [23X\mu: A \rightarrow A'[123X, and a list of morphisms [23XL_r =
  (\beta_i':  A'  \rightarrow  B')_{i  =  1  \dots n}[123X such that there exists a
  morphism  [23X\beta:  B  \rightarrow B'[123X such that [23X\beta_i' \circ \mu \sim_{A,B'}
  \beta  \circ  \beta_i[123X  for  [23Xi  =  1,  \dots,  n[123X.  The output is the morphism
  [23X\mathrm{Equalizer}(    (    \beta_i    )_{i=1   \dots   n}   )   \rightarrow
  \mathrm{Equalizer}(  (  \beta_i' )_{i=1 \dots n} )[123X given by the functorality
  of the equalizer.[133X
  
  [1X6.9-14 EqualizerFunctorialWithGivenEqualizers[101X
  
  [33X[1;0Y[29X[2XEqualizerFunctorialWithGivenEqualizers[102X( [3Xs[103X, [3XLs[103X, [3Xmu[103X, [3XLr[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe  arguments  are an object [23Xs = \mathrm{Equalizer}( ( \beta_i )_{i=1 \dots
  n}  )[123X, a list of morphisms [23XL_s = (\beta_i: A \rightarrow B)_{i = 1 \dots n}[123X,
  a  morphism  [23X\mu: A \rightarrow A'[123X, and a list of morphisms [23XL_r = (\beta_i':
  A'  \rightarrow B')_{i = 1 \dots n}[123X such that there exists a morphism [23X\beta:
  B  \rightarrow  B'[123X  such  that  [23X\beta_i'  \circ  \mu \sim_{A,B'} \beta \circ
  \beta_i[123X  for  [23Xi  =  1,  \dots,  n[123X,  and  an object [23Xr = \mathrm{Equalizer}( (
  \beta_i' )_{i=1 \dots n} )[123X. The output is the morphism [23Xs \rightarrow r[123X given
  by the functorality of the equalizer.[133X
  
  [1X6.9-15 AddEqualizerFunctorialWithGivenEqualizers[101X
  
  [33X[1;0Y[29X[2XAddEqualizerFunctorialWithGivenEqualizers[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XEqualizerFunctorialWithGivenEqualizers[110X.  [23XF:  ( \mathrm{Equalizer}( ( \beta_i
  )_{i=1  \dots  n}  ),  (  \beta_i: A \rightarrow B )_{i = 1 \dots n}, \mu: A
  \rightarrow   A',  (  \beta_i':  A'  \rightarrow  B'  )_{i  =  1  \dots  n},
  \mathrm{Equalizer}(    (    \beta_i'   )_{i=1   \dots   n}   )   )   \mapsto
  (\mathrm{Equalizer}(  (  \beta_i  )_{i=1  \dots  n}  )  \rightarrow  \mathrm
  {Equalizer}( ( \beta_i' )_{i=1 \dots n} ) )[123X[133X
  
  
  [1X6.10 [33X[0;0YCoequalizer[133X[101X
  
  [33X[0;0YFor  an  integer  [23Xn  \geq  1[123X  and a given list of morphisms [23XD = ( \beta_i: B
  \rightarrow A )_{i = 1 \dots n}[123X, a coequalizer of [23XD[123X consists of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XC[123X,[133X
  
  [30X    [33X[0;6Ya  morphism  [23X\pi:  A  \rightarrow  C  [123X  such  that  [23X\pi  \circ \beta_i
        \sim_{B,C} \pi \circ \beta_j[123X for all pairs [23Xi,j[123X,[133X
  
  [30X    [33X[0;6Ya  dependent  function  [23Xu[123X  mapping the morphism [23X\tau: A \rightarrow T [123X
        such  that  [23X\tau  \circ  \beta_i  \sim_{B,T}  \tau  \circ \beta_j[123X to a
        morphism  [23Xu(  \tau  ):  C  \rightarrow T[123X such that [23Xu( \tau ) \circ \pi
        \sim_{A, T} \tau[123X.[133X
  
  [33X[0;0YThe  triple  [23X(  C, \pi, u )[123X is called a [13Xcoequalizer[113X of [23XD[123X if the morphisms [23Xu(
  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote the
  object  [23XC[123X  of  such  a  triple  by  [23X\mathrm{Coequalizer}(D)[123X. We say that the
  morphism  [23Xu( \tau )[123X is induced by the [13Xuniversal property of the coequalizer[113X.
  [23X\\ [123X [23X\mathrm{Coequalizer}[123X is a functorial operation. This means: For a second
  diagram  [23XD'  =  (\beta_i':  B' \rightarrow A')_{i = 1 \dots n}[123X and a natural
  morphism  between coequalizer diagrams (i.e., a collection of morphisms [23X\mu:
  A  \rightarrow A'[123X and [23X\beta: B \rightarrow B'[123X such that [23X\beta_i' \circ \beta
  \sim_{B,  A'}  \mu  \circ  \beta_i[123X  for [23Xi = 1, \dots n[123X) we obtain a morphism
  [23X\mathrm{Coequalizer}( D ) \rightarrow \mathrm{Coequalizer}( D' )[123X.[133X
  
  [1X6.10-1 Coequalizer[101X
  
  [33X[1;0Y[29X[2XCoequalizer[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience  method.  There  are two different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe  argument  is  a  list of morphisms [23XD = ( \beta_i: B \rightarrow A
        )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe  arguments are morphisms [23X\beta_1: B \rightarrow A, \dots, \beta_n:
        B \rightarrow A[123X.[133X
  
  [33X[0;0YThe output is the coequalizer [23X\mathrm{Coequalizer}(D)[123X.[133X
  
  [1X6.10-2 CoequalizerOp[101X
  
  [33X[1;0Y[29X[2XCoequalizerOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow A )_{i =
  1  \dots  n}[123X  and  a  morphism  for  method  selection.  The  output  is the
  coequalizer [23X\mathrm{Coequalizer}(D)[123X.[133X
  
  [1X6.10-3 ProjectionOntoCoequalizer[101X
  
  [33X[1;0Y[29X[2XProjectionOntoCoequalizer[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( A, \mathrm{Coequalizer}( D ) )[123X.[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow A )_{i =
  1   \dots   n}[123X.   The   output   is   the   projection  [23X\pi:  A  \rightarrow
  \mathrm{Coequalizer}( D )[123X.[133X
  
  [1X6.10-4 ProjectionOntoCoequalizerOp[101X
  
  [33X[1;0Y[29X[2XProjectionOntoCoequalizerOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( A, \mathrm{Coequalizer}( D ) )[123X.[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow A )_{i =
  1  \dots  n}[123X,  and  a  morphism  for  method  selection.  The  output is the
  projection [23X\pi: A \rightarrow \mathrm{Coequalizer}( D )[123X.[133X
  
  [1X6.10-5 ProjectionOntoCoequalizerWithGivenCoequalizer[101X
  
  [33X[1;0Y[29X[2XProjectionOntoCoequalizerWithGivenCoequalizer[102X( [3XD[103X, [3XC[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( A, C )[123X.[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow A )_{i =
  1  \dots  n}[123X,  and  an object [23XC = \mathrm{Coequalizer}(D)[123X. The output is the
  projection [23X\pi: A \rightarrow C[123X.[133X
  
  [1X6.10-6 UniversalMorphismFromCoequalizer[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromCoequalizer[102X( [3XD[103X, [3Xtau[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Coequalizer}(D), T )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow A )_{i =
  1  \dots  n}[123X  and  a  morphism  [23X\tau:  A \rightarrow T [123X such that [23X\tau \circ
  \beta_i  \sim_{B,T}  \tau \circ \beta_j[123X for all pairs [23Xi,j[123X. The output is the
  morphism  [23Xu(  \tau  ):  \mathrm{Coequalizer}(D)  \rightarrow  T[123X given by the
  universal property of the coequalizer.[133X
  
  [1X6.10-7 UniversalMorphismFromCoequalizerWithGivenCoequalizer[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromCoequalizerWithGivenCoequalizer[102X( [3XD[103X, [3Xtau[103X, [3XC[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( C, T )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow A )_{i =
  1  \dots  n}[123X, a morphism [23X\tau: A \rightarrow T [123X such that [23X\tau \circ \beta_i
  \sim_{B,T}  \tau  \circ  \beta_j[123X, and an object [23XC = \mathrm{Coequalizer}(D)[123X.
  The output is the morphism [23Xu( \tau ): C \rightarrow T[123X given by the universal
  property of the coequalizer.[133X
  
  [1X6.10-8 AddCoequalizer[101X
  
  [33X[1;0Y[29X[2XAddCoequalizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X to the category for the basic operation [10XCoequalizer[110X. [23XF: (
  (\beta_i: B \rightarrow A)_{i = 1 \dots n} ) \mapsto C[123X[133X
  
  [1X6.10-9 AddProjectionOntoCoequalizer[101X
  
  [33X[1;0Y[29X[2XAddProjectionOntoCoequalizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionOntoCoequalizer[110X.  [23XF: ( (\beta_i: B \rightarrow A)_{i = 1 \dots n},
  k ) \mapsto \pi[123X[133X
  
  [1X6.10-10 AddProjectionOntoCoequalizerWithGivenCoequalizer[101X
  
  [33X[1;0Y[29X[2XAddProjectionOntoCoequalizerWithGivenCoequalizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionOntoCoequalizerWithGivenCoequalizer[110X.  [23XF: ( (\beta_i: B \rightarrow
  A)_{i = 1 \dots n}, C) \mapsto \pi[123X[133X
  
  [1X6.10-11 AddUniversalMorphismFromCoequalizer[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromCoequalizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromCoequalizer[110X.  [23XF:  (  (\beta_i:  B \rightarrow A)_{i = 1
  \dots n}, \tau ) \mapsto u(\tau)[123X[133X
  
  [1X6.10-12 AddUniversalMorphismFromCoequalizerWithGivenCoequalizer[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromCoequalizerWithGivenCoequalizer[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromCoequalizerWithGivenCoequalizer[110X.   [23XF:   (  (\beta_i:  B
  \rightarrow A)_{i = 1 \dots n}, \tau, C ) \mapsto u(\tau)[123X[133X
  
  [1X6.10-13 CoequalizerFunctorial[101X
  
  [33X[1;0Y[29X[2XCoequalizerFunctorial[102X( [3XLs[103X, [3Xmu[103X, [3XLr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism in [23X\mathrm{Hom}(\mathrm{Coequalizer}( ( \beta_i )_{i=1
            \dots n} ), \mathrm{Coequalizer}( ( \beta_i' )_{i=1 \dots n} ))[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XL_s = ( \beta_i: B \rightarrow A )_{i
  =  1 \dots n}[123X, a morphism [23X\mu: A \rightarrow A'[123X, and a list of morphisms [23XL_r
  =  (  \beta_i': B' \rightarrow A' )_{i = 1 \dots n}[123X such that there exists a
  morphism [23X\beta: B \rightarrow B'[123X such that [23X\beta_i' \circ \beta \sim_{B, A'}
  \mu  \circ  \beta_i[123X  for  [23Xi  =  1,  \dots  n[123X.  The  output  is  the morphism
  [23X\mathrm{Coequalizer}(      (     \beta_i     )_{i=1}^n     )     \rightarrow
  \mathrm{Coequalizer}(  (  \beta_i'  )_{i=1}^n )[123X given by the functorality of
  the coequalizer.[133X
  
  [1X6.10-14 CoequalizerFunctorialWithGivenCoequalizers[101X
  
  [33X[1;0Y[29X[2XCoequalizerFunctorialWithGivenCoequalizers[102X( [3Xs[103X, [3XLs[103X, [3Xmu[103X, [3XLr[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe arguments are an object [23Xs = \mathrm{Coequalizer}( ( \beta_i )_{i=1}^n )[123X,
  a  list  of  morphisms [23XL_s = ( \beta_i: B \rightarrow A )_{i = 1 \dots n}[123X, a
  morphism [23X\mu: A \rightarrow A'[123X, and a list of morphisms [23XL_r = ( \beta_i': B'
  \rightarrow  A' )_{i = 1 \dots n}[123X such that there exists a morphism [23X\beta: B
  \rightarrow B'[123X such that [23X\beta_i' \circ \beta \sim_{B, A'} \mu \circ \beta_i[123X
  for  [23Xi  =  1,  \dots  n[123X,  and an object [23Xr = \mathrm{Coequalizer}( ( \beta_i'
  )_{i=1}^n  )[123X.  The  output  is  the  morphism  [23Xs  \rightarrow r[123X given by the
  functorality of the coequalizer.[133X
  
  [1X6.10-15 AddCoequalizerFunctorialWithGivenCoequalizers[101X
  
  [33X[1;0Y[29X[2XAddCoequalizerFunctorialWithGivenCoequalizers[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XCoequalizerFunctorialWithGivenCoequalizers[110X.  [23XF:  (  \mathrm{Coequalizer}(  (
  \beta_i  )_{i=1}^n  ),  ( \beta_i: B \rightarrow A )_{i = 1 \dots n}, \mu: A
  \rightarrow   A',  (  \beta_i':  B'  \rightarrow  A'  )_{i  =  1  \dots  n},
  \mathrm{Coequalizer}(     (     \beta_i'     )_{i=1}^n     )    )    \mapsto
  (\mathrm{Coequalizer}(     (     \beta_i     )_{i=1}^n     )     \rightarrow
  \mathrm{Coequalizer}( ( \beta_i' )_{i=1}^n ) )[123X[133X
  
  
  [1X6.11 [33X[0;0YFiber Product[133X[101X
  
  [33X[0;0YFor  an  integer  [23Xn  \geq 1[123X and a given list of morphisms [23XD = ( \beta_i: P_i
  \rightarrow  B  )_{i  =  1  \dots n}[123X, a fiber product of [23XD[123X consists of three
  parts:[133X
  
  [30X    [33X[0;6Yan object [23XP[123X,[133X
  
  [30X    [33X[0;6Ya list of morphisms [23X\pi = ( \pi_i: P \rightarrow P_i )_{i = 1 \dots n}[123X
        such  that [23X\beta_i \circ \pi_i \sim_{P, B} \beta_j \circ \pi_j[123X for all
        pairs [23Xi,j[123X.[133X
  
  [30X    [33X[0;6Ya dependent function [23Xu[123X mapping each list of morphisms [23X\tau = ( \tau_i:
        T \rightarrow P_i )[123X such that [23X\beta_i \circ \tau_i \sim_{T, B} \beta_j
        \circ  \tau_j[123X for all pairs [23Xi,j[123X to a morphism [23Xu( \tau ): T \rightarrow
        P[123X  such that [23X\pi_i \circ u( \tau ) \sim_{T, P_i} \tau_i[123X for all [23Xi = 1,
        \dots, n[123X.[133X
  
  [33X[0;0YThe  triple [23X( P, \pi, u )[123X is called a [13Xfiber product[113X of [23XD[123X if the morphisms [23Xu(
  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote the
  object  [23XP[123X  of  such  a  triple  by [23X\mathrm{FiberProduct}(D)[123X. We say that the
  morphism  [23Xu(  \tau  )[123X  is  induced  by  the  [13Xuniversal property of the fiber
  product[113X.  [23X\\  [123X  [23X\mathrm{FiberProduct}[123X is a functorial operation. This means:
  For  a  second  diagram [23XD' = (\beta_i': P_i' \rightarrow B')_{i = 1 \dots n}[123X
  and  a  natural  morphism  between  pullback diagrams (i.e., a collection of
  morphisms   [23X(\mu_i:   P_i   \rightarrow  P'_i)_{i=1\dots  n}[123X  and  [23X\beta:  B
  \rightarrow  B'[123X  such  that  [23X\beta_i'  \circ \mu_i \sim_{P_i,B'} \beta \circ
  \beta_i[123X for [23Xi = 1, \dots, n[123X) we obtain a morphism [23X\mathrm{FiberProduct}( D )
  \rightarrow \mathrm{FiberProduct}( D' )[123X.[133X
  
  [1X6.11-1 IsomorphismFromFiberProductToKernelOfDiagonalDifference[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromFiberProductToKernelOfDiagonalDifference[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X.  The output is a morphism [23X\mathrm{FiberProduct}(D) \rightarrow
  \Delta[123X,  where  [23X\Delta[123X  denotes  the  kernel object equalizing the morphisms
  [23X\beta_i[123X.[133X
  
  [1X6.11-2 IsomorphismFromFiberProductToKernelOfDiagonalDifferenceOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromFiberProductToKernelOfDiagonalDifferenceOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1  \dots n}[123X and a morphism for method selection. The output is a morphism
  [23X\mathrm{FiberProduct}(D) \rightarrow \Delta[123X, where [23X\Delta[123X denotes the kernel
  object equalizing the morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-3 AddIsomorphismFromFiberProductToKernelOfDiagonalDifference[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromFiberProductToKernelOfDiagonalDifference[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromFiberProductToKernelOfDiagonalDifference[110X. [23XF: ( ( \beta_i: P_i
  \rightarrow   B  )_{i  =  1  \dots  n}  )  \mapsto  \mathrm{FiberProduct}(D)
  \rightarrow \Delta[123X[133X
  
  [1X6.11-4 IsomorphismFromKernelOfDiagonalDifferenceToFiberProduct[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromKernelOfDiagonalDifferenceToFiberProduct[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1    \dots    n}[123X.    The   output   is   a   morphism   [23X\Delta   \rightarrow
  \mathrm{FiberProduct}(D)[123X,  where [23X\Delta[123X denotes the kernel object equalizing
  the morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-5 IsomorphismFromKernelOfDiagonalDifferenceToFiberProductOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromKernelOfDiagonalDifferenceToFiberProductOp[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\Delta \rightarrow \mathrm{FiberProduct}(D)[123X, where [23X\Delta[123X denotes the kernel
  object equalizing the morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-6 AddIsomorphismFromKernelOfDiagonalDifferenceToFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromKernelOfDiagonalDifferenceToFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromKernelOfDiagonalDifferenceToFiberProduct[110X. [23XF: ( ( \beta_i: P_i
  \rightarrow   B   )_{i   =   1   \dots   n}  )  \mapsto  \Delta  \rightarrow
  \mathrm{FiberProduct}(D)[123X[133X
  
  [1X6.11-7 IsomorphismFromFiberProductToEqualizerOfDirectProductDiagram[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromFiberProductToEqualizerOfDirectProductDiagram[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X.  The output is a morphism [23X\mathrm{FiberProduct}(D) \rightarrow
  \Delta[123X,  where  [23X\Delta[123X  denotes  the equalizer of the product diagram of the
  morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-8 IsomorphismFromFiberProductToEqualizerOfDirectProductDiagramOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromFiberProductToEqualizerOfDirectProductDiagramOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1  \dots n}[123X and a morphism for method selection. The output is a morphism
  [23X\mathrm{FiberProduct}(D)   \rightarrow  \Delta[123X,  where  [23X\Delta[123X  denotes  the
  equalizer of the product diagram of the morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-9 AddIsomorphismFromFiberProductToEqualizerOfDirectProductDiagram[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromFiberProductToEqualizerOfDirectProductDiagram[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromFiberProductToEqualizerOfDirectProductDiagram[110X.    [23XF:    (   (
  \beta_i:    P_i    \rightarrow   B   )_{i   =   1   \dots   n}   )   \mapsto
  \mathrm{FiberProduct}(D) \rightarrow \Delta[123X[133X
  
  [1X6.11-10 IsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1    \dots    n}[123X.    The   output   is   a   morphism   [23X\Delta   \rightarrow
  \mathrm{FiberProduct}(D)[123X,  where [23X\Delta[123X denotes the equalizer of the product
  diagram of the morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-11 IsomorphismFromEqualizerOfDirectProductDiagramToFiberProductOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromEqualizerOfDirectProductDiagramToFiberProductOp[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\Delta   \rightarrow  \mathrm{FiberProduct}(D)[123X,  where  [23X\Delta[123X  denotes  the
  equalizer of the product diagram of the morphisms [23X\beta_i[123X.[133X
  
  [1X6.11-12 AddIsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct[110X.    [23XF:    (   (
  \beta_i:  P_i  \rightarrow  B )_{i = 1 \dots n} ) \mapsto \Delta \rightarrow
  \mathrm{FiberProduct}(D)[123X[133X
  
  [1X6.11-13 DirectSumDiagonalDifference[101X
  
  [33X[1;0Y[29X[2XDirectSumDiagonalDifference[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \bigoplus_{i=1}^n P_i, B )[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X.  The  output is a morphism [23X\bigoplus_{i=1}^n P_i \rightarrow B[123X
  such that its kernel equalizes the [23X\beta_i[123X.[133X
  
  [1X6.11-14 DirectSumDiagonalDifferenceOp[101X
  
  [33X[1;0Y[29X[2XDirectSumDiagonalDifferenceOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \bigoplus_{i=1}^n P_i, B )[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\bigoplus_{i=1}^n  P_i  \rightarrow  B[123X  such  that  its kernel equalizes the
  [23X\beta_i[123X.[133X
  
  [1X6.11-15 AddDirectSumDiagonalDifference[101X
  
  [33X[1;0Y[29X[2XAddDirectSumDiagonalDifference[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XDirectSumDiagonalDifference[110X.        [23XF:       (       D       )       \mapsto
  \mathrm{DirectSumDiagonalDifference}(D)[123X[133X
  
  [1X6.11-16 FiberProductEmbeddingInDirectSum[101X
  
  [33X[1;0Y[29X[2XFiberProductEmbeddingInDirectSum[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \mathrm{FiberProduct}(D),
            \bigoplus_{i=1}^n P_i )[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X.  The  output is the natural embedding [23X\mathrm{FiberProduct}(D)
  \rightarrow \bigoplus_{i=1}^n P_i[123X.[133X
  
  [1X6.11-17 FiberProductEmbeddingInDirectSumOp[101X
  
  [33X[1;0Y[29X[2XFiberProductEmbeddingInDirectSumOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \mathrm{FiberProduct}(D),
            \bigoplus_{i=1}^n P_i )[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i =
  1  \dots  n}[123X  and a morphism for method selection. The output is the natural
  embedding [23X\mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i[123X.[133X
  
  [1X6.11-18 AddFiberProductEmbeddingInDirectSum[101X
  
  [33X[1;0Y[29X[2XAddFiberProductEmbeddingInDirectSum[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XFiberProductEmbeddingInDirectSum[110X. [23XF: ( ( \beta_i: P_i \rightarrow B )_{i = 1
  \dots  n}  )  \mapsto \mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n
  P_i[123X[133X
  
  [1X6.11-19 FiberProduct[101X
  
  [33X[1;0Y[29X[2XFiberProduct[102X( [3Xarg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience  method.  There  are two different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe  argument  is a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B
        )_{i = 1 \dots n}[123X.[133X
  
  [30X    [33X[0;6YThe  arguments  are  morphisms  [23X\beta_1:  P_1  \rightarrow  B,  \dots,
        \beta_n: P_n \rightarrow B[123X.[133X
  
  [33X[0;0YThe output is the fiber product [23X\mathrm{FiberProduct}(D)[123X.[133X
  
  [1X6.11-20 FiberProductOp[101X
  
  [33X[1;0Y[29X[2XFiberProductOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1  \dots  n}[123X and a morphism for method selection. The output is the fiber
  product [23X\mathrm{FiberProduct}(D)[123X.[133X
  
  [1X6.11-21 ProjectionInFactorOfFiberProduct[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfFiberProduct[102X( [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{FiberProduct}(D), P_k )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1  \dots  n}[123X and an integer [23Xk[123X. The output is the [23Xk[123X-th projection [23X\pi_{k}:
  \mathrm{FiberProduct}(D) \rightarrow P_k[123X.[133X
  
  [1X6.11-22 ProjectionInFactorOfFiberProductOp[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfFiberProductOp[102X( [3XD[103X, [3Xk[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{FiberProduct}(D), P_k )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1 \dots n}[123X, an integer [23Xk[123X, and a morphism for method selection. The output
  is the [23Xk[123X-th projection [23X\pi_{k}: \mathrm{FiberProduct}(D) \rightarrow P_k[123X.[133X
  
  [1X6.11-23 ProjectionInFactorOfFiberProductWithGivenFiberProduct[101X
  
  [33X[1;0Y[29X[2XProjectionInFactorOfFiberProductWithGivenFiberProduct[102X( [3XD[103X, [3Xk[103X, [3XP[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( P, P_k )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1 \dots n}[123X, an integer [23Xk[123X, and an object [23XP = \mathrm{FiberProduct}(D)[123X. The
  output is the [23Xk[123X-th projection [23X\pi_{k}: P \rightarrow P_k[123X.[133X
  
  [1X6.11-24 UniversalMorphismIntoFiberProduct[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoFiberProduct[102X( [3Xarg[103X ) [32X function[133X
  
  [33X[0;0YThis  is  a  convenience  method.  There  are two different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B
        )_{i  =  1  \dots  n}[123X  and  a  list  of  morphisms  [23X\tau = ( \tau_i: T
        \rightarrow  P_i  )[123X such that [23X\beta_i \circ \tau_i \sim_{T, B} \beta_j
        \circ  \tau_j[123X for all pairs [23Xi,j[123X. The output is the morphism [23Xu( \tau ):
        T \rightarrow \mathrm{FiberProduct}(D)[123X given by the universal property
        of the fiber product.[133X
  
  [30X    [33X[0;6YThe arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B
        )_{i  =  1  \dots  n}[123X  and morphisms [23X\tau_1: T \rightarrow P_1, \dots,
        \tau_n:  T  \rightarrow P_n[123X such that [23X\beta_i \circ \tau_i \sim_{T, B}
        \beta_j  \circ \tau_j[123X for all pairs [23Xi,j[123X. The output is the morphism [23Xu(
        \tau  ): T \rightarrow \mathrm{FiberProduct}(D)[123X given by the universal
        property of the fiber product.[133X
  
  [1X6.11-25 UniversalMorphismIntoFiberProductOp[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoFiberProductOp[102X( [3XD[103X, [3Xtau[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( T, \mathrm{FiberProduct}(D) )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1 \dots n}[123X, a list of morphisms [23X\tau = ( \tau_i: T \rightarrow P_i )[123X such
  that  [23X\beta_i  \circ  \tau_i  \sim_{T, B} \beta_j \circ \tau_j[123X for all pairs
  [23Xi,j[123X, and a morphism for method selection. The output is the morphism [23Xu( \tau
  ): T \rightarrow \mathrm{FiberProduct}(D)[123X given by the universal property of
  the fiber product.[133X
  
  [1X6.11-26 UniversalMorphismIntoFiberProductWithGivenFiberProduct[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoFiberProductWithGivenFiberProduct[102X( [3XD[103X, [3Xtau[103X, [3XP[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( T, P )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: P_i \rightarrow B )_{i
  =  1 \dots n}[123X, a list of morphisms [23X\tau = ( \tau_i: T \rightarrow P_i )[123X such
  that  [23X\beta_i  \circ  \tau_i  \sim_{T, B} \beta_j \circ \tau_j[123X for all pairs
  [23Xi,j[123X,  and an object [23XP = \mathrm{FiberProduct}(D)[123X. The output is the morphism
  [23Xu(  \tau  ):  T  \rightarrow  P[123X given by the universal property of the fiber
  product.[133X
  
  [1X6.11-27 AddFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XFiberProduct[110X. [23XF: (
  (\beta_i: P_i \rightarrow B)_{i = 1 \dots n} ) \mapsto P[123X[133X
  
  [1X6.11-28 AddProjectionInFactorOfFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddProjectionInFactorOfFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionInFactorOfFiberProduct[110X.  [23XF:  ( (\beta_i: P_i \rightarrow B)_{i = 1
  \dots n}, k ) \mapsto \pi_k[123X[133X
  
  [1X6.11-29 AddProjectionInFactorOfFiberProductWithGivenFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddProjectionInFactorOfFiberProductWithGivenFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XProjectionInFactorOfFiberProductWithGivenFiberProduct[110X.  [23XF:  (  (\beta_i: P_i
  \rightarrow B)_{i = 1 \dots n}, k,P ) \mapsto \pi_k[123X[133X
  
  [1X6.11-30 AddUniversalMorphismIntoFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoFiberProduct[110X.  [23XF: ( (\beta_i: P_i \rightarrow B)_{i = 1
  \dots n}, \tau ) \mapsto u(\tau)[123X[133X
  
  [1X6.11-31 AddUniversalMorphismIntoFiberProductWithGivenFiberProduct[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoFiberProductWithGivenFiberProduct[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoFiberProductWithGivenFiberProduct[110X.  [23XF:  ( (\beta_i: P_i
  \rightarrow B)_{i = 1 \dots n}, \tau, P ) \mapsto u(\tau)[123X[133X
  
  [1X6.11-32 FiberProductFunctorial[101X
  
  [33X[1;0Y[29X[2XFiberProductFunctorial[102X( [3XLs[103X, [3XLm[103X, [3XLr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{FiberProduct}( ( \beta_i )_{i=1
            \dots n} ), \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ))[123X[133X
  
  [33X[0;0YThe  arguments are three lists of morphisms [23XL_s = ( \beta_i: P_i \rightarrow
  B)_{i  =  1 \dots n}[123X, [23XL_m = ( \mu_i: P_i \rightarrow P_i' )_{i = 1 \dots n}[123X,
  [23XL_r  =  (  \beta_i':  P_i'  \rightarrow  B')_{i = 1 \dots n}[123X having the same
  length [23Xn[123X such that there exists a morphism [23X\beta: B \rightarrow B'[123X such that
  [23X\beta_i'  \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i[123X for [23Xi = 1, \dots, n[123X.
  The  output is the morphism [23X\mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n}
  )  \rightarrow  \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} )[123X given by
  the functoriality of the fiber product.[133X
  
  [1X6.11-33 FiberProductFunctorialWithGivenFiberProducts[101X
  
  [33X[1;0Y[29X[2XFiberProductFunctorialWithGivenFiberProducts[102X( [3Xs[103X, [3XLs[103X, [3XLm[103X, [3XLr[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe  arguments  are  an  object  [23Xs = \mathrm{FiberProduct}( ( \beta_i )_{i=1
  \dots  n} )[123X, three lists of morphisms [23XL_s = ( \beta_i: P_i \rightarrow B)_{i
  = 1 \dots n}[123X, [23XL_m = ( \mu_i: P_i \rightarrow P_i' )_{i = 1 \dots n}[123X, [23XL_r = (
  \beta_i': P_i' \rightarrow B')_{i = 1 \dots n}[123X having the same length [23Xn[123X such
  that  there  exists  a  morphism  [23X\beta: B \rightarrow B'[123X such that [23X\beta_i'
  \circ  \mu_i  \sim_{P_i,B'}  \beta \circ \beta_i[123X for [23Xi = 1, \dots, n[123X, and an
  object  [23Xr  = \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} )[123X. The output
  is  the  morphism  [23Xs  \rightarrow  r[123X given by the functoriality of the fiber
  product.[133X
  
  [1X6.11-34 AddFiberProductFunctorialWithGivenFiberProducts[101X
  
  [33X[1;0Y[29X[2XAddFiberProductFunctorialWithGivenFiberProducts[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XFiberProductFunctorialWithGivenFiberProducts[110X.  [23XF: ( \mathrm{FiberProduct}( (
  \beta_i  )_{i=1  \dots  n}  ), (\beta_i: P_i \rightarrow B)_{i = 1 \dots n},
  (\mu_i:  P_i  \rightarrow P_i')_{i = 1 \dots n}, (\beta_i': P_i' \rightarrow
  B')_{i = 1 \dots n}, \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ) ) )
  \mapsto  (\mathrm{FiberProduct}(  (  \beta_i  )_{i=1  \dots n} ) \rightarrow
  \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ) )[123X[133X
  
  
  [1X6.12 [33X[0;0YPushout[133X[101X
  
  [33X[0;0YFor  an  integer  [23Xn  \geq  1[123X  and a given list of morphisms [23XD = ( \beta_i: B
  \rightarrow I_i )_{i = 1 \dots n}[123X, a pushout of [23XD[123X consists of three parts:[133X
  
  [30X    [33X[0;6Yan object [23XI[123X,[133X
  
  [30X    [33X[0;6Ya  list  of  morphisms  [23X\iota  = ( \iota_i: I_i \rightarrow I )_{i = 1
        \dots  n}[123X  such  that  [23X\iota_i  \circ \beta_i \sim_{B,I} \iota_j \circ
        \beta_j[123X for all pairs [23Xi,j[123X,[133X
  
  [30X    [33X[0;6Ya dependent function [23Xu[123X mapping each list of morphisms [23X\tau = ( \tau_i:
        I_i  \rightarrow  T  )_{i  = 1 \dots n}[123X such that [23X\tau_i \circ \beta_i
        \sim_{B,T} \tau_j \circ \beta_j[123X to a morphism [23Xu( \tau ): I \rightarrow
        T[123X  such  that [23Xu( \tau ) \circ \iota_i \sim_{I_i, T} \tau_i[123X for all [23Xi =
        1, \dots, n[123X.[133X
  
  [33X[0;0YThe triple [23X( I, \iota, u )[123X is called a [13Xpushout[113X of [23XD[123X if the morphisms [23Xu( \tau
  )[123X  are  uniquely  determined  up  to  congruence of morphisms. We denote the
  object  [23XI[123X  of such a triple by [23X\mathrm{Pushout}(D)[123X. We say that the morphism
  [23Xu(  \tau  )[123X  is  induced  by  the  [13Xuniversal  property  of  the pushout[113X. [23X\\ [123X
  [23X\mathrm{Pushout}[123X is a functorial operation. This means: For a second diagram
  [23XD'  = (\beta_i': B' \rightarrow I_i')_{i = 1 \dots n}[123X and a natural morphism
  between  pushout  diagrams  (i.e.,  a  collection  of  morphisms [23X(\mu_i: I_i
  \rightarrow  I'_i)_{i=1\dots  n}[123X  and  [23X\beta:  B  \rightarrow  B'[123X  such that
  [23X\beta_i'  \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i[123X for [23Xi = 1, \dots n[123X)
  we  obtain a morphism [23X\mathrm{Pushout}( D ) \rightarrow \mathrm{Pushout}( D'
  )[123X.[133X
  
  [1X6.12-1 IsomorphismFromPushoutToCokernelOfDiagonalDifference[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromPushoutToCokernelOfDiagonalDifference[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1 \dots n}[123X. The output is a morphism [23X\mathrm{Pushout}(D) \rightarrow \Delta[123X,
  where [23X\Delta[123X denotes the cokernel object coequalizing the morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-2 IsomorphismFromPushoutToCokernelOfDiagonalDifferenceOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromPushoutToCokernelOfDiagonalDifferenceOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\mathrm{Pushout}(D)  \rightarrow  \Delta[123X,  where [23X\Delta[123X denotes the cokernel
  object coequalizing the morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-3 AddIsomorphismFromPushoutToCokernelOfDiagonalDifference[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromPushoutToCokernelOfDiagonalDifference[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromPushoutToCokernelOfDiagonalDifference[110X.  [23XF:  (  (  \beta_i:  B
  \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\mathrm{Pushout}(D) \rightarrow
  \Delta)[123X[133X
  
  [1X6.12-4 IsomorphismFromCokernelOfDiagonalDifferenceToPushout[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCokernelOfDiagonalDifferenceToPushout[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1 \dots n}[123X. The output is a morphism [23X\Delta \rightarrow \mathrm{Pushout}(D)[123X,
  where [23X\Delta[123X denotes the cokernel object coequalizing the morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-5 IsomorphismFromCokernelOfDiagonalDifferenceToPushoutOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCokernelOfDiagonalDifferenceToPushoutOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\Delta  \rightarrow  \mathrm{Pushout}(D)[123X,  where [23X\Delta[123X denotes the cokernel
  object coequalizing the morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-6 AddIsomorphismFromCokernelOfDiagonalDifferenceToPushout[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromCokernelOfDiagonalDifferenceToPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromCokernelOfDiagonalDifferenceToPushout[110X.  [23XF:  (  (  \beta_i:  B
  \rightarrow   I_i   )_{i   =  1  \dots  n}  )  \mapsto  (\Delta  \rightarrow
  \mathrm{Pushout}(D))[123X[133X
  
  [1X6.12-7 IsomorphismFromPushoutToCoequalizerOfCoproductDiagram[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromPushoutToCoequalizerOfCoproductDiagram[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1 \dots n}[123X. The output is a morphism [23X\mathrm{Pushout}(D) \rightarrow \Delta[123X,
  where  [23X\Delta[123X  denotes  the  coequalizer  of  the  coproduct  diagram of the
  morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-8 IsomorphismFromPushoutToCoequalizerOfCoproductDiagramOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromPushoutToCoequalizerOfCoproductDiagramOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\mathrm{Pushout}(D) \rightarrow \Delta[123X, where [23X\Delta[123X denotes the coequalizer
  of the coproduct diagram of the morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-9 AddIsomorphismFromPushoutToCoequalizerOfCoproductDiagram[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromPushoutToCoequalizerOfCoproductDiagram[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromPushoutToCoequalizerOfCoproductDiagram[110X.  [23XF:  (  (  \beta_i: B
  \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\mathrm{Pushout}(D) \rightarrow
  \Delta)[123X[133X
  
  [1X6.12-10 IsomorphismFromCoequalizerOfCoproductDiagramToPushout[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCoequalizerOfCoproductDiagramToPushout[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1 \dots n}[123X. The output is a morphism [23X\Delta \rightarrow \mathrm{Pushout}(D)[123X,
  where  [23X\Delta[123X  denotes  the  coequalizer  of  the  coproduct  diagram of the
  morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-11 IsomorphismFromCoequalizerOfCoproductDiagramToPushoutOp[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCoequalizerOfCoproductDiagramToPushoutOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X  and  a morphism for method selection. The output is a morphism
  [23X\Delta \rightarrow \mathrm{Pushout}(D)[123X, where [23X\Delta[123X denotes the coequalizer
  of the coproduct diagram of the morphisms [23X\beta_i[123X.[133X
  
  [1X6.12-12 AddIsomorphismFromCoequalizerOfCoproductDiagramToPushout[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromCoequalizerOfCoproductDiagramToPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromCoequalizerOfCoproductDiagramToPushout[110X.  [23XF:  (  (  \beta_i: B
  \rightarrow   I_i   )_{i   =  1  \dots  n}  )  \mapsto  (\Delta  \rightarrow
  \mathrm{Pushout}(D))[123X[133X
  
  [1X6.12-13 DirectSumCodiagonalDifference[101X
  
  [33X[1;0Y[29X[2XDirectSumCodiagonalDifference[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(B, \bigoplus_{i=1}^n I_i)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X.  The  output is a morphism [23XB \rightarrow \bigoplus_{i=1}^n I_i[123X
  such that its cokernel coequalizes the [23X\beta_i[123X.[133X
  
  [1X6.12-14 DirectSumCodiagonalDifferenceOp[101X
  
  [33X[1;0Y[29X[2XDirectSumCodiagonalDifferenceOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(B, \bigoplus_{i=1}^n I_i)[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X and a morphism for method selection. The output is a morphism [23XB
  \rightarrow  \bigoplus_{i=1}^n  I_i[123X  such  that its cokernel coequalizes the
  [23X\beta_i[123X.[133X
  
  [1X6.12-15 AddDirectSumCodiagonalDifference[101X
  
  [33X[1;0Y[29X[2XAddDirectSumCodiagonalDifference[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XDirectSumCodiagonalDifference[110X.       [23XF:       (       D       )      \mapsto
  \mathrm{DirectSumCodiagonalDifference}(D)[123X[133X
  
  [1X6.12-16 DirectSumProjectionInPushout[101X
  
  [33X[1;0Y[29X[2XDirectSumProjectionInPushout[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    I_i,
            \mathrm{Pushout}(D) )[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X.  The  output  is  the natural projection [23X\bigoplus_{i=1}^n I_i
  \rightarrow \mathrm{Pushout}(D)[123X.[133X
  
  [1X6.12-17 DirectSumProjectionInPushoutOp[101X
  
  [33X[1;0Y[29X[2XDirectSumProjectionInPushoutOp[102X( [3XD[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism    in    [23X\mathrm{Hom}(    \bigoplus_{i=1}^n    I_i,
            \mathrm{Pushout}(D) )[123X[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1  \dots  n}[123X  and a morphism for method selection. The output is the natural
  projection [23X\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)[123X.[133X
  
  [1X6.12-18 AddDirectSumProjectionInPushout[101X
  
  [33X[1;0Y[29X[2XAddDirectSumProjectionInPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XDirectSumProjectionInPushout[110X.  [23XF:  (  (  \beta_i: B \rightarrow I_i )_{i = 1
  \dots n} ) \mapsto (\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D))[123X[133X
  
  [1X6.12-19 Pushout[101X
  
  [33X[1;0Y[29X[2XPushout[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  argument is a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i =
  1 \dots n}[123X The output is the pushout [23X\mathrm{Pushout}(D)[123X.[133X
  
  [1X6.12-20 Pushout[101X
  
  [33X[1;0Y[29X[2XPushout[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThis  is  a  convenience  method.  The arguments are a morphism [23X\alpha[123X and a
  morphism [23X\beta[123X. The output is the pushout [23X\mathrm{Pushout}(\alpha, \beta)[123X.[133X
  
  [1X6.12-21 PushoutOp[101X
  
  [33X[1;0Y[29X[2XPushoutOp[102X( [3XD[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i
  =  1 \dots n}[123X and a morphism for method selection. The output is the pushout
  [23X\mathrm{Pushout}(D)[123X.[133X
  
  [1X6.12-22 InjectionOfCofactorOfPushout[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfPushout[102X( [3XD[103X, [3Xk[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )[123X.[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i
  = 1 \dots n}[123X and an integer [23Xk[123X. The output is the [23Xk[123X-th injection [23X\iota_k: I_k
  \rightarrow \mathrm{Pushout}( D )[123X.[133X
  
  [1X6.12-23 InjectionOfCofactorOfPushoutOp[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfPushoutOp[102X( [3XD[103X, [3Xk[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )[123X.[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i
  =  1 \dots n}[123X, an integer [23Xk[123X, and a morphism for method selection. The output
  is the [23Xk[123X-th injection [23X\iota_k: I_k \rightarrow \mathrm{Pushout}( D )[123X.[133X
  
  [1X6.12-24 InjectionOfCofactorOfPushoutWithGivenPushout[101X
  
  [33X[1;0Y[29X[2XInjectionOfCofactorOfPushoutWithGivenPushout[102X( [3XD[103X, [3Xk[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( I_k, I )[123X.[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i
  =  1  \dots  n}[123X,  an  integer  [23Xk[123X, and an object [23XI = \mathrm{Pushout}(D)[123X. The
  output is the [23Xk[123X-th injection [23X\iota_k: I_k \rightarrow I[123X.[133X
  
  [1X6.12-25 UniversalMorphismFromPushout[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromPushout[102X( [3Xarg[103X ) [32X function[133X
  
  [33X[0;0YThis  is  a  convenience  method.  There  are two different ways to use this
  method:[133X
  
  [30X    [33X[0;6YThe arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i
        )_{i  =  1  \dots  n}[123X  and  a  list  of morphisms [23X\tau = ( \tau_i: I_i
        \rightarrow  T  )_{i  =  1  \dots  n}[123X  such  that [23X\tau_i \circ \beta_i
        \sim_{B,T} \tau_j \circ \beta_j[123X. The output is the morphism [23Xu( \tau ):
        \mathrm{Pushout}(D)  \rightarrow  T[123X given by the universal property of
        the pushout.[133X
  
  [30X    [33X[0;6YThe arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i
        )_{i  =  1  \dots  n}[123X  and morphisms [23X\tau_1: I_1 \rightarrow T, \dots,
        \tau_n:  I_n  \rightarrow  T[123X such that [23X\tau_i \circ \beta_i \sim_{B,T}
        \tau_j   \circ  \beta_j[123X.  The  output  is  the  morphism  [23Xu(  \tau  ):
        \mathrm{Pushout}(D)  \rightarrow  T[123X given by the universal property of
        the pushout.[133X
  
  [1X6.12-26 UniversalMorphismFromPushoutOp[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromPushoutOp[102X( [3XD[103X, [3Xtau[103X, [3Xmethod_selection_morphism[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( \mathrm{Pushout}(D), T )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i
  =  1 \dots n}[123X, a list of morphisms [23X\tau = ( \tau_i: I_i \rightarrow T )_{i =
  1  \dots  n}[123X such that [23X\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j[123X,
  and  a  morphism for method selection. The output is the morphism [23Xu( \tau ):
  \mathrm{Pushout}(D)  \rightarrow  T[123X  given  by the universal property of the
  pushout.[133X
  
  [1X6.12-27 UniversalMorphismFromPushoutWithGivenPushout[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromPushoutWithGivenPushout[102X( [3XD[103X, [3Xtau[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}( I, T )[123X[133X
  
  [33X[0;0YThe  arguments are a list of morphisms [23XD = ( \beta_i: B \rightarrow I_i )_{i
  =  1 \dots n}[123X, a list of morphisms [23X\tau = ( \tau_i: I_i \rightarrow T )_{i =
  1  \dots  n}[123X such that [23X\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j[123X,
  and an object [23XI = \mathrm{Pushout}(D)[123X. The output is the morphism [23Xu( \tau ):
  I \rightarrow T[123X given by the universal property of the pushout.[133X
  
  [1X6.12-28 AddPushout[101X
  
  [33X[1;0Y[29X[2XAddPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to  the  category  for the basic operation [10XPushout[110X. [23XF: (
  (\beta_i: B \rightarrow I_i)_{i = 1 \dots n} ) \mapsto I[123X[133X
  
  [1X6.12-29 AddInjectionOfCofactorOfPushout[101X
  
  [33X[1;0Y[29X[2XAddInjectionOfCofactorOfPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInjectionOfCofactorOfPushout[110X. [23XF: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots
  n}, k ) \mapsto \iota_k[123X[133X
  
  [1X6.12-30 AddInjectionOfCofactorOfPushoutWithGivenPushout[101X
  
  [33X[1;0Y[29X[2XAddInjectionOfCofactorOfPushoutWithGivenPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XInjectionOfCofactorOfPushoutWithGivenPushout[110X.  [23XF:  ( (\beta_i: B \rightarrow
  I_i)_{i = 1 \dots n}, k, I ) \mapsto \iota_k[123X[133X
  
  [1X6.12-31 AddUniversalMorphismFromPushout[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromPushout[110X. [23XF: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots
  n}, \tau ) \mapsto u(\tau)[123X[133X
  
  [1X6.12-32 AddUniversalMorphismFromPushoutWithGivenPushout[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromPushoutWithGivenPushout[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromPushout[110X. [23XF: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots
  n}, \tau, I ) \mapsto u(\tau)[123X[133X
  
  [1X6.12-33 PushoutFunctorial[101X
  
  [33X[1;0Y[29X[2XPushoutFunctorial[102X( [3XLs[103X, [3XLm[103X, [3XLr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya  morphism  in [23X\mathrm{Hom}(\mathrm{Pushout}( ( \beta_i )_{i=1}^n
            ), \mathrm{Pushout}( ( \beta_i' )_{i=1}^n ))[123X[133X
  
  [33X[0;0YThe  arguments  are  three lists of morphisms [23XL_s = ( \beta_i: B \rightarrow
  I_i  )_{i  =  1 \dots n}[123X, [23XL_m = ( \mu_i: I_i \rightarrow I_i' )_{i = 1 \dots
  n}[123X,  [23XL_r = ( \beta_i': B' \rightarrow I_i' )_{i = 1 \dots n}[123X having the same
  length [23Xn[123X such that there exists a morphism [23X\beta: B \rightarrow B'[123X such that
  [23X\beta_i'  \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i[123X for [23Xi = 1, \dots n[123X.
  The   output  is  the  morphism  [23X\mathrm{Pushout}(  (  \beta_i  )_{i=1}^n  )
  \rightarrow   \mathrm{Pushout}(   (   \beta_i'  )_{i=1}^n  )[123X  given  by  the
  functoriality of the pushout.[133X
  
  [1X6.12-34 PushoutFunctorialWithGivenPushouts[101X
  
  [33X[1;0Y[29X[2XPushoutFunctorialWithGivenPushouts[102X( [3Xs[103X, [3XLs[103X, [3XLm[103X, [3XLr[103X, [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(s, r)[123X[133X
  
  [33X[0;0YThe  arguments  are  an  object [23Xs = \mathrm{Pushout}( ( \beta_i )_{i=1}^n )[123X,
  three  lists  of morphisms [23XL_s = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots
  n}[123X, [23XL_m = ( \mu_i: I_i \rightarrow I_i' )_{i = 1 \dots n}[123X, [23XL_r = ( \beta_i':
  B'  \rightarrow  I_i'  )_{i  = 1 \dots n}[123X having the same length [23Xn[123X such that
  there  exists  a  morphism  [23X\beta: B \rightarrow B'[123X such that [23X\beta_i' \circ
  \beta \sim_{B, I_i'} \mu_i \circ \beta_i[123X for [23Xi = 1, \dots n[123X, and an object [23Xr
  =  \mathrm{Pushout}(  (  \beta_i'  )_{i=1}^n )[123X. The output is the morphism [23Xs
  \rightarrow r[123X given by the functoriality of the pushout.[133X
  
  [1X6.12-35 AddPushoutFunctorialWithGivenPushouts[101X
  
  [33X[1;0Y[29X[2XAddPushoutFunctorialWithGivenPushouts[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XPushoutFunctorial[110X.
  [23XF:  (  \mathrm{Pushout}( ( \beta_i )_{i=1}^n ), ( \beta_i: B \rightarrow I_i
  )_{i  =  1  \dots  n},  (  \mu_i:  I_i \rightarrow I_i' )_{i = 1 \dots n}, (
  \beta_i':  B'  \rightarrow  I_i'  )_{i  =  1  \dots  n}, \mathrm{Pushout}( (
  \beta_i'  )_{i=1}^n  )  ) ) \mapsto (\mathrm{Pushout}( ( \beta_i )_{i=1}^n )
  \rightarrow \mathrm{Pushout}( ( \beta_i' )_{i=1}^n ) )[123X[133X
  
  
  [1X6.13 [33X[0;0YImage[133X[101X
  
  [33X[0;0YFor a given morphism [23X\alpha: A \rightarrow B[123X, an image of [23X\alpha[123X consists of
  four parts:[133X
  
  [30X    [33X[0;6Yan object [23XI[123X,[133X
  
  [30X    [33X[0;6Ya morphism [23Xc: A \rightarrow I[123X,[133X
  
  [30X    [33X[0;6Ya  monomorphism  [23X\iota:  I  \hookrightarrow  B[123X such that [23X\iota \circ c
        \sim_{A,B} \alpha[123X,[133X
  
  [30X    [33X[0;6Ya dependent function [23Xu[123X mapping each pair of morphisms [23X\tau = ( \tau_1:
        A  \rightarrow  T,  \tau_2:  T  \hookrightarrow  B )[123X where [23X\tau_2[123X is a
        monomorphism  such  that  [23X\tau_2  \circ  \tau_1 \sim_{A,B} \alpha[123X to a
        morphism  [23Xu(\tau):  I  \rightarrow  T[123X  such  that [23X\tau_2 \circ u(\tau)
        \sim_{I,B} \iota[123X and [23Xu(\tau) \circ c \sim_{A,T} \tau_1[123X.[133X
  
  [33X[0;0YThe [23X4[123X-tuple [23X( I, c, \iota, u )[123X is called an [13Ximage[113X of [23X\alpha[123X if the morphisms
  [23Xu(  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote
  the  object  [23XI[123X  of  such  a  [23X4[123X-tuple by [23X\mathrm{im}(\alpha)[123X. We say that the
  morphism [23Xu( \tau )[123X is induced by the [13Xuniversal property of the image[113X.[133X
  
  [1X6.13-1 IsomorphismFromImageObjectToKernelOfCokernel[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromImageObjectToKernelOfCokernel[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya      morphism      in     [23X\mathrm{Hom}(     \mathrm{im}(\alpha),
            \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) )[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha[123X. The output is the canonical morphism
  [23X\mathrm{im}(\alpha)            \rightarrow            \mathrm{KernelObject}(
  \mathrm{CokernelProjection}( \alpha ) )[123X.[133X
  
  [1X6.13-2 AddIsomorphismFromImageObjectToKernelOfCokernel[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromImageObjectToKernelOfCokernel[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromImageObjectToKernelOfCokernel[110X.    [23XF:    \alpha    \mapsto   (
  \mathrm{im}(\alpha)            \rightarrow            \mathrm{KernelObject}(
  \mathrm{CokernelProjection}( \alpha ) ) )[123X[133X
  
  [1X6.13-3 IsomorphismFromKernelOfCokernelToImageObject[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromKernelOfCokernelToImageObject[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism     in     [23X\mathrm{Hom}(     \mathrm{KernelObject}(
            \mathrm{CokernelProjection}( \alpha ) ), \mathrm{im}(\alpha) )[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha[123X. The output is the canonical morphism
  [23X\mathrm{KernelObject}(  \mathrm{CokernelProjection}(  \alpha ) ) \rightarrow
  \mathrm{im}(\alpha)[123X.[133X
  
  [1X6.13-4 AddIsomorphismFromKernelOfCokernelToImageObject[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromKernelOfCokernelToImageObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromKernelOfCokernelToImageObject[110X.    [23XF:    \alpha    \mapsto   (
  \mathrm{KernelObject}(  \mathrm{CokernelProjection}(  \alpha ) ) \rightarrow
  \mathrm{im}(\alpha) )[123X[133X
  
  [1X6.13-5 ImageObject[101X
  
  [33X[1;0Y[29X[2XImageObject[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha[123X. The output is the image [23X\mathrm{im}(
  \alpha )[123X.[133X
  
  [1X6.13-6 ImageEmbedding[101X
  
  [33X[1;0Y[29X[2XImageEmbedding[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{im}(\alpha), B)[123X[133X
  
  [33X[0;0YThe  argument is a morphism [23X\alpha: A \rightarrow B[123X. The output is the image
  embedding [23X\iota: \mathrm{im}(\alpha) \hookrightarrow B[123X.[133X
  
  [1X6.13-7 ImageEmbeddingWithGivenImageObject[101X
  
  [33X[1;0Y[29X[2XImageEmbeddingWithGivenImageObject[102X( [3Xalpha[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I, B)[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow  B[123X and an object [23XI =
  \mathrm{im}(   \alpha  )[123X.  The  output  is  the  image  embedding  [23X\iota:  I
  \hookrightarrow B[123X.[133X
  
  [1X6.13-8 CoastrictionToImage[101X
  
  [33X[1;0Y[29X[2XCoastrictionToImage[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, \mathrm{im}( \alpha ))[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  coastriction to image [23Xc: A \rightarrow \mathrm{im}( \alpha )[123X.[133X
  
  [1X6.13-9 CoastrictionToImageWithGivenImageObject[101X
  
  [33X[1;0Y[29X[2XCoastrictionToImageWithGivenImageObject[102X( [3Xalpha[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, I)[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow  B[123X and an object [23XI =
  \mathrm{im}(  \alpha  )[123X.  The  output  is  the  coastriction  to  image [23Xc: A
  \rightarrow I[123X.[133X
  
  [1X6.13-10 UniversalMorphismFromImage[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromImage[102X( [3Xalpha[103X, [3Xtau[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{im}(\alpha), T)[123X[133X
  
  [33X[0;0YThe arguments are a morphism [23X\alpha: A \rightarrow B[123X and a pair of morphisms
  [23X\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )[123X where [23X\tau_2[123X
  is  a  monomorphism  such  that  [23X\tau_2  \circ \tau_1 \sim_{A,B} \alpha[123X. The
  output  is  the morphism [23Xu(\tau): \mathrm{im}(\alpha) \rightarrow T[123X given by
  the universal property of the image.[133X
  
  [1X6.13-11 UniversalMorphismFromImageWithGivenImageObject[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismFromImageWithGivenImageObject[102X( [3Xalpha[103X, [3Xtau[103X, [3XI[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I, T)[123X[133X
  
  [33X[0;0YThe  arguments  are  a morphism [23X\alpha: A \rightarrow B[123X, a pair of morphisms
  [23X\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )[123X where [23X\tau_2[123X
  is  a  monomorphism  such that [23X\tau_2 \circ \tau_1 \sim_{A,B} \alpha[123X, and an
  object  [23XI  =  \mathrm{im}(  \alpha  )[123X.  The  output is the morphism [23Xu(\tau):
  \mathrm{im}(\alpha)  \rightarrow  T[123X  given  by the universal property of the
  image.[133X
  
  [1X6.13-12 AddImageObject[101X
  
  [33X[1;0Y[29X[2XAddImageObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function  [23XF[123X  to  the category for the basic operation [10XImageObject[110X. [23XF:
  \alpha \mapsto I[123X.[133X
  
  [1X6.13-13 AddImageEmbedding[101X
  
  [33X[1;0Y[29X[2XAddImageEmbedding[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XImageEmbedding[110X. [23XF:
  \alpha \mapsto \iota[123X.[133X
  
  [1X6.13-14 AddImageEmbeddingWithGivenImageObject[101X
  
  [33X[1;0Y[29X[2XAddImageEmbeddingWithGivenImageObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XImageEmbeddingWithGivenImageObject[110X. [23XF: (\alpha,I) \mapsto \iota[123X.[133X
  
  [1X6.13-15 AddCoastrictionToImage[101X
  
  [33X[1;0Y[29X[2XAddCoastrictionToImage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XCoastrictionToImage[110X. [23XF: \alpha \mapsto c[123X.[133X
  
  [1X6.13-16 AddCoastrictionToImageWithGivenImageObject[101X
  
  [33X[1;0Y[29X[2XAddCoastrictionToImageWithGivenImageObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XCoastrictionToImageWithGivenImageObject[110X. [23XF: (\alpha,I) \mapsto c[123X.[133X
  
  [1X6.13-17 AddUniversalMorphismFromImage[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromImage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromImage[110X. [23XF: (\alpha, \tau) \mapsto u(\tau)[123X.[133X
  
  [1X6.13-18 AddUniversalMorphismFromImageWithGivenImageObject[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismFromImageWithGivenImageObject[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismFromImageWithGivenImageObject[110X. [23XF: (\alpha, \tau, I) \mapsto
  u(\tau)[123X.[133X
  
  
  [1X6.14 [33X[0;0YCoimage[133X[101X
  
  [33X[0;0YFor  a  given morphism [23X\alpha: A \rightarrow B[123X, a coimage of [23X\alpha[123X consists
  of four parts:[133X
  
  [30X    [33X[0;6Yan object [23XC[123X,[133X
  
  [30X    [33X[0;6Yan epimorphism [23X\pi: A \twoheadrightarrow C[123X,[133X
  
  [30X    [33X[0;6Ya morphism [23Xa: C \rightarrow B[123X such that [23Xa \circ \pi \sim_{A,B} \alpha[123X,[133X
  
  [30X    [33X[0;6Ya dependent function [23Xu[123X mapping each pair of morphisms [23X\tau = ( \tau_1:
        A  \twoheadrightarrow  T, \tau_2: T \rightarrow B )[123X where [23X\tau_1[123X is an
        epimorphism  such  that  [23X\tau_2  \circ  \tau_1  \sim_{A,B} \alpha[123X to a
        morphism  [23Xu(\tau):  T  \rightarrow  C[123X such that [23Xu( \tau ) \circ \tau_1
        \sim_{A,C} \pi[123X and [23Xa \circ u( \tau ) \sim_{T,B} \tau_2[123X.[133X
  
  [33X[0;0YThe  [23X4[123X-tuple [23X( C, \pi, a, u )[123X is called a [13Xcoimage[113X of [23X\alpha[123X if the morphisms
  [23Xu(  \tau  )[123X are uniquely determined up to congruence of morphisms. We denote
  the  object  [23XC[123X  of  such a [23X4[123X-tuple by [23X\mathrm{coim}(\alpha)[123X. We say that the
  morphism [23Xu( \tau )[123X is induced by the [13Xuniversal property of the coimage[113X.[133X
  
  [1X6.14-1 MorphismFromCoimageToImage[101X
  
  [33X[1;0Y[29X[2XMorphismFromCoimageToImage[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya       morphism       in      [23X\mathrm{Hom}(\mathrm{coim}(\alpha),
            \mathrm{im}(\alpha))[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  canonical   morphism   (in   a  preabelian  category)  [23X\mathrm{coim}(\alpha)
  \rightarrow \mathrm{im}(\alpha)[123X.[133X
  
  [1X6.14-2 MorphismFromCoimageToImageWithGivenObjects[101X
  
  [33X[1;0Y[29X[2XMorphismFromCoimageToImageWithGivenObjects[102X( [3Xalpha[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(C,I)[123X[133X
  
  [33X[0;0YThe  argument  is  an object [23XC = \mathrm{coim}(\alpha)[123X, a morphism [23X\alpha: A
  \rightarrow  B[123X,  and  an  object  [23XI = \mathrm{im}(\alpha)[123X. The output is the
  canonical morphism (in a preabelian category) [23XC \rightarrow I[123X.[133X
  
  [1X6.14-3 AddMorphismFromCoimageToImageWithGivenObjects[101X
  
  [33X[1;0Y[29X[2XAddMorphismFromCoimageToImageWithGivenObjects[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XMorphismFromCoimageToImageWithGivenObjects[110X.  [23XF:  (C,  \alpha, I) \mapsto ( C
  \rightarrow I )[123X.[133X
  
  [1X6.14-4 InverseMorphismFromCoimageToImage[101X
  
  [33X[1;0Y[29X[2XInverseMorphismFromCoimageToImage[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya        morphism       in       [23X\mathrm{Hom}(\mathrm{im}(\alpha),
            \mathrm{coim}(\alpha))[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  inverse    of    the   canonical   morphism   (in   an   abelian   category)
  [23X\mathrm{im}(\alpha) \rightarrow \mathrm{coim}(\alpha)[123X.[133X
  
  [1X6.14-5 InverseMorphismFromCoimageToImageWithGivenObjects[101X
  
  [33X[1;0Y[29X[2XInverseMorphismFromCoimageToImageWithGivenObjects[102X( [3Xalpha[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(I,C)[123X[133X
  
  [33X[0;0YThe  argument  is  an object [23XC = \mathrm{coim}(\alpha)[123X, a morphism [23X\alpha: A
  \rightarrow  B[123X,  and  an  object  [23XI = \mathrm{im}(\alpha)[123X. The output is the
  inverse of the canonical morphism (in an abelian category) [23XI \rightarrow C[123X.[133X
  
  [1X6.14-6 AddInverseMorphismFromCoimageToImageWithGivenObjects[101X
  
  [33X[1;0Y[29X[2XAddInverseMorphismFromCoimageToImageWithGivenObjects[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XMorphismFromCoimageToImageWithGivenObjects[110X.  [23XF:  (C,  \alpha, I) \mapsto ( I
  \rightarrow C )[123X.[133X
  
  [1X6.14-7 IsomorphismFromCoimageToCokernelOfKernel[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCoimageToCokernelOfKernel[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya    morphism    in   [23X\mathrm{Hom}(   \mathrm{coim}(   \alpha   ),
            \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) )[123X.[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  canonical      morphism      [23X\mathrm{coim}(     \alpha     )     \rightarrow
  \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) )[123X.[133X
  
  [1X6.14-8 AddIsomorphismFromCoimageToCokernelOfKernel[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromCoimageToCokernelOfKernel[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromCoimageToCokernelOfKernel[110X. [23XF: \alpha \mapsto ( \mathrm{coim}(
  \alpha   )  \rightarrow  \mathrm{CokernelObject}(  \mathrm{KernelEmbedding}(
  \alpha ) ) )[123X.[133X
  
  [1X6.14-9 IsomorphismFromCokernelOfKernelToCoimage[101X
  
  [33X[1;0Y[29X[2XIsomorphismFromCokernelOfKernelToCoimage[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya     morphism     in    [23X\mathrm{Hom}(    \mathrm{CokernelObject}(
            \mathrm{KernelEmbedding}( \alpha ) ), \mathrm{coim}( \alpha ) )[123X.[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  canonical morphism [23X\mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha
  ) ) \rightarrow \mathrm{coim}( \alpha )[123X.[133X
  
  [1X6.14-10 AddIsomorphismFromCokernelOfKernelToCoimage[101X
  
  [33X[1;0Y[29X[2XAddIsomorphismFromCokernelOfKernelToCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XIsomorphismFromCokernelOfKernelToCoimage[110X.     [23XF:     \alpha     \mapsto    (
  \mathrm{CokernelObject}(  \mathrm{KernelEmbedding}(  \alpha  ) ) \rightarrow
  \mathrm{coim}( \alpha ) )[123X.[133X
  
  [1X6.14-11 Coimage[101X
  
  [33X[1;0Y[29X[2XCoimage[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan object[133X
  
  [33X[0;0YThe  argument is a morphism [23X\alpha[123X. The output is the coimage [23X\mathrm{coim}(
  \alpha )[123X.[133X
  
  [1X6.14-12 CoimageProjection[101X
  
  [33X[1;0Y[29X[2XCoimageProjection[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, C)[123X[133X
  
  [33X[0;0YThis  is a convenience method. The argument is an object [23XC[123X which was created
  as  a  coimage  of  a  morphism  [23X\alpha:  A \rightarrow B[123X. The output is the
  coimage projection [23X\pi: A \twoheadrightarrow C[123X.[133X
  
  [1X6.14-13 CoimageProjection[101X
  
  [33X[1;0Y[29X[2XCoimageProjection[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, \mathrm{coim}( \alpha ))[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  coimage projection [23X\pi: A \twoheadrightarrow \mathrm{coim}( \alpha )[123X.[133X
  
  [1X6.14-14 CoimageProjectionWithGivenCoimage[101X
  
  [33X[1;0Y[29X[2XCoimageProjectionWithGivenCoimage[102X( [3Xalpha[103X, [3XC[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(A, C)[123X[133X
  
  [33X[0;0YThe  arguments  are  a  morphism  [23X\alpha:  A \rightarrow B[123X and an object [23XC =
  \mathrm{coim}(\alpha)[123X.   The   output  is  the  coimage  projection  [23X\pi:  A
  \twoheadrightarrow C[123X.[133X
  
  [1X6.14-15 AstrictionToCoimage[101X
  
  [33X[1;0Y[29X[2XAstrictionToCoimage[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(C,B)[123X[133X
  
  [33X[0;0YThis  is a convenience method. The argument is an object [23XC[123X which was created
  as  a  coimage  of  a  morphism  [23X\alpha:  A \rightarrow B[123X. The output is the
  astriction to coimage [23Xa: C \rightarrow B[123X.[133X
  
  [1X6.14-16 AstrictionToCoimage[101X
  
  [33X[1;0Y[29X[2XAstrictionToCoimage[102X( [3Xalpha[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(\mathrm{coim}( \alpha ),B)[123X[133X
  
  [33X[0;0YThe  argument  is  a  morphism  [23X\alpha:  A  \rightarrow B[123X. The output is the
  astriction to coimage [23Xa: \mathrm{coim}( \alpha ) \rightarrow B[123X.[133X
  
  [1X6.14-17 AstrictionToCoimageWithGivenCoimage[101X
  
  [33X[1;0Y[29X[2XAstrictionToCoimageWithGivenCoimage[102X( [3Xalpha[103X, [3XC[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(C,B)[123X[133X
  
  [33X[0;0YThe  argument  are  a  morphism  [23X\alpha:  A  \rightarrow B[123X and an object [23XC =
  \mathrm{coim}(  \alpha  )[123X.  The  output  is  the  astriction to coimage [23Xa: C
  \rightarrow B[123X.[133X
  
  [1X6.14-18 UniversalMorphismIntoCoimage[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoCoimage[102X( [3Xalpha[103X, [3Xtau[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, \mathrm{coim}( \alpha ))[123X[133X
  
  [33X[0;0YThe arguments are a morphism [23X\alpha: A \rightarrow B[123X and a pair of morphisms
  [23X\tau  =  (  \tau_1:  A \twoheadrightarrow T, \tau_2: T \rightarrow B )[123X where
  [23X\tau_1[123X  is  an  epimorphism such that [23X\tau_2 \circ \tau_1 \sim_{A,B} \alpha[123X.
  The  output  is  the morphism [23Xu(\tau): T \rightarrow \mathrm{coim}( \alpha )[123X
  given by the universal property of the coimage.[133X
  
  [1X6.14-19 UniversalMorphismIntoCoimageWithGivenCoimage[101X
  
  [33X[1;0Y[29X[2XUniversalMorphismIntoCoimageWithGivenCoimage[102X( [3Xalpha[103X, [3Xtau[103X, [3XC[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya morphism in [23X\mathrm{Hom}(T, C)[123X[133X
  
  [33X[0;0YThe  arguments  are  a morphism [23X\alpha: A \rightarrow B[123X, a pair of morphisms
  [23X\tau  =  (  \tau_1:  A \twoheadrightarrow T, \tau_2: T \rightarrow B )[123X where
  [23X\tau_1[123X  is  an  epimorphism such that [23X\tau_2 \circ \tau_1 \sim_{A,B} \alpha[123X,
  and  an  object  [23XC  =  \mathrm{coim}(  \alpha  )[123X. The output is the morphism
  [23Xu(\tau): T \rightarrow C[123X given by the universal property of the coimage.[133X
  
  [1X6.14-20 AddCoimage[101X
  
  [33X[1;0Y[29X[2XAddCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XCoimage[110X. [23XF: \alpha
  \mapsto C[123X[133X
  
  [1X6.14-21 AddCoimageProjection[101X
  
  [33X[1;0Y[29X[2XAddCoimageProjection[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given  function [23XF[123X to the category for the basic operation [10XCoimageProjection[110X.
  [23XF: \alpha \mapsto \pi[123X[133X
  
  [1X6.14-22 AddCoimageProjectionWithGivenCoimage[101X
  
  [33X[1;0Y[29X[2XAddCoimageProjectionWithGivenCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XCoimageProjectionWithGivenCoimage[110X. [23XF: (\alpha,C) \mapsto \pi[123X[133X
  
  [1X6.14-23 AddAstrictionToCoimage[101X
  
  [33X[1;0Y[29X[2XAddAstrictionToCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XAstrictionToCoimage[110X. [23XF: \alpha \mapsto a[123X[133X
  
  [1X6.14-24 AddAstrictionToCoimageWithGivenCoimage[101X
  
  [33X[1;0Y[29X[2XAddAstrictionToCoimageWithGivenCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XAstrictionToCoimageWithGivenCoimage[110X. [23XF: (\alpha,C) \mapsto a[123X[133X
  
  [1X6.14-25 AddUniversalMorphismIntoCoimage[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoCoimage[110X. [23XF: (\alpha, \tau) \mapsto u(\tau)[123X[133X
  
  [1X6.14-26 AddUniversalMorphismIntoCoimageWithGivenCoimage[101X
  
  [33X[1;0Y[29X[2XAddUniversalMorphismIntoCoimageWithGivenCoimage[102X( [3XC[103X, [3XF[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YThe  arguments  are  a category [23XC[123X and a function [23XF[123X. This operations adds the
  given    function    [23XF[123X   to   the   category   for   the   basic   operation
  [10XUniversalMorphismIntoCoimageWithGivenCoimage[110X.  [23XF:  (\alpha,  \tau,C) \mapsto
  u(\tau)[123X[133X
  
