Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/cap/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 22.8.2025 mit Größe 141 kB image not shown  

SSL chap3.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/cap/doc/chap3.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>
<title>GAP (CAP) - Chapter 3: Morphisms</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="chap3"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chap10.html">10</a>  <a href="chap11.html">11</a>  <a href="chap12.html">12</a>  <a href="chap13.html">13</a>  <a href="chap14.html">14</a>  <a href="chap15.html">15</a>  <a href="chap16.html">16</a>  <a href="chap17.html">17</a>  <a href="chap18.html">18</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap2.html">[Previous Chapter]</a>    <a href="chap4.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap3_mj.html">[MathJax on]</a></p>
<p><a id="X7BEB6C617FED52DA" name="X7BEB6C617FED52DA"></a></p>
<div class="ChapSects"><a href="chap3.html#X7BEB6C617FED52DA">3 <span class="Heading">Morphisms</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X8642E3327E96BBDD">3.1 <span class="Heading">Attributes for the Type of Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7E923036810C606E">3.1-1 CapCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7E1373E385E7315A">3.1-2 Source</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X817496B987A1ADFC">3.1-3 Range</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83A0A39587BD6383">3.1-4 Target</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X867B9398854FEFFD">3.2 <span class="Heading">Adding Morphisms to a Category</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BDADB628232C280">3.2-1 Add</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X82453E55857562AB">3.2-2 AddMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X78005D357A051FC6">3.2-3 CreateCapCategoryMorphismWithAttributes</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7AE302BE7C2E829F">3.2-4 AsCapCategoryMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7893F08182290038">3.2-5 AsPrimitiveValue</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X8279E00178F05A66">3.3 <span class="Heading">Morphism constructors</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7F1FB34F789ECB10">3.3-1 MorphismConstructor</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BBFB178866108FA">3.3-2 MorphismDatum</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7A00D0C181471D06">3.4 <span class="Heading">Categorical Properties of Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7A6F64027EEAF42B">3.4-1 IsMonomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7E85E0A67BA11091">3.4-2 IsEpimorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7F29CF0282EFEAA3">3.4-3 IsIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X871A71747E03207D">3.4-4 IsSplitMonomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7B4DB8C887F37D02">3.4-5 IsSplitEpimorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7FA10AFB7F441434">3.4-6 IsOne</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BA4290882AFFCA3">3.4-7 IsIdempotent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7B655F2678F605D3">3.5 <span class="Heading">Random Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X79EBA1717D89B0A4">3.5-1 RandomMorphismWithFixedSourceByInteger</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X84FDBEED7844CDB6">3.5-2 RandomMorphismWithFixedSourceByList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X844B1DDC8488B7CA">3.5-3 RandomMorphismWithFixedRangeByInteger</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8568D71882C30501">3.5-4 RandomMorphismWithFixedRangeByList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X80F66E9D809EA6A7">3.5-5 RandomMorphismWithFixedSourceAndRangeByInteger</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BF231C57B40B1A1">3.5-6 RandomMorphismWithFixedSourceAndRangeByList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X81DB09BA7CBD3DB4">3.5-7 RandomMorphismByInteger</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7E79F7A9802F622D">3.5-8 RandomMorphismByList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83D121E787FDC6E8">3.5-9 RandomMorphismWithFixedSource</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7EA50D6587A93936">3.6 <span class="Heading">Non-Categorical Properties of Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8211959783AFF307">3.6-1 IsEqualToIdentityMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X79D407A3807309FC">3.6-2 IsEqualToZeroMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X81057B3E812B06CC">3.6-3 IsEndomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X84E5DE257F241830">3.6-4 IsAutomorphism</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X850CFDD48773998E">3.7 <span class="Heading">Equality and Congruence for Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7FABCFBF865F4179">3.7-1 IsCongruentForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8004F1DA7D9BFA8B">3.7-2 IsEqualForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8589E5A4814C3DA5">3.7-3 IsEqualForMorphismsOnMor</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X8312421679CAAE35">3.8 <span class="Heading">Basic Operations for Morphisms in Ab-Categories</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X844684AD86DCC2DC">3.8-1 IsZeroForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83B77FBB85927F14">3.8-2 AdditionForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7B6461F5873F3F9D">3.8-3 SubtractionForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83177713785DCFFC">3.8-4 AdditiveInverseForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8187CAF17EB5D6D0">3.8-5 MultiplyWithElementOfCommutativeRingForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X877D74C67D041F74">3.8-6 *</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X873412DB7BD0FBD3">3.8-7 ZeroMorphism</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7C81E153817F489F">3.9 <span class="Heading">Subobject and Factorobject Operations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7E99DAA884674DE2">3.9-1 IsEqualAsSubobjects</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X79389FBF86CF87A4">3.9-2 IsEqualAsFactorobjects</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C21531C7EE65C72">3.9-3 IsDominating</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C77E9D479C8D502">3.9-4 IsCodominating</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X82ADC0BF82DA2122">3.10 <span class="Heading">Identity Morphism and Composition of Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C9F3D8086238443">3.10-1 IdentityMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8244F7A0868BE27D">3.10-2 PreCompose</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83CB57FB81931CFE">3.10-3 PreCompose</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X87A5FFE97BB5190A">3.10-4 PreComposeList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X84293B8381256A08">3.10-5 PostCompose</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X81222A1084A4F637">3.10-6 PostCompose</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BD83BF3835870E9">3.10-7 PostComposeList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7D50F754822C30D7">3.10-8 SumOfMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C101B5C7AC9089C">3.10-9 LinearCombinationOfMorphisms</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7D5182B48598FBC5">3.11 <span class="Heading">Well-Definedness of Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7968A871832877B8">3.11-1 IsWellDefinedForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X820A29637F48E932">3.11-2 IsWellDefinedForMorphismsWithGivenSourceAndRange</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X83339BB37B01DB19">3.12 <span class="Heading">Lift/Colift</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83CDF65582CD9921">3.12-1 LiftAlongMonomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X79AA9F638487EE32">3.12-2 ColiftAlongEpimorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7D9BA8D67892BD48">3.12-3 IsLiftableAlongMonomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7DCDD2B2859EFD2D">3.12-4 IsColiftableAlongEpimorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X87C471D583C1CD9E">3.12-5 Lift</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8597DE1C83CFE89D">3.12-6 LiftOrFail</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7F895375875BE5B9">3.12-7 IsLiftable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BA38B0F797AFE20">3.12-8 Colift</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X79FFE43E7962CFBA">3.12-9 ColiftOrFail</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8685B04087B1E52A">3.12-10 IsColiftable</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X864F84C47DC1A620">3.13 <span class="Heading">Inverses</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8371BF227B4C32EF">3.13-1 InverseForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83E4A87F7B2290F1">3.13-2 PreInverseForMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X800447917F75989A">3.13-3 PostInverseForMorphisms</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7DD668627932185C">3.14 <span class="Heading">Tool functions for caches</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X83F87AE07ED534ED">3.14-1 IsEqualForCacheForMorphisms</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X84563B1A835E9766">3.15 <span class="Heading">IsHomSetInhabited</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X81DB15B87D1A946D">3.15-1 IsHomSetInhabited</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X858111977D44BC9C">3.16 <span class="Heading">SetOfMorphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X824691307DEF08FC">3.16-1 SetOfMorphismsOfFiniteCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8426F188818F02B7">3.16-2 SetOfMorphisms</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7F065B9A78922547">3.17 <span class="Heading">Homomorphism structures</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X81BC29A679416C45">3.17-1 HomomorphismStructureOnObjects</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8257E3787865C5E0">3.17-2 HomomorphismStructureOnMorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7FBC94B983CBA64F">3.17-3 HomomorphismStructureOnMorphismsWithGivenObjects</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7999CCFF82DA16D7">3.17-4 DistinguishedObjectOfHomomorphismStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X81F1237C7DBF7603">3.17-5 InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7A5A05C682EB033D">3.17-6 InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8760D39C865239E8">3.17-7 InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BE5E2687FC110AC">3.17-8 SolveLinearSystemInAbCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7CAAF16981546CE0">3.17-9 SolveLinearSystemInAbCategoryOrFail</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7A722FA5817D5F76">3.17-10 MereExistenceOfSolutionOfLinearSystemInAbCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8666962D84B81665">3.17-11 MereExistenceOfUniqueSolutionOfLinearSystemInAbCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7E6E1269854E4B94">3.17-12 MereExistenceOfUniqueSolutionOfHomogeneousLinearSystemInAbCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X85A7BE3185E58026">3.17-13 BasisOfSolutionsOfHomogeneousLinearSystemInLinearCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X798F78CE7EAA7F95">3.17-14 BasisOfSolutionsOfHomogeneousDoubleLinearSystemInLinearCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X860621FE7C1E6634">3.17-15 BasisOfSolutionsOfHomogeneousDoubleLinearSystemInLinearCategory</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7D473D9D83C53185">3.17-16 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7848040086B41266">3.17-17 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X834C3BB480D6561D">3.17-18 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7BFD58C57EC23BD5">3.17-19 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7CDC08947CF2022E">3.17-20 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X820B9AC886D78944">3.17-21 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8705DA127E089709">3.17-22 HomStructure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X873E91D180B3057C">3.17-23 ExtendRangeOfHomomorphismStructureByFullEmbedding</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C551C8F7BA2F3F1">3.17-24 ExtendRangeOfHomomorphismStructureByIdentityAsFullEmbedding</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8510A7E08672FD73">3.17-25 MorphismsOfExternalHom</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7CC9C1A487AE6086">3.17-26 BasisOfExternalHom</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X8636593C845B23D2">3.17-27 CoefficientsOfMorphism</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7B39E2927B533D10">3.18 <span class="Heading">Simplified Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7FCE611883F6A56B">3.18-1 SimplifyMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7DAD0E437D28F300">3.18-2 SimplifySource</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X843C68B97ED31DD4">3.18-3 SimplifySource_IsoToInputObject</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7CE5C1BB7BA7AA16">3.18-4 SimplifySource_IsoFromInputObject</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7F80C5357F84A39A">3.18-5 SimplifyRange</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X82FCEC277F3A1A70">3.18-6 SimplifyRange_IsoToInputObject</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X865CD95E7D068A77">3.18-7 SimplifyRange_IsoFromInputObject</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X821E16DF8071B8A4">3.18-8 SimplifySourceAndRange</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X84C39DE584D38D4E">3.18-9 SimplifySourceAndRange_IsoToInputRange</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X859DF3C2819FFE4D">3.18-10 SimplifySourceAndRange_IsoFromInputRange</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7DD0915A7E23283E">3.18-11 SimplifySourceAndRange_IsoToInputSource</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X783C20A47889C4A8">3.18-12 SimplifySourceAndRange_IsoFromInputSource</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X830C7337864DB3D6">3.18-13 SimplifyEndo</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X78189F508549ABAA">3.18-14 SimplifyEndo_IsoToInputObject</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C07985D844FD715">3.18-15 SimplifyEndo_IsoFromInputObject</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7D80D2B2792A7A50">3.18-16 Simplify</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X8379B7817AA67F2D">3.19 <span class="Heading">Reduction by split epi summands</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7F997AF37E59411F">3.19-1 SomeReductionBySplitEpiSummand</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7C92D8AF82E65289">3.19-2 SomeReductionBySplitEpiSummand_MorphismToInputRange</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3.html#X7A0F381279955981">3.19-3 SomeReductionBySplitEpiSummand_MorphismFromInputRange</a></span>
</div></div>
</div>

<h3>3 <span class="Heading">Morphisms</span></h3>

<p>Any GAP object satisfying <code class="code">IsCapCategoryMorphism</code> can be added to a category and then becomes a morphism in this category. Any morphism can belong to one or no category. After a GAP object is added to the category, it knows which things can be computed in its category and to which category it belongs. It knows categorical properties and attributes, and the functions for existential quantifiers can be applied to the morphism.</p>

<p><a id="X8642E3327E96BBDD" name="X8642E3327E96BBDD"></a></p>

<h4>3.1 <span class="Heading">Attributes for the Type of Morphisms</span></h4>

<p><a id="X7E923036810C606E" name="X7E923036810C606E"></a></p>

<h5>3.1-1 CapCategory</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CapCategory</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a category</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is the category <span class="Math">\mathbf{C}</span> to which <span class="Math">\alpha</span> was added.</p>

<p><a id="X7E1373E385E7315A" name="X7E1373E385E7315A"></a></p>

<h5>3.1-2 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Source</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="Math">\alpha: a \rightarrow b</span>. The output is its source <span class="Math">a</span>.</p>

<p><a id="X817496B987A1ADFC" name="X817496B987A1ADFC"></a></p>

<h5>3.1-3 Range</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Range</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="Math">\alpha: a \rightarrow b</span>. The output is its range <span class="Math">b</span>.</p>

<p><a id="X83A0A39587BD6383" name="X83A0A39587BD6383"></a></p>

<h5>3.1-4 Target</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Target</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="Math">\alpha: a \rightarrow b</span>. The output is its target <span class="Math">b</span>.</p>

<p><a id="X867B9398854FEFFD" name="X867B9398854FEFFD"></a></p>

<h4>3.2 <span class="Heading">Adding Morphisms to a Category</span></h4>

<p><a id="X7BDADB628232C280" name="X7BDADB628232C280"></a></p>

<h5>3.2-1 Add</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Add</code>( <var class="Arg">category</var>, <var class="Arg">morphism</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Adds <var class="Arg">morphism</var> as a morphism to <var class="Arg">category</var>.</p>

<p><a id="X82453E55857562AB" name="X82453E55857562AB"></a></p>

<h5>3.2-2 AddMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AddMorphism</code>( <var class="Arg">category</var>, <var class="Arg">morphism</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Adds <var class="Arg">morphism</var> as a morphism to <var class="Arg">category</var>. If <var class="Arg">morphism</var> already lies in the filter <code class="code">IsCapCategoryMorphism</code>, the operation <code class="func">Add</code> (<a href="chap3.html#X7BDADB628232C280"><span class="RefLink">3.2-1</span></a>) can be used instead.</p>

<p><a id="X78005D357A051FC6" name="X78005D357A051FC6"></a></p>

<h5>3.2-3 CreateCapCategoryMorphismWithAttributes</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CreateCapCategoryMorphismWithAttributes</code>( <var class="Arg">category</var>, <var class="Arg">source</var>, <var class="Arg">range</var>[, <var class="Arg">attr1</var>, <var class="Arg">val1</var>, <var class="Arg">attr2</var>, <var class="Arg">val2</var>, <var class="Arg">...</var>] )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: a morphism</p>

<p>Creates a morphism in <var class="Arg">category</var> with the given attributes.</p>

<p><a id="X7AE302BE7C2E829F" name="X7AE302BE7C2E829F"></a></p>

<h5>3.2-4 AsCapCategoryMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsCapCategoryMorphism</code>( <var class="Arg">category</var>, <var class="Arg">source</var>, <var class="Arg">value</var>, <var class="Arg">range</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: a morphism</p>

<p>EXPERIMENTAL: This specification might change any time without prior notice. Views <var class="Arg">value</var> as a morphism from <var class="Arg">source</var> to <var class="Arg">range</var> in <var class="Arg">category</var>.</p>

<p><a id="X7893F08182290038" name="X7893F08182290038"></a></p>

<h5>3.2-5 AsPrimitiveValue</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsPrimitiveValue</code>( <var class="Arg">morphism</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsInteger</code>( <var class="Arg">morphism</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsHomalgMatrix</code>( <var class="Arg">morphism</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a value</p>

<p>EXPERIMENTAL: This specification might change any time without prior notice. Views a morphism obtained via <code class="func">AsCapCategoryMorphism</code> (<a href="chap3.html#X7AE302BE7C2E829F"><span class="RefLink">3.2-4</span></a>) as a primitive value again. Here, the word <em>primitive</em> means <em>primitive from the perspective of the category</em>. For example, from the perspective of an opposite category, morphisms of the underlying category are primitive values. The attribute is chosen according to the morphism datum type:</p>


<ul>
<li><p>For <code class="code">IsInt</code>, the attribute <code class="code">AsInteger</code> is used.</p>

</li>
<li><p>For <code class="code">IsHomalgMatrix</code>, the attribute <code class="code">AsHomalgMatrix</code> is used.</p>

</li>
</ul>
<p>In all other cases or if no morphism datum type is given, the attribute <code class="code">AsPrimitiveValue</code> is used.</p>

<p><a id="X8279E00178F05A66" name="X8279E00178F05A66"></a></p>

<h4>3.3 <span class="Heading">Morphism constructors</span></h4>

<p><a id="X7F1FB34F789ECB10" name="X7F1FB34F789ECB10"></a></p>

<h5>3.3-1 MorphismConstructor</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismConstructor</code>( <var class="Arg">S</var>, <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="Math">\mathrm{Hom}(S,T)</span></p>

<p>The arguments are two objects <span class="Math">S</span> and <span class="Math">T</span> in a category, and a morphism datum <span class="Math">a</span> (type and semantics of the morphism datum depend on the category). The output is a morphism in <span class="Math">\mathrm{Hom}(S,T)</span> defined by <span class="Math">a</span>. Note that by default this CAP operation is not cached. You can change this behaviour by calling <code class="code">SetCachingToWeak( C, "MorphismConstructor" )</code> resp. <code class="code">SetCachingToCrisp( C, "MorphismConstructor" )</code>.</p>

<p><a id="X7BBFB178866108FA" name="X7BBFB178866108FA"></a></p>

<h5>3.3-2 MorphismDatum</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MorphismDatum</code>( <var class="Arg">mor</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: depends on the category</p>

<p>The argument is a CAP category morphism <var class="Arg">mor</var>. The output is a datum which can be used to construct <var class="Arg">mor</var>, that is, <code class="code">IsEqualForMorphisms( </code><var class="Arg">mor</var><code class="code">, MorphismConstructor( Source( </code><var class="Arg">mor</var><code class="code"> ), MorphismDatum( </code><var class="Arg">mor</var><code class="code"> ), Range( </code><var class="Arg">mor</var><code class="code"> ) ) )</code>. Note that by default this CAP operation is not cached. You can change this behaviour by calling <code class="code">SetCachingToWeak( C, "MorphismDatum" )</code> resp. <code class="code">SetCachingToCrisp( C, "MorphismDatum" )</code>.</p>

<p><a id="X7A00D0C181471D06" name="X7A00D0C181471D06"></a></p>

<h4>3.4 <span class="Heading">Categorical Properties of Morphisms</span></h4>

<p><a id="X7A6F64027EEAF42B" name="X7A6F64027EEAF42B"></a></p>

<h5>3.4-1 IsMonomorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsMonomorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is a monomorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7E85E0A67BA11091" name="X7E85E0A67BA11091"></a></p>

<h5>3.4-2 IsEpimorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEpimorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is an epimorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7F29CF0282EFEAA3" name="X7F29CF0282EFEAA3"></a></p>

<h5>3.4-3 IsIsomorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsIsomorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is an isomorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X871A71747E03207D" name="X871A71747E03207D"></a></p>

<h5>3.4-4 IsSplitMonomorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSplitMonomorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is a split monomorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7B4DB8C887F37D02" name="X7B4DB8C887F37D02"></a></p>

<h5>3.4-5 IsSplitEpimorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSplitEpimorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is a split epimorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7FA10AFB7F441434" name="X7FA10AFB7F441434"></a></p>

<h5>3.4-6 IsOne</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsOne</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha: a \rightarrow a</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is congruent to the identity of <span class="Math">a</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7BA4290882AFFCA3" name="X7BA4290882AFFCA3"></a></p>

<h5>3.4-7 IsIdempotent</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsIdempotent</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha: a \rightarrow a</span>. The output is <code class="code">true</code> if <span class="Math">\alpha^2 \sim_{a,a} \alpha</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7B655F2678F605D3" name="X7B655F2678F605D3"></a></p>

<h4>3.5 <span class="Heading">Random Morphisms</span></h4>

<p>CAP provides two principal methods to generate random morphisms with or without fixed source and range:</p>


<ul>
<li><p><em>By integers</em>: The integer is simply a parameter that can be used to create a random morphism.</p>

</li>
<li><p><em>By lists</em>: The list is used when creating a random morphism would need more than one parameter. Lists offer more flexibility at the expense of the genericity of the methods. This happens because lists that are valid as input in some category may be not valid for other categories. Hence, these operations are not thought to be used in generic categorical algorithms.</p>

</li>
</ul>
<p><a id="X79EBA1717D89B0A4" name="X79EBA1717D89B0A4"></a></p>

<h5>3.5-1 RandomMorphismWithFixedSourceByInteger</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSourceByInteger</code>( <var class="Arg">a</var>, <var class="Arg">n</var)</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are an object <span class="Math">a</span> in a category <span class="Math">C</span> and an integer <span class="Math">n</span>. The output is a random morphism <span class="Math">\alpha: a \rightarrow b</span> for some object <span class="Math">b</span> in <span class="Math">C</span>. If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByInteger</code> and <code class="code">RandomMorphismWithFixedSourceAndRangeByInteger</code> and <span class="Math">C</span> is an Ab-category, then <code class="code">RandomMorphismWithFixedSourceByInteger</code><span class="Math">(C,a,n)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceAndRangeByInteger</code>(<span class="Math">C</span>,<span class="Math">a</span>,<span class="Math">b</span>,<span class="Math">1</span>+<code class="code">Log2Int</code>(<span class="Math">n</span>)) where <span class="Math">b</span> is computed via <code class="code">RandomObjectByInteger</code>(<span class="Math">C</span>,<span class="Math">n</span>).</p>

<p><a id="X84FDBEED7844CDB6" name="X84FDBEED7844CDB6"></a></p>

<h5>3.5-2 RandomMorphismWithFixedSourceByList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSourceByList</code>( <var class="Arg">a</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are an object <span class="Math">a</span> in a category <span class="Math">C</span> and a list <span class="Math">L</span>. The output is a random morphism <span class="Math">\alpha: a \rightarrow b</span> for some object <span class="Math">b</span> in <span class="Math">C</span>. If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByList</code> and <code class="code">RandomMorphismWithFixedSourceAndRangeByList</code> and <span class="Math">C</span> is an Ab-category, then <code class="code">RandomMorphismWithFixedSourceByList</code><span class="Math">(C,a,L)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceAndRangeByList</code>(<span class="Math">C,a,b,L[2]</span>) where <span class="Math">b</span> is computed via <code class="code">RandomObjectByList</code>(<span class="Math">C,L[1]</span>).</p>

<p><a id="X844B1DDC8488B7CA" name="X844B1DDC8488B7CA"></a></p>

<h5>3.5-3 RandomMorphismWithFixedRangeByInteger</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedRangeByInteger</code>( <var class="Arg">b</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are an object <span class="Math">b</span> in a category <span class="Math">C</span> and an integer <span class="Math">n</span>. The output is a random morphism <span class="Math">\alpha: a \rightarrow b</span> for some object <span class="Math">a</span> in <span class="Math">C</span>. If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByInteger</code> and <code class="code">RandomMorphismWithFixedSourceAndRangeByInteger</code> and <span class="Math">C</span> is an Ab-category, then <code class="code">RandomMorphismWithFixedRangeByInteger</code><span class="Math">(C,b,n)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceAndRangeByInteger</code>(<span class="Math">C</span>,<span class="Math">a</span>,<span class="Math">b</span>,<span class="Math">1</span>+<code class="code">Log2Int</code>(<span class="Math">n</span>)) where <span class="Math">a</span> is computed via <code class="code">RandomObjectByInteger</code>(<span class="Math">C</span>,<span class="Math">n</span>).</p>

<p><a id="X8568D71882C30501" name="X8568D71882C30501"></a></p>

<h5>3.5-4 RandomMorphismWithFixedRangeByList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedRangeByList</code>( <var class="Arg">b</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are an object <span class="Math">b</span> in a category <span class="Math">C</span> and a list <span class="Math">L</span>. The output is a random morphism <span class="Math">\alpha: a \rightarrow b</span> for some object <span class="Math">a</span> in <span class="Math">C</span>. If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByList</code> and <code class="code">RandomMorphismWithFixedSourceAndRangeByList</code> and <span class="Math">C</span> is an Ab-category, then <code class="code">RandomMorphismWithFixedRangeByList</code><span class="Math">(C,b,L)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceAndRangeByList</code>(<span class="Math">C,a,b,L[2]</span>) where <span class="Math">a</span> is computed via <code class="code">RandomObjectByList</code>(<span class="Math">C,L[1]</span>).</p>

<p><a id="X80F66E9D809EA6A7" name="X80F66E9D809EA6A7"></a></p>

<h5>3.5-5 RandomMorphismWithFixedSourceAndRangeByInteger</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSourceAndRangeByInteger</code>( <var class="Arg">a</var>, <var class="Arg">b</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are two objects <span class="Math">a</span> and <span class="Math">b</span> in a category <span class="Math">C</span> and an integer <span class="Math">n</span>. The output is a random morphism <span class="Math">\alpha: a \rightarrow b</span> in <span class="Math">C</span>.</p>

<p><a id="X7BF231C57B40B1A1" name="X7BF231C57B40B1A1"></a></p>

<h5>3.5-6 RandomMorphismWithFixedSourceAndRangeByList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSourceAndRangeByList</code>( <var class="Arg">a</var>, <var class="Arg">b</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>This operation is not a CAP basic operation The arguments are two objects <span class="Math">a</span> and <span class="Math">b</span> in a category <span class="Math">C</span> and a list <span class="Math">L</span>. The output is a random morphism <span class="Math">\alpha: a \rightarrow b</span> in <span class="Math">C</span>.</p>

<p><a id="X81DB09BA7CBD3DB4" name="X81DB09BA7CBD3DB4"></a></p>

<h5>3.5-7 RandomMorphismByInteger</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismByInteger</code>( <var class="Arg">C</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">C</span></p>

<p>The arguments are a category <span class="Math">C</span> and an integer <span class="Math">n</span>. The output is a random morphism in <span class="Math">C</span>. The operation can be derived in three different ways:</p>


<ul>
<li><p>If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByInteger</code> and <code class="code">RandomMorphismWithFixedSourceAndRangeByInteger</code> and <span class="Math">C</span> is an Ab-category, then <code class="code">RandomMorphism</code><span class="Math">(C,n)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceAndRangeByInteger</code>(<span class="Math">C,a,b</span>,<span class="Math">1</span>+<code class="code">Log2Int</code>(<span class="Math">n</span>)) where <span class="Math">a</span> and <span class="Math">b</span> are computed via <code class="code">RandomObjectByInteger</code>(<span class="Math">C,n</span>).</p>

</li>
<li><p>If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByInteger</code> and <code class="code">RandomMorphismWithFixedSourceByInteger</code>, then <code class="code">RandomMorphism</code><span class="Math">(C,n)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceByInteger</code>(<span class="Math">C,a,1</span>+<code class="code">Log2Int</code>(<span class="Math">n</span>)) where <span class="Math">a</span> is computed via <code class="code">RandomObjectByInteger</code>(<span class="Math">C,n</span>).</p>

</li>
<li><p>If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByInteger</code> and <code class="code">RandomMorphismWithFixedRangeByInteger</code>, then <code class="code">RandomMorphism</code><span class="Math">(C,n)</span> can be derived as <code class="code">RandomMorphismWithFixedRangeByInteger</code>(<span class="Math">C,b,1</span>+<code class="code">Log2Int</code>(<span class="Math">n</span>)) where <span class="Math">b</span> is computed via <code class="code">RandomObjectByInteger</code>(<span class="Math">C,n</span>).</p>

</li>
</ul>
<p><a id="X7E79F7A9802F622D" name="X7E79F7A9802F622D"></a></p>

<h5>3.5-8 RandomMorphismByList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismByList</code>( <var class="Arg">C</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">C</span></p>

<p>The arguments are a category <span class="Math">C</span> and a list <span class="Math">L</span>. Thoutput is a random morphism in <span class="Math">C</span>. The operation can be derived in three different ways:</p>


<ul>
<li><p>If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByList</code> and <code class="code">RandomMorphismWithFixedSourceAndRangeByList</code> and <span class="Math">C</span> is an Ab-category, then <code class="code">RandomMorphism</code><span class="Math">(C,L)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceAndRangeByList</code>(<span class="Math">C,a,b,L[3]</span>)) where <span class="Math">a</span> and <span class="Math">b</span> are computed via <code class="code">RandomObjectByList</code>(<span class="Math">C,L[i]</span>) for <span class="Math">i=1,2</span> respectively.</p>

</li>
<li><p>If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByList</code> and <code class="code">RandomMorphismWithFixedSourceByList</code>, then <code class="code">RandomMorphism</code><span class="Math">(C,L)</span> can be derived as <code class="code">RandomMorphismWithFixedSourceByList</code>(<span class="Math">C,a,L[2]</span>) where <span class="Math">a</span> is computed via <code class="code">RandomObjectByList</code>(<span class="Math">C,L[1]</span>).</p>

</li>
<li><p>If <span class="Math">C</span> is equipped with the methods <code class="code">RandomObjectByList</code> and <code class="code">RandomMorphismWithFixedRangeByList</code>, then <code class="code">RandomMorphism</code><span class="Math">(C,L)</span> can be derived as <code class="code">RandomMorphismWithFixedRangeByList</code>(<span class="Math">C,b,L[2]</span>) where <span class="Math">b</span> is computed via <code class="code">RandomObjectByList</code>(<span class="Math">C,L[1]</span>).</p>

</li>
</ul>
<p><a id="X83D121E787FDC6E8" name="X83D121E787FDC6E8"></a></p>

<h5>3.5-9 RandomMorphismWithFixedSource</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSource</code>( <var class="Arg">a</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSource</code>( <var class="Arg">a</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedRange</code>( <var class="Arg">b</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedRange</code>( <var class="Arg">b</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSourceAndRange</code>( <var class="Arg">a</var>, <var class="Arg">b</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphismWithFixedSourceAndRange</code>( <var class="Arg">a</var>, <var class="Arg">b</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphism</code>( <var class="Arg">a</var>, <var class="Arg">b</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphism</code>( <var class="Arg">a</var>, <var class="Arg">b</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphism</code>( <var class="Arg">C</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RandomMorphism</code>( <var class="Arg">C</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>These are convenient methods and they, depending on the input, delegate to one of the above methods.</p>

<p><a id="X7EA50D6587A93936" name="X7EA50D6587A93936"></a></p>

<h4>3.6 <span class="Heading">Non-Categorical Properties of Morphisms</span></h4>

<p>Non-categorical properties are not stable under equivalences of categories.</p>

<p><a id="X8211959783AFF307" name="X8211959783AFF307"></a></p>

<h5>3.6-1 IsEqualToIdentityMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEqualToIdentityMorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha: a \rightarrow b</span>. The output is <code class="code">true</code> if <span class="Math">\alpha = \mathrm{id}_a</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X79D407A3807309FC" name="X79D407A3807309FC"></a></p>

<h5>3.6-2 IsEqualToZeroMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEqualToZeroMorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha: a \rightarrow b</span>. The output is <code class="code">true</code> if <span class="Math">\alpha = 0</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X81057B3E812B06CC" name="X81057B3E812B06CC"></a></p>

<h5>3.6-3 IsEndomorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEndomorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is an endomorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X84E5DE257F241830" name="X84E5DE257F241830"></a></p>

<h5>3.6-4 IsAutomorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAutomorphism</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha</span>. The output is <code class="code">true</code> if <span class="Math">\alpha</span> is an automorphism, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X850CFDD48773998E" name="X850CFDD48773998E"></a></p>

<h4>3.7 <span class="Heading">Equality and Congruence for Morphisms</span></h4>

<p><a id="X7FABCFBF865F4179" name="X7FABCFBF865F4179"></a></p>

<h5>3.7-1 IsCongruentForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCongruentForMorphisms</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The arguments are two morphisms <span class="Math">\alpha, \beta: a \rightarrow b</span>. The output is <code class="code">true</code> if <span class="Math">\alpha \sim_{a,b} \beta</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X8004F1DA7D9BFA8B" name="X8004F1DA7D9BFA8B"></a></p>

<h5>3.7-2 IsEqualForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEqualForMorphisms</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The arguments are two morphisms <span class="Math">\alpha, \beta: a \rightarrow b</span>. The output is <code class="code">true</code> if <span class="Math">\alpha = \beta</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X8589E5A4814C3DA5" name="X8589E5A4814C3DA5"></a></p>

<h5>3.7-3 IsEqualForMorphismsOnMor</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEqualForMorphismsOnMor</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The arguments are two morphisms <span class="Math">\alpha: a \rightarrow b, \beta: c \rightarrow d</span>. The output is <code class="code">true</code> if <span class="Math">\alpha = \beta</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X8312421679CAAE35" name="X8312421679CAAE35"></a></p>

<h4>3.8 <span class="Heading">Basic Operations for Morphisms in Ab-Categories</span></h4>

<p><a id="X844684AD86DCC2DC" name="X844684AD86DCC2DC"></a></p>

<h5>3.8-1 IsZeroForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsZeroForMorphisms</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The argument is a morphism <span class="Math">\alpha: a \rightarrow b</span>. The output is <code class="code">true</code> if <span class="Math">\alpha \sim_{a,b} 0</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X83B77FBB85927F14" name="X83B77FBB85927F14"></a></p>

<h5>3.8-2 AdditionForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AdditionForMorphisms</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are two morphisms <span class="Math">\alpha, \beta: a \rightarrow b</span>. The output is the addition <span class="Math">\alpha + \beta</span>. Note: The addition has to be compatible with the congruence of morphisms.</p>

<p><a id="X7B6461F5873F3F9D" name="X7B6461F5873F3F9D"></a></p>

<h5>3.8-3 SubtractionForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubtractionForMorphisms</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are two morphisms <span class="Math">\alpha, \beta: a \rightarrow b</span>. The output is the addition <span class="Math">\alpha - \beta</span>. Note: The addition has to be compatible with the congruence of morphisms.</p>

<p><a id="X83177713785DCFFC" name="X83177713785DCFFC"></a></p>

<h5>3.8-4 AdditiveInverseForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AdditiveInverseForMorphisms</code>( <var class="Arg">alpha</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The argument is a morphism <span class="Math">\alpha: a \rightarrow b</span>. The output is its additive inverse <span class="Math">-\alpha</span>. Note: The addition has to be compatible with the congruence of morphisms.</p>

<p><a id="X8187CAF17EB5D6D0" name="X8187CAF17EB5D6D0"></a></p>

<h5>3.8-5 MultiplyWithElementOfCommutativeRingForMorphisms</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MultiplyWithElementOfCommutativeRingForMorphisms</code>( <var class="Arg">r</var>, <var class="Arg">alpha</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are an element <span class="Math">r</span> of a commutative ring and a morphism <span class="Math">\alpha: a \rightarrow b</span>. The output is the multiplication with the ring element <span class="Math">r \cdot \alpha</span>. Note: The multiplication has to be compatible with the congruence of morphisms.</p>

<p><a id="X877D74C67D041F74" name="X877D74C67D041F74"></a></p>

<h5>3.8-6 *</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ *</code>( <var class="Arg">r</var>, <var class="Arg">alpha</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>This is a convenience method. It has two arguments. The first argument is either a rational number <span class="Math">q</span> or an element <span class="Math">r</span> of a commutative ring <span class="Math">R</span>. The second argument is a morphism <span class="Math">\alpha: a \rightarrow b</span> in a linear category over the commutative ring <span class="Math">R</span>. In the case where the first element is a rational number, this method tries to interpret <span class="Math">q</span> as an element <span class="Math">r</span> of <span class="Math">R</span> via <code class="code">R!.interpret_rationals_func</code>. If no such interpretation exists, this method throws an error. The output is the multiplication with the ring element <span class="Math">r \cdot \alpha</span>.</p>

<p><a id="X873412DB7BD0FBD3" name="X873412DB7BD0FBD3"></a></p>

<h5>3.8-7 ZeroMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ZeroMorphism</code>( <var class="Arg">a</var>, <var class="Arg">b</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a morphism in <span class="Math">\mathrm{Hom}(a,b)</span></p>

<p>The arguments are two objects <span class="Math">a</span> and <span class="Math">b</span>. The output is the zero morphism <span class="Math">0: a \rightarrow b</span>.</p>

<p><a id="X7C81E153817F489F" name="X7C81E153817F489F"></a></p>

<h4>3.9 <span class="Heading">Subobject and Factorobject Operations</span></h4>

<p>Subobjects of an object <span class="Math">c</span> are monomorphisms with range <span class="Math">c</span> and a special function for comparision. Similarly, factorobjects of an object <span class="Math">c</span> are epimorphisms with source <span class="Math">c</span> and a special function for comparision.</p>

<p><a id="X7E99DAA884674DE2" name="X7E99DAA884674DE2"></a></p>

<h5>3.9-1 IsEqualAsSubobjects</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEqualAsSubobjects</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The arguments are two subobjects <span class="Math">\alpha: a \rightarrow c</span>, <span class="Math">\beta: b \rightarrow c</span>. The output is <code class="code">true</code> if there exists an isomorphism <span class="Math">\iota: a \rightarrow b</span> such that <span class="Math">\beta \circ \iota \sim_{a,c} \alpha</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X79389FBF86CF87A4" name="X79389FBF86CF87A4"></a></p>

<h5>3.9-2 IsEqualAsFactorobjects</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsEqualAsFactorobjects</code>( <var class="Arg">alpha</var>, <var class="Arg">beta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a boolean</p>

<p>The arguments are two factorobjects <span class="Math">\alpha: c \rightarrow a</span>, <span class="Math">\beta: c \rightarrow b</span>. The output is <code class="code">true</code> if there exists an isomorphism <span class="Math">\iota: b \rightarrow a</span> such that <span class="Math">\iota \circ \beta \sim_{c,a} \alpha</span>, otherwise the output is <code class="code">false</code>.</p>

<p><a id="X7C21531C7EE65C72" name="X7C21531C7EE65C72"></a></p>

--> --------------------

--> maximum size reached

--> --------------------

100%


¤ Dauer der Verarbeitung: 0.34 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Normalansicht

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.