  
  [1X3 [33X[0;0YRings[133X[101X
  
  
  [1X3.1 [33X[0;0YRings: Category and Representations[133X[101X
  
  [1X3.1-1 IsHomalgRing[101X
  
  [33X[1;0Y[29X[2XIsHomalgRing[102X( [3XR[103X ) [32X Category[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe [5XGAP[105X category of [5Xhomalg[105X rings.[133X
  
  [33X[0;0Y(It   is   a   subcategory  of  the  [5XGAP[105X  categories  [10XIsStructureObject[110X  and
  [10XIsHomalgRingOrModule[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareCategory( "IsHomalgRing",[104X
    [4X        IsStructureObject and[104X
    [4X        IsRingWithOne and[104X
    [4X        IsHomalgRingOrModule );[104X
  [4X[32X[104X
  
  [1X3.1-2 IsPreHomalgRing[101X
  
  [33X[1;0Y[29X[2XIsPreHomalgRing[102X( [3XR[103X ) [32X Category[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe [5XGAP[105X category of pre [5Xhomalg[105X rings.[133X
  
  [33X[0;0Y(It is a subcategory of the [5XGAP[105X category [10XIsHomalgRing[110X.)[133X
  [33X[0;0YThese are rings with an incomplete [10XhomalgTable[110X. They provide flexibility for
  developers  to  support  a  wider  class  of rings, as was necessary for the
  development  of  the  [5XLocalizeRingForHomalg[105X package. They are not suited for
  direct usage.[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareCategory( "IsPreHomalgRing",[104X
    [4X        IsHomalgRing );[104X
  [4X[32X[104X
  
  [1X3.1-3 IsHomalgRingElement[101X
  
  [33X[1;0Y[29X[2XIsHomalgRingElement[102X( [3Xr[103X ) [32X Category[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe [5XGAP[105X category of elements of [5Xhomalg[105X rings which are not GAP4 built-in.[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareCategory( "IsHomalgRingElement",[104X
    [4X        IsExtAElement and[104X
    [4X        IsExtLElement and[104X
    [4X        IsExtRElement and[104X
    [4X        IsAdditiveElementWithInverse and[104X
    [4X        IsMultiplicativeElementWithInverse and[104X
    [4X        IsAssociativeElement and[104X
    [4X        IsAdditivelyCommutativeElement and[104X
    [4X        ## all the above guarantees IsHomalgRingElement => IsRingElement (in GAP4)[104X
    [4X        IsAttributeStoringRep );[104X
  [4X[32X[104X
  
  [1X3.1-4 IsHomalgInternalRingRep[101X
  
  [33X[1;0Y[29X[2XIsHomalgInternalRingRep[102X( [3XR[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe internal representation of [5Xhomalg[105X rings.[133X
  
  [33X[0;0Y(It is a representation of the [5XGAP[105X category [10XIsHomalgRing[110X.)[133X
  
  
  [1X3.2 [33X[0;0YRings: Constructors[133X[101X
  
  [33X[0;0YThis   section   describes   how   to   construct   rings   for   use   with
  [5XMatricesForHomalg[105X,  which exploit the [5XGAP4[105X-built-in abilities to perform the
  necessary  ring operations. By this we also mean necessary matrix operations
  over  such  rings.  For  the  purposes of [5XMatricesForHomalg[105X only the ring of
  integers  is  properly  supported in [5XGAP4[105X. The [5XGAP4[105X extension packages [5XGauss[105X
  and [5XGaussForHomalg[105X extend these built-in abilities to operations with sparse
  matrices over the ring [22Xℤ / p^n[122X for [22Xp[122X prime and [22Xn[122X positive.[133X
  
  [33X[0;0YIf a ring [22XR[122X is supported in [5XMatricesForHomalg[105X any of its residue class rings
  [22XR/I[122X  is supported as well, provided the ideal [22XI[122X of relations admits a finite
  set  of  generators  as  a  left resp. right ideal (--> [2X\/[102X ([14X3.2-2[114X)). This is
  immediate for commutative noetherian rings.[133X
  
  [1X3.2-1 HomalgRingOfIntegers[101X
  
  [33X[1;0Y[29X[2XHomalgRingOfIntegers[102X(  ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[1;0Y[29X[2XHomalgRingOfIntegers[102X( [3Xc[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[0;0YThe no-argument form returns the ring of integers [22Xℤ[122X for [5Xhomalg[105X.[133X
  
  [33X[0;0YThe  one-argument  form  accepts an integer [3Xc[103X and returns the ring [22Xℤ / c[122X for
  [5Xhomalg[105X:[133X
  
  [30X    [33X[0;6Y[3Xc[103X[22X= 0[122X defaults to [22Xℤ[122X[133X
  
  [30X    [33X[0;6Yif [3Xc[103X is a prime power then the package [5XGaussForHomalg[105X is loaded (if it
        fails to load an error is issued)[133X
  
  [30X    [33X[0;6Yotherwise,  the  residue  class ring constructor [10X/[110X (--> [2X\/[102X ([14X3.2-2[114X)) is
        invoked[133X
  
  [33X[0;0YThe  operation  [10XSetRingProperties[110X  is  automatically invoked to set the ring
  properties.[133X
  
  [33X[0;0YIf  for  some reason you don't want to use the [5XGaussForHomalg[105X package (maybe
  because you didn't install it), then use[133X
  
  [33X[0;0Y[10XHomalgRingOfIntegers[110X( ) [10X/[110X [3Xc[103X;[133X
  
  [33X[0;0Ybut note that the computations will then be considerably slower.[133X
  
  [1X3.2-2 \/[101X
  
  [33X[1;0Y[29X[2X\/[102X( [3XR[103X, [3Xring_rel[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[0;0YThis  is  the [5Xhomalg[105X constructor for residue class rings [3XR[103X [22X/ I[122X, where [3XR[103X is a
  [5Xhomalg[105X  ring and [22XI=[122X[3Xring_rel[103X is the ideal of relations generated by [3Xring_rel[103X.
  [3Xring_rel[103X might be:[133X
  
  [30X    [33X[0;6Ya set of ring relations of a left resp. right ideal[133X
  
  [30X    [33X[0;6Ya list of ring elements of [3XR[103X[133X
  
  [30X    [33X[0;6Ya ring element of [3XR[103X[133X
  
  [33X[0;0YFor noncommutative rings: In the first case the set of ring relations should
  generate  the  ideal  of  relations  [22XI[122X  as left resp. right ideal, and their
  involutions  should generate [22XI[122X as right resp. left ideal. If [3Xring_rel[103X is not
  a set of relations, a [13Xleft[113X set of relations is constructed.[133X
  
  [33X[0;0YThe  operation  [10XSetRingProperties[110X  is  automatically invoked to set the ring
  properties.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XZZ := HomalgRingOfIntegers( );[127X[104X
    [4X[28XZ[128X[104X
    [4X[25Xgap>[125X [27XDisplay( ZZ );[127X[104X
    [4X[28X<An internal ring>[128X[104X
    [4X[25Xgap>[125X [27XZ256 := ZZ / 2^8;[127X[104X
    [4X[28XZ/( 256 )[128X[104X
    [4X[25Xgap>[125X [27XDisplay( Z256 );[127X[104X
    [4X[28X<A residue class ring>[128X[104X
    [4X[25Xgap>[125X [27XZ2 := Z256 / 6;[127X[104X
    [4X[28XZ/( 256, 6 )[128X[104X
    [4X[25Xgap>[125X [27XBasisOfRows( MatrixOfRelations( Z2 ) );[127X[104X
    [4X[28X<An unevaluated non-zero 1 x 1 matrix over an internal ring>[128X[104X
    [4X[25Xgap>[125X [27XZ2;[127X[104X
    [4X[28XZ/( 2 )[128X[104X
    [4X[25Xgap>[125X [27XDisplay( Z2 );[127X[104X
    [4X[28X<A residue class ring>[128X[104X
  [4X[32X[104X
  
  
  [1X3.3 [33X[0;0YRings: Properties[133X[101X
  
  [33X[0;0YThe  following  properties  are  declared for [5Xhomalg[105X rings. Note that (apart
  from  so-called  true  and immediate methods (--> [14XC.1[114X)) there are no methods
  installed  for  ring  properties.  This  means that if the value of the ring
  property [10XProp[110X is not set for a [5Xhomalg[105X ring [3XR[103X, then[133X
  
  [33X[0;0Y[10XProp[110X( [3XR[103X );[133X
  
  [33X[0;0Ywill  cause  an  error. One can use the usual [5XGAP4[105X mechanism to check if the
  value of the property is set or not[133X
  
  [33X[0;0Y[10XHasProp[110X( [3XR[103X );[133X
  
  [33X[0;0YIf  you  discover  that  a  specific  property [10XProp[110X is missing for a certain
  [5Xhomalg[105X ring [3XR[103X you can it add using the usual [5XGAP4[105X mechanism[133X
  
  [33X[0;0Y[10XSetProp[110X( [3XR[103X, true );[133X
  
  [33X[0;0Yor[133X
  
  [33X[0;0Y[10XSetProp[110X( [3XR[103X, false );[133X
  
  [33X[0;0YBe very cautious with setting "missing" properties to [5Xhomalg[105X objects: If the
  value  you  set  is  mathematically  wrong  [5Xhomalg[105X  will probably draw wrong
  conclusions and might return wrong results.[133X
  
  [1X3.3-1 IsZero[101X
  
  [33X[1;0Y[29X[2XIsZero[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the ring [3XR[103X is the zero ring, i.e., if [10XOne[110X[22X([122X[3XR[103X[22X)=[122X[10XZero[110X[22X([122X[3XR[103X[22X)[122X.[133X
  
  [1X3.3-2 IsNonZeroRing[101X
  
  [33X[1;0Y[29X[2XIsNonZeroRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck  if the ring [3XR[103X is not the zero ring, i.e., if [10XOne[110X[22X([122X[3XR[103X[22X)[122X is different from
  [10XZero[110X[22X([122X[3XR[103X[22X)[122X.[133X
  
  [1X3.3-3 ContainsAField[101X
  
  [33X[1;0Y[29X[2XContainsAField[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-4 IsRationalsForHomalg[101X
  
  [33X[1;0Y[29X[2XIsRationalsForHomalg[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-5 IsFieldForHomalg[101X
  
  [33X[1;0Y[29X[2XIsFieldForHomalg[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-6 IsDivisionRingForHomalg[101X
  
  [33X[1;0Y[29X[2XIsDivisionRingForHomalg[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-7 IsIntegersForHomalg[101X
  
  [33X[1;0Y[29X[2XIsIntegersForHomalg[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-8 IsResidueClassRingOfTheIntegers[101X
  
  [33X[1;0Y[29X[2XIsResidueClassRingOfTheIntegers[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-9 IsBezoutRing[101X
  
  [33X[1;0Y[29X[2XIsBezoutRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-10 IsIntegrallyClosedDomain[101X
  
  [33X[1;0Y[29X[2XIsIntegrallyClosedDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-11 IsUniqueFactorizationDomain[101X
  
  [33X[1;0Y[29X[2XIsUniqueFactorizationDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-12 IsKaplanskyHermite[101X
  
  [33X[1;0Y[29X[2XIsKaplanskyHermite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-13 IsDedekindDomain[101X
  
  [33X[1;0Y[29X[2XIsDedekindDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-14 IsDiscreteValuationRing[101X
  
  [33X[1;0Y[29X[2XIsDiscreteValuationRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-15 IsFreePolynomialRing[101X
  
  [33X[1;0Y[29X[2XIsFreePolynomialRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-16 IsWeylRing[101X
  
  [33X[1;0Y[29X[2XIsWeylRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-17 IsLocalizedWeylRing[101X
  
  [33X[1;0Y[29X[2XIsLocalizedWeylRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-18 IsGlobalDimensionFinite[101X
  
  [33X[1;0Y[29X[2XIsGlobalDimensionFinite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-19 IsLeftGlobalDimensionFinite[101X
  
  [33X[1;0Y[29X[2XIsLeftGlobalDimensionFinite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-20 IsRightGlobalDimensionFinite[101X
  
  [33X[1;0Y[29X[2XIsRightGlobalDimensionFinite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-21 HasInvariantBasisProperty[101X
  
  [33X[1;0Y[29X[2XHasInvariantBasisProperty[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-22 IsLocal[101X
  
  [33X[1;0Y[29X[2XIsLocal[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-23 IsSemiLocalRing[101X
  
  [33X[1;0Y[29X[2XIsSemiLocalRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-24 IsIntegralDomain[101X
  
  [33X[1;0Y[29X[2XIsIntegralDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-25 IsHereditary[101X
  
  [33X[1;0Y[29X[2XIsHereditary[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-26 IsLeftHereditary[101X
  
  [33X[1;0Y[29X[2XIsLeftHereditary[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-27 IsRightHereditary[101X
  
  [33X[1;0Y[29X[2XIsRightHereditary[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-28 IsHermite[101X
  
  [33X[1;0Y[29X[2XIsHermite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-29 IsLeftHermite[101X
  
  [33X[1;0Y[29X[2XIsLeftHermite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-30 IsRightHermite[101X
  
  [33X[1;0Y[29X[2XIsRightHermite[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-31 IsNoetherian[101X
  
  [33X[1;0Y[29X[2XIsNoetherian[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-32 IsLeftNoetherian[101X
  
  [33X[1;0Y[29X[2XIsLeftNoetherian[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-33 IsRightNoetherian[101X
  
  [33X[1;0Y[29X[2XIsRightNoetherian[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-34 IsCohenMacaulay[101X
  
  [33X[1;0Y[29X[2XIsCohenMacaulay[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-35 IsGorenstein[101X
  
  [33X[1;0Y[29X[2XIsGorenstein[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-36 IsKoszul[101X
  
  [33X[1;0Y[29X[2XIsKoszul[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-37 IsArtinian[101X
  
  [33X[1;0Y[29X[2XIsArtinian[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-38 IsLeftArtinian[101X
  
  [33X[1;0Y[29X[2XIsLeftArtinian[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-39 IsRightArtinian[101X
  
  [33X[1;0Y[29X[2XIsRightArtinian[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-40 IsOreDomain[101X
  
  [33X[1;0Y[29X[2XIsOreDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-41 IsLeftOreDomain[101X
  
  [33X[1;0Y[29X[2XIsLeftOreDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-42 IsRightOreDomain[101X
  
  [33X[1;0Y[29X[2XIsRightOreDomain[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-43 IsPrincipalIdealRing[101X
  
  [33X[1;0Y[29X[2XIsPrincipalIdealRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-44 IsLeftPrincipalIdealRing[101X
  
  [33X[1;0Y[29X[2XIsLeftPrincipalIdealRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-45 IsRightPrincipalIdealRing[101X
  
  [33X[1;0Y[29X[2XIsRightPrincipalIdealRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-46 IsRegular[101X
  
  [33X[1;0Y[29X[2XIsRegular[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-47 IsFiniteFreePresentationRing[101X
  
  [33X[1;0Y[29X[2XIsFiniteFreePresentationRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-48 IsLeftFiniteFreePresentationRing[101X
  
  [33X[1;0Y[29X[2XIsLeftFiniteFreePresentationRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-49 IsRightFiniteFreePresentationRing[101X
  
  [33X[1;0Y[29X[2XIsRightFiniteFreePresentationRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-50 IsSimpleRing[101X
  
  [33X[1;0Y[29X[2XIsSimpleRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-51 IsSemiSimpleRing[101X
  
  [33X[1;0Y[29X[2XIsSemiSimpleRing[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-52 IsSuperCommutative[101X
  
  [33X[1;0Y[29X[2XIsSuperCommutative[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-53 BasisAlgorithmRespectsPrincipalIdeals[101X
  
  [33X[1;0Y[29X[2XBasisAlgorithmRespectsPrincipalIdeals[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-54 AreUnitsCentral[101X
  
  [33X[1;0Y[29X[2XAreUnitsCentral[102X( [3XR[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Y[3XR[103X is a ring for [5Xhomalg[105X.[133X
  
  [1X3.3-55 IsMinusOne[101X
  
  [33X[1;0Y[29X[2XIsMinusOne[102X( [3Xr[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the ring element [3Xr[103X is the additive inverse of one.[133X
  
  [1X3.3-56 IsMonic[101X
  
  [33X[1;0Y[29X[2XIsMonic[102X( [3Xr[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X ring element [3Xr[103X is monic.[133X
  
  [1X3.3-57 IsMonicUptoUnit[101X
  
  [33X[1;0Y[29X[2XIsMonicUptoUnit[102X( [3Xr[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if leading coefficient of the [5Xhomalg[105X ring element [3Xr[103X is a unit.[133X
  
  [1X3.3-58 IsLeftRegular[101X
  
  [33X[1;0Y[29X[2XIsLeftRegular[102X( [3Xr[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X ring element [3Xr[103X is left regular.[133X
  
  [1X3.3-59 IsRightRegular[101X
  
  [33X[1;0Y[29X[2XIsRightRegular[102X( [3Xr[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X ring element [3Xr[103X is right regular.[133X
  
  [1X3.3-60 IsRegular[101X
  
  [33X[1;0Y[29X[2XIsRegular[102X( [3Xr[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X ring element [3Xr[103X is regular, i.e. left and right regular.[133X
  
  
  [1X3.4 [33X[0;0YRings: Attributes[133X[101X
  
  [1X3.4-1 Inverse[101X
  
  [33X[1;0Y[29X[2XInverse[102X( [3Xr[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring element or fail[133X
  
  [33X[0;0YThe inverse of the [5Xhomalg[105X ring element [3Xr[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XZZ := HomalgRingOfIntegers( );;[127X[104X
    [4X[25Xgap>[125X [27XR := ZZ / 2^8;[127X[104X
    [4X[28XZ/( 256 )[128X[104X
    [4X[25Xgap>[125X [27Xr := (1/3*One(R)+1/5)+3/7;[127X[104X
    [4X[28X|[ 157 ]|[128X[104X
    [4X[25Xgap>[125X [27X1 / r;	## = r^-1;[127X[104X
    [4X[28X|[ 181 ]|[128X[104X
    [4X[25Xgap>[125X [27Xs := (1/3*One(R)+2/5)+3/7;[127X[104X
    [4X[28X|[ 106 ]|[128X[104X
    [4X[25Xgap>[125X [27Xs^(-1);[127X[104X
    [4X[28Xfail[128X[104X
  [4X[32X[104X
  
  [1X3.4-2 homalgTable[101X
  
  [33X[1;0Y[29X[2XhomalgTable[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X table[133X
  
  [33X[0;0YThe  [5Xhomalg[105X  table  of  [3XR[103X  is a ring dictionary, i.e. the translator between
  [5Xhomalg[105X and the (specific implementation of the) ring.[133X
  
  [33X[0;0YEvery [5Xhomalg[105X ring has a [5Xhomalg[105X table.[133X
  
  [1X3.4-3 RingElementConstructor[101X
  
  [33X[1;0Y[29X[2XRingElementConstructor[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya function[133X
  
  [33X[0;0YThe constructor of ring elements in the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-4 TypeOfHomalgMatrix[101X
  
  [33X[1;0Y[29X[2XTypeOfHomalgMatrix[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya type[133X
  
  [33X[0;0YThe [5XGAP4[105X-type of [5Xhomalg[105X matrices over the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-5 ConstructorForHomalgMatrices[101X
  
  [33X[1;0Y[29X[2XConstructorForHomalgMatrices[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya type[133X
  
  [33X[0;0YThe constructor for [5Xhomalg[105X matrices over the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-6 Zero[101X
  
  [33X[1;0Y[29X[2XZero[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring element[133X
  
  [33X[0;0YThe zero of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-7 One[101X
  
  [33X[1;0Y[29X[2XOne[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring element[133X
  
  [33X[0;0YThe one of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-8 MinusOne[101X
  
  [33X[1;0Y[29X[2XMinusOne[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring element[133X
  
  [33X[0;0YThe minus one of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-9 ProductOfIndeterminates[101X
  
  [33X[1;0Y[29X[2XProductOfIndeterminates[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring element[133X
  
  [33X[0;0YThe product of indeterminates of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-10 RationalParameters[101X
  
  [33X[1;0Y[29X[2XRationalParameters[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of rational parameters of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-11 IndeterminatesOfPolynomialRing[101X
  
  [33X[1;0Y[29X[2XIndeterminatesOfPolynomialRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of indeterminates of the [5Xhomalg[105X polynomial ring [3XR[103X.[133X
  
  [1X3.4-12 RelativeIndeterminatesOfPolynomialRing[101X
  
  [33X[1;0Y[29X[2XRelativeIndeterminatesOfPolynomialRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of relative indeterminates of the [5Xhomalg[105X polynomial ring [3XR[103X.[133X
  
  [1X3.4-13 IndeterminateCoordinatesOfRingOfDerivations[101X
  
  [33X[1;0Y[29X[2XIndeterminateCoordinatesOfRingOfDerivations[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of indeterminate coordinates of the [5Xhomalg[105X Weyl ring [3XR[103X.[133X
  
  [1X3.4-14 RelativeIndeterminateCoordinatesOfRingOfDerivations[101X
  
  [33X[1;0Y[29X[2XRelativeIndeterminateCoordinatesOfRingOfDerivations[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of relative indeterminate coordinates of the [5Xhomalg[105X Weyl ring [3XR[103X.[133X
  
  [1X3.4-15 IndeterminateDerivationsOfRingOfDerivations[101X
  
  [33X[1;0Y[29X[2XIndeterminateDerivationsOfRingOfDerivations[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of indeterminate derivations of the [5Xhomalg[105X Weyl ring [3XR[103X.[133X
  
  [1X3.4-16 RelativeIndeterminateDerivationsOfRingOfDerivations[101X
  
  [33X[1;0Y[29X[2XRelativeIndeterminateDerivationsOfRingOfDerivations[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of relative indeterminate derivations of the [5Xhomalg[105X Weyl ring [3XR[103X.[133X
  
  [1X3.4-17 IndeterminateAntiCommutingVariablesOfExteriorRing[101X
  
  [33X[1;0Y[29X[2XIndeterminateAntiCommutingVariablesOfExteriorRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe list of anti-commuting indeterminates of the [5Xhomalg[105X exterior ring [3XR[103X.[133X
  
  [1X3.4-18 RelativeIndeterminateAntiCommutingVariablesOfExteriorRing[101X
  
  [33X[1;0Y[29X[2XRelativeIndeterminateAntiCommutingVariablesOfExteriorRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe  list  of  anti-commuting relative indeterminates of the [5Xhomalg[105X exterior
  ring [3XR[103X.[133X
  
  [1X3.4-19 IndeterminatesOfExteriorRing[101X
  
  [33X[1;0Y[29X[2XIndeterminatesOfExteriorRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of [5Xhomalg[105X ring elements[133X
  
  [33X[0;0YThe  list of all indeterminates (commuting and anti-commuting) of the [5Xhomalg[105X
  exterior ring [3XR[103X.[133X
  
  [1X3.4-20 CoefficientsRing[101X
  
  [33X[1;0Y[29X[2XCoefficientsRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[0;0YThe ring of coefficients of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-21 KrullDimension[101X
  
  [33X[1;0Y[29X[2XKrullDimension[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe Krull dimension of the commutative [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-22 LeftGlobalDimension[101X
  
  [33X[1;0Y[29X[2XLeftGlobalDimension[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe left global dimension of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-23 RightGlobalDimension[101X
  
  [33X[1;0Y[29X[2XRightGlobalDimension[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe right global dimension of the [5Xhomalg[105X ring [3XR[103X.[133X
  
  [1X3.4-24 GlobalDimension[101X
  
  [33X[1;0Y[29X[2XGlobalDimension[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe  global dimension of the [5Xhomalg[105X ring [3XR[103X. The global dimension is defined,
  only if the left and right global dimensions coincide.[133X
  
  [1X3.4-25 GeneralLinearRank[101X
  
  [33X[1;0Y[29X[2XGeneralLinearRank[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe general linear rank of the [5Xhomalg[105X ring [3XR[103X ([MR01], 11.1.14).[133X
  
  [1X3.4-26 ElementaryRank[101X
  
  [33X[1;0Y[29X[2XElementaryRank[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe elementary rank of the [5Xhomalg[105X ring [3XR[103X ([MR01], 11.3.10).[133X
  
  [1X3.4-27 StableRank[101X
  
  [33X[1;0Y[29X[2XStableRank[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer[133X
  
  [33X[0;0YThe stable rank of the [5Xhomalg[105X ring [3XR[103X ([MR01], 11.3.4).[133X
  
  [1X3.4-28 AssociatedGradedRing[101X
  
  [33X[1;0Y[29X[2XAssociatedGradedRing[102X( [3XR[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya homalg ring[133X
  
  [33X[0;0YThe graded ring associated to the filtered ring [3XR[103X.[133X
  
  
  [1X3.5 [33X[0;0YRings: Operations and Functions[133X[101X
  
