products/Sources/formale Sprachen/GAP/pkg/matricesforhomalg/doc/chap3_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 (MatricesForHomalg) - Chapter 3: Rings</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_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="chapA_mj.html" >A</a> <a href="chapB_mj.html" >B</a> <a href="chapC_mj.html" >C</a> <a href="chapD_mj.html" >D</a> <a href="chapE_mj.html" >E</a> <a href="chapF_mj.html" >F</a> <a href="chapBib_mj.html" >Bib</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="chap2_mj.html" >[Previous Chapter]</a> <a href="chap4_mj.html" >[Next Chapter]</a> </div >
<p id="mathjaxlink" class="pcenter" ><a href="chap3.html" >[MathJax off]</a></p>
<p><a id="X81897F6082CACB59" name="X81897F6082CACB59" ></a></p>
<div class="ChapSects" ><a href="chap3_mj.html#X81897F6082CACB59" >3 <span class="Heading" >Rings</span ></a>
<div class="ContSect" ><span class="tocline" ><span class="nocss" > </span ><a href="chap3_mj.html#X8252B2F483D80E41" >3.1 <span class="Heading" >Rings: Category and Representations</span ></a>
</span >
<div class="ContSSBlock" >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X85E217C67DD633AB" >3.1-1 IsHomalgRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X81DC249883163C01" >3.1-2 IsPreHomalgRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X80A410ED8500DA7E" >3.1-3 IsHomalgRingElement</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8097E89E7B6EF731" >3.1-4 IsHomalgInternalRingRep</a></span >
</div ></div >
<div class="ContSect" ><span class="tocline" ><span class="nocss" > </span ><a href="chap3_mj.html#X7C7962B97E6CDFE2" >3.2 <span class="Heading" >Rings: Constructors</span ></a>
</span >
<div class="ContSSBlock" >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X78AC74CB802A8A49" >3.2-1 HomalgRingOfIntegers</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X85D9DDE384304BAB" ><code >3.2-2 \/</code ></a></span >
</div ></div >
<div class="ContSect" ><span class="tocline" ><span class="nocss" > </span ><a href="chap3_mj.html#X7D171A1C797E27C9" >3.3 <span class="Heading" >Rings: Properties</span ></a>
</span >
<div class="ContSSBlock" >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7C48437187E668F3" >3.3-1 IsZero</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7F80A53387A0C23D" >3.3-2 IsNonZeroRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X84F3040687E68338" >3.3-3 ContainsAField</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7C337D0F8413FE38" >3.3-4 IsRationalsForHomalg</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X86221E0E8416F1CF" >3.3-5 IsFieldForHomalg</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X805112347CF99F02" >3.3-6 IsDivisionRingForHomalg</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X799A9A9F7A26C6B2" >3.3-7 IsIntegersForHomalg</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8548FE4E8283ACC6" >3.3-8 IsResidueClassRingOfTheIntegers</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7F9F59B5857F19A3" >3.3-9 IsBezoutRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X79D8752F78215FC1" >3.3-10 IsIntegrallyClosedDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X864BF29E7B5D3305" >3.3-11 IsUniqueFactorizationDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X86EF914787EB5572" >3.3-12 IsKaplanskyHermite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X86C625EF7E417AA6" >3.3-13 IsDedekindDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X855E560A7F40B2BF" >3.3-14 IsDiscreteValuationRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X80E0C8B28039B8F0" >3.3-15 IsFreePolynomialRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X850A0EAB7E017D5E" >3.3-16 IsWeylRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7EFB456286B4F9DB" >3.3-17 IsLocalizedWeylRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X86558C9F8474DA39" >3.3-18 IsGlobalDimensionFinite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7AE1C7297A66F116" >3.3-19 IsLeftGlobalDimensionFinite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X799A94467B8EC416" >3.3-20 IsRightGlobalDimensionFinite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X81269E1881D45163" >3.3-21 HasInvariantBasisProperty</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8758DFD57E83925D" >3.3-22 IsLocal</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7AAF0A3178E23B09" >3.3-23 IsSemiLocalRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7EE2F1C187131E19" >3.3-24 IsIntegralDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7FEB8A337CC92955" >3.3-25 IsHereditary</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7D4AC0177C6D85A8" >3.3-26 IsLeftHereditary</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7DE025D781FEBD04" >3.3-27 IsRightHereditary</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X783ACC147A7F82AA" >3.3-28 IsHermite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7A33BCFE7B6C6817" >3.3-29 IsLeftHermite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X830989817DC97403" >3.3-30 IsRightHermite</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7AA2911E802BE73D" >3.3-31 IsNoetherian</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7803DB3A7E6689B6" >3.3-32 IsLeftNoetherian</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X78A93EFA7B677CED" >3.3-33 IsRightNoetherian</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8373421F7E085763" >3.3-34 IsCohenMacaulay</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X83CBA38E81DC4A72" >3.3-35 IsGorenstein</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7E7AEFBE7801F196" >3.3-36 IsKoszul</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7AF81F6383F5CFCA" >3.3-37 IsArtinian</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7E000F5780A17602" >3.3-38 IsLeftArtinian</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7C34A319827FFDDB" >3.3-39 IsRightArtinian</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8290570679F86CE8" >3.3-40 IsOreDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8528CA397BC76826" >3.3-41 IsLeftOreDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7FC7E8317BF9B9CE" >3.3-42 IsRightOreDomain</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X85F1485F840E2354" >3.3-43 IsPrincipalIdealRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7BF4EFB67DCEBF6D" >3.3-44 IsLeftPrincipalIdealRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X83858198873F7760" >3.3-45 IsRightPrincipalIdealRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7CF02C4785F0EAB5" >3.3-46 IsRegular</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7FB92D467B9B6707" >3.3-47 IsFiniteFreePresentationRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7B0EE3BF8402793B" >3.3-48 IsLeftFiniteFreePresentationRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X839A82AC7D0D7BA1" >3.3-49 IsRightFiniteFreePresentationRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8491CBBE862D4FFB" >3.3-50 IsSimpleRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X847DEBCF872F5175" >3.3-51 IsSemiSimpleRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X842C9ABA807DB431" >3.3-52 IsSuperCommutative</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X803259617B5F89AE" >3.3-53 BasisAlgorithmRespectsPrincipalIdeals</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X781617F678CC0BA8" >3.3-54 AreUnitsCentral</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X85B6710082984863" >3.3-55 IsMinusOne</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7A0A3A927BE3F352" >3.3-56 IsMonic</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X785EF83B8054D2FF" >3.3-57 IsMonicUptoUnit</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X811A01D5803ADCA3" >3.3-58 IsLeftRegular</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7E99731F83A41777" >3.3-59 IsRightRegular</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X80A3294C834D8F21" >3.3-60 IsRegular</a></span >
</div ></div >
<div class="ContSect" ><span class="tocline" ><span class="nocss" > </span ><a href="chap3_mj.html#X867290E7847A5101" >3.4 <span class="Heading" >Rings: Attributes</span ></a>
</span >
<div class="ContSSBlock" >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8066502785A109B8" >3.4-1 Inverse</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7AFD26D480AA9323" >3.4-2 homalgTable</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X816D807781E8F854" >3.4-3 RingElementConstructor</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7E5426C67AA9A6E5" >3.4-4 TypeOfHomalgMatrix</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X80504BE983BD1A70" >3.4-5 ConstructorForHomalgMatrices</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X799B5F797F809EE5" >3.4-6 Zero</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X84701329860750C3" >3.4-7 One</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X810D03AA827BD128" >3.4-8 MinusOne</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7CC4312578DC42B6" >3.4-9 ProductOfIndeterminates</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7DF4F71C86835DCF" >3.4-10 RationalParameters</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X80D585E1793D4552" >3.4-11 IndeterminatesOfPolynomialRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X84CE78E379A34C56" >3.4-12 RelativeIndeterminatesOfPolynomialRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7F4A050A87C042E5" >3.4-13 IndeterminateCoordinatesOfRingOfDerivations</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X821FCC287E4FB92F" >3.4-14 RelativeIndeterminateCoordinatesOfRingOfDerivations</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X78776EBA7DC179B4" >3.4-15 IndeterminateDerivationsOfRingOfDerivations</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8522A7987C6483ED" >3.4-16 RelativeIndeterminateDerivationsOfRingOfDerivations</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7C15E6647945C0E3" >3.4-17 IndeterminateAntiCommutingVariablesOfExteriorRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7C63673A80911044" >3.4-18 RelativeIndeterminateAntiCommutingVariablesOfExteriorRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7BBEF7097B459D33" >3.4-19 IndeterminatesOfExteriorRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8235D10781BE8003" >3.4-20 CoefficientsRing</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X789CF8B778A0C58D" >3.4-21 KrullDimension</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X8735C56B7BEBC86E" >3.4-22 LeftGlobalDimension</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7E6C5B5781EF78C5" >3.4-23 RightGlobalDimension</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X7D511B3E7A50AB2A" >3.4-24 GlobalDimension</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X792D56C278E346B1" >3.4-25 GeneralLinearRank</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X79BCB23D873268CB" >3.4-26 ElementaryRank</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X822907CB7919EEF2" >3.4-27 StableRank</a></span >
<span class="ContSS" ><br /><span class="nocss" > </span ><a href="chap3_mj.html#X826BE1E87EE023B2" >3.4-28 AssociatedGradedRing</a></span >
</div ></div >
<div class="ContSect" ><span class="tocline" ><span class="nocss" > </span ><a href="chap3_mj.html#X7DDAB86C7A7FEDA9" >3.5 <span class="Heading" >Rings: Operations and Functions</span ></a>
</span >
</div >
</div >
<h3>3 <span class="Heading" >Rings</span ></h3>
<p><a id="X8252B2F483D80E41" name="X8252B2F483D80E41" ></a></p>
<h4>3.1 <span class="Heading" >Rings: Category and Representations</span ></h4>
<p><a id="X85E217C67DD633AB" name="X85E217C67DD633AB" ></a></p>
<h5>3.1-1 IsHomalgRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsHomalgRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( category )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>The <strong class="pkg" >GAP</strong > category of <strong class="pkg" >homalg</strong > rings.</p>
<p>(It is a subcategory of the <strong class="pkg" >GAP</strong > categories <code class="code" >IsStructureObject</code > and <code class="code" >IsHomalgRingOrModule</code >.)</p>
<div class="example" ><pre >
DeclareCategory( "IsHomalgRing" ,
IsStructureObject and
IsRingWithOne and
IsHomalgRingOrModule );
</pre ></div >
<p><a id="X81DC249883163C01" name="X81DC249883163C01" ></a></p>
<h5>3.1-2 IsPreHomalgRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsPreHomalgRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( category )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>The <strong class="pkg" >GAP</strong > category of pre <strong class="pkg" >homalg</strong > rings.</p>
<p>(It is a subcategory of the <strong class="pkg" >GAP</strong > category <code class="code" >IsHomalgRing</code >.) <br /> <br /> These are rings with an incomplete <code class="code" >homalgTable</code >. They provide flexibility for developers to support a wider class of rings, as was necessary for the development of the <strong class="pkg" >LocalizeRingForHomalg</strong > package. They are not suited for direct usage.</p>
<div class="example" ><pre >
DeclareCategory( "IsPreHomalgRing" ,
IsHomalgRing );
</pre ></div >
<p><a id="X80A410ED8500DA7E" name="X80A410ED8500DA7E" ></a></p>
<h5>3.1-3 IsHomalgRingElement</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsHomalgRingElement</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( category )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>The <strong class="pkg" >GAP</strong > category of elements of <strong class="pkg" >homalg</strong > rings which are not GAP4 built-in.</p>
<div class="example" ><pre >
DeclareCategory( "IsHomalgRingElement" ,
IsExtAElement and
IsExtLElement and
IsExtRElement and
IsAdditiveElementWithInverse and
IsMultiplicativeElementWithInverse and
IsAssociativeElement and
IsAdditivelyCommutativeElement and
## all the above guarantees IsHomalgRingElement => IsRingElement (in GAP4)
IsAttributeStoringRep );
</pre ></div >
<p><a id="X8097E89E7B6EF731" name="X8097E89E7B6EF731" ></a></p>
<h5>3.1-4 IsHomalgInternalRingRep</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsHomalgInternalRingRep</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( representation )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>The internal representation of <strong class="pkg" >homalg</strong > rings.</p>
<p>(It is a representation of the <strong class="pkg" >GAP</strong > category <code class="code" >IsHomalgRing</code >.)</p>
<p><a id="X7C7962B97E6CDFE2" name="X7C7962B97E6CDFE2" ></a></p>
<h4>3.2 <span class="Heading" >Rings: Constructors</span ></h4>
<p>This section describes how to construct rings for use with <strong class="pkg" >MatricesForHomalg</strong >, which exploit the <strong class="pkg" >GAP4</strong >-built-in abilities to perform the necessary ring operations. By this we also mean necessary matrix operations over such rings. For the purposes of <strong class="pkg" >MatricesForHomalg</strong > only the ring of integers is properly supported in <strong class="pkg" >GAP4</strong >. The <strong class="pkg" >GAP4</strong > extension packages <strong class="pkg" >Gauss</strong > and <strong class="pkg" >GaussForHomalg</strong > extend these built-in abilities to operations with sparse matrices over the ring <span class="SimpleMath" >\(ℤ / p^n\)</span > for <span class="SimpleMath" >\(p\)</span > prime and <span class="SimpleMath" >\(n\)</span > positive.</p>
<p>If a ring <span class="SimpleMath" >\(R\)</span > is supported in <strong class="pkg" >MatricesForHomalg</strong > any of its residue class rings <span class="SimpleMath" >\(R/I\)</span > is supported as well, provided the ideal <span class="SimpleMath" >\(I\)</span > of relations admits a finite set of generators as a left resp. right ideal (--> <code class="func" >\/</code > (<a href="chap3_mj.html#X85D9DDE384304BAB" ><span class="RefLink" >3.2-2</span ></a>)). This is immediate for commutative noetherian rings.</p>
<p><a id="X78AC74CB802A8A49" name="X78AC74CB802A8A49" ></a></p>
<h5>3.2-1 HomalgRingOfIntegers</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ HomalgRingOfIntegers</code >( )</td ><td class="tdright" >( function )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring</p>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ HomalgRingOfIntegers</code >( <var class="Arg" >c</var > )</td ><td class="tdright" >( function )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring</p>
<p>The no-argument form returns the ring of integers <span class="SimpleMath" >\(ℤ\)</span > for <strong class="pkg" >homalg</strong >.</p>
<p>The one-argument form accepts an integer <var class="Arg" >c</var > and returns the ring <span class="SimpleMath" >\(ℤ / c \)</span > for <strong class="pkg" >homalg</strong >:</p>
<ul >
<li ><p><var class="Arg" >c</var ><span class="SimpleMath" >\( = 0\)</span > defaults to <span class="SimpleMath" >\(ℤ\)</span ></p>
</li >
<li ><p>if <var class="Arg" >c</var > is a prime power then the package <strong class="pkg" >GaussForHomalg</strong > is loaded (if it fails to load an error is issued)</p>
</li >
<li ><p>otherwise, the residue class ring constructor <code class="code" >/</code > (--> <code class="func" >\/</code > (<a href="chap3_mj.html#X85D9DDE384304BAB" ><span class="RefLink" >3.2-2</span ></a>)) is invoked</p>
</li >
</ul >
<p>The operation <code class="code" >SetRingProperties</code > is automatically invoked to set the ring properties.</p>
<p>If for some reason you don't want to use the GaussForHomalg package (maybe because you didn' t install it), then use</p>
<p><code class="code" >HomalgRingOfIntegers</code >( ) <code class="code" >/</code > <var class="Arg" >c</var >;</p>
<p>but note that the computations will then be considerably slower.</p>
<p><a id="X85D9DDE384304BAB" name="X85D9DDE384304BAB" ></a></p>
<h5><code >3.2-2 \/</code ></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" >ring_rel</var > )</td ><td class="tdright" >( operation )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring</p>
<p>This is the <strong class="pkg" >homalg</strong > constructor for residue class rings <var class="Arg" >R</var > <span class="SimpleMath" >\(/ I\)</span >, where <var class="Arg" >R</var > is a <strong class="pkg" >homalg</strong > ring and <span class="SimpleMath" >\(I=\)</span ><var class="Arg" >ring_rel</var > is the ideal of relations generated by <var class="Arg" >ring_rel</var >. <var class="Arg" >ring_rel</var > might be:</p>
<ul >
<li ><p>a set of ring relations of a left resp. right ideal</p>
</li >
<li ><p>a list of ring elements of <var class="Arg" >R</var ></p>
</li >
<li ><p>a ring element of <var class="Arg" >R</var ></p>
</li >
</ul >
<p>For noncommutative rings: In the first case the set of ring relations should generate the ideal of relations <span class="SimpleMath" >\(I\)</span > as left resp. right ideal, and their involutions should generate <span class="SimpleMath" >\(I\)</span > as right resp. left ideal. If <var class="Arg" >ring_rel</var > is not a set of relations, a <em >left</em > set of relations is constructed.</p>
<p>The operation <code class="code" >SetRingProperties</code > is automatically invoked to set the ring properties.</p>
<div class="example" ><pre >
<span class="GAPprompt" >gap></span > <span class="GAPinput" >zz := HomalgRingOfIntegers( );</span >
Z
<span class="GAPprompt" >gap></span > <span class="GAPinput" >Display( zz );</span >
<An internal ring>
<span class="GAPprompt" >gap></span > <span class="GAPinput" >Z256 := zz / 2^8;</span >
Z/( 256 )
<span class="GAPprompt" >gap></span > <span class="GAPinput" >Display( Z256 );</span >
<A residue class ring>
<span class="GAPprompt" >gap></span > <span class="GAPinput" >Z2 := Z256 / 6;</span >
Z/( 256, 6 )
<span class="GAPprompt" >gap></span > <span class="GAPinput" >BasisOfRows( MatrixOfRelations( Z2 ) );</span >
<An unevaluated non-zero 1 x 1 matrix over an internal ring>
<span class="GAPprompt" >gap></span > <span class="GAPinput" >Z2;</span >
Z/( 2 )
<span class="GAPprompt" >gap></span > <span class="GAPinput" >Display( Z2 );</span >
<A residue class ring>
</pre ></div >
<p><a id="X7D171A1C797E27C9" name="X7D171A1C797E27C9" ></a></p>
<h4>3.3 <span class="Heading" >Rings: Properties</span ></h4>
<p>The following properties are declared for <strong class="pkg" >homalg</strong > rings. Note that (apart from so-called true and immediate methods (--> <a href="chapC_mj.html#X86BB747287348853" ><span class="RefLink" >C.1</span ></a>)) there are no methods installed for ring properties. This means that if the value of the ring property <code class="code" >Prop</code > is not set for a <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >, then</p>
<p><code class="code" >Prop</code >( <var class="Arg" >R</var > );</p>
<p>will cause an error. One can use the usual <strong class="pkg" >GAP4</strong > mechanism to check if the value of the property is set or not</p>
<p><code class="code" >HasProp</code >( <var class="Arg" >R</var > );</p>
<p>If you discover that a specific property <code class="code" >Prop</code > is missing for a certain <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var > you can it add using the usual <strong class="pkg" >GAP4</strong > mechanism</p>
<p><code class="code" >SetProp</code >( <var class="Arg" >R</var >, true );</p>
<p>or</p>
<p><code class="code" >SetProp</code >( <var class="Arg" >R</var >, false );</p>
<p>Be very cautious with setting "missing" properties to <strong class="pkg" >homalg</strong > objects: If the value you set is mathematically wrong <strong class="pkg" >homalg</strong > will probably draw wrong conclusions and might return wrong results.</p>
<p><a id="X7C48437187E668F3" name="X7C48437187E668F3" ></a></p>
<h5>3.3-1 IsZero</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsZero</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the ring <var class="Arg" >R</var > is the zero ring, i.e., if <code class="code" >One</code ><span class="SimpleMath" >\((\)</span ><var class="Arg" >R</var ><span class="SimpleMath" >\()=\)</span ><code class="code" >Zero</code ><span class="SimpleMath" >\((\)</span ><var class="Arg" >R</var ><span class="SimpleMath" >\()\)</span >.</p>
<p><a id="X7F80A53387A0C23D" name="X7F80A53387A0C23D" ></a></p>
<h5>3.3-2 IsNonZeroRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsNonZeroRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the ring <var class="Arg" >R</var > is not the zero ring, i.e., if <code class="code" >One</code ><span class="SimpleMath" >\((\)</span ><var class="Arg" >R</var ><span class="SimpleMath" >\()\)</span > is different from <code class="code" >Zero</code ><span class="SimpleMath" >\((\)</span ><var class="Arg" >R</var ><span class="SimpleMath" >\()\)</span >.</p>
<p><a id="X84F3040687E68338" name="X84F3040687E68338" ></a></p>
<h5>3.3-3 ContainsAField</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ ContainsAField</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7C337D0F8413FE38" name="X7C337D0F8413FE38" ></a></p>
<h5>3.3-4 IsRationalsForHomalg</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRationalsForHomalg</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X86221E0E8416F1CF" name="X86221E0E8416F1CF" ></a></p>
<h5>3.3-5 IsFieldForHomalg</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsFieldForHomalg</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X805112347CF99F02" name="X805112347CF99F02" ></a></p>
<h5>3.3-6 IsDivisionRingForHomalg</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsDivisionRingForHomalg</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X799A9A9F7A26C6B2" name="X799A9A9F7A26C6B2" ></a></p>
<h5>3.3-7 IsIntegersForHomalg</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsIntegersForHomalg</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X8548FE4E8283ACC6" name="X8548FE4E8283ACC6" ></a></p>
<h5>3.3-8 IsResidueClassRingOfTheIntegers</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsResidueClassRingOfTheIntegers</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7F9F59B5857F19A3" name="X7F9F59B5857F19A3" ></a></p>
<h5>3.3-9 IsBezoutRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsBezoutRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X79D8752F78215FC1" name="X79D8752F78215FC1" ></a></p>
<h5>3.3-10 IsIntegrallyClosedDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsIntegrallyClosedDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X864BF29E7B5D3305" name="X864BF29E7B5D3305" ></a></p>
<h5>3.3-11 IsUniqueFactorizationDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsUniqueFactorizationDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X86EF914787EB5572" name="X86EF914787EB5572" ></a></p>
<h5>3.3-12 IsKaplanskyHermite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsKaplanskyHermite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X86C625EF7E417AA6" name="X86C625EF7E417AA6" ></a></p>
<h5>3.3-13 IsDedekindDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsDedekindDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X855E560A7F40B2BF" name="X855E560A7F40B2BF" ></a></p>
<h5>3.3-14 IsDiscreteValuationRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsDiscreteValuationRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X80E0C8B28039B8F0" name="X80E0C8B28039B8F0" ></a></p>
<h5>3.3-15 IsFreePolynomialRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsFreePolynomialRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X850A0EAB7E017D5E" name="X850A0EAB7E017D5E" ></a></p>
<h5>3.3-16 IsWeylRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsWeylRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7EFB456286B4F9DB" name="X7EFB456286B4F9DB" ></a></p>
<h5>3.3-17 IsLocalizedWeylRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLocalizedWeylRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X86558C9F8474DA39" name="X86558C9F8474DA39" ></a></p>
<h5>3.3-18 IsGlobalDimensionFinite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsGlobalDimensionFinite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7AE1C7297A66F116" name="X7AE1C7297A66F116" ></a></p>
<h5>3.3-19 IsLeftGlobalDimensionFinite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftGlobalDimensionFinite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X799A94467B8EC416" name="X799A94467B8EC416" ></a></p>
<h5>3.3-20 IsRightGlobalDimensionFinite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightGlobalDimensionFinite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X81269E1881D45163" name="X81269E1881D45163" ></a></p>
<h5>3.3-21 HasInvariantBasisProperty</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ HasInvariantBasisProperty</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X8758DFD57E83925D" name="X8758DFD57E83925D" ></a></p>
<h5>3.3-22 IsLocal</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLocal</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7AAF0A3178E23B09" name="X7AAF0A3178E23B09" ></a></p>
<h5>3.3-23 IsSemiLocalRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsSemiLocalRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7EE2F1C187131E19" name="X7EE2F1C187131E19" ></a></p>
<h5>3.3-24 IsIntegralDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsIntegralDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7FEB8A337CC92955" name="X7FEB8A337CC92955" ></a></p>
<h5>3.3-25 IsHereditary</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsHereditary</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7D4AC0177C6D85A8" name="X7D4AC0177C6D85A8" ></a></p>
<h5>3.3-26 IsLeftHereditary</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftHereditary</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7DE025D781FEBD04" name="X7DE025D781FEBD04" ></a></p>
<h5>3.3-27 IsRightHereditary</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightHereditary</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X783ACC147A7F82AA" name="X783ACC147A7F82AA" ></a></p>
<h5>3.3-28 IsHermite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsHermite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7A33BCFE7B6C6817" name="X7A33BCFE7B6C6817" ></a></p>
<h5>3.3-29 IsLeftHermite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftHermite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X830989817DC97403" name="X830989817DC97403" ></a></p>
<h5>3.3-30 IsRightHermite</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightHermite</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7AA2911E802BE73D" name="X7AA2911E802BE73D" ></a></p>
<h5>3.3-31 IsNoetherian</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsNoetherian</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7803DB3A7E6689B6" name="X7803DB3A7E6689B6" ></a></p>
<h5>3.3-32 IsLeftNoetherian</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftNoetherian</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X78A93EFA7B677CED" name="X78A93EFA7B677CED" ></a></p>
<h5>3.3-33 IsRightNoetherian</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightNoetherian</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X8373421F7E085763" name="X8373421F7E085763" ></a></p>
<h5>3.3-34 IsCohenMacaulay</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsCohenMacaulay</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X83CBA38E81DC4A72" name="X83CBA38E81DC4A72" ></a></p>
<h5>3.3-35 IsGorenstein</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsGorenstein</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7E7AEFBE7801F196" name="X7E7AEFBE7801F196" ></a></p>
<h5>3.3-36 IsKoszul</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsKoszul</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7AF81F6383F5CFCA" name="X7AF81F6383F5CFCA" ></a></p>
<h5>3.3-37 IsArtinian</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsArtinian</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7E000F5780A17602" name="X7E000F5780A17602" ></a></p>
<h5>3.3-38 IsLeftArtinian</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftArtinian</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7C34A319827FFDDB" name="X7C34A319827FFDDB" ></a></p>
<h5>3.3-39 IsRightArtinian</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightArtinian</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X8290570679F86CE8" name="X8290570679F86CE8" ></a></p>
<h5>3.3-40 IsOreDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsOreDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X8528CA397BC76826" name="X8528CA397BC76826" ></a></p>
<h5>3.3-41 IsLeftOreDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftOreDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7FC7E8317BF9B9CE" name="X7FC7E8317BF9B9CE" ></a></p>
<h5>3.3-42 IsRightOreDomain</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightOreDomain</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X85F1485F840E2354" name="X85F1485F840E2354" ></a></p>
<h5>3.3-43 IsPrincipalIdealRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsPrincipalIdealRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7BF4EFB67DCEBF6D" name="X7BF4EFB67DCEBF6D" ></a></p>
<h5>3.3-44 IsLeftPrincipalIdealRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftPrincipalIdealRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X83858198873F7760" name="X83858198873F7760" ></a></p>
<h5>3.3-45 IsRightPrincipalIdealRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightPrincipalIdealRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7CF02C4785F0EAB5" name="X7CF02C4785F0EAB5" ></a></p>
<h5>3.3-46 IsRegular</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRegular</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7FB92D467B9B6707" name="X7FB92D467B9B6707" ></a></p>
<h5>3.3-47 IsFiniteFreePresentationRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsFiniteFreePresentationRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X7B0EE3BF8402793B" name="X7B0EE3BF8402793B" ></a></p>
<h5>3.3-48 IsLeftFiniteFreePresentationRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftFiniteFreePresentationRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X839A82AC7D0D7BA1" name="X839A82AC7D0D7BA1" ></a></p>
<h5>3.3-49 IsRightFiniteFreePresentationRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightFiniteFreePresentationRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X8491CBBE862D4FFB" name="X8491CBBE862D4FFB" ></a></p>
<h5>3.3-50 IsSimpleRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsSimpleRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X847DEBCF872F5175" name="X847DEBCF872F5175" ></a></p>
<h5>3.3-51 IsSemiSimpleRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsSemiSimpleRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X842C9ABA807DB431" name="X842C9ABA807DB431" ></a></p>
<h5>3.3-52 IsSuperCommutative</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsSuperCommutative</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X803259617B5F89AE" name="X803259617B5F89AE" ></a></p>
<h5>3.3-53 BasisAlgorithmRespectsPrincipalIdeals</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ BasisAlgorithmRespectsPrincipalIdeals</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X781617F678CC0BA8" name="X781617F678CC0BA8" ></a></p>
<h5>3.3-54 AreUnitsCentral</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ AreUnitsCentral</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p><var class="Arg" >R</var > is a ring for <strong class="pkg" >homalg</strong >.</p>
<p><a id="X85B6710082984863" name="X85B6710082984863" ></a></p>
<h5>3.3-55 IsMinusOne</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsMinusOne</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the ring element <var class="Arg" >r</var > is the additive inverse of one.</p>
<p><a id="X7A0A3A927BE3F352" name="X7A0A3A927BE3F352" ></a></p>
<h5>3.3-56 IsMonic</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsMonic</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the <strong class="pkg" >homalg</strong > ring element <var class="Arg" >r</var > is monic.</p>
<p><a id="X785EF83B8054D2FF" name="X785EF83B8054D2FF" ></a></p>
<h5>3.3-57 IsMonicUptoUnit</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsMonicUptoUnit</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if leading coefficient of the <strong class="pkg" >homalg</strong > ring element <var class="Arg" >r</var > is a unit.</p>
<p><a id="X811A01D5803ADCA3" name="X811A01D5803ADCA3" ></a></p>
<h5>3.3-58 IsLeftRegular</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsLeftRegular</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the <strong class="pkg" >homalg</strong > ring element <var class="Arg" >r</var > is left regular.</p>
<p><a id="X7E99731F83A41777" name="X7E99731F83A41777" ></a></p>
<h5>3.3-59 IsRightRegular</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRightRegular</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the <strong class="pkg" >homalg</strong > ring element <var class="Arg" >r</var > is right regular.</p>
<p><a id="X80A3294C834D8F21" name="X80A3294C834D8F21" ></a></p>
<h5>3.3-60 IsRegular</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IsRegular</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( property )</td ></tr ></table ></div >
<p>Returns: <code class="code" >true</code > or <code class="code" >false</code ></p>
<p>Check if the <strong class="pkg" >homalg</strong > ring element <var class="Arg" >r</var > is regular, i.e. left and right regular.</p>
<p><a id="X867290E7847A5101" name="X867290E7847A5101" ></a></p>
<h4>3.4 <span class="Heading" >Rings: Attributes</span ></h4>
<p><a id="X8066502785A109B8" name="X8066502785A109B8" ></a></p>
<h5>3.4-1 Inverse</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ Inverse</code >( <var class="Arg" >r</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring element or fail</p>
<p>The inverse of the <strong class="pkg" >homalg</strong > ring element <var class="Arg" >r</var >.</p>
<div class="example" ><pre >
<span class="GAPprompt" >gap></span > <span class="GAPinput" >zz := HomalgRingOfIntegers( );;</span >
<span class="GAPprompt" >gap></span > <span class="GAPinput" >R := zz / 2^8;</span >
Z/( 256 )
<span class="GAPprompt" >gap></span > <span class="GAPinput" >r := (1/3*One(R)+1/5)+3/7;</span >
|[ 157 ]|
<span class="GAPprompt" >gap></span > <span class="GAPinput" >1 / r; ## = r^-1;</span >
|[ 181 ]|
<span class="GAPprompt" >gap></span > <span class="GAPinput" >s := (1/3*One(R)+2/5)+3/7;</span >
|[ 106 ]|
<span class="GAPprompt" >gap></span > <span class="GAPinput" >s^(-1);</span >
fail
</pre ></div >
<p><a id="X7AFD26D480AA9323" name="X7AFD26D480AA9323" ></a></p>
<h5>3.4-2 homalgTable</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ homalgTable</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > table </p>
<p>The <strong class="pkg" >homalg</strong > table of <var class="Arg" >R</var > is a ring dictionary, i.e. the translator between <strong class="pkg" >homalg</strong > and the (specific implementation of the) ring.</p>
<p>Every <strong class="pkg" >homalg</strong > ring has a <strong class="pkg" >homalg</strong > table .</p>
<p><a id="X816D807781E8F854" name="X816D807781E8F854" ></a></p>
<h5>3.4-3 RingElementConstructor</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ RingElementConstructor</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a function</p>
<p>The constructor of ring elements in the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X7E5426C67AA9A6E5" name="X7E5426C67AA9A6E5" ></a></p>
<h5>3.4-4 TypeOfHomalgMatrix</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ TypeOfHomalgMatrix</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a type</p>
<p>The <strong class="pkg" >GAP4</strong >-type of <strong class="pkg" >homalg</strong > matrices over the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X80504BE983BD1A70" name="X80504BE983BD1A70" ></a></p>
<h5>3.4-5 ConstructorForHomalgMatrices</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ ConstructorForHomalgMatrices</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a type</p>
<p>The constructor for <strong class="pkg" >homalg</strong > matrices over the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X799B5F797F809EE5" name="X799B5F797F809EE5" ></a></p>
<h5>3.4-6 Zero</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ Zero</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring element</p>
<p>The zero of the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X84701329860750C3" name="X84701329860750C3" ></a></p>
<h5>3.4-7 One</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ One</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring element</p>
<p>The one of the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X810D03AA827BD128" name="X810D03AA827BD128" ></a></p>
<h5>3.4-8 MinusOne</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ MinusOne</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring element</p>
<p>The minus one of the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X7CC4312578DC42B6" name="X7CC4312578DC42B6" ></a></p>
<h5>3.4-9 ProductOfIndeterminates</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ ProductOfIndeterminates</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a <strong class="pkg" >homalg</strong > ring element</p>
<p>The product of indeterminates of the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X7DF4F71C86835DCF" name="X7DF4F71C86835DCF" ></a></p>
<h5>3.4-10 RationalParameters</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ RationalParameters</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a list of <strong class="pkg" >homalg</strong > ring elements</p>
<p>The list of rational parameters of the <strong class="pkg" >homalg</strong > ring <var class="Arg" >R</var >.</p>
<p><a id="X80D585E1793D4552" name="X80D585E1793D4552" ></a></p>
<h5>3.4-11 IndeterminatesOfPolynomialRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IndeterminatesOfPolynomialRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a list of <strong class="pkg" >homalg</strong > ring elements</p>
<p>The list of indeterminates of the <strong class="pkg" >homalg</strong > polynomial ring <var class="Arg" >R</var >.</p>
<p><a id="X84CE78E379A34C56" name="X84CE78E379A34C56" ></a></p>
<h5>3.4-12 RelativeIndeterminatesOfPolynomialRing</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ RelativeIndeterminatesOfPolynomialRing</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a list of <strong class="pkg" >homalg</strong > ring elements</p>
<p>The list of relative indeterminates of the <strong class="pkg" >homalg</strong > polynomial ring <var class="Arg" >R</var >.</p>
<p><a id="X7F4A050A87C042E5" name="X7F4A050A87C042E5" ></a></p>
<h5>3.4-13 IndeterminateCoordinatesOfRingOfDerivations</h5>
<div class="func" ><table class="func" width="100%" ><tr ><td class="tdleft" ><code class="func" >‣ IndeterminateCoordinatesOfRingOfDerivations</code >( <var class="Arg" >R</var > )</td ><td class="tdright" >( attribute )</td ></tr ></table ></div >
<p>Returns: a list of <strong class="pkg" >homalg</strong > ring elements</p>
--> --------------------
--> maximum size reached
--> --------------------
quality 100%
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.41Angebot
Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können
¤
*Eine klare Vorstellung vom Zielzustand