|
|
|
|
Quelle chap6_mj.html
Sprache: HTML
|
|
| products/Sources/formale Sprachen/GAP/pkg/cap/doc/chap6_mj.html |
 |
<?xml version= "1.0" encoding= "UTF-8"?>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en">
< head>
< script type= "text/javascript"
src= "https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</ script>
< title>GAP (CAP) - Chapter 6: Universal Objects</ title>
< meta http-equiv= "content-type" content= "text/html; charset=UTF-8" />
< meta name= "generator" content= "GAPDoc2HTML" />
< link rel= "stylesheet" type= "text/css" href= "manual.css" />
< script src= "manual.js" type= "text/javascript"></ script>
< script type= "text/javascript">overwriteStyle();</ script>
</ head>
< body class= "chap6" onload= "jscontent()">
< div class= "chlinktop">< span class= "chlink1">Goto Chapter: </ span><a href= "chap0_mj.html">Top< /a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chap15_mj.html">15</a> <a href="chap16_mj.html">16</a> <a href="chap17_mj.html">17</a> <a href="chap18_mj.html">18</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap5_mj.html">[Previous Chapter]</a> <a href="chap7_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap6.html">[MathJax off]</a></p>
<p><a id="X7994CC1487D7617C" name="X7994CC1487D7617C"></a></p>
<div class="ChapSects"><a href="chap6_mj.html#X7994CC1487D7617C">6 <span class="Heading">Universal Objects</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X7DCD99628504B810">6.1 <span class="Heading">Kernel</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82EAD3357C9FE4C8">6.1-1 KernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8430666980D732FB">6.1-2 KernelEmbedding</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CBE1D0C84F5A47E">6.1-3 KernelEmbeddingWithGivenKernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78140AF884DE0736">6.1-4 MorphismFromKernelObjectToSink</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7BF5A3A57E23C795">6.1-5 MorphismFromKernelObjectToSinkWithGivenKernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X87920AC67A5802BC">6.1-6 KernelLift</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X83D439A07AD29D05">6.1-7 KernelLiftWithGivenKernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78D5B94A7EF4D4F0">6.1-8 KernelObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X787AE8F07F7A062C">6.1-9 KernelObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7F61FE0B82AF4CDB">6.1-10 KernelObjectFunctorialWithGivenKernelObjects</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A17922D869CCEB5">6.1-11 KernelObjectFunctorialWithGivenKernelObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X875F177A82BF9B8B">6.2 <span class="Heading">Cokernel</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82803DBC80F40EFC">6.2-1 CokernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78948D7A7B52AB31">6.2-2 CokernelProjection</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X845DC9377A05BE7B">6.2-3 CokernelProjectionWithGivenCokernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X872E26C57F195D50">6.2-4 MorphismFromSourceToCokernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X876648527E75AA04">6.2-5 MorphismFromSourceToCokernelObjectWithGivenCokernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8735262382CE2560">6.2-6 CokernelColift</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86DB5CD27C0EB7D2">6.2-7 CokernelColiftWithGivenCokernelObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78E421227FB90A70">6.2-8 CokernelObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X837889ED7BD6CBED">6.2-9 CokernelObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7BA172F07A431626">6.2-10 CokernelObjectFunctorialWithGivenCokernelObjects</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7F59A455873709D3">6.2-11 CokernelObjectFunctorialWithGivenCokernelObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X797A74DE8267C974">6.3 <span class="Heading">Zero Object</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X790C4FA87CADB93E">6.3-1 ZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X87D87A177FE0542F">6.3-2 ZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A0BF1118777C8A3">6.3-3 UniversalMorphismFromZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X80327B2387F38FE8">6.3-4 UniversalMorphismFromZeroObjectWithGivenZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86003308844F8341">6.3-5 UniversalMorphismIntoZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X866104CA84CBC40A">6.3-6 UniversalMorphismIntoZeroObjectWithGivenZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7F701A11812C74C5">6.3-7 MorphismFromZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X837BD808791003FF">6.3-8 MorphismIntoZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8711ABE9811C7CCF">6.3-9 IsomorphismFromZeroObjectToInitialObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86FF82B284B8E2EB">6.3-10 IsomorphismFromInitialObjectToZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78C501A179BB6CBB">6.3-11 IsomorphismFromZeroObjectToTerminalObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X83E84FC187EE2445">6.3-12 IsomorphismFromTerminalObjectToZeroObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X79CEAF827DDED44B">6.3-13 ZeroObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82D7BF1F85268B0A">6.3-14 ZeroObjectFunctorialWithGivenZeroObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X827CD17C7EBFD58F">6.4 <span class="Heading">Terminal Object</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7DC837217946D22D">6.4-1 TerminalObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7D86D2EA7845AEEB">6.4-2 TerminalObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7BEA5AF67D63F4A5">6.4-3 UniversalMorphismIntoTerminalObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8707AD1784DCBBFF">6.4-4 UniversalMorphismIntoTerminalObjectWithGivenTerminalObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7C616CD287760D2F">6.4-5 TerminalObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8511229882130F93">6.4-6 TerminalObjectFunctorialWithGivenTerminalObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X78B0ED8B80BF5254">6.5 <span class="Heading">Initial Object</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A70384E7F182B00">6.5-1 InitialObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E17CDF481C348B9">6.5-2 InitialObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X873FC2B087004DC3">6.5-3 UniversalMorphismFromInitialObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7F7177F585576F6B">6.5-4 UniversalMorphismFromInitialObjectWithGivenInitialObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X87B1C71179F798C8">6.5-5 InitialObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CE9BBC27F70F3BD">6.5-6 InitialObjectFunctorialWithGivenInitialObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X81FDB99378D1307A">6.6 <span class="Heading">Direct Sum</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82AD6F187B550060">6.6-1 DirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7BC1F4728357D708">6.6-2 DirectSumOp</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78E4506F7BBA7A9A">6.6-3 ProjectionInFactorOfDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X832F2E577B7B70BB">6.6-4 ProjectionInFactorOfDirectSumWithGivenDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X842743E97E2F28CD">6.6-5 InjectionOfCofactorOfDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X876493497F824480">6.6-6 InjectionOfCofactorOfDirectSumWithGivenDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X84FCF65E798EBF7B">6.6-7 UniversalMorphismIntoDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X79EFDADB8276B639">6.6-8 UniversalMorphismIntoDirectSumWithGivenDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X812D12CF7AB6F499">6.6-9 UniversalMorphismFromDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7B64A051814EFDDB">6.6-10 UniversalMorphismFromDirectSumWithGivenDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7AB9D34882B5EDDF">6.6-11 IsomorphismFromDirectSumToDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E87C9257A1BFFEE">6.6-12 IsomorphismFromDirectProductToDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X85599FEC812FD591">6.6-13 IsomorphismFromDirectSumToCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CACFBCA7B9A4E19">6.6-14 IsomorphismFromCoproductToDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X847C8B7E8646DF61">6.6-15 MorphismBetweenDirectSums</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7FDE63F78410A822">6.6-16 MorphismBetweenDirectSums</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E020D2783A62178">6.6-17 MorphismBetweenDirectSumsWithGivenDirectSums</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A3400D485D0C438">6.6-18 ComponentOfMorphismIntoDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7B71C4F4799263E6">6.6-19 ComponentOfMorphismFromDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X784D53A47F683192">6.6-20 DirectSumFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78B24593868483EE">6.6-21 DirectSumFunctorialWithGivenDirectSums</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X7E8036DF7AC65994">6.7 <span class="Heading">Coproduct</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X872D3F297979C7B8">6.7-1 Coproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E3C6A0482E8CAB5">6.7-2 Coproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82FCE4657D132584">6.7-3 Coproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82D87B52862BB55C">6.7-4 InjectionOfCofactorOfCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X83687CD9789CAB9C">6.7-5 InjectionOfCofactorOfCoproductWithGivenCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7D002C7B82B26908">6.7-6 UniversalMorphismFromCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X85F392E5865012C7">6.7-7 UniversalMorphismFromCoproductWithGivenCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7FDE92577EFB6866">6.7-8 CoproductFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X85FFAD9E7FAFF9D4">6.7-9 CoproductFunctorialWithGivenCoproducts</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82F0CBC179945B84">6.7-10 ComponentOfMorphismFromCoproduct</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X844C65417FBEA3C7">6.8 <span class="Heading">Direct Product</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X861BA02C7902A4F4">6.8-1 DirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7AEF0CD1812F7EC8">6.8-2 DirectProductOp</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7FFBE9EC7BEE7673">6.8-3 ProjectionInFactorOfDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8288ABA984EF9DED">6.8-4 ProjectionInFactorOfDirectProductWithGivenDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X872189E4848F6863">6.8-5 UniversalMorphismIntoDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X81A27DC180D751B8">6.8-6 UniversalMorphismIntoDirectProductWithGivenDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X79EB76507C8AB4A4">6.8-7 DirectProductFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7DD930FE78492D58">6.8-8 DirectProductFunctorialWithGivenDirectProducts</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7C5769577CEAF2C4">6.8-9 ComponentOfMorphismIntoDirectProduct</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X824FD8F786D2350D">6.9 <span class="Heading">Equalizer</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X824FD8F786D2350D">6.9-1 Equalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7B1937088320E680">6.9-2 EqualizerOp</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X803E62B382D76E4F">6.9-3 EmbeddingOfEqualizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X828423F283DF97BA">6.9-4 EmbeddingOfEqualizerWithGivenEqualizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78A6E6AA87FADB13">6.9-5 MorphismFromEqualizerToSink</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CF04F98844789DE">6.9-6 MorphismFromEqualizerToSinkWithGivenEqualizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X872F9E2E853EB91D">6.9-7 UniversalMorphismIntoEqualizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7F7191B57D8AA456">6.9-8 UniversalMorphismIntoEqualizerWithGivenEqualizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82400CA57F0E5585">6.9-9 EqualizerFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7804D05C7EFDC5CE">6.9-10 EqualizerFunctorialWithGivenEqualizers</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7DD2167B7836DF62">6.9-11 JointPairwiseDifferencesOfMorphismsIntoDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E8843F17F0F3D14">6.9-12 IsomorphismFromEqualizerToKernelOfJointPairwiseDifferencesOfMorphismsIntoDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A96B57382715059">6.9-13 IsomorphismFromKernelOfJointPairwiseDifferencesOfMorphismsIntoDirectProductToEqualizer</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X7BA8F7BD793CC288">6.10 <span class="Heading">Coequalizer</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7BA8F7BD793CC288">6.10-1 Coequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X80FCD6BE84781FE6">6.10-2 CoequalizerOp</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E0468077DE9EC3B">6.10-3 ProjectionOntoCoequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78B7474384BAA57A">6.10-4 ProjectionOntoCoequalizerWithGivenCoequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7D3F328F82CD8A49">6.10-5 MorphismFromSourceToCoequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82EB657782E82115">6.10-6 MorphismFromSourceToCoequalizerWithGivenCoequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86EFF737796C2630">6.10-7 UniversalMorphismFromCoequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X816990198092E8B6">6.10-8 UniversalMorphismFromCoequalizerWithGivenCoequalizer</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X818C5AD2794A2C7B">6.10-9 CoequalizerFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CB3323C7B44B75F">6.10-10 CoequalizerFunctorialWithGivenCoequalizers</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7AE156547D6F06CE">6.10-11 JointPairwiseDifferencesOfMorphismsFromCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X80AFEE3579EB987A">6.10-12 IsomorphismFromCoequalizerToCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78A3F1087B86E650">6.10-13 IsomorphismFromCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproductToCoequalizer</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X8038824E84B571F8">6.11 <span class="Heading">Fiber Product (= Pullback)</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7DAB395584678429">6.11-1 IsomorphismFromFiberProductToEqualizerOfDirectProductDiagram</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8190FBB47DB6307D">6.11-2 IsomorphismFromEqualizerOfDirectProductDiagramToFiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82157EF887CC99D1">6.11-3 FiberProductEmbeddingInDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7919AF7486FA42C5">6.11-4 FiberProductEmbeddingInDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7DE20941803BFBD9">6.11-5 FiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8000EEB77D6E8B7C">6.11-6 FiberProductOp</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8104B3717D3B646F">6.11-7 ProjectionInFactorOfFiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8085606A7B09071F">6.11-8 ProjectionInFactorOfFiberProductWithGivenFiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7C6EF50085D13D12">6.11-9 MorphismFromFiberProductToSink</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X866ED61786F4C76C">6.11-10 MorphismFromFiberProductToSinkWithGivenFiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8441CF7F8140E8C2">6.11-11 UniversalMorphismIntoFiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A6A890D85F01977">6.11-12 UniversalMorphismIntoFiberProductWithGivenFiberProduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X791F33AB7EAF6A2A">6.11-13 FiberProductFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X83A9F01A82894F65">6.11-14 FiberProductFunctorialWithGivenFiberProducts</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X81A2D49D85923894">6.12 <span class="Heading">Pushout</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X87C495A782BE3433">6.12-1 IsomorphismFromPushoutToCoequalizerOfCoproductDiagram</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7EAFDD727D94E932">6.12-2 IsomorphismFromCoequalizerOfCoproductDiagramToPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E718F228767638A">6.12-3 PushoutProjectionFromCoproduct</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X837467847F63FE1B">6.12-4 PushoutProjectionFromDirectSum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78E10D9E849FE214">6.12-5 Pushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78D93A2883C83CAC">6.12-6 Pushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CF12E527805752F">6.12-7 InjectionOfCofactorOfPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E54DB957B5F9157">6.12-8 InjectionOfCofactorOfPushoutWithGivenPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X84B182F882D1F039">6.12-9 MorphismFromSourceToPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7D3DAF80816918A4">6.12-10 MorphismFromSourceToPushoutWithGivenPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X84F299F47BFB39F8">6.12-11 UniversalMorphismFromPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7E3C69767F1C3B30">6.12-12 UniversalMorphismFromPushoutWithGivenPushout</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X80494AF087F5DE4B">6.12-13 PushoutFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7DAF60808113D76B">6.12-14 PushoutFunctorialWithGivenPushouts</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X87F4D35A826599C6">6.13 <span class="Heading">Image</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X80490BD785CA695A">6.13-1 IsomorphismFromImageObjectToKernelOfCokernel</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CAA3342865B456B">6.13-2 IsomorphismFromKernelOfCokernelToImageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X83B457FF79AC5AC6">6.13-3 ImageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86CEE2D1876EC2B9">6.13-4 ImageEmbedding</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82991FA17B460744">6.13-5 ImageEmbeddingWithGivenImageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8144201987A27661">6.13-6 CoastrictionToImage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78BE36EA83BEF493">6.13-7 CoastrictionToImageWithGivenImageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7989B1FB811D2033">6.13-8 UniversalMorphismFromImage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86E557097CFB4430">6.13-9 UniversalMorphismFromImageWithGivenImageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7A46647F7AA9C398">6.13-10 ImageObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X85F174A07A09B04C">6.13-11 ImageObjectFunctorialWithGivenImageObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X7EB02EC487B586E5">6.14 <span class="Heading">Coimage</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7C594E227D8DB0ED">6.14-1 IsomorphismFromCoimageToCokernelOfKernel</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7CF7E7E47A460E56">6.14-2 IsomorphismFromCokernelOfKernelToCoimage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X82318F9B876ACB1A">6.14-3 CoimageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X788E717C7CCC6645">6.14-4 CoimageProjection</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X836301DF80A22C5C">6.14-5 CoimageProjectionWithGivenCoimageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X805108BF8047357E">6.14-6 AstrictionToCoimage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X78AC1C7384A60A5E">6.14-7 AstrictionToCoimageWithGivenCoimageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7D051DDF7A68BFFB">6.14-8 UniversalMorphismIntoCoimage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X87AACC0083B6D49F">6.14-9 UniversalMorphismIntoCoimageWithGivenCoimageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X852EFBA87E7F6831">6.14-10 CoimageObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7FB58F087D65DB38">6.14-11 CoimageObjectFunctorialWithGivenCoimageObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X8047F7C57B874495">6.15 <span class="Heading">Morphism between Coimage and Image</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7F7BD6A18581671E">6.15-1 MorphismFromCoimageToImage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8025749B78E12A2B">6.15-2 MorphismFromCoimageToImageWithGivenObjects</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X86692249870B0EC6">6.15-3 InverseOfMorphismFromCoimageToImage</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7B32041F7C9427E4">6.15-4 InverseOfMorphismFromCoimageToImageWithGivenObjects</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X87F38F8284D3137C">6.16 <span class="Heading">Homology objects</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8713652D7B7E1418">6.16-1 HomologyObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8647C62283C9B921">6.16-2 HomologyObjectFunctorial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X81012CC0845DE717">6.16-3 HomologyObjectFunctorialWithGivenHomologyObjects</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X8799E88E79EFE007">6.16-4 IsomorphismFromHomologyObjectToItsConstructionAsAnImageObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X828E94BA7CF6FB71">6.16-5 IsomorphismFromItsConstructionAsAnImageObjectToHomologyObject</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap6_mj.html#X81E4AE0B7876230B">6.17 <span class="Heading">Projective covers and injective envelopes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X790C931979343CFF">6.17-1 ProjectiveCoverObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X851836CC829092D9">6.17-2 EpimorphismFromProjectiveCoverObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X7C9F2CC480C7DA1D">6.17-3 EpimorphismFromProjectiveCoverObjectWithGivenProjectiveCoverObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X791CA23A8401BF2F">6.17-4 InjectiveEnvelopeObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X879A01DD7DC8AB13">6.17-5 MonomorphismIntoInjectiveEnvelopeObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap6_mj.html#X781E3ED78574B379">6.17-6 MonomorphismIntoInjectiveEnvelopeObjectWithGivenInjectiveEnvelopeObject</a></span>
</div></div>
</div>
<h3>6 <span class="Heading">Universal Objects</span></h3>
<p><a id="X7DCD99628504B810" name="X7DCD99628504B810"></a></p>
<h4>6.1 <span class="Heading">Kernel</span></h4>
<p>For a given morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, a kernel of <span class="SimpleMath">\(\alpha\)</span> consists of three parts:</p>
<ul>
<li><p>an object <span class="SimpleMath">\(K\)</span>,</p>
</li>
<li><p>a morphism <span class="SimpleMath">\(\iota: K \rightarrow A\)</span> such that <span class="SimpleMath">\(\alpha \circ \iota \sim_{K,B} 0\)</span>,</p>
</li>
<li><p>a dependent function <span class="SimpleMath">\(u\)</span> mapping each morphism <span class="SimpleMath">\(\tau: T \rightarrow A\)</span> satisfying <span class="SimpleMath">\(\alpha \circ \tau \sim_{T,B} 0\)</span> to a morphism <span class="SimpleMath">\(u(\tau): T \rightarrow K\)</span> such that <span class="SimpleMath">\(\iota \circ u( \tau ) \sim_{T,A} \tau\)</span>.</p>
</li>
</ul>
<p>The triple <span class="SimpleMath">\(( K, \iota, u )\)</span> is called a <em>kernel</em> of <span class="SimpleMath">\(\alpha\)</span> if the morphisms <span class="SimpleMath">\(u( \tau )\)</span> are uniquely determined up to congruence of morphisms. We denote the object <span class="SimpleMath">\(K\)</span> of such a triple by <span class="SimpleMath">\(\mathrm{KernelObject}(\alpha)\)</span>. We say that the morphism <span class="SimpleMath">\(u(\tau)\)</span> is induced by the <em>universal property of the kernel</em>. <span class="SimpleMath">\(\\ \)</span> <span class="SimpleMath">\(\mathrm{KernelObject}\)</span> is a functorial operation. This means: for <span class="SimpleMath">\(\mu: A \rightarrow A'\)</span>, <span class="SimpleMath">\(\nu: B \rightarrow B'\)</span>, <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, <span class="SimpleMath">\(\alpha': A' \rightarrow B'\)</span> such that <span class="SimpleMath">\(\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu\)</span>, we obtain a morphism <span class="SimpleMath">\(\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )\)</span>.</p>
<p><a id="X82EAD3357C9FE4C8" name="X82EAD3357C9FE4C8"></a></p>
<h5>6.1-1 KernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelObject</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha\)</span>. The output is the kernel <span class="SimpleMath">\(K\)</span> of <span class="SimpleMath">\(\alpha\)</span>.</p>
<p><a id="X8430666980D732FB" name="X8430666980D732FB"></a></p>
<h5>6.1-2 KernelEmbedding</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelEmbedding</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{KernelObject}(\alpha),A)\)</span></p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>. The output is the kernel embedding <span class="SimpleMath">\(\iota: \mathrm{KernelObject}(\alpha) \rightarrow A\)</span>.</p>
<p><a id="X7CBE1D0C84F5A47E" name="X7CBE1D0C84F5A47E"></a></p>
<h5>6.1-3 KernelEmbeddingWithGivenKernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelEmbeddingWithGivenKernelObject</code>( <var class="Arg">alpha</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(K,A)\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span> and an object <span class="SimpleMath">\(K = \mathrm{KernelObject}(\alpha)\)</span>. The output is the kernel embedding <span class="SimpleMath">\(\iota: K \rightarrow A\)</span>.</p>
<p><a id="X78140AF884DE0736" name="X78140AF884DE0736"></a></p>
<h5>6.1-4 MorphismFromKernelObjectToSink</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismFromKernelObjectToSink</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the zero morphism in <span class="SimpleMath">\(\mathrm{Hom}( \mathrm{KernelObject}(\alpha), B )\)</span></p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>. The output is the zero morphism <span class="SimpleMath">\(0: \mathrm{KernelObject}(\alpha) \rightarrow B\)</span>.</p>
<p><a id="X7BF5A3A57E23C795" name="X7BF5A3A57E23C795"></a></p>
<h5>6.1-5 MorphismFromKernelObjectToSinkWithGivenKernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismFromKernelObjectToSinkWithGivenKernelObject</code>( <var class="Arg">alpha</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the zero morphism in <span class="SimpleMath">\(\mathrm{Hom}( K, B )\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span> and an object <span class="SimpleMath">\(K = \mathrm{KernelObject}(\alpha)\)</span>. The output is the zero morphism <span class="SimpleMath">\(0: K \rightarrow B\)</span>.</p>
<p><a id="X87920AC67A5802BC" name="X87920AC67A5802BC"></a></p>
<h5>6.1-6 KernelLift</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelLift</code>( <var class="Arg">alpha</var>, <var class="Arg">T</var>, <var class="Arg">tau</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(T,\mathrm{KernelObject}(\alpha))\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, a test object <span class="SimpleMath">\(T\)</span>, and a test morphism <span class="SimpleMath">\(\tau: T \rightarrow A\)</span> satisfying <span class="SimpleMath">\(\alpha \circ \tau \sim_{T,B} 0\)</span>. For convenience, the test object <var class="Arg">T</var> can be omitted and is automatically derived from <var class="Arg">tau</var> in that case. The output is the morphism <span class="SimpleMath">\(u(\tau): T \rightarrow \mathrm{KernelObject}(\alpha)\)</span> given by the universal property of the kernel.</p>
<p><a id="X83D439A07AD29D05" name="X83D439A07AD29D05"></a></p>
<h5>6.1-7 KernelLiftWithGivenKernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelLiftWithGivenKernelObject</code>( <var class="Arg">alpha</var>, <var class="Arg">T</var>, <var class="Arg">tau</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(T,K)\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, a test object <span class="SimpleMath">\(T\)</span>, a test morphism <span class="SimpleMath">\(\tau: T \rightarrow A\)</span> satisfying <span class="SimpleMath">\(\alpha \circ \tau \sim_{T,B} 0\)</span>, and an object <span class="SimpleMath">\(K = \mathrm{KernelObject}(\alpha)\)</span>. For convenience, the test object <var class="Arg">T</var> can be omitted and is automatically derived from <var class="Arg">tau</var> in that case. The output is the morphism <span class="SimpleMath">\(u(\tau): T \rightarrow K\)</span> given by the universal property of the kernel.</p>
<p><a id="X78D5B94A7EF4D4F0" name="X78D5B94A7EF4D4F0"></a></p>
<h5>6.1-8 KernelObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelObjectFunctorial</code>( <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( \mathrm{KernelObject}( \alpha ), \mathrm{KernelObject}( \alpha' ) )\)</span></p>
<p>The argument is a list <span class="SimpleMath">\(L = [ \alpha: A \rightarrow B, [ \mu: A \rightarrow A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ]\)</span> of morphisms. The output is the morphism <span class="SimpleMath">\(\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )\)</span> given by the functoriality of the kernel.</p>
<p><a id="X787AE8F07F7A062C" name="X787AE8F07F7A062C"></a></p>
<h5>6.1-9 KernelObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelObjectFunctorial</code>( <var class="Arg">alpha</var>, <var class="Arg">mu</var>, <var class="Arg">alpha_prime</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( \mathrm{KernelObject}( \alpha ), \mathrm{KernelObject}( \alpha' ) )\)</span></p>
<p>The arguments are three morphisms <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, <span class="SimpleMath">\(\mu: A \rightarrow A'\)</span>, <span class="SimpleMath">\(\alpha': A' \rightarrow B'\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )\)</span> given by the functoriality of the kernel.</p>
<p><a id="X7F61FE0B82AF4CDB" name="X7F61FE0B82AF4CDB"></a></p>
<h5>6.1-10 KernelObjectFunctorialWithGivenKernelObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelObjectFunctorialWithGivenKernelObjects</code>( <var class="Arg">s</var>, <var class="Arg">alpha</var>, <var class="Arg">mu</var>, <var class="Arg">alpha_prime</var>, <var class="Arg">r</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( s, r )\)</span></p>
<p>The arguments are an object <span class="SimpleMath">\(s = \mathrm{KernelObject}( \alpha )\)</span>, three morphisms <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, <span class="SimpleMath">\(\mu: A \rightarrow A'\)</span>, <span class="SimpleMath">\(\alpha': A' \rightarrow B'\)</span>, and an object <span class="SimpleMath">\(r = \mathrm{KernelObject}( \alpha' )\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )\)</span> given by the functoriality of the kernel.</p>
<p><a id="X7A17922D869CCEB5" name="X7A17922D869CCEB5"></a></p>
<h5>6.1-11 KernelObjectFunctorialWithGivenKernelObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ KernelObjectFunctorialWithGivenKernelObjects</code>( <var class="Arg">s</var>, <var class="Arg">alpha</var>, <var class="Arg">mu</var>, <var class="Arg">nu</var>, <var class="Arg">alpha_prime</var>, <var class="Arg">r</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( s, r )\)</span></p>
<p>The arguments are an object <span class="SimpleMath">\(s = \mathrm{KernelObject}( \alpha )\)</span>, four morphisms <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, <span class="SimpleMath">\(\mu: A \rightarrow A'\)</span>, <span class="SimpleMath">\(\nu: B \rightarrow B'\)</span>, <span class="SimpleMath">\(\alpha': A' \rightarrow B'\)</span>, and an object <span class="SimpleMath">\(r = \mathrm{KernelObject}( \alpha' )\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{KernelObject}( \alpha ) \rightarrow \mathrm{KernelObject}( \alpha' )\)</span> given by the functoriality of the kernel.</p>
<p><a id="X875F177A82BF9B8B" name="X875F177A82BF9B8B"></a></p>
<h4>6.2 <span class="Heading">Cokernel</span></h4>
<p>For a given morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, a cokernel of <span class="SimpleMath">\(\alpha\)</span> consists of three parts:</p>
<ul>
<li><p>an object <span class="SimpleMath">\(K\)</span>,</p>
</li>
<li><p>a morphism <span class="SimpleMath">\(\epsilon: B \rightarrow K\)</span> such that <span class="SimpleMath">\(\epsilon \circ \alpha \sim_{A,K} 0\)</span>,</p>
</li>
<li><p>a dependent function <span class="SimpleMath">\(u\)</span> mapping each <span class="SimpleMath">\(\tau: B \rightarrow T\)</span> satisfying <span class="SimpleMath">\(\tau \circ \alpha \sim_{A, T} 0\)</span> to a morphism <span class="SimpleMath">\(u(\tau):K \rightarrow T\)</span> such that <span class="SimpleMath">\(u(\tau) \circ \epsilon \sim_{B,T} \tau\)</span>.</p>
</li>
</ul>
<p>The triple <span class="SimpleMath">\(( K, \epsilon, u )\)</span> is called a <em>cokernel</em> of <span class="SimpleMath">\(\alpha\)</span> if the morphisms <span class="SimpleMath">\(u( \tau )\)</span> are uniquely determined up to congruence of morphisms. We denote the object <span class="SimpleMath">\(K\)</span> of such a triple by <span class="SimpleMath">\(\mathrm{CokernelObject}(\alpha)\)</span>. We say that the morphism <span class="SimpleMath">\(u(\tau)\)</span> is induced by the <em>universal property of the cokernel</em>. <span class="SimpleMath">\(\\ \)</span> <span class="SimpleMath">\(\mathrm{CokernelObject}\)</span> is a functorial operation. This means: for <span class="SimpleMath">\(\mu: A \rightarrow A'\)</span>, <span class="SimpleMath">\(\nu: B \rightarrow B'\)</span>, <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, <span class="SimpleMath">\(\alpha': A' \rightarrow B'\)</span> such that <span class="SimpleMath">\(\nu \circ \alpha \sim_{A,B'} \alpha' \circ \mu\)</span>, we obtain a morphism <span class="SimpleMath">\(\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )\)</span>.</p>
<p><a id="X82803DBC80F40EFC" name="X82803DBC80F40EFC"></a></p>
<h5>6.2-1 CokernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelObject</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>. The output is the cokernel <span class="SimpleMath">\(K\)</span> of <span class="SimpleMath">\(\alpha\)</span>.</p>
<p><a id="X78948D7A7B52AB31" name="X78948D7A7B52AB31"></a></p>
<h5>6.2-2 CokernelProjection</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelProjection</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(B, \mathrm{CokernelObject}( \alpha ))\)</span></p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>. The output is the cokernel projection <span class="SimpleMath">\(\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )\)</span>.</p>
<p><a id="X845DC9377A05BE7B" name="X845DC9377A05BE7B"></a></p>
<h5>6.2-3 CokernelProjectionWithGivenCokernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelProjectionWithGivenCokernelObject</code>( <var class="Arg">alpha</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(B, K)\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span> and an object <span class="SimpleMath">\(K = \mathrm{CokernelObject}(\alpha)\)</span>. The output is the cokernel projection <span class="SimpleMath">\(\epsilon: B \rightarrow \mathrm{CokernelObject}( \alpha )\)</span>.</p>
<p><a id="X872E26C57F195D50" name="X872E26C57F195D50"></a></p>
<h5>6.2-4 MorphismFromSourceToCokernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismFromSourceToCokernelObject</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the zero morphism in <span class="SimpleMath">\(\mathrm{Hom}( A, \mathrm{CokernelObject}( \alpha ) )\)</span>.</p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>. The output is the zero morphism <span class="SimpleMath">\(0: A \rightarrow \mathrm{CokernelObject}(\alpha)\)</span>.</p>
<p><a id="X876648527E75AA04" name="X876648527E75AA04"></a></p>
<h5>6.2-5 MorphismFromSourceToCokernelObjectWithGivenCokernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismFromSourceToCokernelObjectWithGivenCokernelObject</code>( <var class="Arg">alpha</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the zero morphism in <span class="SimpleMath">\(\mathrm{Hom}( A, K )\)</span>.</p>
<p>The argument is a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span> and an object <span class="SimpleMath">\(K = \mathrm{CokernelObject}(\alpha)\)</span>. The output is the zero morphism <span class="SimpleMath">\(0: A \rightarrow K\)</span>.</p>
<p><a id="X8735262382CE2560" name="X8735262382CE2560"></a></p>
<h5>6.2-6 CokernelColift</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelColift</code>( <var class="Arg">alpha</var>, <var class="Arg">T</var>, <var class="Arg">tau</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{CokernelObject}(\alpha),T)\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, a test object <span class="SimpleMath">\(T\)</span>, and a test morphism <span class="SimpleMath">\(\tau: B \rightarrow T\)</span> satisfying <span class="SimpleMath">\(\tau \circ \alpha \sim_{A, T} 0\)</span>. For convenience, the test object <var class="Arg">T</var> can be omitted and is automatically derived from <var class="Arg">tau</var> in that case. The output is the morphism <span class="SimpleMath">\(u(\tau): \mathrm{CokernelObject}(\alpha) \rightarrow T\)</span> given by the universal property of the cokernel.</p>
<p><a id="X86DB5CD27C0EB7D2" name="X86DB5CD27C0EB7D2"></a></p>
<h5>6.2-7 CokernelColiftWithGivenCokernelObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelColiftWithGivenCokernelObject</code>( <var class="Arg">alpha</var>, <var class="Arg">T</var>, <var class="Arg">tau</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(K,T)\)</span></p>
<p>The arguments are a morphism <span class="SimpleMath">\(\alpha: A \rightarrow B\)</span>, a test object <span class="SimpleMath">\(T\)</span>, a test morphism <span class="SimpleMath">\(\tau: B \rightarrow T\)</span> satisfying <span class="SimpleMath">\(\tau \circ \alpha \sim_{A, T} 0\)</span>, and an object <span class="SimpleMath">\(K = \mathrm{CokernelObject}(\alpha)\)</span>. For convenience, the test object <var class="Arg">T</var> can be omitted and is automatically derived from <var class="Arg">tau</var> in that case. The output is the morphism <span class="SimpleMath">\(u(\tau): K \rightarrow T\)</span> given by the universal property of the cokernel.</p>
<p><a id="X78E421227FB90A70" name="X78E421227FB90A70"></a></p>
<h5>6.2-8 CokernelObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelObjectFunctorial</code>( <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{CokernelObject}( \alpha ), \mathrm{CokernelObject}( \alpha' ))\)</span></p>
<p>The argument is a list <span class="SimpleMath">\(L = [ \alpha: A \rightarrow B, [ \mu:A \rightarrow A', \nu: B \rightarrow B' ], \alpha': A' \rightarrow B' ]\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )\)</span> given by the functoriality of the cokernel.</p>
<p><a id="X837889ED7BD6CBED" name="X837889ED7BD6CBED"></a></p>
<h5>6.2-9 CokernelObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelObjectFunctorial</code>( <var class="Arg">alpha</var>, <var class="Arg">nu</var>, <var class="Arg">alpha_prime</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{CokernelObject}( \alpha ), \mathrm{CokernelObject}( \alpha' ))\)</span></p>
<p>The arguments are three morphisms <span class="SimpleMath">\(\alpha: A \rightarrow B, \nu: B \rightarrow B', \alpha': A' \rightarrow B'\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )\)</span> given by the functoriality of the cokernel.</p>
<p><a id="X7BA172F07A431626" name="X7BA172F07A431626"></a></p>
<h5>6.2-10 CokernelObjectFunctorialWithGivenCokernelObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelObjectFunctorialWithGivenCokernelObjects</code>( <var class="Arg">s</var>, <var class="Arg">alpha</var>, <var class="Arg">nu</var>, <var class="Arg">alpha_prime</var>, <var class="Arg">r</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(s, r)\)</span></p>
<p>The arguments are an object <span class="SimpleMath">\(s = \mathrm{CokernelObject}( \alpha )\)</span>, three morphisms <span class="SimpleMath">\(\alpha: A \rightarrow B, \nu: B \rightarrow B', \alpha': A' \rightarrow B'\)</span>, and an object <span class="SimpleMath">\(r = \mathrm{CokernelObject}( \alpha' )\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )\)</span> given by the functoriality of the cokernel.</p>
<p><a id="X7F59A455873709D3" name="X7F59A455873709D3"></a></p>
<h5>6.2-11 CokernelObjectFunctorialWithGivenCokernelObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CokernelObjectFunctorialWithGivenCokernelObjects</code>( <var class="Arg">s</var>, <var class="Arg">alpha</var>, <var class="Arg">mu</var>, <var class="Arg">nu</var>, <var class="Arg">alpha_prime</var>, <var class="Arg">r</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(s, r)\)</span></p>
<p>The arguments are an object <span class="SimpleMath">\(s = \mathrm{CokernelObject}( \alpha )\)</span>, four morphisms <span class="SimpleMath">\(\alpha: A \rightarrow B, \mu: A \rightarrow A', \nu: B \rightarrow B', \alpha': A' \rightarrow B'\)</span>, and an object <span class="SimpleMath">\(r = \mathrm{CokernelObject}( \alpha' )\)</span>. The output is the morphism <span class="SimpleMath">\(\mathrm{CokernelObject}( \alpha ) \rightarrow \mathrm{CokernelObject}( \alpha' )\)</span> given by the functoriality of the cokernel.</p>
<p><a id="X797A74DE8267C974" name="X797A74DE8267C974"></a></p>
<h4>6.3 <span class="Heading">Zero Object</span></h4>
<p>A zero object consists of three parts:</p>
<ul>
<li><p>an object <span class="SimpleMath">\(Z\)</span>,</p>
</li>
<li><p>a function <span class="SimpleMath">\(u_{\mathrm{in}}\)</span> mapping each object <span class="SimpleMath">\(A\)</span> to a morphism <span class="SimpleMath">\(u_{\mathrm{in}}(A): A \rightarrow Z\)</span>,</p>
</li>
<li><p>a function <span class="SimpleMath">\(u_{\mathrm{out}}\)</span> mapping each object <span class="SimpleMath">\(A\)</span> to a morphism <span class="SimpleMath">\(u_{\mathrm{out}}(A): Z \rightarrow A\)</span>.</p>
</li>
</ul>
<p>The triple <span class="SimpleMath">\((Z, u_{\mathrm{in}}, u_{\mathrm{out}})\)</span> is called a <em>zero object</em> if the morphisms <span class="SimpleMath">\(u_{\mathrm{in}}(A)\)</span>, <span class="SimpleMath">\(u_{\mathrm{out}}(A)\)</span> are uniquely determined up to congruence of morphisms. We denote the object <span class="SimpleMath">\(Z\)</span> of such a triple by <span class="SimpleMath">\(\mathrm{ZeroObject}\)</span>. We say that the morphisms <span class="SimpleMath">\(u_{\mathrm{in}}(A)\)</span> and <span class="SimpleMath">\(u_{\mathrm{out}}(A)\)</span> are induced by the <em>universal property of the zero object</em>.</p>
<p><a id="X790C4FA87CADB93E" name="X790C4FA87CADB93E"></a></p>
<h5>6.3-1 ZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ZeroObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is a zero object <span class="SimpleMath">\(Z\)</span> of <span class="SimpleMath">\(C\)</span>.</p>
<p><a id="X87D87A177FE0542F" name="X87D87A177FE0542F"></a></p>
<h5>6.3-2 ZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ZeroObject</code>( <var class="Arg">c</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>This is a convenience method. The argument is a cell <span class="SimpleMath">\(c\)</span>. The output is a zero object <span class="SimpleMath">\(Z\)</span> of the category <span class="SimpleMath">\(C\)</span> for which <span class="SimpleMath">\(c \in C\)</span>.</p>
<p><a id="X7A0BF1118777C8A3" name="X7A0BF1118777C8A3"></a></p>
<h5>6.3-3 UniversalMorphismFromZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismFromZeroObject</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{ZeroObject}, A)\)</span></p>
<p>The argument is an object <span class="SimpleMath">\(A\)</span>. The output is the universal morphism <span class="SimpleMath">\(u_{\mathrm{out}}: \mathrm{ZeroObject} \rightarrow A\)</span>.</p>
<p><a id="X80327B2387F38FE8" name="X80327B2387F38FE8"></a></p>
<h5>6.3-4 UniversalMorphismFromZeroObjectWithGivenZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismFromZeroObjectWithGivenZeroObject</code>( <var class="Arg">A</var>, <var class="Arg">Z</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(Z, A)\)</span></p>
<p>The arguments are an object <span class="SimpleMath">\(A\)</span>, and a zero object <span class="SimpleMath">\(Z = \mathrm{ZeroObject}\)</span>. The output is the universal morphism <span class="SimpleMath">\(u_{\mathrm{out}}: Z \rightarrow A\)</span>.</p>
<p><a id="X86003308844F8341" name="X86003308844F8341"></a></p>
<h5>6.3-5 UniversalMorphismIntoZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismIntoZeroObject</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(A, \mathrm{ZeroObject})\)</span></p>
<p>The argument is an object <span class="SimpleMath">\(A\)</span>. The output is the universal morphism <span class="SimpleMath">\(u_{\mathrm{in}}: A \rightarrow \mathrm{ZeroObject}\)</span>.</p>
<p><a id="X866104CA84CBC40A" name="X866104CA84CBC40A"></a></p>
<h5>6.3-6 UniversalMorphismIntoZeroObjectWithGivenZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismIntoZeroObjectWithGivenZeroObject</code>( <var class="Arg">A</var>, <var class="Arg">Z</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(A, Z)\)</span></p>
<p>The arguments are an object <span class="SimpleMath">\(A\)</span>, and a zero object <span class="SimpleMath">\(Z = \mathrm{ZeroObject}\)</span>. The output is the universal morphism <span class="SimpleMath">\(u_{\mathrm{in}}: A \rightarrow Z\)</span>.</p>
<p><a id="X7F701A11812C74C5" name="X7F701A11812C74C5"></a></p>
<h5>6.3-7 MorphismFromZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismFromZeroObject</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{ZeroObject}, A)\)</span></p>
<p>This is a synonym for <code class="code">UniversalMorphismFromZeroObject</code>.</p>
<p><a id="X837BD808791003FF" name="X837BD808791003FF"></a></p>
<h5>6.3-8 MorphismIntoZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismIntoZeroObject</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(A, \mathrm{ZeroObject})\)</span></p>
<p>This is a synonym for <code class="code">UniversalMorphismIntoZeroObject</code>.</p>
<p><a id="X8711ABE9811C7CCF" name="X8711ABE9811C7CCF"></a></p>
<h5>6.3-9 IsomorphismFromZeroObjectToInitialObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismFromZeroObjectToInitialObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{InitialObject})\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique isomorphism <span class="SimpleMath">\(\mathrm{ZeroObject} \rightarrow \mathrm{InitialObject}\)</span>.</p>
<p><a id="X86FF82B284B8E2EB" name="X86FF82B284B8E2EB"></a></p>
<h5>6.3-10 IsomorphismFromInitialObjectToZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismFromInitialObjectToZeroObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{InitialObject}, \mathrm{ZeroObject})\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique isomorphism <span class="SimpleMath">\(\mathrm{InitialObject} \rightarrow \mathrm{ZeroObject}\)</span>.</p>
<p><a id="X78C501A179BB6CBB" name="X78C501A179BB6CBB"></a></p>
<h5>6.3-11 IsomorphismFromZeroObjectToTerminalObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismFromZeroObjectToTerminalObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{TerminalObject})\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique isomorphism <span class="SimpleMath">\(\mathrm{ZeroObject} \rightarrow \mathrm{TerminalObject}\)</span>.</p>
<p><a id="X83E84FC187EE2445" name="X83E84FC187EE2445"></a></p>
<h5>6.3-12 IsomorphismFromTerminalObjectToZeroObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismFromTerminalObjectToZeroObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{TerminalObject}, \mathrm{ZeroObject})\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique isomorphism <span class="SimpleMath">\(\mathrm{TerminalObject} \rightarrow \mathrm{ZeroObject}\)</span>.</p>
<p><a id="X79CEAF827DDED44B" name="X79CEAF827DDED44B"></a></p>
<h5>6.3-13 ZeroObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ZeroObjectFunctorial</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{ZeroObject}, \mathrm{ZeroObject} )\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique morphism <span class="SimpleMath">\(\mathrm{ZeroObject} \rightarrow \mathrm{ZeroObject}\)</span>.</p>
<p><a id="X82D7BF1F85268B0A" name="X82D7BF1F85268B0A"></a></p>
<h5>6.3-14 ZeroObjectFunctorialWithGivenZeroObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ZeroObjectFunctorialWithGivenZeroObjects</code>( <var class="Arg">C</var>, <var class="Arg">zero_object1</var>, <var class="Arg">zero_object2</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(zero_object1, zero_object2)\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span> and a zero object <span class="SimpleMath">\(\mathrm{ZeroObject}(C)\)</span> twice (for compatibility with other functorials). The output is the unique morphism <span class="SimpleMath">\(zero_object1 \rightarrow zero_object2\)</span>.</p>
<p><a id="X827CD17C7EBFD58F" name="X827CD17C7EBFD58F"></a></p>
<h4>6.4 <span class="Heading">Terminal Object</span></h4>
<p>A terminal object consists of two parts:</p>
<ul>
<li><p>an object <span class="SimpleMath">\(T\)</span>,</p>
</li>
<li><p>a function <span class="SimpleMath">\(u\)</span> mapping each object <span class="SimpleMath">\(A\)</span> to a morphism <span class="SimpleMath">\(u( A ): A \rightarrow T\)</span>.</p>
</li>
</ul>
<p>The pair <span class="SimpleMath">\(( T, u )\)</span> is called a <em>terminal object</em> if the morphisms <span class="SimpleMath">\(u( A )\)</span> are uniquely determined up to congruence of morphisms. We denote the object <span class="SimpleMath">\(T\)</span> of such a pair by <span class="SimpleMath">\(\mathrm{TerminalObject}\)</span>. We say that the morphism <span class="SimpleMath">\(u( A )\)</span> is induced by the <em>universal property of the terminal object</em>. <span class="SimpleMath">\(\\ \)</span> <span class="SimpleMath">\(\mathrm{TerminalObject}\)</span> is a functorial operation. This just means: There exists a unique morphism <span class="SimpleMath">\(T \rightarrow T\)</span>.</p>
<p><a id="X7DC837217946D22D" name="X7DC837217946D22D"></a></p>
<h5>6.4-1 TerminalObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TerminalObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is a terminal object <span class="SimpleMath">\(T\)</span> of <span class="SimpleMath">\(C\)</span>.</p>
<p><a id="X7D86D2EA7845AEEB" name="X7D86D2EA7845AEEB"></a></p>
<h5>6.4-2 TerminalObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TerminalObject</code>( <var class="Arg">c</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>This is a convenience method. The argument is a cell <span class="SimpleMath">\(c\)</span>. The output is a terminal object <span class="SimpleMath">\(T\)</span> of the category <span class="SimpleMath">\(C\)</span> for which <span class="SimpleMath">\(c \in C\)</span>.</p>
<p><a id="X7BEA5AF67D63F4A5" name="X7BEA5AF67D63F4A5"></a></p>
<h5>6.4-3 UniversalMorphismIntoTerminalObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismIntoTerminalObject</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( A, \mathrm{TerminalObject} )\)</span></p>
<p>The argument is an object <span class="SimpleMath">\(A\)</span>. The output is the universal morphism <span class="SimpleMath">\(u(A): A \rightarrow \mathrm{TerminalObject}\)</span>.</p>
<p><a id="X8707AD1784DCBBFF" name="X8707AD1784DCBBFF"></a></p>
<h5>6.4-4 UniversalMorphismIntoTerminalObjectWithGivenTerminalObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismIntoTerminalObjectWithGivenTerminalObject</code>( <var class="Arg">A</var>, <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( A, T )\)</span></p>
<p>The argument are an object <span class="SimpleMath">\(A\)</span>, and an object <span class="SimpleMath">\(T = \mathrm{TerminalObject}\)</span>. The output is the universal morphism <span class="SimpleMath">\(u(A): A \rightarrow T\)</span>.</p>
<p><a id="X7C616CD287760D2F" name="X7C616CD287760D2F"></a></p>
<h5>6.4-5 TerminalObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TerminalObjectFunctorial</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{TerminalObject}, \mathrm{TerminalObject} )\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique morphism <span class="SimpleMath">\(\mathrm{TerminalObject} \rightarrow \mathrm{TerminalObject}\)</span>.</p>
<p><a id="X8511229882130F93" name="X8511229882130F93"></a></p>
<h5>6.4-6 TerminalObjectFunctorialWithGivenTerminalObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TerminalObjectFunctorialWithGivenTerminalObjects</code>( <var class="Arg">C</var>, <var class="Arg">terminal_object1</var>, <var class="Arg">terminal_object2</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(terminal_object1, terminal_object2)\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span> and a terminal object <span class="SimpleMath">\(\mathrm{TerminalObject}(C)\)</span> twice (for compatibility with other functorials). The output is the unique morphism <span class="SimpleMath">\(terminal_object1 \rightarrow terminal_object2\)</span>.</p>
<p><a id="X78B0ED8B80BF5254" name="X78B0ED8B80BF5254"></a></p>
<h4>6.5 <span class="Heading">Initial Object</span></h4>
<p>An initial object consists of two parts:</p>
<ul>
<li><p>an object <span class="SimpleMath">\(I\)</span>,</p>
</li>
<li><p>a function <span class="SimpleMath">\(u\)</span> mapping each object <span class="SimpleMath">\(A\)</span> to a morphism <span class="SimpleMath">\(u( A ): I \rightarrow A\)</span>.</p>
</li>
</ul>
<p>The pair <span class="SimpleMath">\((I,u)\)</span> is called a <em>initial object</em> if the morphisms <span class="SimpleMath">\(u(A)\)</span> are uniquely determined up to congruence of morphisms. We denote the object <span class="SimpleMath">\(I\)</span> of such a triple by <span class="SimpleMath">\(\mathrm{InitialObject}\)</span>. We say that the morphism <span class="SimpleMath">\(u( A )\)</span> is induced by the <em>universal property of the initial object</em>. <span class="SimpleMath">\(\\ \)</span> <span class="SimpleMath">\(\mathrm{InitialObject}\)</span> is a functorial operation. This just means: There exists a unique morphisms <span class="SimpleMath">\(I \rightarrow I\)</span>.</p>
<p><a id="X7A70384E7F182B00" name="X7A70384E7F182B00"></a></p>
<h5>6.5-1 InitialObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InitialObject</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is an initial object <span class="SimpleMath">\(I\)</span> of <span class="SimpleMath">\(C\)</span>.</p>
<p><a id="X7E17CDF481C348B9" name="X7E17CDF481C348B9"></a></p>
<h5>6.5-2 InitialObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InitialObject</code>( <var class="Arg">c</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an object</p>
<p>This is a convenience method. The argument is a cell <span class="SimpleMath">\(c\)</span>. The output is an initial object <span class="SimpleMath">\(I\)</span> of the category <span class="SimpleMath">\(C\)</span> for which <span class="SimpleMath">\(c \in C\)</span>.</p>
<p><a id="X873FC2B087004DC3" name="X873FC2B087004DC3"></a></p>
<h5>6.5-3 UniversalMorphismFromInitialObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismFromInitialObject</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(\mathrm{InitialObject}, A)\)</span>.</p>
<p>The argument is an object <span class="SimpleMath">\(A\)</span>. The output is the universal morphism <span class="SimpleMath">\(u(A): \mathrm{InitialObject} \rightarrow A\)</span>.</p>
<p><a id="X7F7177F585576F6B" name="X7F7177F585576F6B"></a></p>
<h5>6.5-4 UniversalMorphismFromInitialObjectWithGivenInitialObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ UniversalMorphismFromInitialObjectWithGivenInitialObject</code>( <var class="Arg">A</var>, <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(I, A)\)</span>.</p>
<p>The arguments are an object <span class="SimpleMath">\(A\)</span>, and an object <span class="SimpleMath">\(I = \mathrm{InitialObject}\)</span>. The output is the universal morphism <span class="SimpleMath">\(u(A): \mathrm{InitialObject} \rightarrow A\)</span>.</p>
<p><a id="X87B1C71179F798C8" name="X87B1C71179F798C8"></a></p>
<h5>6.5-5 InitialObjectFunctorial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InitialObjectFunctorial</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}( \mathrm{InitialObject}, \mathrm{InitialObject} )\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span>. The output is the unique morphism <span class="SimpleMath">\(\mathrm{InitialObject} \rightarrow \mathrm{InitialObject}\)</span>.</p>
<p><a id="X7CE9BBC27F70F3BD" name="X7CE9BBC27F70F3BD"></a></p>
<h5>6.5-6 InitialObjectFunctorialWithGivenInitialObjects</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InitialObjectFunctorialWithGivenInitialObjects</code>( <var class="Arg">C</var>, <var class="Arg">initial_object1</var>, <var class="Arg">initial_object2</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="SimpleMath">\(\mathrm{Hom}(initial_object1, initial_object2)\)</span></p>
<p>The argument is a category <span class="SimpleMath">\(C\)</span> and an initial object <span class="SimpleMath">\(\mathrm{InitialObject}(C)\)</span> twice (for compatibility with other functorials). The output is the unique morphism <span class="SimpleMath">\(initial_object1 \rightarrow initial_object2\)</span>.</p>
<p><a id="X81FDB99378D1307A" name="X81FDB99378D1307A"></a></p>
<h4>6.6 <span class="Heading">Direct Sum</span></h4>
<p>For an integer <span class="SimpleMath">\(n \geq 1\)</span> and a given list <span class="SimpleMath">\(D = (S_1, \dots, S_n)\)</span> in an Ab-category, a direct sum consists of five parts:</p>
<ul>
<li><p>an object <span class="SimpleMath">\(S\)</span>,</p>
</li>
<li><p>a list of morphisms <span class="SimpleMath">\(\pi = (\pi_i: S \rightarrow S_i)_{i = 1 \dots n}\)</span>,</p>
</li>
<li><p>a list of morphisms <span class="SimpleMath">\(\iota = (\iota_i: S_i \rightarrow S)_{i = 1 \dots n}\)</span>,</p>
</li>
<li><p>a dependent function <span class="SimpleMath">\(u_{\mathrm{in}}\)</span> mapping every list <span class="SimpleMath">\(\tau = ( \tau_i: T \rightarrow S_i )_{i = 1 \dots n}\)</span> to a morphism <span class="SimpleMath">\(u_{\mathrm{in}}(\tau): T \rightarrow S\)</span> such that <span class="SimpleMath">\(\pi_i \circ u_{\mathrm{in}}(\tau) \sim_{T,S_i} \tau_i\)</span> for all <span class="SimpleMath">\(i = 1, \dots, n\)</span>.</p>
</li>
<li><p>a dependent function <span class="SimpleMath">\(u_{\mathrm{out}}\)</span> mapping every list <span class="SimpleMath">\(\tau = ( \tau_i: S_i \rightarrow T )_{i = 1 \dots n}\)</span> to a morphism <span class="SimpleMath">\(u_{\mathrm{out}}(\tau): S \rightarrow T\)</span> such that <span class="SimpleMath">\(u_{\mathrm{out}}(\tau) \circ \iota_i \sim_{S_i, T} \tau_i\)</span> for all <span class="SimpleMath">\(i = 1, \dots, n\)</span>,</p>
</li>
</ul>
<p>such that</p>
<ul>
<li><p><span class="SimpleMath">\(\sum_{i=1}^{n} \iota_i \circ \pi_i \sim_{S,S} \mathrm{id}_S\)</span>,</p>
</li>
<li><p><span class="SimpleMath">\(\pi_j \circ \iota_i \sim_{S_i, S_j} \delta_{i,j}\)</span>,</p>
</li>
</ul>
<p>where <span class="SimpleMath">\(\delta_{i,j} \in \mathrm{Hom}( S_i, S_j )\)</span> is the identity if <span class="SimpleMath">\(i=j\)</span>, and <span class="SimpleMath">\(0\)</span> otherwise. The <span class="SimpleMath">\(5\)</span>-tuple <span class="SimpleMath">\((S, \pi, \iota, u_{\mathrm{in}}, u_{\mathrm{out}})\)</span> is called a <em>direct sum</em> of <span class="SimpleMath">\(D\)</span>. We denote the object <span class="SimpleMath">\(S\)</span> of such a <span class="SimpleMath">\(5\)</span>-tuple by <span class="SimpleMath">\(\bigoplus_{i=1}^n S_i\)</span>. We say that the morphisms <span class="SimpleMath">\(u_{\mathrm{in}}(\tau), u_{\mathrm{out}}(\tau)\)</span> are induced by the <em>universal property of the direct sum</em>. <span class="SimpleMath">\(\\ \)</span> <span class="SimpleMath">\(\mathrm{DirectSum}\)</span> is a functorial operation. This means: For <span class="SimpleMath">\((\mu_i: S_i \rightarrow S'_i)_{i=1\dots n}\)</span>, we obtain a morphism <span class="SimpleMath">\(\bigoplus_{i=1}^n S_i \rightarrow \bigoplus_{i=1}^n S_i'\)</span>.</p>
<p><a id="X82AD6F187B550060" name="X82AD6F187B550060"></a></p>
<h5>6.6-1 DirectSum</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DirectSum</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: an object</p>
<p>This is a convenience method. There are two different ways to use this method:</p>
<ul>
<li><p>The argument is a list of objects <span class="SimpleMath">\(D = (S_1, \dots, S_n)\)</span>.</p>
</li>
<li><p>The arguments are objects <span class="SimpleMath">\(S_1, \dots, S_n\)</span>.</p>
</li>
</ul>
<p>The output is the direct sum <span class="SimpleMath">\(\bigoplus_{i=1}^n S_i\)</span>.</p>
<p><a id="X7BC1F4728357D708" name="X7BC1F4728357D708"></a></p>
<h5>6.6-2 DirectSumOp</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DirectSumOp</code>( <var class="Arg">D</var> )</td><td class="tdright">( operation )</td></tr></table></di | | |