Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346<?xml version="1.0" encoding="UTF-8"?>12<!-- This is an automatically generated file. -->3<Chapter Label="Chapter_Universal_Objects">4<Heading>Universal Objects</Heading>56<P/>7<Section Label="Chapter_Universal_Objects_Section_Kernel">8<Heading>Kernel</Heading>910For a given morphism <Math>\alpha: A \rightarrow B</Math>, a kernel of <Math>\alpha</Math> consists of three parts:11<List>12<Item>13an object <Math>K</Math>,14</Item>15<Item>16a morphism <Math>\iota: K \rightarrow A</Math> such that <Math>\alpha \circ \iota \sim_{K,B} 0</Math>,17</Item>18<Item>19a dependent function <Math>u</Math> mapping each morphism <Math>\tau: T \rightarrow A</Math> satisfying <Math>\alpha \circ \tau \sim_{T,B} 0</Math> to a morphism <Math>u(\tau): T \rightarrow K</Math> such that <Math>\iota \circ u( \tau ) \sim_{T,A} \tau</Math>.20</Item>21</List>22The triple <Math>( K, \iota, u )</Math> is called a <Emph>kernel</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to23congruence of morphisms.24We denote the object <Math>K</Math> of such a triple by <Math>\mathrm{KernelObject}(\alpha)</Math>.25We say that the morphism <Math>u(\tau)</Math> is induced by the26<Emph>universal property of the kernel</Emph>.27<Math>\\ </Math>28<Math>\mathrm{KernelObject}</Math> is a functorial operation. This means:29for <Math>\mu: A \rightarrow A'</Math>, <Math>\nu: B \rightarrow B'</Math>,30<Math>\alpha: A \rightarrow B</Math>, <Math>\alpha': A' \rightarrow B'</Math> such that <Math>\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu</Math>,31we obtain a morphism <Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>.32<ManSection>33<Attr Arg="alpha" Name="KernelObject" Label="for IsCapCategoryMorphism"/>34<Returns>an object35</Returns>36<Description>37The argument is a morphism <Math>\alpha</Math>.38The output is the kernel <Math>K</Math> of <Math>\alpha</Math>.39</Description>40</ManSection>414243<ManSection>44<Attr Arg="alpha" Name="KernelEmbedding" Label="for IsCapCategoryMorphism"/>45<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{KernelObject}(\alpha),A)</Math>46</Returns>47<Description>48The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.49The output is the kernel embedding <Math>\iota: \mathrm{KernelObject}(\alpha) \rightarrow A</Math>.50</Description>51</ManSection>525354<ManSection>55<Oper Arg="alpha, K" Name="KernelEmbeddingWithGivenKernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>56<Returns>a morphism in <Math>\mathrm{Hom}(K,A)</Math>57</Returns>58<Description>59The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>60and an object <Math>K = \mathrm{KernelObject}(\alpha)</Math>.61The output is the kernel embedding <Math>\iota: K \rightarrow A</Math>.62</Description>63</ManSection>646566<ManSection>67<Oper Arg="alpha, tau" Name="KernelLift" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism"/>68<Returns>a morphism in <Math>\mathrm{Hom}(T,\mathrm{KernelObject}(\alpha))</Math>69</Returns>70<Description>71The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>72and a test morphism <Math>\tau: T \rightarrow A</Math> satisfying <Math>\alpha \circ \tau \sim_{T,B} 0</Math>.73The output is the morphism <Math>u(\tau): T \rightarrow \mathrm{KernelObject}(\alpha)</Math>74given by the universal property of the kernel.75</Description>76</ManSection>777879<ManSection>80<Oper Arg="alpha, tau, K" Name="KernelLiftWithGivenKernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryObject"/>81<Returns>a morphism in <Math>\mathrm{Hom}(T,K)</Math>82</Returns>83<Description>84The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,85a test morphism <Math>\tau: T \rightarrow A</Math> satisfying <Math>\alpha \circ \tau \sim_{T,B} 0</Math>,86and an object <Math>K = \mathrm{KernelObject}(\alpha)</Math>.87The output is the morphism <Math>u(\tau): T \rightarrow K</Math>88given by the universal property of the kernel.89</Description>90</ManSection>919293<ManSection>94<Oper Arg="C, F" Name="AddKernelObject" Label="for IsCapCategory, IsFunction"/>95<Returns>nothing96</Returns>97<Description>98The arguments are a category <Math>C</Math> and a function <Math>F</Math>.99This operations adds the given function <Math>F</Math>100to the category for the basic operation <C>KernelObject</C>.101<Math>F: \alpha \mapsto \mathrm{KernelObject}(\alpha)</Math>.102</Description>103</ManSection>104105106<ManSection>107<Oper Arg="C, F" Name="AddKernelEmbedding" Label="for IsCapCategory, IsFunction"/>108<Returns>nothing109</Returns>110<Description>111The arguments are a category <Math>C</Math> and a function <Math>F</Math>.112This operations adds the given function <Math>F</Math>113to the category for the basic operation <C>KernelEmbedding</C>.114<Math>F: \alpha \mapsto \iota</Math>.115</Description>116</ManSection>117118119<ManSection>120<Oper Arg="C, F" Name="AddKernelEmbeddingWithGivenKernelObject" Label="for IsCapCategory, IsFunction"/>121<Returns>nothing122</Returns>123<Description>124The arguments are a category <Math>C</Math> and a function <Math>F</Math>.125This operations adds the given function <Math>F</Math>126to the category for the basic operation <C>KernelEmbeddingWithGivenKernelObject</C>.127<Math>F: (\alpha, K) \mapsto \iota</Math>.128</Description>129</ManSection>130131132<ManSection>133<Oper Arg="C, F" Name="AddKernelLift" Label="for IsCapCategory, IsFunction"/>134<Returns>nothing135</Returns>136<Description>137The arguments are a category <Math>C</Math> and a function <Math>F</Math>.138This operations adds the given function <Math>F</Math>139to the category for the basic operation <C>KernelLift</C>.140<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>.141</Description>142</ManSection>143144145<ManSection>146<Oper Arg="C, F" Name="AddKernelLiftWithGivenKernelObject" Label="for IsCapCategory, IsFunction"/>147<Returns>nothing148</Returns>149<Description>150The arguments are a category <Math>C</Math> and a function <Math>F</Math>.151This operations adds the given function <Math>F</Math>152to the category for the basic operation <C>KernelLiftWithGivenKernelObject</C>.153<Math>F: (\alpha, \tau, K) \mapsto u</Math>.154</Description>155</ManSection>156157158<ManSection>159<Oper Arg="L" Name="KernelObjectFunctorial" Label="for IsList"/>160<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{KernelObject}( \alpha ), \mathrm{KernelObject}( \alpha' ) )</Math>161</Returns>162<Description>163The argument is a list <Math>L = [ \alpha: A \rightarrow B, [ \mu: A \rightarrow A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ]</Math> of morphisms.164The output is the morphism165<Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>166given by the functorality of the kernel.167</Description>168</ManSection>169170171<ManSection>172<Oper Arg="alpha, mu, alpha_prime" Name="KernelObjectFunctorial" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryMorphism"/>173<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{KernelObject}( \alpha ), \mathrm{KernelObject}( \alpha' ) )</Math>174</Returns>175<Description>176The arguments are three morphisms177<Math>\alpha: A \rightarrow B</Math>, <Math>\mu: A \rightarrow A'</Math>, <Math>\alpha': A' \rightarrow B'</Math>.178The output is the morphism179<Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>180given by the functorality of the kernel.181</Description>182</ManSection>183184185<ManSection>186<Oper Arg="s, alpha, mu, alpha_prime, r" Name="KernelObjectFunctorialWithGivenKernelObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryMorphism,IsCapCategoryMorphism, IsCapCategoryObject"/>187<Returns>a morphism in <Math>\mathrm{Hom}( s, r )</Math>188</Returns>189<Description>190The arguments are an object <Math>s = \mathrm{KernelObject}( \alpha )</Math>,191three morphisms192<Math>\alpha: A \rightarrow B</Math>, <Math>\mu: A \rightarrow A'</Math>, <Math>\alpha': A' \rightarrow B'</Math>,193and an object <Math>r = \mathrm{KernelObject}( \alpha' )</Math>.194The output is the morphism195<Math>\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )</Math>196given by the functorality of the kernel.197</Description>198</ManSection>199200201<ManSection>202<Oper Arg="C, F" Name="AddKernelObjectFunctorialWithGivenKernelObjects" Label="for IsCapCategory, IsFunction"/>203<Returns>nothing204</Returns>205<Description>206The arguments are a category <Math>C</Math> and a function <Math>F</Math>.207This operations adds the given function <Math>F</Math>208to the category for the basic operation <C>KernelObjectFunctorialWithGivenKernelObjects</C>.209<Math>F: (\mathrm{KernelObject}( \alpha ), \alpha, \mu, \alpha', \mathrm{KernelObject}( \alpha' )) \mapsto (\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' ))</Math>.210</Description>211</ManSection>212213214</Section>215216217<Section Label="Chapter_Universal_Objects_Section_Cokernel">218<Heading>Cokernel</Heading>219220For a given morphism <Math>\alpha: A \rightarrow B</Math>, a cokernel of <Math>\alpha</Math> consists of three parts:221<List>222<Item>223an object <Math>K</Math>,224</Item>225<Item>226a morphism <Math>\epsilon: B \rightarrow K</Math> such that <Math>\epsilon \circ \alpha \sim_{A,K} 0</Math>,227</Item>228<Item>229a dependent function <Math>u</Math> mapping each <Math>\tau: B \rightarrow T</Math> satisfying <Math>\tau \circ \alpha \sim_{A, T} 0</Math> to a morphism <Math>u(\tau):K \rightarrow T</Math> such that <Math>u(\tau) \circ \epsilon \sim_{B,T} \tau</Math>.230</Item>231</List>232The triple <Math>( K, \epsilon, u )</Math> is called a <Emph>cokernel</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to233congruence of morphisms.234We denote the object <Math>K</Math> of such a triple by <Math>\mathrm{CokernelObject}(\alpha)</Math>.235We say that the morphism <Math>u(\tau)</Math> is induced by the236<Emph>universal property of the cokernel</Emph>.237<Math>\\ </Math>238<Math>\mathrm{CokernelObject}</Math> is a functorial operation. This means:239for <Math>\mu: A \rightarrow A'</Math>, <Math>\nu: B \rightarrow B'</Math>,240<Math>\alpha: A \rightarrow B</Math>, <Math>\alpha': A' \rightarrow B'</Math> such that <Math>\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu</Math>,241we obtain a morphism <Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>.242<ManSection>243<Attr Arg="alpha" Name="CokernelObject" Label="for IsCapCategoryMorphism"/>244<Returns>an object245</Returns>246<Description>247The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.248The output is the cokernel <Math>K</Math> of <Math>\alpha</Math>.249</Description>250</ManSection>251252253<ManSection>254<Attr Arg="alpha" Name="CokernelProjection" Label="for IsCapCategoryMorphism"/>255<Returns>a morphism in <Math>\mathrm{Hom}(B, \mathrm{CokernelObject}( \alpha ))</Math>256</Returns>257<Description>258The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.259The output is the cokernel projection <Math>\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )</Math>.260</Description>261</ManSection>262263264<ManSection>265<Oper Arg="alpha, K" Name="CokernelProjectionWithGivenCokernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>266<Returns>a morphism in <Math>\mathrm{Hom}(B, K)</Math>267</Returns>268<Description>269The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>270and an object <Math>K = \mathrm{CokernelObject}(\alpha)</Math>.271The output is the cokernel projection <Math>\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )</Math>.272</Description>273</ManSection>274275276<ManSection>277<Oper Arg="alpha, tau" Name="CokernelColift" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism"/>278<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{CokernelObject}(\alpha),T)</Math>279</Returns>280<Description>281The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>282and a test morphism <Math>\tau: B \rightarrow T</Math> satisfying <Math>\tau \circ \alpha \sim_{A, T} 0</Math>.283The output is the morphism <Math>u(\tau): \mathrm{CokernelObject}(\alpha) \rightarrow T</Math>284given by the universal property of the cokernel.285</Description>286</ManSection>287288289<ManSection>290<Oper Arg="alpha, tau, K" Name="CokernelColiftWithGivenCokernelObject" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryObject"/>291<Returns>a morphism in <Math>\mathrm{Hom}(K,T)</Math>292</Returns>293<Description>294The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,295a test morphism <Math>\tau: B \rightarrow T</Math> satisfying <Math>\tau \circ \alpha \sim_{A, T} 0</Math>,296and an object <Math>K = \mathrm{CokernelObject}(\alpha)</Math>.297The output is the morphism <Math>u(\tau): K \rightarrow T</Math>298given by the universal property of the cokernel.299</Description>300</ManSection>301302303<ManSection>304<Oper Arg="C, F" Name="AddCokernelObject" Label="for IsCapCategory, IsFunction"/>305<Returns>nothing306</Returns>307<Description>308The arguments are a category <Math>C</Math> and a function <Math>F</Math>.309This operations adds the given function <Math>F</Math>310to the category for the basic operation <C>CokernelObject</C>.311<Math>F: \alpha \mapsto K</Math>.312</Description>313</ManSection>314315316<ManSection>317<Oper Arg="C, F" Name="AddCokernelProjection" Label="for IsCapCategory, IsFunction"/>318<Returns>nothing319</Returns>320<Description>321The arguments are a category <Math>C</Math> and a function <Math>F</Math>.322This operations adds the given function <Math>F</Math>323to the category for the basic operation <C>CokernelProjection</C>.324<Math>F: \alpha \mapsto \epsilon</Math>.325</Description>326</ManSection>327328329<ManSection>330<Oper Arg="C, F" Name="AddCokernelProjectionWithGivenCokernelObject" Label="for IsCapCategory, IsFunction"/>331<Returns>nothing332</Returns>333<Description>334The arguments are a category <Math>C</Math> and a function <Math>F</Math>.335This operations adds the given function <Math>F</Math>336to the category for the basic operation <C>CokernelProjection</C>.337<Math>F: (\alpha, K) \mapsto \epsilon</Math>.338</Description>339</ManSection>340341342<ManSection>343<Oper Arg="C, F" Name="AddCokernelColift" Label="for IsCapCategory, IsFunction"/>344<Returns>nothing345</Returns>346<Description>347The arguments are a category <Math>C</Math> and a function <Math>F</Math>.348This operations adds the given function <Math>F</Math>349to the category for the basic operation <C>CokernelProjection</C>.350<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>.351</Description>352</ManSection>353354355<ManSection>356<Oper Arg="C, F" Name="AddCokernelColiftWithGivenCokernelObject" Label="for IsCapCategory, IsFunction"/>357<Returns>nothing358</Returns>359<Description>360The arguments are a category <Math>C</Math> and a function <Math>F</Math>.361This operations adds the given function <Math>F</Math>362to the category for the basic operation <C>CokernelProjection</C>.363<Math>F: (\alpha, \tau, K) \mapsto u(\tau)</Math>.364</Description>365</ManSection>366367368<ManSection>369<Oper Arg="L" Name="CokernelObjectFunctorial" Label="for IsList"/>370<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{CokernelObject}( \alpha ), \mathrm{CokernelObject}( \alpha' ))</Math>371</Returns>372<Description>373The argument is a list <Math>L = [ \alpha: A \rightarrow B, [ \mu:A \rightarrow A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ]</Math>.374The output is the morphism375<Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>376given by the functorality of the cokernel.377</Description>378</ManSection>379380381<ManSection>382<Oper Arg="alpha, nu, alpha_prime" Name="CokernelObjectFunctorial" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism, IsCapCategoryMorphism"/>383<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{CokernelObject}( \alpha ), \mathrm{CokernelObject}( \alpha' ))</Math>384</Returns>385<Description>386The arguments are three morphisms387<Math>\alpha: A \rightarrow B, \nu: B \rightarrow B', \alpha': A' \rightarrow B'</Math>.388The output is the morphism389<Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>390given by the functorality of the cokernel.391</Description>392</ManSection>393394395<ManSection>396<Oper Arg="s, alpha, nu, alpha_prime, r" Name="CokernelObjectFunctorialWithGivenCokernelObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryMorphism,IsCapCategoryMorphism, IsCapCategoryObject"/>397<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>398</Returns>399<Description>400The arguments are an object <Math>s = \mathrm{CokernelObject}( \alpha )</Math>,401three morphisms402<Math>\alpha: A \rightarrow B, \nu: B \rightarrow B', \alpha': A' \rightarrow B'</Math>,403and an object <Math>r = \mathrm{CokernelObject}( \alpha' )</Math>.404The output is the morphism405<Math>\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )</Math>406given by the functorality of the cokernel.407</Description>408</ManSection>409410411<ManSection>412<Oper Arg="C, F" Name="AddCokernelObjectFunctorialWithGivenCokernelObjects" Label="for IsCapCategory, IsFunction"/>413<Returns>nothing414</Returns>415<Description>416The arguments are a category <Math>C</Math> and a function <Math>F</Math>.417This operations adds the given function <Math>F</Math>418to the category for the basic operation <C>CokernelObjectFunctorialWithGivenCokernelObjects</C>.419<Math>F: (\mathrm{CokernelObject}( \alpha ), \alpha, \nu, \alpha', \mathrm{CokernelObject}( \alpha' )) \mapsto (\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' ))</Math>.420</Description>421</ManSection>422423424</Section>425426427<Section Label="Chapter_Universal_Objects_Section_Zero_Object">428<Heading>Zero Object</Heading>429430A zero object consists of three parts:431<List>432<Item>433an object <Math>Z</Math>,434</Item>435<Item>436a function <Math>u_{\mathrm{in}}</Math> mapping each object <Math>A</Math> to a morphism <Math>u_{\mathrm{in}}(A): A \rightarrow Z</Math>,437</Item>438<Item>439a function <Math>u_{\mathrm{out}}</Math> mapping each object <Math>A</Math> to a morphism <Math>u_{\mathrm{out}}(A): Z \rightarrow A</Math>.440</Item>441</List>442The triple <Math>(Z, u_{\mathrm{in}}, u_{\mathrm{out}})</Math> is called a <Emph>zero object</Emph> if the morphisms443<Math>u_{\mathrm{in}}(A)</Math>, <Math>u_{\mathrm{out}}(A)</Math> are uniquely determined up to congruence of morphisms.444We denote the object <Math>Z</Math> of such a triple by <Math>\mathrm{ZeroObject}</Math>.445We say that the morphisms <Math>u_{\mathrm{in}}(A)</Math> and <Math>u_{\mathrm{out}}(A)</Math> are induced by the446<Emph>universal property of the zero object</Emph>.447<ManSection>448<Attr Arg="C" Name="ZeroObject" Label="for IsCapCategory"/>449<Returns>an object450</Returns>451<Description>452The argument is a category <Math>C</Math>.453The output is a zero object <Math>Z</Math> of <Math>C</Math>.454</Description>455</ManSection>456457458<ManSection>459<Attr Arg="c" Name="ZeroObject" Label="for IsCapCategoryCell"/>460<Returns>an object461</Returns>462<Description>463This is a convenience method.464The argument is a cell <Math>c</Math>.465The output is a zero object <Math>Z</Math> of the466category <Math>C</Math> for which <Math>c \in C</Math>.467</Description>468</ManSection>469470471<ManSection>472<Attr Arg="A" Name="MorphismFromZeroObject" Label="for IsCapCategoryObject"/>473<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, A)</Math>474</Returns>475<Description>476This is a convenience method.477The argument is an object <Math>A</Math>.478It calls <Math>\mathrm{UniversalMorphismFromZeroObject}</Math> on <Math>A</Math>.479</Description>480</ManSection>481482483<ManSection>484<Attr Arg="A" Name="MorphismIntoZeroObject" Label="for IsCapCategoryObject"/>485<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{ZeroObject})</Math>486</Returns>487<Description>488This is a convenience method.489The argument is an object <Math>A</Math>.490It calls <Math>\mathrm{UniversalMorphismIntoZeroObject}</Math> on <Math>A</Math>.491</Description>492</ManSection>493494495<ManSection>496<Attr Arg="A" Name="UniversalMorphismFromZeroObject" Label="for IsCapCategoryObject"/>497<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, A)</Math>498</Returns>499<Description>500The argument is an object <Math>A</Math>.501The output is the universal morphism <Math>u_{\mathrm{out}}: \mathrm{ZeroObject} \rightarrow A</Math>.502</Description>503</ManSection>504505506<ManSection>507<Oper Arg="A, Z" Name="UniversalMorphismFromZeroObjectWithGivenZeroObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>508<Returns>a morphism in <Math>\mathrm{Hom}(Z, A)</Math>509</Returns>510<Description>511The arguments are an object <Math>A</Math>,512and a zero object <Math>Z = \mathrm{ZeroObject}</Math>.513The output is the universal morphism <Math>u_{\mathrm{out}}: Z \rightarrow A</Math>.514</Description>515</ManSection>516517518<ManSection>519<Attr Arg="A" Name="UniversalMorphismIntoZeroObject" Label="for IsCapCategoryObject"/>520<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{ZeroObject})</Math>521</Returns>522<Description>523The argument is an object <Math>A</Math>.524The output is the universal morphism <Math>u_{\mathrm{in}}: A \rightarrow \mathrm{ZeroObject}</Math>.525</Description>526</ManSection>527528529<ManSection>530<Oper Arg="A, Z" Name="UniversalMorphismIntoZeroObjectWithGivenZeroObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>531<Returns>a morphism in <Math>\mathrm{Hom}(A, Z)</Math>532</Returns>533<Description>534The arguments are an object <Math>A</Math>,535and a zero object <Math>Z = \mathrm{ZeroObject}</Math>.536The output is the universal morphism <Math>u_{\mathrm{in}}: A \rightarrow Z</Math>.537</Description>538</ManSection>539540541<ManSection>542<Attr Arg="C" Name="IsomorphismFromZeroObjectToInitialObject" Label="for IsCapCategory"/>543<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{InitialObject})</Math>544</Returns>545<Description>546The argument is a category <Math>C</Math>.547The output is the unique isomorphism <Math>\mathrm{ZeroObject} \rightarrow \mathrm{InitialObject}</Math>.548</Description>549</ManSection>550551552<ManSection>553<Attr Arg="C" Name="IsomorphismFromInitialObjectToZeroObject" Label="for IsCapCategory"/>554<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{InitialObject}, \mathrm{ZeroObject})</Math>555</Returns>556<Description>557The argument is a category <Math>C</Math>.558The output is the unique isomorphism <Math>\mathrm{InitialObject} \rightarrow \mathrm{ZeroObject}</Math>.559</Description>560</ManSection>561562563<ManSection>564<Attr Arg="C" Name="IsomorphismFromZeroObjectToTerminalObject" Label="for IsCapCategory"/>565<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{TerminalObject})</Math>566</Returns>567<Description>568The argument is a category <Math>C</Math>.569The output is the unique isomorphism <Math>\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject}</Math>.570</Description>571</ManSection>572573574<ManSection>575<Attr Arg="C" Name="IsomorphismFromTerminalObjectToZeroObject" Label="for IsCapCategory"/>576<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{TerminalObject}, \mathrm{ZeroObject})</Math>577</Returns>578<Description>579The argument is a category <Math>C</Math>.580The output is the unique isomorphism <Math>\mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject}</Math>.581</Description>582</ManSection>583584585<ManSection>586<Oper Arg="C, F" Name="AddZeroObject" Label="for IsCapCategory, IsFunction"/>587<Returns>nothing588</Returns>589<Description>590The arguments are a category <Math>C</Math> and a function <Math>F</Math>.591This operations adds the given function <Math>F</Math>592to the category for the basic operation <C>ZeroObject</C>.593<Math>F: () \mapsto \mathrm{ZeroObject}</Math>.594</Description>595</ManSection>596597598<ManSection>599<Oper Arg="C, F" Name="AddUniversalMorphismIntoZeroObject" Label="for IsCapCategory, IsFunction"/>600<Returns>nothing601</Returns>602<Description>603The arguments are a category <Math>C</Math> and a function <Math>F</Math>.604This operations adds the given function <Math>F</Math>605to the category for the basic operation <C>UniversalMorphismIntoZeroObject</C>.606<Math>F: A \mapsto u_{\mathrm{in}}(A)</Math>.607</Description>608</ManSection>609610611<ManSection>612<Oper Arg="C, F" Name="AddUniversalMorphismIntoZeroObjectWithGivenZeroObject" Label="for IsCapCategory, IsFunction"/>613<Returns>nothing614</Returns>615<Description>616The arguments are a category <Math>C</Math> and a function <Math>F</Math>.617This operations adds the given function <Math>F</Math>618to the category for the basic operation <C>UniversalMorphismIntoZeroObjectWithGivenZeroObject</C>.619<Math>F: (A, Z) \mapsto u_{\mathrm{in}}(A)</Math>.620</Description>621</ManSection>622623624<ManSection>625<Oper Arg="C, F" Name="AddUniversalMorphismFromZeroObject" Label="for IsCapCategory, IsFunction"/>626<Returns>nothing627</Returns>628<Description>629The arguments are a category <Math>C</Math> and a function <Math>F</Math>.630This operations adds the given function <Math>F</Math>631to the category for the basic operation <C>UniversalMorphismFromZeroObject</C>.632<Math>F: A \mapsto u_{\mathrm{out}}(A)</Math>.633</Description>634</ManSection>635636637<ManSection>638<Oper Arg="C, F" Name="AddUniversalMorphismFromZeroObjectWithGivenZeroObject" Label="for IsCapCategory, IsFunction"/>639<Returns>nothing640</Returns>641<Description>642The arguments are a category <Math>C</Math> and a function <Math>F</Math>.643This operations adds the given function <Math>F</Math>644to the category for the basic operation <C>UniversalMorphismFromZeroObjectWithGivenZeroObject</C>.645<Math>F: (A,Z) \mapsto u_{\mathrm{out}}(A)</Math>.646</Description>647</ManSection>648649650<ManSection>651<Oper Arg="C, F" Name="AddIsomorphismFromZeroObjectToInitialObject" Label="for IsCapCategory, IsFunction"/>652<Returns>nothing653</Returns>654<Description>655The arguments are a category <Math>C</Math> and a function <Math>F</Math>.656This operations adds the given function <Math>F</Math>657to the category for the basic operation <C>IsomorphismFromZeroObjectToInitialObject</C>.658<Math>F: () \mapsto (\mathrm{ZeroObject} \rightarrow \mathrm{InitialObject})</Math>.659</Description>660</ManSection>661662663<ManSection>664<Oper Arg="C, F" Name="AddIsomorphismFromInitialObjectToZeroObject" Label="for IsCapCategory, IsFunction"/>665<Returns>nothing666</Returns>667<Description>668The arguments are a category <Math>C</Math> and a function <Math>F</Math>.669This operations adds the given function <Math>F</Math>670to the category for the basic operation <C>IsomorphismFromInitialObjectToZeroObject</C>.671<Math>F: () \mapsto ( \mathrm{InitialObject} \rightarrow \mathrm{ZeroObject})</Math>.672</Description>673</ManSection>674675676<ManSection>677<Oper Arg="C, F" Name="AddIsomorphismFromZeroObjectToTerminalObject" Label="for IsCapCategory, IsFunction"/>678<Returns>nothing679</Returns>680<Description>681The arguments are a category <Math>C</Math> and a function <Math>F</Math>.682This operations adds the given function <Math>F</Math>683to the category for the basic operation <C>IsomorphismFromZeroObjectToTerminalObject</C>.684<Math>F: () \mapsto (\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject})</Math>.685</Description>686</ManSection>687688689<ManSection>690<Oper Arg="C, F" Name="AddIsomorphismFromTerminalObjectToZeroObject" Label="for IsCapCategory, IsFunction"/>691<Returns>nothing692</Returns>693<Description>694The arguments are a category <Math>C</Math> and a function <Math>F</Math>.695This operations adds the given function <Math>F</Math>696to the category for the basic operation <C>IsomorphismFromTerminalObjectToZeroObject</C>.697<Math>F: () \mapsto ( \mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject})</Math>.698</Description>699</ManSection>700701702<ManSection>703<Attr Arg="C" Name="ZeroObjectFunctorial" Label="for IsCapCategory"/>704<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{ZeroObject} )</Math>705</Returns>706<Description>707The argument is a category <Math>C</Math>.708The output is the unique morphism <Math>\mathrm{ZeroObject} \rightarrow \mathrm{ZeroObject}</Math>.709</Description>710</ManSection>711712713<ManSection>714<Oper Arg="C, F" Name="AddZeroObjectFunctorial" Label="for IsCapCategory, IsFunction"/>715<Returns>nothing716</Returns>717<Description>718The arguments are a category <Math>C</Math> and a function <Math>F</Math>.719This operations adds the given function <Math>F</Math>720to the category for the basic operation <C>ZeroObjectFunctorial</C>.721<Math>F: () \mapsto (T \rightarrow T)</Math>.722</Description>723</ManSection>724725726</Section>727728729<Section Label="Chapter_Universal_Objects_Section_Terminal_Object">730<Heading>Terminal Object</Heading>731732A terminal object consists of two parts:733<List>734<Item>735an object <Math>T</Math>,736</Item>737<Item>738a function <Math>u</Math> mapping each object <Math>A</Math> to a morphism <Math>u( A ): A \rightarrow T</Math>.739</Item>740</List>741The pair <Math>( T, u )</Math> is called a <Emph>terminal object</Emph> if the morphisms <Math>u( A )</Math> are uniquely determined up to742congruence of morphisms.743We denote the object <Math>T</Math> of such a pair by <Math>\mathrm{TerminalObject}</Math>.744We say that the morphism <Math>u( A )</Math> is induced by the745<Emph>universal property of the terminal object</Emph>.746<Math>\\ </Math>747<Math>\mathrm{TerminalObject}</Math> is a functorial operation. This just means:748There exists a unique morphism <Math>T \rightarrow T</Math>.749<ManSection>750<Attr Arg="C" Name="TerminalObject" Label="for IsCapCategory"/>751<Returns>an object752</Returns>753<Description>754The argument is a category <Math>C</Math>.755The output is a terminal object <Math>T</Math> of <Math>C</Math>.756</Description>757</ManSection>758759760<ManSection>761<Attr Arg="c" Name="TerminalObject" Label="for IsCapCategoryCell"/>762<Returns>an object763</Returns>764<Description>765This is a convenience method.766The argument is a cell <Math>c</Math>.767The output is a terminal object <Math>T</Math> of the768category <Math>C</Math> for which <Math>c \in C</Math>.769</Description>770</ManSection>771772773<ManSection>774<Attr Arg="A" Name="UniversalMorphismIntoTerminalObject" Label="for IsCapCategoryObject"/>775<Returns>a morphism in <Math>\mathrm{Hom}( A, \mathrm{TerminalObject} )</Math>776</Returns>777<Description>778The argument is an object <Math>A</Math>.779The output is the universal morphism <Math>u(A): A \rightarrow \mathrm{TerminalObject}</Math>.780</Description>781</ManSection>782783784<ManSection>785<Oper Arg="A, T" Name="UniversalMorphismIntoTerminalObjectWithGivenTerminalObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>786<Returns>a morphism in <Math>\mathrm{Hom}( A, T )</Math>787</Returns>788<Description>789The argument are an object <Math>A</Math>,790and an object <Math>T = \mathrm{TerminalObject}</Math>.791The output is the universal morphism <Math>u(A): A \rightarrow T</Math>.792</Description>793</ManSection>794795796<ManSection>797<Oper Arg="C, F" Name="AddTerminalObject" Label="for IsCapCategory, IsFunction"/>798<Returns>nothing799</Returns>800<Description>801The arguments are a category <Math>C</Math> and a function <Math>F</Math>.802This operations adds the given function <Math>F</Math>803to the category for the basic operation <C>TerminalObject</C>.804<Math>F: () \mapsto T</Math>.805</Description>806</ManSection>807808809<ManSection>810<Oper Arg="C, F" Name="AddUniversalMorphismIntoTerminalObject" Label="for IsCapCategory, IsFunction"/>811<Returns>nothing812</Returns>813<Description>814The arguments are a category <Math>C</Math> and a function <Math>F</Math>.815This operations adds the given function <Math>F</Math>816to the category for the basic operation <C>UniversalMorphismIntoTerminalObject</C>.817<Math>F: A \mapsto u(A)</Math>.818</Description>819</ManSection>820821822<ManSection>823<Oper Arg="C, F" Name="AddUniversalMorphismIntoTerminalObjectWithGivenTerminalObject" Label="for IsCapCategory, IsFunction"/>824<Returns>nothing825</Returns>826<Description>827The arguments are a category <Math>C</Math> and a function <Math>F</Math>.828This operations adds the given function <Math>F</Math>829to the category for the basic operation <C>UniversalMorphismIntoTerminalObjectWithGivenTerminalObject</C>.830<Math>F: (A,T) \mapsto u(A)</Math>.831</Description>832</ManSection>833834835<ManSection>836<Attr Arg="C" Name="TerminalObjectFunctorial" Label="for IsCapCategory"/>837<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{TerminalObject}, \mathrm{TerminalObject} )</Math>838</Returns>839<Description>840The argument is a category <Math>C</Math>.841The output is the unique morphism <Math>\mathrm{TerminalObject} \rightarrow \mathrm{TerminalObject}</Math>.842</Description>843</ManSection>844845846<ManSection>847<Oper Arg="C, F" Name="AddTerminalObjectFunctorial" Label="for IsCapCategory, IsFunction"/>848<Returns>nothing849</Returns>850<Description>851The arguments are a category <Math>C</Math> and a function <Math>F</Math>.852This operations adds the given function <Math>F</Math>853to the category for the basic operation <C>TerminalObjectFunctorial</C>.854<Math>F: () \mapsto (T \rightarrow T)</Math>.855</Description>856</ManSection>857858859</Section>860861862<Section Label="Chapter_Universal_Objects_Section_Initial_Object">863<Heading>Initial Object</Heading>864865An initial object consists of two parts:866<List>867<Item>868an object <Math>I</Math>,869</Item>870<Item>871a function <Math>u</Math> mapping each object <Math>A</Math> to a morphism <Math>u( A ): I \rightarrow A</Math>.872</Item>873</List>874The pair <Math>(I,u)</Math> is called a <Emph>initial object</Emph> if the morphisms <Math>u(A)</Math> are uniquely determined up to875congruence of morphisms.876We denote the object <Math>I</Math> of such a triple by <Math>\mathrm{InitialObject}</Math>.877We say that the morphism <Math>u( A )</Math> is induced by the878<Emph>universal property of the initial object</Emph>.879<Math>\\ </Math>880<Math>\mathrm{InitialObject}</Math> is a functorial operation. This just means:881There exists a unique morphisms <Math>I \rightarrow I</Math>.882<ManSection>883<Attr Arg="C" Name="InitialObject" Label="for IsCapCategory"/>884<Returns>an object885</Returns>886<Description>887The argument is a category <Math>C</Math>.888The output is an initial object <Math>I</Math> of <Math>C</Math>.889</Description>890</ManSection>891892893<ManSection>894<Attr Arg="c" Name="InitialObject" Label="for IsCapCategoryCell"/>895<Returns>an object896</Returns>897<Description>898This is a convenience method.899The argument is a cell <Math>c</Math>.900The output is an initial object <Math>I</Math> of the category <Math>C</Math>901for which <Math>c \in C</Math>.902</Description>903</ManSection>904905906<ManSection>907<Attr Arg="A" Name="UniversalMorphismFromInitialObject" Label="for IsCapCategoryObject"/>908<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{InitialObject} \rightarrow A)</Math>.909</Returns>910<Description>911The argument is an object <Math>A</Math>.912The output is the universal morphism <Math>u(A): \mathrm{InitialObject} \rightarrow A</Math>.913</Description>914</ManSection>915916917<ManSection>918<Oper Arg="A, I" Name="UniversalMorphismFromInitialObjectWithGivenInitialObject" Label="for IsCapCategoryObject, IsCapCategoryObject"/>919<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{InitialObject} \rightarrow A)</Math>.920</Returns>921<Description>922The arguments are an object <Math>A</Math>,923and an object <Math>I = \mathrm{InitialObject}</Math>.924The output is the universal morphism <Math>u(A): \mathrm{InitialObject} \rightarrow A</Math>.925</Description>926</ManSection>927928929<ManSection>930<Oper Arg="C, F" Name="AddInitialObject" Label="for IsCapCategory, IsFunction"/>931<Returns>nothing932</Returns>933<Description>934The arguments are a category <Math>C</Math> and a function <Math>F</Math>.935This operations adds the given function <Math>F</Math>936to the category for the basic operation <C>InitialObject</C>.937<Math>F: () \mapsto I</Math>.938</Description>939</ManSection>940941942<ManSection>943<Oper Arg="C, F" Name="AddUniversalMorphismFromInitialObject" Label="for IsCapCategory, IsFunction"/>944<Returns>nothing945</Returns>946<Description>947The arguments are a category <Math>C</Math> and a function <Math>F</Math>.948This operations adds the given function <Math>F</Math>949to the category for the basic operation <C>UniversalMorphismFromInitialObject</C>.950<Math>F: A \mapsto u(A)</Math>.951</Description>952</ManSection>953954955<ManSection>956<Oper Arg="C, F" Name="AddUniversalMorphismFromInitialObjectWithGivenInitialObject" Label="for IsCapCategory, IsFunction"/>957<Returns>nothing958</Returns>959<Description>960The arguments are a category <Math>C</Math> and a function <Math>F</Math>.961This operations adds the given function <Math>F</Math>962to the category for the basic operation <C>UniversalMorphismFromInitialObjectWithGivenInitialObject</C>.963<Math>F: (A,I) \mapsto u(A)</Math>.964</Description>965</ManSection>966967968<ManSection>969<Attr Arg="C" Name="InitialObjectFunctorial" Label="for IsCapCategory"/>970<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{InitialObject}, \mathrm{InitialObject} )</Math>971</Returns>972<Description>973The argument is a category <Math>C</Math>.974The output is the unique morphism <Math>\mathrm{InitialObject} \rightarrow \mathrm{InitialObject}</Math>.975</Description>976</ManSection>977978979<ManSection>980<Oper Arg="C, F" Name="AddInitialObjectFunctorial" Label="for IsCapCategory, IsFunction"/>981<Returns>nothing982</Returns>983<Description>984The arguments are a category <Math>C</Math> and a function <Math>F</Math>.985This operations adds the given function <Math>F</Math>986to the category for the basic operation <C>InitialObjectFunctorial</C>.987<Math>F: () \rightarrow ( I \rightarrow I )</Math>.988</Description>989</ManSection>990991992</Section>993994995<Section Label="Chapter_Universal_Objects_Section_Direct_Sum">996<Heading>Direct Sum</Heading>997998For a given list <Math>D = (S_1, \dots, S_n)</Math> in an Ab-category, a direct sum consists of five parts:999<List>1000<Item>1001an object <Math>S</Math>,1002</Item>1003<Item>1004a list of morphisms <Math>\pi = (\pi_i: S \rightarrow S_i)_{i = 1 \dots n}</Math>,1005</Item>1006<Item>1007a list of morphisms <Math>\iota = (\iota_i: S_i \rightarrow S)_{i = 1 \dots n}</Math>,1008</Item>1009<Item>1010a dependent function <Math>u_{\mathrm{in}}</Math> mapping every list <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>1011to a morphism <Math>u_{\mathrm{in}}(\tau): T \rightarrow S</Math> such that1012<Math>\pi_i \circ u_{\mathrm{in}}(\tau) \sim_{T,S_i} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.1013</Item>1014<Item>1015a dependent function <Math>u_{\mathrm{out}}</Math> mapping every list <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>1016to a morphism <Math>u_{\mathrm{out}}(\tau): S \rightarrow T</Math> such that1017<Math>u_{\mathrm{out}}(\tau) \circ \iota_i \sim_{S_i, T} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>,1018</Item>1019</List>1020such that1021<List>1022<Item>1023<Math>\sum_{i=1}^{n} \iota_i \circ \pi_i = \mathrm{id}_S</Math>,1024</Item>1025<Item>1026<Math>\pi_j \circ \iota_i = \delta_{i,j}</Math>,1027</Item>1028</List>1029where <Math>\delta_{i,j} \in \mathrm{Hom}( S_i, S_j )</Math> is the identity if <Math>i=j</Math>, and <Math>0</Math> otherwise.1030The <Math>5</Math>-tuple <Math>(S, \pi, \iota, u_{\mathrm{in}}, u_{\mathrm{out}})</Math> is called a <Emph>direct sum</Emph> of <Math>D</Math>.1031We denote the object <Math>S</Math> of such a <Math>5</Math>-tuple by <Math>\bigoplus_{i=1}^n S_i</Math>.1032We say that the morphisms <Math>u_{\mathrm{in}}(\tau), u_{\mathrm{out}}(\tau)</Math> are induced by the1033<Emph>universal property of the direct sum</Emph>.1034<Math>\\ </Math>1035<Math>\mathrm{DirectSum}</Math> is a functorial operation. This means:1036For <Math>(\mu_i: S_i \rightarrow S'_i)_{i=1\dots n}</Math>,1037we obtain a morphism <Math>\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i'</Math>.1038<ManSection>1039<Oper Arg="D, method_selection_object" Name="DirectSumOp" Label="for IsList, IsCapCategoryObject"/>1040<Returns>an object1041</Returns>1042<Description>1043The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>1044and an object for method selection.1045The output is the direct sum <Math>\bigoplus_{i=1}^n S_i</Math>.1046</Description>1047</ManSection>104810491050<ManSection>1051<Oper Arg="D,k" Name="ProjectionInFactorOfDirectSum" Label="for IsList, IsInt"/>1052<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, S_k )</Math>1053</Returns>1054<Description>1055The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>1056and an integer <Math>k</Math>.1057The output is the <Math>k</Math>-th projection1058<Math>\pi_k: \bigoplus_{i=1}^n S_i \rightarrow S_k</Math>.1059</Description>1060</ManSection>106110621063<ManSection>1064<Oper Arg="D,k, method_selection_object" Name="ProjectionInFactorOfDirectSumOp" Label="for IsList, IsInt, IsCapCategoryObject"/>1065<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, S_k )</Math>1066</Returns>1067<Description>1068The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1069an integer <Math>k</Math>,1070and an object for method selection.1071The output is the <Math>k</Math>-th projection1072<Math>\pi_k: \bigoplus_{i=1}^n S_i \rightarrow S_k</Math>.1073</Description>1074</ManSection>107510761077<ManSection>1078<Oper Arg="D,k,S" Name="ProjectionInFactorOfDirectSumWithGivenDirectSum" Label="for IsList, IsInt, IsCapCategoryObject"/>1079<Returns>a morphism in <Math>\mathrm{Hom}( S, S_k )</Math>1080</Returns>1081<Description>1082The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1083an integer <Math>k</Math>,1084and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.1085The output is the <Math>k</Math>-th projection1086<Math>\pi_k: S \rightarrow S_k</Math>.1087</Description>1088</ManSection>108910901091<ManSection>1092<Oper Arg="D,k" Name="InjectionOfCofactorOfDirectSum" Label="for IsList, IsInt"/>1093<Returns>a morphism in <Math>\mathrm{Hom}( S_k, \bigoplus_{i=1}^n S_i )</Math>1094</Returns>1095<Description>1096The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>1097and an integer <Math>k</Math>.1098The output is the <Math>k</Math>-th injection1099<Math>\iota_k: S_k \rightarrow \bigoplus_{i=1}^n S_i</Math>.1100</Description>1101</ManSection>110211031104<ManSection>1105<Oper Arg="D,k,method_selection_object" Name="InjectionOfCofactorOfDirectSumOp" Label="for IsList, IsInt, IsCapCategoryObject"/>1106<Returns>a morphism in <Math>\mathrm{Hom}( S_k, \bigoplus_{i=1}^n S_i )</Math>1107</Returns>1108<Description>1109The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1110an integer <Math>k</Math>,1111and an object for method selection.1112The output is the <Math>k</Math>-th injection1113<Math>\iota_k: S_k \rightarrow \bigoplus_{i=1}^n S_i</Math>.1114</Description>1115</ManSection>111611171118<ManSection>1119<Oper Arg="D,k,S" Name="InjectionOfCofactorOfDirectSumWithGivenDirectSum" Label="for IsList, IsInt, IsCapCategoryObject"/>1120<Returns>a morphism in <Math>\mathrm{Hom}( S_k, S )</Math>1121</Returns>1122<Description>1123The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1124an integer <Math>k</Math>,1125and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.1126The output is the <Math>k</Math>-th injection1127<Math>\iota_k: S_k \rightarrow S</Math>.1128</Description>1129</ManSection>113011311132<ManSection>1133<Func Arg="arg" Name="UniversalMorphismIntoDirectSum" />1134<Returns>a morphism in <Math>\mathrm{Hom}(T, \bigoplus_{i=1}^n S_i)</Math>1135</Returns>1136<Description>1137This is a convenience method.1138There are three different ways to use this method:1139<List>1140<Item>1141The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>1142and a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>.1143</Item>1144<Item>1145The argument is a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>.1146</Item>1147<Item>1148The arguments are morphisms <Math>\tau_1: T \rightarrow S_1, \dots, \tau_n: T \rightarrow S_n</Math>.1149</Item>1150</List>1151The output is the morphism1152<Math>u_{\mathrm{in}}(\tau): T \rightarrow \bigoplus_{i=1}^n S_i</Math>1153given by the universal property of the direct sum.1154</Description>1155</ManSection>115611571158<ManSection>1159<Oper Arg="D,tau,method_selection_object" Name="UniversalMorphismIntoDirectSumOp" Label="for IsList, IsList, IsCapCategoryObject"/>1160<Returns>a morphism in <Math>\mathrm{Hom}(T, \bigoplus_{i=1}^n S_i)</Math>1161</Returns>1162<Description>1163The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1164a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>,1165and an object for method selection.1166The output is the morphism1167<Math>u_{\mathrm{in}}(\tau): T \rightarrow \bigoplus_{i=1}^n S_i</Math>1168given by the universal property of the direct sum.1169</Description>1170</ManSection>117111721173<ManSection>1174<Oper Arg="D,tau,S" Name="UniversalMorphismIntoDirectSumWithGivenDirectSum" Label="for IsList, IsList, IsCapCategoryObject"/>1175<Returns>a morphism in <Math>\mathrm{Hom}(T, S)</Math>1176</Returns>1177<Description>1178The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1179a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}</Math>,1180and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.1181The output is the morphism1182<Math>u_{\mathrm{in}}(\tau): T \rightarrow S</Math>1183given by the universal property of the direct sum.1184</Description>1185</ManSection>118611871188<ManSection>1189<Func Arg="arg" Name="UniversalMorphismFromDirectSum" />1190<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^n S_i, T)</Math>1191</Returns>1192<Description>1193This is a convenience method.1194There are three different ways to use this method:1195<List>1196<Item>1197The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>1198and a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>.1199</Item>1200<Item>1201The argument is a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>.1202</Item>1203<Item>1204The arguments are morphisms <Math>S_1 \rightarrow T, \dots, S_n \rightarrow T</Math>.1205</Item>1206</List>1207The output is the morphism1208<Math>u_{\mathrm{out}}(\tau): \bigoplus_{i=1}^n S_i \rightarrow T</Math>1209given by the universal property of the direct sum.1210</Description>1211</ManSection>121212131214<ManSection>1215<Oper Arg="D, tau, method_selection_object" Name="UniversalMorphismFromDirectSumOp" Label="for IsList, IsList, IsCapCategoryObject"/>1216<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^n S_i, T)</Math>1217</Returns>1218<Description>1219The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1220a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>,1221and an object for method selection.1222The output is the morphism1223<Math>u_{\mathrm{out}}(\tau): \bigoplus_{i=1}^n S_i \rightarrow T</Math>1224given by the universal property of the direct sum.1225</Description>1226</ManSection>122712281229<ManSection>1230<Oper Arg="D, tau, S" Name="UniversalMorphismFromDirectSumWithGivenDirectSum" Label="for IsList, IsList, IsCapCategoryObject"/>1231<Returns>a morphism in <Math>\mathrm{Hom}(S, T)</Math>1232</Returns>1233<Description>1234The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>,1235a list of morphisms <Math>\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}</Math>,1236and an object <Math>S = \bigoplus_{i=1}^n S_i</Math>.1237The output is the morphism1238<Math>u_{\mathrm{out}}(\tau): S \rightarrow T</Math>1239given by the universal property of the direct sum.1240</Description>1241</ManSection>124212431244<ManSection>1245<Oper Arg="D" Name="IsomorphismFromDirectSumToDirectProduct" Label="for IsList"/>1246<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \prod_{i=1}^{n}S_i )</Math>1247</Returns>1248<Description>1249The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.1250The output is the canonical isomorphism1251<Math>\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i</Math>.1252</Description>1253</ManSection>125412551256<ManSection>1257<Oper Arg="D, method_selection_object" Name="IsomorphismFromDirectSumToDirectProductOp" Label="for IsList, IsCapCategoryObject"/>1258<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \prod_{i=1}^{n}S_i )</Math>1259</Returns>1260<Description>1261The arguments are a list of objects <Math>D = (S_1, \dots, S_n)</Math>1262and an object for method selection.1263The output is the canonical isomorphism1264<Math>\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i</Math>.1265</Description>1266</ManSection>126712681269<ManSection>1270<Oper Arg="D" Name="IsomorphismFromDirectProductToDirectSum" Label="for IsList"/>1271<Returns>a morphism in <Math>\mathrm{Hom}( \prod_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>1272</Returns>1273<Description>1274The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.1275The output is the canonical isomorphism1276<Math>\prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.1277</Description>1278</ManSection>127912801281<ManSection>1282<Oper Arg="D, method_selection_object" Name="IsomorphismFromDirectProductToDirectSumOp" Label="for IsList, IsCapCategoryObject"/>1283<Returns>a morphism in <Math>\mathrm{Hom}( \prod_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>1284</Returns>1285<Description>1286The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>1287and an object for method selection.1288The output is the canonical isomorphism1289<Math>\prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.1290</Description>1291</ManSection>129212931294<ManSection>1295<Oper Arg="D" Name="IsomorphismFromDirectSumToCoproduct" Label="for IsList"/>1296<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \bigsqcup_{i=1}^{n}S_i )</Math>1297</Returns>1298<Description>1299The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.1300The output is the canonical isomorphism1301<Math>\bigoplus_{i=1}^n S_i \rightarrow \bigsqcup_{i=1}^{n}S_i</Math>.1302</Description>1303</ManSection>130413051306<ManSection>1307<Oper Arg="D, method_selection_object" Name="IsomorphismFromDirectSumToCoproductOp" Label="for IsList, IsCapCategoryObject"/>1308<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \bigsqcup_{i=1}^{n}S_i )</Math>1309</Returns>1310<Description>1311The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>1312and an object for method selection.1313The output is the canonical isomorphism1314<Math>\bigoplus_{i=1}^n S_i \rightarrow \bigsqcup_{i=1}^{n}S_i</Math>.1315</Description>1316</ManSection>131713181319<ManSection>1320<Oper Arg="D" Name="IsomorphismFromCoproductToDirectSum" Label="for IsList"/>1321<Returns>a morphism in <Math>\mathrm{Hom}( \bigsqcup_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>1322</Returns>1323<Description>1324The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>.1325The output is the canonical isomorphism1326<Math>\bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.1327</Description>1328</ManSection>132913301331<ManSection>1332<Oper Arg="D, method_selection_object" Name="IsomorphismFromCoproductToDirectSumOp" Label="for IsList, IsCapCategoryObject"/>1333<Returns>a morphism in <Math>\mathrm{Hom}( \bigsqcup_{i=1}^{n}S_i, \bigoplus_{i=1}^n S_i )</Math>1334</Returns>1335<Description>1336The argument is a list of objects <Math>D = (S_1, \dots, S_n)</Math>1337and an object for method selection.1338The output is the canonical isomorphism1339<Math>\bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i</Math>.1340</Description>1341</ManSection>134213431344<ManSection Label="MorphismBetweenDirectSums">1345<Oper Arg="M" Name="MorphismBetweenDirectSums" Label="for IsList"/>1346<Oper Arg="S, M, T" Name="MorphismBetweenDirectSums" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>1347<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^{m}A_i, \bigoplus_{j=1}^n B_j)</Math>1348</Returns>1349<Description>1350The argument <Math>M = ( ( \phi_{i,j}: A_i \rightarrow B_j )_{j = 1 \dots n} )_{i = 1 \dots m}</Math>1351is a list of lists of morphisms.1352The output is the morphism1353<Math>\bigoplus_{i=1}^{m}A_i \rightarrow \bigoplus_{j=1}^n B_j</Math>1354defined by the matrix <Math>M</Math>.1355The extra arguments <Math>S = \bigoplus_{i=1}^{m}A_i</Math>1356and <Math>T = \bigoplus_{j=1}^n B_j</Math> are source and target of the output,1357respectively. They must be provided in case <Math>M</Math> is an empty list1358or a list of empty lists.1359</Description>1360</ManSection>136113621363<ManSection>1364<Oper Arg="M, m, n, method_selection_morphism" Name="MorphismBetweenDirectSumsOp" Label="for IsList, IsInt, IsInt, IsCapCategoryMorphism"/>1365<Returns>a morphism in <Math>\mathrm{Hom}(\bigoplus_{i=1}^{m}A_i, \bigoplus_{j=1}^n B_j)</Math>1366</Returns>1367<Description>1368The arguments are a list1369<Math>M = ( \phi_{1,1}, \phi_{1,2}, \dots, \phi_{1,n}, \phi_{2,1}, \dots, \phi_{m,n} )</Math>1370of morphisms <Math>\phi_{i,j}: A_i \rightarrow B_j</Math>,1371an integer <Math>m</Math>,1372an integer <Math>n</Math>,1373and a method selection morphism.1374The output is the morphism1375<Math>\bigoplus_{i=1}^{m}A_i \rightarrow \bigoplus_{j=1}^n B_j</Math>1376defined by the list <Math>M</Math> regarded as a matrix of dimension <Math>m \times n</Math>.1377</Description>1378</ManSection>137913801381<ManSection>1382<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectSum" Label="for IsCapCategory, IsFunction"/>1383<Returns>nothing1384</Returns>1385<Description>1386The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1387This operations adds the given function <Math>F</Math>1388to the category for the basic operation <C>ProjectionInFactorOfDirectSum</C>.1389<Math>F: (D,k) \mapsto \pi_{k}</Math>.1390</Description>1391</ManSection>139213931394<ManSection>1395<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>1396<Returns>nothing1397</Returns>1398<Description>1399The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1400This operations adds the given function <Math>F</Math>1401to the category for the basic operation <C>ProjectionInFactorOfDirectSumWithGivenDirectSum</C>.1402<Math>F: (D,k,S) \mapsto \pi_{k}</Math>.1403</Description>1404</ManSection>140514061407<ManSection>1408<Oper Arg="C, F" Name="AddInjectionOfCofactorOfDirectSum" Label="for IsCapCategory, IsFunction"/>1409<Returns>nothing1410</Returns>1411<Description>1412The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1413This operations adds the given function <Math>F</Math>1414to the category for the basic operation <C>InjectionOfCofactorOfDirectSum</C>.1415<Math>F: (D,k) \mapsto \iota_{k}</Math>.1416</Description>1417</ManSection>141814191420<ManSection>1421<Oper Arg="C, F" Name="AddInjectionOfCofactorOfDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>1422<Returns>nothing1423</Returns>1424<Description>1425The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1426This operations adds the given function <Math>F</Math>1427to the category for the basic operation <C>InjectionOfCofactorOfDirectSumWithGivenDirectSum</C>.1428<Math>F: (D,k,S) \mapsto \iota_{k}</Math>.1429</Description>1430</ManSection>143114321433<ManSection>1434<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectSum" Label="for IsCapCategory, IsFunction"/>1435<Returns>nothing1436</Returns>1437<Description>1438The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1439This operations adds the given function <Math>F</Math>1440to the category for the basic operation <C>UniversalMorphismIntoDirectSum</C>.1441<Math>F: (D,\tau) \mapsto u_{\mathrm{in}}(\tau)</Math>.1442</Description>1443</ManSection>144414451446<ManSection>1447<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>1448<Returns>nothing1449</Returns>1450<Description>1451The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1452This operations adds the given function <Math>F</Math>1453to the category for the basic operation <C>UniversalMorphismIntoDirectSumWithGivenDirectSum</C>.1454<Math>F: (D,\tau,S) \mapsto u_{\mathrm{in}}(\tau)</Math>.1455</Description>1456</ManSection>145714581459<ManSection>1460<Oper Arg="C, F" Name="AddUniversalMorphismFromDirectSum" Label="for IsCapCategory, IsFunction"/>1461<Returns>nothing1462</Returns>1463<Description>1464The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1465This operations adds the given function <Math>F</Math>1466to the category for the basic operation <C>UniversalMorphismFromDirectSum</C>.1467<Math>F: (D,\tau) \mapsto u_{\mathrm{out}}(\tau)</Math>.1468</Description>1469</ManSection>147014711472<ManSection>1473<Oper Arg="C, F" Name="AddUniversalMorphismFromDirectSumWithGivenDirectSum" Label="for IsCapCategory, IsFunction"/>1474<Returns>nothing1475</Returns>1476<Description>1477The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1478This operations adds the given function <Math>F</Math>1479to the category for the basic operation <C>UniversalMorphismFromDirectSumWithGivenDirectSum</C>.1480<Math>F: (D,\tau,S) \mapsto u_{\mathrm{out}}(\tau)</Math>.1481</Description>1482</ManSection>148314841485<ManSection>1486<Oper Arg="C, F" Name="AddIsomorphismFromDirectSumToDirectProduct" Label="for IsCapCategory, IsFunction"/>1487<Returns>nothing1488</Returns>1489<Description>1490The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1491This operations adds the given function <Math>F</Math>1492to the category for the basic operation <C>IsomorphismFromDirectSumToDirectProduct</C>.1493<Math>F: D \mapsto (\bigoplus_{i=1}^n S_i \rightarrow \prod_{i=1}^{n}S_i)</Math>.1494</Description>1495</ManSection>149614971498<ManSection>1499<Oper Arg="C, F" Name="AddIsomorphismFromDirectProductToDirectSum" Label="for IsCapCategory, IsFunction"/>1500<Returns>nothing1501</Returns>1502<Description>1503The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1504This operations adds the given function <Math>F</Math>1505to the category for the basic operation <C>IsomorphismFromDirectProductToDirectSum</C>.1506<Math>F: D \mapsto ( \prod_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i )</Math>.1507</Description>1508</ManSection>150915101511<ManSection>1512<Oper Arg="C, F" Name="AddIsomorphismFromDirectSumToCoproduct" Label="for IsCapCategory, IsFunction"/>1513<Returns>nothing1514</Returns>1515<Description>1516The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1517This operations adds the given function <Math>F</Math>1518to the category for the basic operation <C>IsomorphismFromDirectSumToCoproduct</C>.1519<Math>F: D \mapsto ( \bigoplus_{i=1}^n S_i \rightarrow \bigsqcup_{i=1}^{n}S_i )</Math>.1520</Description>1521</ManSection>152215231524<ManSection>1525<Oper Arg="C, F" Name="AddIsomorphismFromCoproductToDirectSum" Label="for IsCapCategory, IsFunction"/>1526<Returns>nothing1527</Returns>1528<Description>1529The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1530This operations adds the given function <Math>F</Math>1531to the category for the basic operation <C>IsomorphismFromCoproductToDirectSum</C>.1532<Math>F: D \mapsto ( \bigsqcup_{i=1}^{n}S_i \rightarrow \bigoplus_{i=1}^n S_i )</Math>.1533</Description>1534</ManSection>153515361537<ManSection>1538<Oper Arg="C, F" Name="AddDirectSum" Label="for IsCapCategory, IsFunction"/>1539<Returns>nothing1540</Returns>1541<Description>1542The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1543This operations adds the given function <Math>F</Math>1544to the category for the basic operation <C>DirectSum</C>.1545<Math>F: D \mapsto \bigoplus_{i=1}^n S_i</Math>.1546</Description>1547</ManSection>154815491550<ManSection>1551<Oper Arg="L" Name="DirectSumFunctorial" Label="for IsList"/>1552<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n S_i, \bigoplus_{i=1}^n S_i' )</Math>1553</Returns>1554<Description>1555The argument is a list of morphisms <Math>L = ( \mu_1: S_1 \rightarrow S_1', \dots, \mu_n: S_n \rightarrow S_n' )</Math>.1556The output is a morphism1557<Math>\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i'</Math>1558given by the functorality of the direct sum.1559</Description>1560</ManSection>156115621563<ManSection>1564<Oper Arg="d_1, L, d_2" Name="DirectSumFunctorialWithGivenDirectSums" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>1565<Returns>a morphism in <Math>\mathrm{Hom}( d_1, d_2 )</Math>1566</Returns>1567<Description>1568The arguments are an object <Math>d_1 = \bigoplus_{i=1}^n S_i</Math>,1569a list of morphisms <Math>L = ( \mu_1: S_1 \rightarrow S_1', \dots, \mu_n: S_n \rightarrow S_n' )</Math>,1570and an object <Math>d_2 = \bigoplus_{i=1}^n S_i'</Math>.1571The output is a morphism1572<Math>d_1 \rightarrow d_2</Math>1573given by the functorality of the direct sum.1574</Description>1575</ManSection>157615771578<ManSection>1579<Oper Arg="C, F" Name="AddDirectSumFunctorialWithGivenDirectSums" Label="for IsCapCategory, IsFunction"/>1580<Returns>nothing1581</Returns>1582<Description>1583The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1584This operations adds the given function <Math>F</Math>1585to the category for the basic operation <C>DirectSumFunctorialWithGivenDirectSums</C>.1586<Math>F: (\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')</Math>.1587</Description>1588</ManSection>158915901591</Section>159215931594<Section Label="Chapter_Universal_Objects_Section_Coproduct">1595<Heading>Coproduct</Heading>15961597For a given list of objects <Math>D = ( I_1, \dots, I_n )</Math>, a coproduct of <Math>D</Math> consists of three parts:1598<List>1599<Item>1600an object <Math>I</Math>,1601</Item>1602<Item>1603a list of morphisms <Math>\iota = ( \iota_i: I_i \rightarrow I )_{i = 1 \dots n}</Math>1604</Item>1605<Item>1606a dependent function <Math>u</Math> mapping each list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>1607to a morphism <Math>u( \tau ): I \rightarrow T</Math> such that <Math>u( \tau ) \circ \iota_i \sim_{I_i, T} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.1608</Item>1609</List>1610The triple <Math>( I, \iota, u )</Math> is called a <Emph>coproduct</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to1611congruence of morphisms.1612We denote the object <Math>I</Math> of such a triple by <Math>\bigsqcup_{i=1}^n I_i</Math>.1613We say that the morphism <Math>u( \tau )</Math> is induced by the1614<Emph>universal property of the coproduct</Emph>.1615<Math>\\ </Math>1616<Math>\mathrm{Coproduct}</Math> is a functorial operation. This means:1617For <Math>(\mu_i: I_i \rightarrow I'_i)_{i=1\dots n}</Math>,1618we obtain a morphism <Math>\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i'</Math>.1619<ManSection>1620<Attr Arg="D" Name="Coproduct" Label="for IsList"/>1621<Returns>an object1622</Returns>1623<Description>1624The argument is a list of objects <Math>D = ( I_1, \dots, I_n )</Math>.1625The output is the coproduct <Math>\bigsqcup_{i=1}^n I_i</Math>.1626</Description>1627</ManSection>162816291630<ManSection>1631<Oper Arg="I1, I2" Name="Coproduct" Label="for IsCapCategoryObject, IsCapCategoryObject"/>1632<Returns>an object1633</Returns>1634<Description>1635This is a convenience method.1636The arguments are two objects <Math>I_1, I_2</Math>.1637The output is the coproduct <Math>I_1 \bigsqcup I_2</Math>.1638</Description>1639</ManSection>164016411642<ManSection>1643<Oper Arg="I1, I2" Name="Coproduct" Label="for IsCapCategoryObject, IsCapCategoryObject, IsCapCategoryObject"/>1644<Returns>an object1645</Returns>1646<Description>1647This is a convenience method.1648The arguments are three objects <Math>I_1, I_2, I_3</Math>.1649The output is the coproduct <Math>I_1 \bigsqcup I_2 \bigsqcup I_3</Math>.1650</Description>1651</ManSection>165216531654<ManSection>1655<Oper Arg="D, method_selection_object" Name="CoproductOp" Label="for IsList, IsCapCategoryObject"/>1656<Returns>an object1657</Returns>1658<Description>1659The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>1660and a method selection object.1661The output is the coproduct <Math>\bigsqcup_{i=1}^n I_i</Math>.1662</Description>1663</ManSection>166416651666<ManSection>1667<Oper Arg="D,k" Name="InjectionOfCofactorOfCoproduct" Label="for IsList, IsInt"/>1668<Returns>a morphism in <Math>\mathrm{Hom}(I_k, \bigsqcup_{i=1}^n I_i)</Math>1669</Returns>1670<Description>1671The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>1672and an integer <Math>k</Math>.1673The output is the <Math>k</Math>-th injection1674<Math>\iota_k: I_k \rightarrow \bigsqcup_{i=1}^n I_i</Math>.1675</Description>1676</ManSection>167716781679<ManSection>1680<Oper Arg="D,k,method_selection_object" Name="InjectionOfCofactorOfCoproductOp" Label="for IsList, IsInt, IsCapCategoryObject"/>1681<Returns>a morphism in <Math>\mathrm{Hom}(I_k, \bigsqcup_{i=1}^n I_i)</Math>1682</Returns>1683<Description>1684The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,1685an integer <Math>k</Math>,1686and a method selection object.1687The output is the <Math>k</Math>-th injection1688<Math>\iota_k: I_k \rightarrow \bigsqcup_{i=1}^n I_i</Math>.1689</Description>1690</ManSection>169116921693<ManSection>1694<Oper Arg="D,k,I" Name="InjectionOfCofactorOfCoproductWithGivenCoproduct" Label="for IsList, IsInt, IsCapCategoryObject"/>1695<Returns>a morphism in <Math>\mathrm{Hom}(I_k, I)</Math>1696</Returns>1697<Description>1698The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,1699an integer <Math>k</Math>,1700and an object <Math>I = \bigsqcup_{i=1}^n I_i</Math>.1701The output is the <Math>k</Math>-th injection1702<Math>\iota_k: I_k \rightarrow I</Math>.1703</Description>1704</ManSection>170517061707<ManSection>1708<Func Arg="arg" Name="UniversalMorphismFromCoproduct" />1709<Returns>a morphism in <Math>\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, T)</Math>1710</Returns>1711<Description>1712This is a convenience method.1713There are three different ways to use this method.1714<List>1715<Item>1716The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,1717a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>.1718</Item>1719<Item>1720The argument is a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>.1721</Item>1722<Item>1723The arguments are morphisms <Math>\tau_1: I_1 \rightarrow T, \dots, \tau_n: I_n \rightarrow T</Math>1724</Item>1725</List>1726The output is the morphism1727<Math>u( \tau ): \bigsqcup_{i=1}^n I_i \rightarrow T</Math>1728given by the universal property of the coproduct.1729</Description>1730</ManSection>173117321733<ManSection>1734<Oper Arg="D, tau, method_selection_object" Name="UniversalMorphismFromCoproductOp" Label="for IsList, IsList, IsCapCategoryObject"/>1735<Returns>a morphism in <Math>\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, T)</Math>1736</Returns>1737<Description>1738The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,1739a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>,1740and a method selection object.1741The output is the morphism1742<Math>u( \tau ): \bigsqcup_{i=1}^n I_i \rightarrow T</Math>1743given by the universal property of the coproduct.1744</Description>1745</ManSection>174617471748<ManSection>1749<Oper Arg="D, tau, I" Name="UniversalMorphismFromCoproductWithGivenCoproduct" Label="for IsList, IsList, IsCapCategoryObject"/>1750<Returns>a morphism in <Math>\mathrm{Hom}(I, T)</Math>1751</Returns>1752<Description>1753The arguments are a list of objects <Math>D = ( I_1, \dots, I_n )</Math>,1754a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )</Math>,1755and an object <Math>I = \bigsqcup_{i=1}^n I_i</Math>.1756The output is the morphism1757<Math>u( \tau ): I \rightarrow T</Math>1758given by the universal property of the coproduct.1759</Description>1760</ManSection>176117621763<ManSection>1764<Oper Arg="C, F" Name="AddCoproduct" Label="for IsCapCategory, IsFunction"/>1765<Returns>nothing1766</Returns>1767<Description>1768The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1769This operations adds the given function <Math>F</Math>1770to the category for the basic operation <C>Coproduct</C>.1771<Math>F: ( (I_1, \dots, I_n) ) \mapsto I</Math>.1772</Description>1773</ManSection>177417751776<ManSection>1777<Oper Arg="C, F" Name="AddInjectionOfCofactorOfCoproduct" Label="for IsCapCategory, IsFunction"/>1778<Returns>nothing1779</Returns>1780<Description>1781The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1782This operations adds the given function <Math>F</Math>1783to the category for the basic operation <C>InjectionOfCofactorOfCoproduct</C>.1784<Math>F: ( (I_1, \dots, I_n), i ) \mapsto \iota_i</Math>.1785</Description>1786</ManSection>178717881789<ManSection>1790<Oper Arg="C, F" Name="AddInjectionOfCofactorOfCoproductWithGivenCoproduct" Label="for IsCapCategory, IsFunction"/>1791<Returns>nothing1792</Returns>1793<Description>1794The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1795This operations adds the given function <Math>F</Math>1796to the category for the basic operation <C>InjectionOfCofactorOfCoproductWithGivenCoproduct</C>.1797<Math>F: ( (I_1, \dots, I_n), i, I ) \mapsto \iota_i</Math>.1798</Description>1799</ManSection>180018011802<ManSection>1803<Oper Arg="C, F" Name="AddUniversalMorphismFromCoproduct" Label="for IsCapCategory, IsFunction"/>1804<Returns>nothing1805</Returns>1806<Description>1807The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1808This operations adds the given function <Math>F</Math>1809to the category for the basic operation <C>UniversalMorphismFromCoproduct</C>.1810<Math>F: ( (I_1, \dots, I_n), \tau ) \mapsto u( \tau )</Math>.1811</Description>1812</ManSection>181318141815<ManSection>1816<Oper Arg="C, F" Name="AddUniversalMorphismFromCoproductWithGivenCoproduct" Label="for IsCapCategory, IsFunction"/>1817<Returns>nothing1818</Returns>1819<Description>1820The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1821This operations adds the given function <Math>F</Math>1822to the category for the basic operation <C>UniversalMorphismFromCoproductWithGivenCoproduct</C>.1823<Math>F: ( (I_1, \dots, I_n), \tau, I ) \mapsto u( \tau )</Math>.1824</Description>1825</ManSection>182618271828<ManSection>1829<Oper Arg="L" Name="CoproductFunctorial" Label="for IsList"/>1830<Returns>a morphism in <Math>\mathrm{Hom}(\bigsqcup_{i=1}^n I_i, \bigsqcup_{i=1}^n I_i')</Math>1831</Returns>1832<Description>1833The argument is a list <Math>L = ( \mu_1: I_1 \rightarrow I_1', \dots, \mu_n: I_n \rightarrow I_n' )</Math>.1834The output is a morphism1835<Math>\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i'</Math>1836given by the functorality of the coproduct.1837</Description>1838</ManSection>183918401841<ManSection>1842<Oper Arg="s, L, r" Name="CoproductFunctorialWithGivenCoproducts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>1843<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>1844</Returns>1845<Description>1846The arguments are an object <Math>s = \bigsqcup_{i=1}^n I_i</Math>,1847a list <Math>L = ( \mu_1: I_1 \rightarrow I_1', \dots, \mu_n: I_n \rightarrow I_n' )</Math>,1848and an object <Math>r = \bigsqcup_{i=1}^n I_i'</Math>.1849The output is a morphism1850<Math>\bigsqcup_{i=1}^n I_i \rightarrow \bigsqcup_{i=1}^n I_i'</Math>1851given by the functorality of the coproduct.1852</Description>1853</ManSection>185418551856<ManSection>1857<Oper Arg="C, F" Name="AddCoproductFunctorialWithGivenCoproducts" Label="for IsCapCategory, IsFunction"/>1858<Returns>nothing1859</Returns>1860<Description>1861The arguments are a category <Math>C</Math> and a function <Math>F</Math>.1862This operations adds the given function <Math>F</Math>1863to the category for the basic operation <C>CoproductFunctorialWithGivenCoproducts</C>.1864<Math>F: (\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')</Math>.1865</Description>1866</ManSection>186718681869</Section>187018711872<Section Label="Chapter_Universal_Objects_Section_Direct_Product">1873<Heading>Direct Product</Heading>18741875For a given list of objects <Math>D = ( P_1, \dots, P_n )</Math>, a direct product of <Math>D</Math> consists of three parts:1876<List>1877<Item>1878an object <Math>P</Math>,1879</Item>1880<Item>1881a list of morphisms <Math>\pi = ( \pi_i: P \rightarrow P_i )_{i = 1 \dots n}</Math>1882</Item>1883<Item>1884a dependent function <Math>u</Math> mapping each list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>1885to a morphism <Math>u(\tau): T \rightarrow P</Math> such that <Math>\pi_i \circ u( \tau ) \sim_{T,P_i} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.1886</Item>1887</List>1888The triple <Math>( P, \pi, u )</Math> is called a <Emph>direct product</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to1889congruence of morphisms.1890We denote the object <Math>P</Math> of such a triple by <Math>\prod_{i=1}^n P_i</Math>.1891We say that the morphism <Math>u( \tau )</Math> is induced by the1892<Emph>universal property of the direct product</Emph>.1893<Math>\\ </Math>1894<Math>\mathrm{DirectProduct}</Math> is a functorial operation. This means:1895For <Math>(\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math>,1896we obtain a morphism <Math>\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i'</Math>.1897<ManSection>1898<Oper Arg="D" Name="DirectProductOp" Label="for IsList, IsCapCategoryObject"/>1899<Returns>an object1900</Returns>1901<Description>1902The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>1903and an object for method selection.1904The output is the direct product <Math>\prod_{i=1}^n P_i</Math>.1905</Description>1906</ManSection>190719081909<ManSection>1910<Oper Arg="D,k" Name="ProjectionInFactorOfDirectProduct" Label="for IsList, IsInt"/>1911<Returns>a morphism in <Math>\mathrm{Hom}(\prod_{i=1}^n P_i, P_k)</Math>1912</Returns>1913<Description>1914The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>1915and an integer <Math>k</Math>.1916The output is the <Math>k</Math>-th projection1917<Math>\pi_k: \prod_{i=1}^n P_i \rightarrow P_k</Math>.1918</Description>1919</ManSection>192019211922<ManSection>1923<Oper Arg="D,k,method_selection_object" Name="ProjectionInFactorOfDirectProductOp" Label="for IsList, IsInt, IsCapCategoryObject"/>1924<Returns>a morphism in <Math>\mathrm{Hom}(\prod_{i=1}^n P_i, P_k)</Math>1925</Returns>1926<Description>1927The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,1928an integer <Math>k</Math>,1929and an object for method selection.1930The output is the <Math>k</Math>-th projection1931<Math>\pi_k: \prod_{i=1}^n P_i \rightarrow P_k</Math>.1932</Description>1933</ManSection>193419351936<ManSection>1937<Oper Arg="D,k,P" Name="ProjectionInFactorOfDirectProductWithGivenDirectProduct" Label="for IsList, IsInt, IsCapCategoryObject"/>1938<Returns>a morphism in <Math>\mathrm{Hom}(P, P_k)</Math>1939</Returns>1940<Description>1941The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,1942an integer <Math>k</Math>,1943and an object <Math>P = \prod_{i=1}^n P_i</Math>.1944The output is the <Math>k</Math>-th projection1945<Math>\pi_k: P \rightarrow P_k</Math>.1946</Description>1947</ManSection>194819491950<ManSection>1951<Func Arg="arg" Name="UniversalMorphismIntoDirectProduct" />1952<Returns>a morphism in <Math>\mathrm{Hom}(T, \prod_{i=1}^n P_i)</Math>1953</Returns>1954<Description>1955This is a convenience method.1956There are three different ways to use this method.1957<List>1958<Item>1959The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>1960and a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>.1961</Item>1962<Item>1963The argument is a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>.1964</Item>1965<Item>1966The arguments are morphisms <Math>\tau_1: T \rightarrow P_1, \dots, \tau_n: T \rightarrow P_n</Math>.1967</Item>1968</List>1969The output is the morphism1970<Math>u(\tau): T \rightarrow \prod_{i=1}^n P_i</Math>1971given by the universal property of the direct product.1972</Description>1973</ManSection>197419751976<ManSection>1977<Oper Arg="D, tau, method_selection_object" Name="UniversalMorphismIntoDirectProductOp" Label="for IsList, IsList, IsCapCategoryObject"/>1978<Returns>a morphism in <Math>\mathrm{Hom}(T, \prod_{i=1}^n P_i)</Math>1979</Returns>1980<Description>1981The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,1982a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>,1983and an object for method selection.1984The output is the morphism1985<Math>u(\tau): T \rightarrow \prod_{i=1}^n P_i</Math>1986given by the universal property of the direct product.1987</Description>1988</ManSection>198919901991<ManSection>1992<Oper Arg="D, tau, P" Name="UniversalMorphismIntoDirectProductWithGivenDirectProduct" Label="for IsList, IsList, IsCapCategoryObject"/>1993<Returns>a morphism in <Math>\mathrm{Hom}(T, \prod_{i=1}^n P_i)</Math>1994</Returns>1995<Description>1996The arguments are a list of objects <Math>D = ( P_1, \dots, P_n )</Math>,1997a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )_{i = 1, \dots, n}</Math>,1998and an object <Math>P = \prod_{i=1}^n P_i</Math>.1999The output is the morphism2000<Math>u(\tau): T \rightarrow \prod_{i=1}^n P_i</Math>2001given by the universal property of the direct product.2002</Description>2003</ManSection>200420052006<ManSection>2007<Oper Arg="C, F" Name="AddDirectProduct" Label="for IsCapCategory, IsFunction"/>2008<Returns>nothing2009</Returns>2010<Description>2011The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2012This operations adds the given function <Math>F</Math>2013to the category for the basic operation <C>DirectProduct</C>.2014<Math>F: ( (P_1, \dots, P_n) ) \mapsto P</Math>2015</Description>2016</ManSection>201720182019<ManSection>2020<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectProduct" Label="for IsCapCategory, IsFunction"/>2021<Returns>nothing2022</Returns>2023<Description>2024The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2025This operations adds the given function <Math>F</Math>2026to the category for the basic operation <C>ProjectionInFactorOfDirectProduct</C>.2027<Math>F: ( (P_1, \dots, P_n),k ) \mapsto \pi_k</Math>2028</Description>2029</ManSection>203020312032<ManSection>2033<Oper Arg="C, F" Name="AddProjectionInFactorOfDirectProductWithGivenDirectProduct" Label="for IsCapCategory, IsFunction"/>2034<Returns>nothing2035</Returns>2036<Description>2037The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2038This operations adds the given function <Math>F</Math>2039to the category for the basic operation <C>ProjectionInFactorOfDirectProductWithGivenDirectProduct</C>.2040<Math>F: ( (P_1, \dots, P_n),k,P ) \mapsto \pi_k</Math>2041</Description>2042</ManSection>204320442045<ManSection>2046<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectProduct" Label="for IsCapCategory, IsFunction"/>2047<Returns>nothing2048</Returns>2049<Description>2050The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2051This operations adds the given function <Math>F</Math>2052to the category for the basic operation <C>UniversalMorphismIntoDirectProduct</C>.2053<Math>F: ( (P_1, \dots, P_n), \tau ) \mapsto u( \tau )</Math>2054</Description>2055</ManSection>205620572058<ManSection>2059<Oper Arg="C, F" Name="AddUniversalMorphismIntoDirectProductWithGivenDirectProduct" Label="for IsCapCategory, IsFunction"/>2060<Returns>nothing2061</Returns>2062<Description>2063The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2064This operations adds the given function <Math>F</Math>2065to the category for the basic operation <C>UniversalMorphismIntoDirectProductWithGivenDirectProduct</C>.2066<Math>F: ( (P_1, \dots, P_n), \tau, P ) \mapsto u( \tau )</Math>2067</Description>2068</ManSection>206920702071<ManSection>2072<Oper Arg="L" Name="DirectProductFunctorial" Label="for IsList"/>2073<Returns>a morphism in <Math>\mathrm{Hom}( \prod_{i=1}^n P_i, \prod_{i=1}^n P_i' )</Math>2074</Returns>2075<Description>2076The argument is a list of morphisms <Math>L = (\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math>.2077The output is a morphism2078<Math>\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i'</Math>2079given by the functorality of the direct product.2080</Description>2081</ManSection>208220832084<ManSection>2085<Oper Arg="s, L, r" Name="DirectProductFunctorialWithGivenDirectProducts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>2086<Returns>a morphism in <Math>\mathrm{Hom}( s, r )</Math>2087</Returns>2088<Description>2089The arguments are an object <Math>s = \prod_{i=1}^n P_i</Math>,2090a list of morphisms <Math>L = (\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math>,2091and an object <Math>r = \prod_{i=1}^n P_i'</Math>.2092The output is a morphism2093<Math>\prod_{i=1}^n P_i \rightarrow \prod_{i=1}^n P_i'</Math>2094given by the functorality of the direct product.2095</Description>2096</ManSection>209720982099<ManSection>2100<Oper Arg="C, F" Name="AddDirectProductFunctorialWithGivenDirectProducts" Label="for IsCapCategory, IsFunction"/>2101<Returns>nothing2102</Returns>2103<Description>2104The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2105This operations adds the given function <Math>F</Math>2106to the category for the basic operation <C>DirectProductFunctorialWithGivenDirectProducts</C>.2107<Math>F: ( \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')</Math>2108</Description>2109</ManSection>211021112112</Section>211321142115<Section Label="Chapter_Universal_Objects_Section_Fiber_Product">2116<Heading>Fiber Product</Heading>21172118For a given list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,2119a fiber product of <Math>D</Math> consists of three parts:2120<List>2121<Item>2122an object <Math>P</Math>,2123</Item>2124<Item>2125a list of morphisms <Math>\pi = ( \pi_i: P \rightarrow P_i )_{i = 1 \dots n}</Math> such that2126<Math>\beta_i \circ \pi_i \sim_{P, B} \beta_j \circ \pi_j</Math> for all pairs <Math>i,j</Math>.2127</Item>2128<Item>2129a dependent function <Math>u</Math> mapping each list of morphisms2130<Math>\tau = ( \tau_i: T \rightarrow P_i )</Math> such that2131<Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>2132to a morphism <Math>u( \tau ): T \rightarrow P</Math> such that2133<Math>\pi_i \circ u( \tau ) \sim_{T, P_i} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.2134</Item>2135</List>2136The triple <Math>( P, \pi, u )</Math> is called a <Emph>fiber product</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to2137congruence of morphisms.2138We denote the object <Math>P</Math> of such a triple by <Math>\mathrm{FiberProduct}(D)</Math>.2139We say that the morphism <Math>u( \tau )</Math> is induced by the2140<Emph>universal property of the fiber product</Emph>.2141<Math>\\ </Math>2142<Math>\mathrm{FiberProduct}</Math> is a functorial operation. This means:2143For a second diagram <Math>D' = (\beta_i': P_i' \rightarrow B')_{i = 1 \dots n}</Math> and a natural morphism2144between pullback diagrams (i.e., a collection of morphisms2145<Math>(\mu_i: P_i \rightarrow P'_i)_{i=1\dots n}</Math> and <Math>\beta: B \rightarrow B'</Math>2146such that <Math>\beta_i' \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i</Math> for <Math>i = 1, \dots, n</Math>)2147we obtain a morphism <Math>\mathrm{FiberProduct}( D ) \rightarrow \mathrm{FiberProduct}( D' )</Math>.2148<ManSection>2149<Oper Arg="D" Name="IsomorphismFromFiberProductToKernelOfDiagonalDifference" Label="for IsList"/>2150<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)</Math>2151</Returns>2152<Description>2153The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.2154The output is a morphism2155<Math>\mathrm{FiberProduct}(D) \rightarrow \Delta</Math>,2156where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.2157</Description>2158</ManSection>215921602161<ManSection>2162<Oper Arg="D, method_selection_morphism" Name="IsomorphismFromFiberProductToKernelOfDiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>2163<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{FiberProduct}(D), \Delta)</Math>2164</Returns>2165<Description>2166The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2167and a morphism for method selection.2168The output is a morphism2169<Math>\mathrm{FiberProduct}(D) \rightarrow \Delta</Math>,2170where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.2171</Description>2172</ManSection>217321742175<ManSection>2176<Oper Arg="C, F" Name="AddIsomorphismFromFiberProductToKernelOfDiagonalDifference" Label="for IsCapCategory, IsFunction"/>2177<Returns>nothing2178</Returns>2179<Description>2180The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2181This operations adds the given function <Math>F</Math>2182to the category for the basic operation <C>IsomorphismFromFiberProductToKernelOfDiagonalDifference</C>.2183<Math>F: ( ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n} ) \mapsto \mathrm{FiberProduct}(D) \rightarrow \Delta</Math>2184</Description>2185</ManSection>218621872188<ManSection>2189<Oper Arg="D" Name="IsomorphismFromKernelOfDiagonalDifferenceToFiberProduct" Label="for IsList"/>2190<Returns>a morphism in <Math>\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))</Math>2191</Returns>2192<Description>2193The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.2194The output is a morphism2195<Math>\Delta \rightarrow \mathrm{FiberProduct}(D)</Math>,2196where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.2197</Description>2198</ManSection>219922002201<ManSection>2202<Oper Arg="D" Name="IsomorphismFromKernelOfDiagonalDifferenceToFiberProductOp" Label="for IsList, IsCapCategoryMorphism"/>2203<Returns>a morphism in <Math>\mathrm{Hom}(\Delta, \mathrm{FiberProduct}(D))</Math>2204</Returns>2205<Description>2206The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2207and a morphism for method selection.2208The output is a morphism2209<Math>\Delta \rightarrow \mathrm{FiberProduct}(D)</Math>,2210where <Math>\Delta</Math> denotes the kernel object equalizing the morphisms <Math>\beta_i</Math>.2211</Description>2212</ManSection>221322142215<ManSection>2216<Oper Arg="C, F" Name="AddIsomorphismFromKernelOfDiagonalDifferenceToFiberProduct" Label="for IsCapCategory, IsFunction"/>2217<Returns>nothing2218</Returns>2219<Description>2220The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2221This operations adds the given function <Math>F</Math>2222to the category for the basic operation <C>IsomorphismFromKernelOfDiagonalDifferenceToFiberProduct</C>.2223<Math>F: ( ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n} ) \mapsto \Delta \rightarrow \mathrm{FiberProduct}(D)</Math>2224</Description>2225</ManSection>222622272228<ManSection>2229<Oper Arg="D" Name="DirectSumDiagonalDifference" Label="for IsList"/>2230<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n P_i, B )</Math>2231</Returns>2232<Description>2233The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.2234The output is a morphism2235<Math>\bigoplus_{i=1}^n P_i \rightarrow B</Math>2236such that its kernel equalizes the <Math>\beta_i</Math>.2237</Description>2238</ManSection>223922402241<ManSection>2242<Oper Arg="D, method_selection_morphism" Name="DirectSumDiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>2243<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n P_i, B )</Math>2244</Returns>2245<Description>2246The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2247and a morphism for method selection.2248The output is a morphism2249<Math>\bigoplus_{i=1}^n P_i \rightarrow B</Math>2250such that its kernel equalizes the <Math>\beta_i</Math>.2251</Description>2252</ManSection>225322542255<ManSection>2256<Oper Arg="C, F" Name="AddDirectSumDiagonalDifference" Label="for IsCapCategory, IsFunction"/>2257<Returns>nothing2258</Returns>2259<Description>2260The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2261This operations adds the given function <Math>F</Math>2262to the category for the basic operation <C>DirectSumDiagonalDifference</C>.2263<Math>F: ( D ) \mapsto \mathrm{DirectSumDiagonalDifference}(D)</Math>2264</Description>2265</ManSection>226622672268<ManSection>2269<Oper Arg="D" Name="FiberProductEmbeddingInDirectSum" Label="for IsList"/>2270<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), \bigoplus_{i=1}^n P_i )</Math>2271</Returns>2272<Description>2273The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.2274The output is the natural embedding2275<Math>\mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i</Math>.2276</Description>2277</ManSection>227822792280<ManSection>2281<Oper Arg="D, method_selection_morphism" Name="FiberProductEmbeddingInDirectSumOp" Label="for IsList, IsCapCategoryMorphism"/>2282<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), \bigoplus_{i=1}^n P_i )</Math>2283</Returns>2284<Description>2285The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2286and a morphism for method selection.2287The output is the natural embedding2288<Math>\mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i</Math>.2289</Description>2290</ManSection>229122922293<ManSection>2294<Oper Arg="C, F" Name="AddFiberProductEmbeddingInDirectSum" Label="for IsCapCategory, IsFunction"/>2295<Returns>nothing2296</Returns>2297<Description>2298The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2299This operations adds the given function <Math>F</Math>2300to the category for the basic operation <C>FiberProductEmbeddingInDirectSum</C>.2301<Math>F: ( ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n} ) \mapsto \mathrm{FiberProduct}(D) \rightarrow \bigoplus_{i=1}^n P_i</Math>2302</Description>2303</ManSection>230423052306<ManSection>2307<Func Arg="arg" Name="FiberProduct" />2308<Returns>an object2309</Returns>2310<Description>2311This is a convenience method.2312There are two different ways to use this method:2313<List>2314<Item>2315The argument is a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>.2316</Item>2317<Item>2318The arguments are morphisms <Math>\beta_1: P_1 \rightarrow B, \dots, \beta_n: P_n \rightarrow B</Math>.2319</Item>2320</List>2321The output is the fiber product <Math>\mathrm{FiberProduct}(D)</Math>.2322</Description>2323</ManSection>232423252326<ManSection>2327<Oper Arg="D, method_selection_morphism" Name="FiberProductOp" Label="for IsList, IsCapCategoryMorphism"/>2328<Returns>an object2329</Returns>2330<Description>2331The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2332and a morphism for method selection.2333The output is the fiber product <Math>\mathrm{FiberProduct}(D)</Math>.2334</Description>2335</ManSection>233623372338<ManSection>2339<Oper Arg="D,k" Name="ProjectionInFactorOfFiberProduct" Label="for IsList, IsInt"/>2340<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), P_k )</Math>2341</Returns>2342<Description>2343The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2344and an integer <Math>k</Math>.2345The output is the <Math>k</Math>-th projection2346<Math>\pi_{k}: \mathrm{FiberProduct}(D) \rightarrow P_k</Math>.2347</Description>2348</ManSection>234923502351<ManSection>2352<Oper Arg="D,k,method_selection_morphism" Name="ProjectionInFactorOfFiberProductOp" Label="for IsList, IsInt, IsCapCategoryMorphism"/>2353<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{FiberProduct}(D), P_k )</Math>2354</Returns>2355<Description>2356The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,2357an integer <Math>k</Math>,2358and a morphism for method selection.2359The output is the <Math>k</Math>-th projection2360<Math>\pi_{k}: \mathrm{FiberProduct}(D) \rightarrow P_k</Math>.2361</Description>2362</ManSection>236323642365<ManSection>2366<Oper Arg="D,k,P" Name="ProjectionInFactorOfFiberProductWithGivenFiberProduct" Label="for IsList, IsInt, IsCapCategoryObject"/>2367<Returns>a morphism in <Math>\mathrm{Hom}( P, P_k )</Math>2368</Returns>2369<Description>2370The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,2371an integer <Math>k</Math>,2372and an object <Math>P = \mathrm{FiberProduct}(D)</Math>.2373The output is the <Math>k</Math>-th projection2374<Math>\pi_{k}: P \rightarrow P_k</Math>.2375</Description>2376</ManSection>237723782379<ManSection>2380<Func Arg="arg" Name="UniversalMorphismIntoFiberProduct" />2381<Description>2382This is a convenience method.2383There are three different ways to use this method:2384<List>2385<Item>2386The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2387and a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )</Math>2388such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>.2389The output is the morphism2390<Math>u( \tau ): T \rightarrow \mathrm{FiberProduct}(D)</Math>2391given by the universal property of the fiber product.2392</Item>2393<Item>2394The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>2395and morphisms <Math>\tau_1: T \rightarrow P_1, \dots, \tau_n: T \rightarrow P_n</Math>2396such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>.2397The output is the morphism2398<Math>u( \tau ): T \rightarrow \mathrm{FiberProduct}(D)</Math>2399given by the universal property of the fiber product.2400</Item>2401</List>2402</Description>2403</ManSection>240424052406<ManSection>2407<Oper Arg="D, tau, method_selection_morphism" Name="UniversalMorphismIntoFiberProductOp" Label="for IsList, IsList, IsCapCategoryMorphism"/>2408<Returns>a morphism in <Math>\mathrm{Hom}( T, \mathrm{FiberProduct}(D) )</Math>2409</Returns>2410<Description>2411The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,2412a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )</Math>2413such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>,2414and a morphism for method selection.2415The output is the morphism2416<Math>u( \tau ): T \rightarrow \mathrm{FiberProduct}(D)</Math>2417given by the universal property of the fiber product.2418</Description>2419</ManSection>242024212422<ManSection>2423<Oper Arg="D, tau, P" Name="UniversalMorphismIntoFiberProductWithGivenFiberProduct" Label="for IsList, IsList, IsCapCategoryObject"/>2424<Returns>a morphism in <Math>\mathrm{Hom}( T, P )</Math>2425</Returns>2426<Description>2427The arguments are a list of morphisms <Math>D = ( \beta_i: P_i \rightarrow B )_{i = 1 \dots n}</Math>,2428a list of morphisms <Math>\tau = ( \tau_i: T \rightarrow P_i )</Math>2429such that <Math>\beta_i \circ \tau_i \sim_{T, B} \beta_j \circ \tau_j</Math> for all pairs <Math>i,j</Math>,2430and an object <Math>P = \mathrm{FiberProduct}(D)</Math>.2431The output is the morphism2432<Math>u( \tau ): T \rightarrow P</Math>2433given by the universal property of the fiber product.2434</Description>2435</ManSection>243624372438<ManSection>2439<Oper Arg="C, F" Name="AddFiberProduct" Label="for IsCapCategory, IsFunction"/>2440<Returns>nothing2441</Returns>2442<Description>2443The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2444This operations adds the given function <Math>F</Math>2445to the category for the basic operation <C>FiberProduct</C>.2446<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n} ) \mapsto P</Math>2447</Description>2448</ManSection>244924502451<ManSection>2452<Oper Arg="C, F" Name="AddProjectionInFactorOfFiberProduct" Label="for IsCapCategory, IsFunction"/>2453<Returns>nothing2454</Returns>2455<Description>2456The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2457This operations adds the given function <Math>F</Math>2458to the category for the basic operation <C>ProjectionInFactorOfFiberProduct</C>.2459<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, k ) \mapsto \pi_k</Math>2460</Description>2461</ManSection>246224632464<ManSection>2465<Oper Arg="C, F" Name="AddProjectionInFactorOfFiberProductWithGivenFiberProduct" Label="for IsCapCategory, IsFunction"/>2466<Returns>nothing2467</Returns>2468<Description>2469The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2470This operations adds the given function <Math>F</Math>2471to the category for the basic operation <C>ProjectionInFactorOfFiberProductWithGivenFiberProduct</C>.2472<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, k,P ) \mapsto \pi_k</Math>2473</Description>2474</ManSection>247524762477<ManSection>2478<Oper Arg="C, F" Name="AddUniversalMorphismIntoFiberProduct" Label="for IsCapCategory, IsFunction"/>2479<Returns>nothing2480</Returns>2481<Description>2482The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2483This operations adds the given function <Math>F</Math>2484to the category for the basic operation <C>UniversalMorphismIntoFiberProduct</C>.2485<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, \tau ) \mapsto u(\tau)</Math>2486</Description>2487</ManSection>248824892490<ManSection>2491<Oper Arg="C, F" Name="AddUniversalMorphismIntoFiberProductWithGivenFiberProduct" Label="for IsCapCategory, IsFunction"/>2492<Returns>nothing2493</Returns>2494<Description>2495The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2496This operations adds the given function <Math>F</Math>2497to the category for the basic operation <C>UniversalMorphismIntoFiberProductWithGivenFiberProduct</C>.2498<Math>F: ( (\beta_i: P_i \rightarrow B)_{i = 1 \dots n}, \tau, P ) \mapsto u(\tau)</Math>2499</Description>2500</ManSection>250125022503<ManSection>2504<Oper Arg="L" Name="FiberProductFunctorial" Label="for IsList"/>2505<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ), \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} ))</Math>2506</Returns>2507<Description>2508The argument is a list of triples of morphisms2509<Math>L = ( (\beta_i: P_i \rightarrow B, \mu_i: P_i \rightarrow P_i', \beta_i': P_i' \rightarrow B')_{i = 1 \dots n} )</Math>2510such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>2511such that <Math>\beta_i' \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i</Math> for <Math>i = 1, \dots, n</Math>.2512The output is the morphism2513<Math>\mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ) \rightarrow \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} )</Math>2514given by the functorality of the fiber product.2515</Description>2516</ManSection>251725182519<ManSection>2520<Oper Arg="s, L, r" Name="FiberProductFunctorialWithGivenFiberProducts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>2521<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>2522</Returns>2523<Description>2524The arguments are an object <Math>s = \mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} )</Math>,2525a list of triples of morphisms2526<Math>L = ( (\beta_i: P_i \rightarrow B, \mu_i: P_i \rightarrow P_i', \beta_i': P_i' \rightarrow B')_{i = 1 \dots n} )</Math>2527such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>2528such that <Math>\beta_i' \circ \mu_i \sim_{P_i,B'} \beta \circ \beta_i</Math> for <Math>i = 1, \dots, n</Math>,2529and an object <Math>r = \mathrm{FiberProduct}( ( \beta_i' )_{i=1 \dots n} )</Math>.2530The output is the morphism2531<Math>s \rightarrow r</Math>2532given by the functorality of the fiber product.2533</Description>2534</ManSection>253525362537<ManSection>2538<Oper Arg="C, F" Name="AddFiberProductFunctorialWithGivenFiberProducts" Label="for IsCapCategory, IsFunction"/>2539<Returns>nothing2540</Returns>2541<Description>2542The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2543This operations adds the given function <Math>F</Math>2544to the category for the basic operation <C>FiberProductFunctorialWithGivenFiberProducts</C>.2545<Math>F: ( \mathrm{FiberProduct}( ( \beta_i )_{i=1 \dots n} ), (\beta_i: P_i \rightarrow B, \mu_i: P_i \rightarrow P_i', \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} ) )</Math>2546</Description>2547</ManSection>254825492550</Section>255125522553<Section Label="Chapter_Universal_Objects_Section_Pushout">2554<Heading>Pushout</Heading>25552556For a given list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,2557a pushout of <Math>D</Math> consists of three parts:2558<List>2559<Item>2560an object <Math>I</Math>,2561</Item>2562<Item>2563a list of morphisms <Math>\iota = ( \iota_i: I_i \rightarrow I )_{i = 1 \dots n}</Math> such that2564<Math>\iota_i \circ \beta_i \sim_{B,I} \iota_j \circ \beta_j</Math> for all pairs <Math>i,j</Math>,2565</Item>2566<Item>2567a dependent function <Math>u</Math> mapping each list of morphisms2568<Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that2569<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>2570to a morphism <Math>u( \tau ): I \rightarrow T</Math> such that2571<Math>u( \tau ) \circ \iota_i \sim_{I_i, T} \tau_i</Math> for all <Math>i = 1, \dots, n</Math>.2572</Item>2573</List>2574The triple <Math>( I, \iota, u )</Math> is called a <Emph>pushout</Emph> of <Math>D</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to2575congruence of morphisms.2576We denote the object <Math>I</Math> of such a triple by <Math>\mathrm{Pushout}(D)</Math>.2577We say that the morphism <Math>u( \tau )</Math> is induced by the2578<Emph>universal property of the pushout</Emph>.2579<Math>\\ </Math>2580<Math>\mathrm{Pushout}</Math> is a functorial operation. This means:2581For a second diagram <Math>D' = (\beta_i': B' \rightarrow I_i')_{i = 1 \dots n}</Math> and a natural morphism2582between pushout diagrams (i.e., a collection of morphisms2583<Math>(\mu_i: I_i \rightarrow I'_i)_{i=1\dots n}</Math> and <Math>\beta: B \rightarrow B'</Math>2584such that <Math>\beta_i' \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i</Math> for <Math>i = 1, \dots n</Math>)2585we obtain a morphism <Math>\mathrm{Pushout}( D ) \rightarrow \mathrm{Pushout}( D' )</Math>.2586<ManSection>2587<Oper Arg="D" Name="IsomorphismFromPushoutToCokernelOfDiagonalDifference" Label="for IsList"/>2588<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)</Math>2589</Returns>2590<Description>2591The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.2592The output is a morphism2593<Math>\mathrm{Pushout}(D) \rightarrow \Delta</Math>,2594where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.2595</Description>2596</ManSection>259725982599<ManSection>2600<Oper Arg="D, method_selection_morphism" Name="IsomorphismFromPushoutToCokernelOfDiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>2601<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{Pushout}(D), \Delta)</Math>2602</Returns>2603<Description>2604The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2605and a morphism for method selection.2606The output is a morphism2607<Math>\mathrm{Pushout}(D) \rightarrow \Delta</Math>,2608where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.2609</Description>2610</ManSection>261126122613<ManSection>2614<Oper Arg="C, F" Name="AddIsomorphismFromPushoutToCokernelOfDiagonalDifference" Label="for IsCapCategory, IsFunction"/>2615<Returns>nothing2616</Returns>2617<Description>2618The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2619This operations adds the given function <Math>F</Math>2620to the category for the basic operation <C>IsomorphismFromPushoutToCokernelOfDiagonalDifference</C>.2621<Math>F: ( ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\mathrm{Pushout}(D) \rightarrow \Delta)</Math>2622</Description>2623</ManSection>262426252626<ManSection>2627<Oper Arg="D" Name="IsomorphismFromCokernelOfDiagonalDifferenceToPushout" Label="for IsList"/>2628<Returns>a morphism in <Math>\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))</Math>2629</Returns>2630<Description>2631The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.2632The output is a morphism2633<Math>\Delta \rightarrow \mathrm{Pushout}(D)</Math>,2634where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.2635</Description>2636</ManSection>263726382639<ManSection>2640<Oper Arg="D, method_selection_morphism" Name="IsomorphismFromCokernelOfDiagonalDifferenceToPushoutOp" Label="for IsList, IsCapCategoryMorphism"/>2641<Returns>a morphism in <Math>\mathrm{Hom}( \Delta, \mathrm{Pushout}(D))</Math>2642</Returns>2643<Description>2644The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2645and a morphism for method selection.2646The output is a morphism2647<Math>\Delta \rightarrow \mathrm{Pushout}(D)</Math>,2648where <Math>\Delta</Math> denotes the cokernel object coequalizing the morphisms <Math>\beta_i</Math>.2649</Description>2650</ManSection>265126522653<ManSection>2654<Oper Arg="C, F" Name="AddIsomorphismFromCokernelOfDiagonalDifferenceToPushout" Label="for IsCapCategory, IsFunction"/>2655<Returns>nothing2656</Returns>2657<Description>2658The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2659This operations adds the given function <Math>F</Math>2660to the category for the basic operation <C>IsomorphismFromCokernelOfDiagonalDifferenceToPushout</C>.2661<Math>F: ( ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\Delta \rightarrow \mathrm{Pushout}(D))</Math>2662</Description>2663</ManSection>266426652666<ManSection>2667<Oper Arg="D" Name="DirectSumCodiagonalDifference" Label="for IsList"/>2668<Returns>a morphism in <Math>\mathrm{Hom}(B, \bigoplus_{i=1}^n I_i)</Math>2669</Returns>2670<Description>2671The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.2672The output is a morphism2673<Math>B \rightarrow \bigoplus_{i=1}^n I_i</Math>2674such that its cokernel coequalizes the <Math>\beta_i</Math>.2675</Description>2676</ManSection>267726782679<ManSection>2680<Oper Arg="D, method_selection_morphism" Name="DirectSumCodiagonalDifferenceOp" Label="for IsList, IsCapCategoryMorphism"/>2681<Returns>a morphism in <Math>\mathrm{Hom}(B, \bigoplus_{i=1}^n I_i)</Math>2682</Returns>2683<Description>2684The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2685and a morphism for method selection.2686The output is a morphism2687<Math>B \rightarrow \bigoplus_{i=1}^n I_i</Math>2688such that its cokernel coequalizes the <Math>\beta_i</Math>.2689</Description>2690</ManSection>269126922693<ManSection>2694<Oper Arg="C, F" Name="AddDirectSumCodiagonalDifference" Label="for IsCapCategory, IsFunction"/>2695<Returns>nothing2696</Returns>2697<Description>2698The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2699This operations adds the given function <Math>F</Math>2700to the category for the basic operation <C>DirectSumCodiagonalDifference</C>.2701<Math>F: ( D ) \mapsto \mathrm{DirectSumCodiagonalDifference}(D)</Math>2702</Description>2703</ManSection>270427052706<ManSection>2707<Oper Arg="D" Name="DirectSumProjectionInPushout" Label="for IsList"/>2708<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n I_i, \mathrm{Pushout}(D) )</Math>2709</Returns>2710<Description>2711The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>.2712The output is the natural projection2713<Math>\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)</Math>.2714</Description>2715</ManSection>271627172718<ManSection>2719<Oper Arg="D, method_selection_morphism" Name="DirectSumProjectionInPushoutOp" Label="for IsList, IsCapCategoryMorphism"/>2720<Returns>a morphism in <Math>\mathrm{Hom}( \bigoplus_{i=1}^n I_i, \mathrm{Pushout}(D) )</Math>2721</Returns>2722<Description>2723The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2724and a morphism for method selection.2725The output is the natural projection2726<Math>\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D)</Math>.2727</Description>2728</ManSection>272927302731<ManSection>2732<Oper Arg="C, F" Name="AddDirectSumProjectionInPushout" Label="for IsCapCategory, IsFunction"/>2733<Returns>nothing2734</Returns>2735<Description>2736The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2737This operations adds the given function <Math>F</Math>2738to the category for the basic operation <C>DirectSumProjectionInPushout</C>.2739<Math>F: ( ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n} ) \mapsto (\bigoplus_{i=1}^n I_i \rightarrow \mathrm{Pushout}(D))</Math>2740</Description>2741</ManSection>274227432744<ManSection>2745<Oper Arg="D" Name="Pushout" Label="for IsList"/>2746<Returns>an object2747</Returns>2748<Description>2749The argument is a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2750The output is the pushout <Math>\mathrm{Pushout}(D)</Math>.2751</Description>2752</ManSection>275327542755<ManSection>2756<Oper Arg="D" Name="Pushout" Label="for IsCapCategoryMorphism, IsCapCategoryMorphism"/>2757<Returns>an object2758</Returns>2759<Description>2760This is a convenience method.2761The arguments are a morphism <Math>\alpha</Math> and a morphism <Math>\beta</Math>.2762The output is the pushout <Math>\mathrm{Pushout}(\alpha, \beta)</Math>.2763</Description>2764</ManSection>276527662767<ManSection>2768<Oper Arg="D" Name="PushoutOp" Label="for IsList, IsCapCategoryMorphism"/>2769<Returns>an object2770</Returns>2771<Description>2772The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2773and a morphism for method selection.2774The output is the pushout <Math>\mathrm{Pushout}(D)</Math>.2775</Description>2776</ManSection>277727782779<ManSection>2780<Oper Arg="D, k" Name="InjectionOfCofactorOfPushout" Label="for IsList, IsInt"/>2781<Returns>a morphism in <Math>\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )</Math>.2782</Returns>2783<Description>2784The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2785and an integer <Math>k</Math>.2786The output is the <Math>k</Math>-th injection2787<Math>\iota_k: I_k \rightarrow \mathrm{Pushout}( D )</Math>.2788</Description>2789</ManSection>279027912792<ManSection>2793<Oper Arg="D, k, method_selection_morphism" Name="InjectionOfCofactorOfPushoutOp" Label="for IsList, IsInt, IsCapCategoryMorphism"/>2794<Returns>a morphism in <Math>\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )</Math>.2795</Returns>2796<Description>2797The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,2798an integer <Math>k</Math>,2799and a morphism for method selection.2800The output is the <Math>k</Math>-th injection2801<Math>\iota_k: I_k \rightarrow \mathrm{Pushout}( D )</Math>.2802</Description>2803</ManSection>280428052806<ManSection>2807<Oper Arg="D, k, I" Name="InjectionOfCofactorOfPushoutWithGivenPushout" Label="for IsList, IsInt, IsCapCategoryObject"/>2808<Returns>a morphism in <Math>\mathrm{Hom}( I_k, \mathrm{Pushout}( D ) )</Math>.2809</Returns>2810<Description>2811The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,2812an integer <Math>k</Math>,2813and an object <Math>I = \mathrm{Pushout}(D)</Math>.2814The output is the <Math>k</Math>-th injection2815<Math>\iota_k: I_k \rightarrow \mathrm{Pushout}( D )</Math>.2816</Description>2817</ManSection>281828192820<ManSection>2821<Func Arg="arg" Name="UniversalMorphismFromPushout" />2822<Description>2823This is a convenience method.2824There are three different ways to use this method:2825<List>2826<Item>2827The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2828and a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that2829<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>.2830The output is the morphism2831<Math>u( \tau ): \mathrm{Pushout}(D) \rightarrow T</Math>2832given by the universal property of the pushout.2833</Item>2834<Item>2835The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>2836and morphisms <Math>\tau_1: I_1 \rightarrow T, \dots, \tau_n: I_n \rightarrow T</Math> such that2837<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>.2838The output is the morphism2839<Math>u( \tau ): \mathrm{Pushout}(D) \rightarrow T</Math>2840given by the universal property of the pushout.2841</Item>2842</List>2843</Description>2844</ManSection>284528462847<ManSection>2848<Oper Arg="D, tau, method_selection_morphism" Name="UniversalMorphismFromPushoutOp" Label="for IsList, IsList, IsCapCategoryMorphism"/>2849<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{Pushout}(D), T )</Math>2850</Returns>2851<Description>2852The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,2853a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that2854<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>,2855and a morphism for method selection.2856The output is the morphism2857<Math>u( \tau ): \mathrm{Pushout}(D) \rightarrow T</Math>2858given by the universal property of the pushout.2859</Description>2860</ManSection>286128622863<ManSection>2864<Oper Arg="D, tau, I" Name="UniversalMorphismFromPushoutWithGivenPushout" Label="for IsList, IsList, IsCapCategoryObject"/>2865<Returns>a morphism in <Math>\mathrm{Hom}( I, T )</Math>2866</Returns>2867<Description>2868The arguments are a list of morphisms <Math>D = ( \beta_i: B \rightarrow I_i )_{i = 1 \dots n}</Math>,2869a list of morphisms <Math>\tau = ( \tau_i: I_i \rightarrow T )_{i = 1 \dots n}</Math> such that2870<Math>\tau_i \circ \beta_i \sim_{B,T} \tau_j \circ \beta_j</Math>,2871and an object <Math>I = \mathrm{Pushout}(D)</Math>.2872The output is the morphism2873<Math>u( \tau ): I \rightarrow T</Math>2874given by the universal property of the pushout.2875</Description>2876</ManSection>287728782879<ManSection>2880<Oper Arg="C, F" Name="AddPushout" Label="for IsCapCategory, IsFunction"/>2881<Returns>nothing2882</Returns>2883<Description>2884The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2885This operations adds the given function <Math>F</Math>2886to the category for the basic operation <C>Pushout</C>.2887<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n} ) \mapsto I</Math>2888</Description>2889</ManSection>289028912892<ManSection>2893<Oper Arg="C, F" Name="AddInjectionOfCofactorOfPushout" Label="for IsCapCategory, IsFunction"/>2894<Returns>nothing2895</Returns>2896<Description>2897The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2898This operations adds the given function <Math>F</Math>2899to the category for the basic operation <C>InjectionOfCofactorOfPushout</C>.2900<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, k ) \mapsto \iota_k</Math>2901</Description>2902</ManSection>290329042905<ManSection>2906<Oper Arg="C, F" Name="AddInjectionOfCofactorOfPushoutWithGivenPushout" Label="for IsCapCategory, IsFunction"/>2907<Returns>nothing2908</Returns>2909<Description>2910The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2911This operations adds the given function <Math>F</Math>2912to the category for the basic operation <C>InjectionOfCofactorOfPushoutWithGivenPushout</C>.2913<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, k, I ) \mapsto \iota_k</Math>2914</Description>2915</ManSection>291629172918<ManSection>2919<Oper Arg="C, F" Name="AddUniversalMorphismFromPushout" Label="for IsCapCategory, IsFunction"/>2920<Returns>nothing2921</Returns>2922<Description>2923The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2924This operations adds the given function <Math>F</Math>2925to the category for the basic operation <C>UniversalMorphismFromPushout</C>.2926<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, \tau ) \mapsto u(\tau)</Math>2927</Description>2928</ManSection>292929302931<ManSection>2932<Oper Arg="C, F" Name="AddUniversalMorphismFromPushoutWithGivenPushout" Label="for IsCapCategory, IsFunction"/>2933<Returns>nothing2934</Returns>2935<Description>2936The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2937This operations adds the given function <Math>F</Math>2938to the category for the basic operation <C>UniversalMorphismFromPushout</C>.2939<Math>F: ( (\beta_i: B \rightarrow I_i)_{i = 1 \dots n}, \tau, I ) \mapsto u(\tau)</Math>2940</Description>2941</ManSection>294229432944<ManSection>2945<Oper Arg="L" Name="PushoutFunctorial" Label="for IsList"/>2946<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{Pushout}( ( \beta_i )_{i=1}^n ), \mathrm{Pushout}( ( \beta_i' )_{i=1}^n ))</Math>2947</Returns>2948<Description>2949The argument is a list2950<Math>L = ( ( \beta_i: B \rightarrow I_i, \mu_i: I_i \rightarrow I_i', \beta_i': B' \rightarrow I_i' )_{i = 1 \dots n} )</Math>2951such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>2952such that <Math>\beta_i' \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i</Math> for <Math>i = 1, \dots n</Math>.2953The output is the morphism2954<Math>\mathrm{Pushout}( ( \beta_i )_{i=1}^n ) \rightarrow \mathrm{Pushout}( ( \beta_i' )_{i=1}^n )</Math>2955given by the functorality of the pushout.2956</Description>2957</ManSection>295829592960<ManSection>2961<Oper Arg="s, L, r" Name="PushoutFunctorialWithGivenPushouts" Label="for IsCapCategoryObject, IsList, IsCapCategoryObject"/>2962<Returns>a morphism in <Math>\mathrm{Hom}(s, r)</Math>2963</Returns>2964<Description>2965The arguments are an object <Math>s = \mathrm{Pushout}( ( \beta_i )_{i=1}^n )</Math>,2966a list2967<Math>L = ( ( \beta_i: B \rightarrow I_i, \mu_i: I_i \rightarrow I_i', \beta_i': B' \rightarrow I_i' )_{i = 1 \dots n} )</Math>2968such that there exists a morphism <Math>\beta: B \rightarrow B'</Math>2969such that <Math>\beta_i' \circ \beta \sim_{B, I_i'} \mu_i \circ \beta_i</Math> for <Math>i = 1, \dots n</Math>,2970and an object <Math>r = \mathrm{Pushout}( ( \beta_i' )_{i=1}^n )</Math>.2971The output is the morphism2972<Math>s \rightarrow r</Math>2973given by the functorality of the pushout.2974</Description>2975</ManSection>297629772978<ManSection>2979<Oper Arg="C, F" Name="AddPushoutFunctorialWithGivenPushouts" Label="for IsCapCategory, IsFunction"/>2980<Returns>nothing2981</Returns>2982<Description>2983The arguments are a category <Math>C</Math> and a function <Math>F</Math>.2984This operations adds the given function <Math>F</Math>2985to the category for the basic operation <C>PushoutFunctorial</C>.2986<Math>F: ( \mathrm{Pushout}( ( \beta_i )_{i=1}^n ), ( \beta_i: B \rightarrow I_i, \mu_i: I_i \rightarrow I_i', \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 ) )</Math>2987</Description>2988</ManSection>298929902991</Section>299229932994<Section Label="Chapter_Universal_Objects_Section_Image">2995<Heading>Image</Heading>29962997For a given morphism <Math>\alpha: A \rightarrow B</Math>, an image of <Math>\alpha</Math> consists of four parts:2998<List>2999<Item>3000an object <Math>I</Math>,3001</Item>3002<Item>3003a morphism <Math>c: A \rightarrow I</Math>,3004</Item>3005<Item>3006a monomorphism <Math>\iota: I \hookrightarrow B</Math> such that <Math>\iota \circ c \sim_{A,B} \alpha</Math>,3007</Item>3008<Item>3009a dependent function <Math>u</Math> mapping each pair of morphisms <Math>\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )</Math>3010where <Math>\tau_2</Math> is a monomorphism3011such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math> to a morphism3012<Math>u(\tau): I \rightarrow T</Math> such that3013<Math>\tau_2 \circ u(\tau) \sim_{I,B} \iota</Math> and <Math>u(\tau) \circ c \sim_{A,T} \tau_1</Math>.3014</Item>3015</List>3016The <Math>4</Math>-tuple <Math>( I, c, \iota, u )</Math> is called an <Emph>image</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to3017congruence of morphisms.3018We denote the object <Math>I</Math> of such a <Math>4</Math>-tuple by <Math>\mathrm{im}(\alpha)</Math>.3019We say that the morphism <Math>u( \tau )</Math> is induced by the3020<Emph>universal property of the image</Emph>.3021<ManSection>3022<Attr Arg="alpha" Name="IsomorphismFromImageObjectToKernelOfCokernel" Label="for IsCapCategoryMorphism"/>3023<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{im}(\alpha), \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) )</Math>3024</Returns>3025<Description>3026The argument is a morphism <Math>\alpha</Math>.3027The output is the canonical morphism3028<Math>\mathrm{im}(\alpha) \rightarrow \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) )</Math>.3029</Description>3030</ManSection>303130323033<ManSection>3034<Oper Arg="C, F" Name="AddIsomorphismFromImageObjectToKernelOfCokernel" Label="for IsCapCategory, IsFunction"/>3035<Returns>nothing3036</Returns>3037<Description>3038The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3039This operations adds the given function <Math>F</Math>3040to the category for the basic operation <C>IsomorphismFromImageObjectToKernelOfCokernel</C>.3041<Math>F: \alpha \mapsto ( \mathrm{im}(\alpha) \rightarrow \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) )</Math>3042</Description>3043</ManSection>304430453046<ManSection>3047<Attr Arg="alpha" Name="IsomorphismFromKernelOfCokernelToImageObject" Label="for IsCapCategoryMorphism"/>3048<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ), \mathrm{im}(\alpha) )</Math>3049</Returns>3050<Description>3051The argument is a morphism <Math>\alpha</Math>.3052The output is the canonical morphism3053<Math>\mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) \rightarrow \mathrm{im}(\alpha)</Math>.3054</Description>3055</ManSection>305630573058<ManSection>3059<Oper Arg="C, F" Name="AddIsomorphismFromKernelOfCokernelToImageObject" Label="for IsCapCategory, IsFunction"/>3060<Returns>nothing3061</Returns>3062<Description>3063The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3064This operations adds the given function <Math>F</Math>3065to the category for the basic operation <C>IsomorphismFromKernelOfCokernelToImageObject</C>.3066<Math>F: \alpha \mapsto ( \mathrm{KernelObject}( \mathrm{CokernelProjection}( \alpha ) ) \rightarrow \mathrm{im}(\alpha) )</Math>3067</Description>3068</ManSection>306930703071<ManSection>3072<Attr Arg="alpha" Name="ImageObject" Label="for IsCapCategoryMorphism"/>3073<Returns>an object3074</Returns>3075<Description>3076The argument is a morphism <Math>\alpha</Math>.3077The output is the image <Math>\mathrm{im}( \alpha )</Math>.3078</Description>3079</ManSection>308030813082<ManSection>3083<Attr Arg="alpha" Name="ImageEmbedding" Label="for IsCapCategoryMorphism"/>3084<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{im}(\alpha), B)</Math>3085</Returns>3086<Description>3087The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3088The output is the image embedding3089<Math>\iota: \mathrm{im}(\alpha) \hookrightarrow B</Math>.3090</Description>3091</ManSection>309230933094<ManSection>3095<Oper Arg="alpha, I" Name="ImageEmbeddingWithGivenImageObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>3096<Returns>a morphism in <Math>\mathrm{Hom}(I, B)</Math>3097</Returns>3098<Description>3099The argument is a morphism <Math>\alpha: A \rightarrow B</Math>3100and an object <Math>I = \mathrm{im}( \alpha )</Math>.3101The output is the image embedding3102<Math>\iota: I \hookrightarrow B</Math>.3103</Description>3104</ManSection>310531063107<ManSection>3108<Attr Arg="alpha" Name="CoastrictionToImage" Label="for IsCapCategoryMorphism"/>3109<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{im}( \alpha ))</Math>3110</Returns>3111<Description>3112The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3113The output is the coastriction to image3114<Math>c: A \rightarrow \mathrm{im}( \alpha )</Math>.3115</Description>3116</ManSection>311731183119<ManSection>3120<Oper Arg="alpha, I" Name="CoastrictionToImageWithGivenImageObject" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>3121<Returns>a morphism in <Math>\mathrm{Hom}(A, I)</Math>3122</Returns>3123<Description>3124The argument is a morphism <Math>\alpha: A \rightarrow B</Math>3125and an object <Math>I = \mathrm{im}( \alpha )</Math>.3126The output is the coastriction to image3127<Math>c: A \rightarrow I</Math>.3128</Description>3129</ManSection>313031313132<ManSection>3133<Oper Arg="alpha, tau" Name="UniversalMorphismFromImage" Label="for IsCapCategoryMorphism, IsList"/>3134<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{im}(\alpha), T)</Math>3135</Returns>3136<Description>3137The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>3138and a pair of morphisms3139<Math>\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )</Math>3140where <Math>\tau_2</Math> is a monomorphism3141such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>.3142The output is the morphism3143<Math>u(\tau): \mathrm{im}(\alpha) \rightarrow T</Math>3144given by the universal property of the image.3145</Description>3146</ManSection>314731483149<ManSection>3150<Oper Arg="alpha, tau, I" Name="UniversalMorphismFromImageWithGivenImageObject" Label="for IsCapCategoryMorphism, IsList, IsCapCategoryObject"/>3151<Returns>a morphism in <Math>\mathrm{Hom}(I, T)</Math>3152</Returns>3153<Description>3154The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,3155a pair of morphisms3156<Math>\tau = ( \tau_1: A \rightarrow T, \tau_2: T \hookrightarrow B )</Math>3157where <Math>\tau_2</Math> is a monomorphism3158such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>,3159and an object <Math>I = \mathrm{im}( \alpha )</Math>.3160The output is the morphism3161<Math>u(\tau): \mathrm{im}(\alpha) \rightarrow T</Math>3162given by the universal property of the image.3163</Description>3164</ManSection>316531663167<ManSection>3168<Oper Arg="C, F" Name="AddImageObject" Label="for IsCapCategory, IsFunction"/>3169<Returns>nothing3170</Returns>3171<Description>3172The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3173This operations adds the given function <Math>F</Math>3174to the category for the basic operation <C>ImageObject</C>.3175<Math>F: \alpha \mapsto I</Math>.3176</Description>3177</ManSection>317831793180<ManSection>3181<Oper Arg="C, F" Name="AddImageEmbedding" Label="for IsCapCategory, IsFunction"/>3182<Returns>nothing3183</Returns>3184<Description>3185The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3186This operations adds the given function <Math>F</Math>3187to the category for the basic operation <C>ImageEmbedding</C>.3188<Math>F: \alpha \mapsto \iota</Math>.3189</Description>3190</ManSection>319131923193<ManSection>3194<Oper Arg="C, F" Name="AddImageEmbeddingWithGivenImageObject" Label="for IsCapCategory, IsFunction"/>3195<Returns>nothing3196</Returns>3197<Description>3198The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3199This operations adds the given function <Math>F</Math>3200to the category for the basic operation <C>ImageEmbeddingWithGivenImageObject</C>.3201<Math>F: (\alpha,I) \mapsto \iota</Math>.3202</Description>3203</ManSection>320432053206<ManSection>3207<Oper Arg="C, F" Name="AddCoastrictionToImage" Label="for IsCapCategory, IsFunction"/>3208<Returns>nothing3209</Returns>3210<Description>3211The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3212This operations adds the given function <Math>F</Math>3213to the category for the basic operation <C>CoastrictionToImage</C>.3214<Math>F: \alpha \mapsto c</Math>.3215</Description>3216</ManSection>321732183219<ManSection>3220<Oper Arg="C, F" Name="AddCoastrictionToImageWithGivenImageObject" Label="for IsCapCategory, IsFunction"/>3221<Returns>nothing3222</Returns>3223<Description>3224The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3225This operations adds the given function <Math>F</Math>3226to the category for the basic operation <C>CoastrictionToImageWithGivenImageObject</C>.3227<Math>F: (\alpha,I) \mapsto c</Math>.3228</Description>3229</ManSection>323032313232<ManSection>3233<Oper Arg="C, F" Name="AddUniversalMorphismFromImage" Label="for IsCapCategory, IsFunction"/>3234<Returns>nothing3235</Returns>3236<Description>3237The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3238This operations adds the given function <Math>F</Math>3239to the category for the basic operation <C>UniversalMorphismFromImage</C>.3240<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>.3241</Description>3242</ManSection>324332443245<ManSection>3246<Oper Arg="C, F" Name="AddUniversalMorphismFromImageWithGivenImageObject" Label="for IsCapCategory, IsFunction"/>3247<Returns>nothing3248</Returns>3249<Description>3250The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3251This operations adds the given function <Math>F</Math>3252to the category for the basic operation <C>UniversalMorphismFromImageWithGivenImageObject</C>.3253<Math>F: (\alpha, \tau, I) \mapsto u(\tau)</Math>.3254</Description>3255</ManSection>325632573258</Section>325932603261<Section Label="Chapter_Universal_Objects_Section_Coimage">3262<Heading>Coimage</Heading>32633264For a given morphism <Math>\alpha: A \rightarrow B</Math>, a coimage of <Math>\alpha</Math> consists of four parts:3265<List>3266<Item>3267an object <Math>C</Math>,3268</Item>3269<Item>3270an epimorphism <Math>\pi: A \twoheadrightarrow C</Math>,3271</Item>3272<Item>3273a morphism <Math>a: C \rightarrow B</Math> such that <Math>a \circ \pi \sim_{A,B} \alpha</Math>,3274</Item>3275<Item>3276a dependent function <Math>u</Math> mapping each pair of morphisms <Math>\tau = ( \tau_1: A \twoheadrightarrow T, \tau_2: T \rightarrow B )</Math>3277where <Math>\tau_1</Math> is an epimorphism3278such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math> to a morphism3279<Math>u(\tau): T \rightarrow C</Math> such that3280<Math>u( \tau ) \circ \tau_1 \sim_{A,C} \pi</Math> and <Math>a \circ u( \tau ) \sim_{T,B} \tau_2</Math>.3281</Item>3282</List>3283The <Math>4</Math>-tuple <Math>( C, \pi, a, u )</Math> is called a <Emph>coimage</Emph> of <Math>\alpha</Math> if the morphisms <Math>u( \tau )</Math> are uniquely determined up to3284congruence of morphisms.3285We denote the object <Math>C</Math> of such a <Math>4</Math>-tuple by <Math>\mathrm{coim}(\alpha)</Math>.3286We say that the morphism <Math>u( \tau )</Math> is induced by the3287<Emph>universal property of the coimage</Emph>.3288<ManSection>3289<Attr Arg="alpha" Name="MorphismFromCoimageToImage" Label="for IsCapCategoryMorphism"/>3290<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{coim}(\alpha), \mathrm{im}(\alpha))</Math>3291</Returns>3292<Description>3293The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3294The output is the canonical morphism (in a preabelian category)3295<Math>\mathrm{coim}(\alpha) \rightarrow \mathrm{im}(\alpha)</Math>.3296</Description>3297</ManSection>329832993300<ManSection>3301<Oper Arg="alpha" Name="MorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryObject"/>3302<Returns>a morphism in <Math>\mathrm{Hom}(C,I)</Math>3303</Returns>3304<Description>3305The argument is an object <Math>C = \mathrm{coim}(\alpha)</Math>,3306a morphism <Math>\alpha: A \rightarrow B</Math>,3307and an object <Math>I = \mathrm{im}(\alpha)</Math>.3308The output is the canonical morphism (in a preabelian category)3309<Math>C \rightarrow I</Math>.3310</Description>3311</ManSection>331233133314<ManSection>3315<Oper Arg="C, F" Name="AddMorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategory, IsFunction"/>3316<Returns>nothing3317</Returns>3318<Description>3319The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3320This operations adds the given function <Math>F</Math>3321to the category for the basic operation <C>MorphismFromCoimageToImageWithGivenObjects</C>.3322<Math>F: (C, \alpha, I) \mapsto ( C \rightarrow I )</Math>.3323</Description>3324</ManSection>332533263327<ManSection>3328<Attr Arg="alpha" Name="InverseMorphismFromCoimageToImage" Label="for IsCapCategoryMorphism"/>3329<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{im}(\alpha), \mathrm{coim}(\alpha))</Math>3330</Returns>3331<Description>3332The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3333The output is the inverse of the canonical morphism (in an abelian category)3334<Math>\mathrm{im}(\alpha) \rightarrow \mathrm{coim}(\alpha)</Math>.3335</Description>3336</ManSection>333733383339<ManSection>3340<Oper Arg="alpha" Name="InverseMorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategoryObject, IsCapCategoryMorphism, IsCapCategoryObject"/>3341<Returns>a morphism in <Math>\mathrm{Hom}(I,C)</Math>3342</Returns>3343<Description>3344The argument is an object <Math>C = \mathrm{coim}(\alpha)</Math>,3345a morphism <Math>\alpha: A \rightarrow B</Math>,3346and an object <Math>I = \mathrm{im}(\alpha)</Math>.3347The output is the inverse of the canonical morphism (in an abelian category)3348<Math>I \rightarrow C</Math>.3349</Description>3350</ManSection>335133523353<ManSection>3354<Oper Arg="C, F" Name="AddInverseMorphismFromCoimageToImageWithGivenObjects" Label="for IsCapCategory, IsFunction"/>3355<Returns>nothing3356</Returns>3357<Description>3358The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3359This operations adds the given function <Math>F</Math>3360to the category for the basic operation <C>MorphismFromCoimageToImageWithGivenObjects</C>.3361<Math>F: (C, \alpha, I) \mapsto ( I \rightarrow C )</Math>.3362</Description>3363</ManSection>336433653366<ManSection>3367<Attr Arg="alpha" Name="IsomorphismFromCoimageToCokernelOfKernel" Label="for IsCapCategoryMorphism"/>3368<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{coim}( \alpha ), \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) )</Math>.3369</Returns>3370<Description>3371The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3372The output is the canonical morphism3373<Math>\mathrm{coim}( \alpha ) \rightarrow \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) )</Math>.3374</Description>3375</ManSection>337633773378<ManSection>3379<Oper Arg="C, F" Name="AddIsomorphismFromCoimageToCokernelOfKernel" Label="for IsCapCategory, IsFunction"/>3380<Returns>nothing3381</Returns>3382<Description>3383The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3384This operations adds the given function <Math>F</Math>3385to the category for the basic operation <C>IsomorphismFromCoimageToCokernelOfKernel</C>.3386<Math>F: \alpha \mapsto ( \mathrm{coim}( \alpha ) \rightarrow \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) )</Math>.3387</Description>3388</ManSection>338933903391<ManSection>3392<Attr Arg="alpha" Name="IsomorphismFromCokernelOfKernelToCoimage" Label="for IsCapCategoryMorphism"/>3393<Returns>a morphism in <Math>\mathrm{Hom}( \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ), \mathrm{coim}( \alpha ) )</Math>.3394</Returns>3395<Description>3396The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3397The output is the canonical morphism3398<Math>\mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) \rightarrow \mathrm{coim}( \alpha )</Math>.3399</Description>3400</ManSection>340134023403<ManSection>3404<Oper Arg="C, F" Name="AddIsomorphismFromCokernelOfKernelToCoimage" Label="for IsCapCategory, IsFunction"/>3405<Returns>nothing3406</Returns>3407<Description>3408The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3409This operations adds the given function <Math>F</Math>3410to the category for the basic operation <C>IsomorphismFromCokernelOfKernelToCoimage</C>.3411<Math>F: \alpha \mapsto ( \mathrm{CokernelObject}( \mathrm{KernelEmbedding}( \alpha ) ) \rightarrow \mathrm{coim}( \alpha ) )</Math>.3412</Description>3413</ManSection>341434153416<ManSection>3417<Attr Arg="alpha" Name="Coimage" Label="for IsCapCategoryMorphism"/>3418<Returns>an object3419</Returns>3420<Description>3421The argument is a morphism <Math>\alpha</Math>.3422The output is the coimage <Math>\mathrm{coim}( \alpha )</Math>.3423</Description>3424</ManSection>342534263427<ManSection>3428<Attr Arg="C" Name="CoimageProjection" Label="for IsCapCategoryObject"/>3429<Returns>a morphism in <Math>\mathrm{Hom}(A, C)</Math>3430</Returns>3431<Description>3432This is a convenience method.3433The argument is an object <Math>C</Math> which was created as a coimage3434of a morphism <Math>\alpha: A \rightarrow B</Math>.3435The output is the coimage projection3436<Math>\pi: A \twoheadrightarrow C</Math>.3437</Description>3438</ManSection>343934403441<ManSection>3442<Attr Arg="alpha" Name="CoimageProjection" Label="for IsCapCategoryMorphism"/>3443<Returns>a morphism in <Math>\mathrm{Hom}(A, \mathrm{coim}( \alpha ))</Math>3444</Returns>3445<Description>3446The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3447The output is the coimage projection3448<Math>\pi: A \twoheadrightarrow \mathrm{coim}( \alpha )</Math>.3449</Description>3450</ManSection>345134523453<ManSection>3454<Oper Arg="alpha, C" Name="CoimageProjectionWithGivenCoimage" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>3455<Returns>a morphism in <Math>\mathrm{Hom}(A, C)</Math>3456</Returns>3457<Description>3458The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>3459and an object <Math>C = \mathrm{coim}(\alpha)</Math>.3460The output is the coimage projection3461<Math>\pi: A \twoheadrightarrow C</Math>.3462</Description>3463</ManSection>346434653466<ManSection>3467<Attr Arg="C" Name="AstrictionToCoimage" Label="for IsCapCategoryObject"/>3468<Returns>a morphism in <Math>\mathrm{Hom}(C,B)</Math>3469</Returns>3470<Description>3471This is a convenience method.3472The argument is an object <Math>C</Math> which was created as a coimage3473of a morphism <Math>\alpha: A \rightarrow B</Math>.3474The output is the astriction to coimage3475<Math>a: C \rightarrow B</Math>.3476</Description>3477</ManSection>347834793480<ManSection>3481<Attr Arg="alpha" Name="AstrictionToCoimage" Label="for IsCapCategoryMorphism"/>3482<Returns>a morphism in <Math>\mathrm{Hom}(\mathrm{coim}( \alpha ),B)</Math>3483</Returns>3484<Description>3485The argument is a morphism <Math>\alpha: A \rightarrow B</Math>.3486The output is the astriction to coimage3487<Math>a: \mathrm{coim}( \alpha ) \rightarrow B</Math>.3488</Description>3489</ManSection>349034913492<ManSection>3493<Oper Arg="alpha, C" Name="AstrictionToCoimageWithGivenCoimage" Label="for IsCapCategoryMorphism, IsCapCategoryObject"/>3494<Returns>a morphism in <Math>\mathrm{Hom}(C,B)</Math>3495</Returns>3496<Description>3497The argument are a morphism <Math>\alpha: A \rightarrow B</Math>3498and an object <Math>C = \mathrm{coim}( \alpha )</Math>.3499The output is the astriction to coimage3500<Math>a: C \rightarrow B</Math>.3501</Description>3502</ManSection>350335043505<ManSection>3506<Oper Arg="alpha, tau" Name="UniversalMorphismIntoCoimage" Label="for IsCapCategoryMorphism, IsList"/>3507<Returns>a morphism in <Math>\mathrm{Hom}(T, \mathrm{coim}( \alpha ))</Math>3508</Returns>3509<Description>3510The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>3511and a pair of morphisms3512<Math>\tau = ( \tau_1: A \twoheadrightarrow T, \tau_2: T \rightarrow B )</Math>3513where <Math>\tau_1</Math> is an epimorphism3514such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>.3515The output is the morphism3516<Math>u(\tau): T \rightarrow \mathrm{coim}( \alpha )</Math>3517given by the universal property of the coimage.3518</Description>3519</ManSection>352035213522<ManSection>3523<Oper Arg="alpha, tau, C" Name="UniversalMorphismIntoCoimageWithGivenCoimage" Label="for IsCapCategoryMorphism, IsList, IsCapCategoryObject"/>3524<Returns>a morphism in <Math>\mathrm{Hom}(T, C)</Math>3525</Returns>3526<Description>3527The arguments are a morphism <Math>\alpha: A \rightarrow B</Math>,3528a pair of morphisms3529<Math>\tau = ( \tau_1: A \twoheadrightarrow T, \tau_2: T \rightarrow B )</Math>3530where <Math>\tau_1</Math> is an epimorphism3531such that <Math>\tau_2 \circ \tau_1 \sim_{A,B} \alpha</Math>,3532and an object <Math>C = \mathrm{coim}( \alpha )</Math>.3533The output is the morphism3534<Math>u(\tau): T \rightarrow C</Math>3535given by the universal property of the coimage.3536</Description>3537</ManSection>353835393540<ManSection>3541<Oper Arg="C, F" Name="AddCoimage" Label="for IsCapCategory, IsFunction"/>3542<Returns>nothing3543</Returns>3544<Description>3545The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3546This operations adds the given function <Math>F</Math>3547to the category for the basic operation <C>Coimage</C>.3548<Math>F: \alpha \mapsto C</Math>3549</Description>3550</ManSection>355135523553<ManSection>3554<Oper Arg="C, F" Name="AddCoimageProjection" Label="for IsCapCategory, IsFunction"/>3555<Returns>nothing3556</Returns>3557<Description>3558The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3559This operations adds the given function <Math>F</Math>3560to the category for the basic operation <C>CoimageProjection</C>.3561<Math>F: \alpha \mapsto \pi</Math>3562</Description>3563</ManSection>356435653566<ManSection>3567<Oper Arg="C, F" Name="AddCoimageProjectionWithGivenCoimage" Label="for IsCapCategory, IsFunction"/>3568<Returns>nothing3569</Returns>3570<Description>3571The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3572This operations adds the given function <Math>F</Math>3573to the category for the basic operation <C>CoimageProjectionWithGivenCoimage</C>.3574<Math>F: (\alpha,C) \mapsto \pi</Math>3575</Description>3576</ManSection>357735783579<ManSection>3580<Oper Arg="C, F" Name="AddAstrictionToCoimage" Label="for IsCapCategory, IsFunction"/>3581<Returns>nothing3582</Returns>3583<Description>3584The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3585This operations adds the given function <Math>F</Math>3586to the category for the basic operation <C>AstrictionToCoimage</C>.3587<Math>F: \alpha \mapsto a</Math>3588</Description>3589</ManSection>359035913592<ManSection>3593<Oper Arg="C, F" Name="AddAstrictionToCoimageWithGivenCoimage" Label="for IsCapCategory, IsFunction"/>3594<Returns>nothing3595</Returns>3596<Description>3597The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3598This operations adds the given function <Math>F</Math>3599to the category for the basic operation <C>AstrictionToCoimageWithGivenCoimage</C>.3600<Math>F: (\alpha,C) \mapsto a</Math>3601</Description>3602</ManSection>360336043605<ManSection>3606<Oper Arg="C, F" Name="AddUniversalMorphismIntoCoimage" Label="for IsCapCategory, IsFunction"/>3607<Returns>nothing3608</Returns>3609<Description>3610The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3611This operations adds the given function <Math>F</Math>3612to the category for the basic operation <C>UniversalMorphismIntoCoimage</C>.3613<Math>F: (\alpha, \tau) \mapsto u(\tau)</Math>3614</Description>3615</ManSection>361636173618<ManSection>3619<Oper Arg="C, F" Name="AddUniversalMorphismIntoCoimageWithGivenCoimage" Label="for IsCapCategory, IsFunction"/>3620<Returns>nothing3621</Returns>3622<Description>3623The arguments are a category <Math>C</Math> and a function <Math>F</Math>.3624This operations adds the given function <Math>F</Math>3625to the category for the basic operation <C>UniversalMorphismIntoCoimageWithGivenCoimage</C>.3626<Math>F: (\alpha, \tau,C) \mapsto u(\tau)</Math>3627</Description>3628</ManSection>362936303631</Section>3632363336343635<P/>3636</Chapter>3637363836393640