  
  [1X3 [33X[0;0YObjects[133X[101X
  
  
  [1X3.1 [33X[0;0YObjects: Category and Representations[133X[101X
  
  [1X3.1-1 IsHomalgObject[101X
  
  [33X[1;0Y[29X[2XIsHomalgObject[102X( [3XF[103X ) [32X Category[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThis  is  the  super  [5XGAP[105X-category  which  will  include  the [5XGAP[105X-categories
  [2XIsHomalgStaticObject[102X  ([14X3.1-2[114X),  [2XIsHomalgComplex[102X  ([14X6.1-1[114X),  [2XIsHomalgBicomplex[102X
  ([14X8.1-1[114X),   [2XIsHomalgBigradedObject[102X   ([14X9.1-1[114X),   and  [2XIsHomalgSpectralSequence[102X
  ([14X10.1-1[114X).  We  need  this  [5XGAP[105X-category  to  be able to build complexes with
  *objects* being objects of [5Xhomalg[105X categories or again complexes.[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareCategory( "IsHomalgObject",[104X
    [4X        IsHomalgObjectOrMorphism and[104X
    [4X        IsStructureObjectOrObject and[104X
    [4X        IsAdditiveElementWithZero );[104X
  [4X[32X[104X
  
  [1X3.1-2 IsHomalgStaticObject[101X
  
  [33X[1;0Y[29X[2XIsHomalgStaticObject[102X( [3XF[103X ) [32X Category[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThis  is  the  super  [5XGAP[105X-category  which  will  include  the [5XGAP[105X-categories
  [10XIsHomalgModule[110X, etc.[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareCategory( "IsHomalgStaticObject",[104X
    [4X        IsHomalgStaticObjectOrMorphism and[104X
    [4X        IsHomalgObject );[104X
  [4X[32X[104X
  
  [1X3.1-3 IsFinitelyPresentedObjectRep[101X
  
  [33X[1;0Y[29X[2XIsFinitelyPresentedObjectRep[102X( [3XM[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe [5XGAP[105X representation of finitley presented [5Xhomalg[105X objects.[133X
  
  [33X[0;0Y(It is a representation of the [5XGAP[105X category [2XIsHomalgObject[102X ([14X3.1-1[114X), which is
  a       subrepresentation       of       the       [5XGAP[105X       representations
  [10XIsStructureObjectOrFinitelyPresentedObjectRep[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsFinitelyPresentedObjectRep",[104X
    [4X        IsHomalgObject and[104X
    [4X        IsStructureObjectOrFinitelyPresentedObjectRep,[104X
    [4X        [ ] );[104X
  [4X[32X[104X
  
  [1X3.1-4 IsStaticFinitelyPresentedObjectOrSubobjectRep[101X
  
  [33X[1;0Y[29X[2XIsStaticFinitelyPresentedObjectOrSubobjectRep[102X( [3XM[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe [5XGAP[105X representation of finitley presented [5Xhomalg[105X static objects.[133X
  
  [33X[0;0Y(It is a representation of the [5XGAP[105X category [2XIsHomalgStaticObject[102X ([14X3.1-2[114X).)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsStaticFinitelyPresentedObjectOrSubobjectRep",[104X
    [4X        IsHomalgStaticObject,[104X
    [4X        [ ] );[104X
  [4X[32X[104X
  
  [1X3.1-5 IsStaticFinitelyPresentedObjectRep[101X
  
  [33X[1;0Y[29X[2XIsStaticFinitelyPresentedObjectRep[102X( [3XM[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe [5XGAP[105X representation of finitley presented [5Xhomalg[105X static objects.[133X
  
  [33X[0;0Y(It  is  a  representation of the [5XGAP[105X category [2XIsHomalgStaticObject[102X ([14X3.1-2[114X),
  which    is    a    subrepresentation    of    the    [5XGAP[105X    representations
  [10XIsStaticFinitelyPresentedObjectOrSubobjectRep[110X                            and
  [10XIsFinitelyPresentedObjectRep[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsStaticFinitelyPresentedObjectRep",[104X
    [4X        IsStaticFinitelyPresentedObjectOrSubobjectRep and[104X
    [4X        IsFinitelyPresentedObjectRep,[104X
    [4X        [ ] );[104X
  [4X[32X[104X
  
  [1X3.1-6 IsStaticFinitelyPresentedSubobjectRep[101X
  
  [33X[1;0Y[29X[2XIsStaticFinitelyPresentedSubobjectRep[102X( [3XM[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe  [5XGAP[105X  representation  of  finitley presented [5Xhomalg[105X subobjects of static
  objects.[133X
  
  [33X[0;0Y(It  is  a  representation of the [5XGAP[105X category [2XIsHomalgStaticObject[102X ([14X3.1-2[114X),
  which    is    a    subrepresentation    of    the    [5XGAP[105X    representations
  [10XIsStaticFinitelyPresentedObjectOrSubobjectRep[110X                            and
  [10XIsFinitelyPresentedObjectRep[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsStaticFinitelyPresentedSubobjectRep",[104X
    [4X        IsStaticFinitelyPresentedObjectOrSubobjectRep and[104X
    [4X        IsFinitelyPresentedObjectRep,[104X
    [4X        [ ] );[104X
  [4X[32X[104X
  
  
  [1X3.2 [33X[0;0YObjects: Constructors[133X[101X
  
  [1X3.2-1 Subobject[101X
  
  [33X[1;0Y[29X[2XSubobject[102X( [3Xphi[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X subobject[133X
  
  [33X[0;0YA synonym of [2XImageSubobject[102X ([14X4.4-7[114X).[133X
  
  
  [1X3.3 [33X[0;0YObjects: Properties[133X[101X
  
  [1X3.3-1 IsFree[101X
  
  [33X[1;0Y[29X[2XIsFree[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is free.[133X
  
  [1X3.3-2 IsStablyFree[101X
  
  [33X[1;0Y[29X[2XIsStablyFree[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is stably free.[133X
  
  [1X3.3-3 IsProjective[101X
  
  [33X[1;0Y[29X[2XIsProjective[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is projective.[133X
  
  [1X3.3-4 IsProjectiveOfConstantRank[101X
  
  [33X[1;0Y[29X[2XIsProjectiveOfConstantRank[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is projective of constant rank.[133X
  
  [1X3.3-5 IsInjective[101X
  
  [33X[1;0Y[29X[2XIsInjective[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is (marked) injective.[133X
  
  [1X3.3-6 IsInjectiveCogenerator[101X
  
  [33X[1;0Y[29X[2XIsInjectiveCogenerator[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is (marked) an injective cogenerator.[133X
  
  [1X3.3-7 FiniteFreeResolutionExists[101X
  
  [33X[1;0Y[29X[2XFiniteFreeResolutionExists[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X allows a finite free resolution.[133X
  [33X[0;0Y(no method installed)[133X
  
  [1X3.3-8 IsReflexive[101X
  
  [33X[1;0Y[29X[2XIsReflexive[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is reflexive.[133X
  
  [1X3.3-9 IsTorsionFree[101X
  
  [33X[1;0Y[29X[2XIsTorsionFree[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is torsion-free.[133X
  
  [1X3.3-10 IsArtinian[101X
  
  [33X[1;0Y[29X[2XIsArtinian[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is artinian.[133X
  
  [1X3.3-11 IsTorsion[101X
  
  [33X[1;0Y[29X[2XIsTorsion[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is torsion.[133X
  
  [1X3.3-12 IsPure[101X
  
  [33X[1;0Y[29X[2XIsPure[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X is pure.[133X
  
  [1X3.3-13 IsCohenMacaulay[101X
  
  [33X[1;0Y[29X[2XIsCohenMacaulay[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck  if  the  [5Xhomalg[105X  object  [3XM[103X is Cohen-Macaulay (depends on the specific
  Abelian category).[133X
  
  [1X3.3-14 IsGorenstein[101X
  
  [33X[1;0Y[29X[2XIsGorenstein[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck  if the [5Xhomalg[105X object [3XM[103X is Gorenstein (depends on the specific Abelian
  category).[133X
  
  [1X3.3-15 IsKoszul[101X
  
  [33X[1;0Y[29X[2XIsKoszul[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck  if  the  [5Xhomalg[105X  object  [3XM[103X is Koszul (depends on the specific Abelian
  category).[133X
  
  [1X3.3-16 HasConstantRank[101X
  
  [33X[1;0Y[29X[2XHasConstantRank[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X object [3XM[103X has constant rank.[133X
  [33X[0;0Y(no method installed)[133X
  
  [1X3.3-17 ConstructedAsAnIdeal[101X
  
  [33X[1;0Y[29X[2XConstructedAsAnIdeal[102X( [3XJ[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YCheck if the [5Xhomalg[105X subobject [3XJ[103X was constructed as an ideal.[133X
  [33X[0;0Y(no method installed)[133X
  
  
  [1X3.4 [33X[0;0YObjects: Attributes[133X[101X
  
  [1X3.4-1 TorsionSubobject[101X
  
  [33X[1;0Y[29X[2XTorsionSubobject[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X subobject[133X
  
  [33X[0;0YThis  constructor  returns  the  finitely generated torsion subobject of the
  [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-2 TheMorphismToZero[101X
  
  [33X[1;0Y[29X[2XTheMorphismToZero[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X map[133X
  
  [33X[0;0YThe zero morphism from the [5Xhomalg[105X object [3XM[103X to zero.[133X
  
  [1X3.4-3 TheIdentityMorphism[101X
  
  [33X[1;0Y[29X[2XTheIdentityMorphism[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X map[133X
  
  [33X[0;0YThe identity automorphism of the [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-4 FullSubobject[101X
  
  [33X[1;0Y[29X[2XFullSubobject[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X subobject[133X
  
  [33X[0;0YThe [5Xhomalg[105X object [3XM[103X as a subobject of itself.[133X
  
  [1X3.4-5 ZeroSubobject[101X
  
  [33X[1;0Y[29X[2XZeroSubobject[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X subobject[133X
  
  [33X[0;0YThe zero subobject of the [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-6 EmbeddingInSuperObject[101X
  
  [33X[1;0Y[29X[2XEmbeddingInSuperObject[102X( [3XN[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X map[133X
  
  [33X[0;0YIn  case [3XN[103X was defined as a subobject of some object [22XL[122X the embedding of [3XN[103X in
  [22XL[122X is returned.[133X
  
  [1X3.4-7 SuperObject[101X
  
  [33X[1;0Y[29X[2XSuperObject[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X object[133X
  
  [33X[0;0YIn  case [3XM[103X was defined as a subobject of some object [22XL[122X the super object [22XL[122X is
  returned.[133X
  
  [1X3.4-8 FactorObject[101X
  
  [33X[1;0Y[29X[2XFactorObject[102X( [3XN[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X object[133X
  
  [33X[0;0YIn  case [3XN[103X was defined as a subobject of some object [22XL[122X the factor object [22XL/[122X[3XN[103X
  is returned.[133X
  
  [1X3.4-9 UnderlyingSubobject[101X
  
  [33X[1;0Y[29X[2XUnderlyingSubobject[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X subobject[133X
  
  [33X[0;0YIn  case  [3XM[103X  was  defined  as  the object underlying a subobject [22XL[122X then [22XL[122X is
  returned.[133X
  [33X[0;0Y(no method installed)[133X
  
  [1X3.4-10 NatTrIdToHomHom_R[101X
  
  [33X[1;0Y[29X[2XNatTrIdToHomHom_R[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X morphism[133X
  
  [33X[0;0YThe  natural evaluation morphism from the [5Xhomalg[105X object [3XM[103X to its double dual
  [10XHomHom[110X[22X([122X[3XM[103X[22X)[122X.[133X
  
  [1X3.4-11 Annihilator[101X
  
  [33X[1;0Y[29X[2XAnnihilator[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X subobject[133X
  
  [33X[0;0YThe annihilator of the object [3XM[103X as a subobject of the structure object.[133X
  
  [1X3.4-12 EndomorphismRing[101X
  
  [33X[1;0Y[29X[2XEndomorphismRing[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X object[133X
  
  [33X[0;0YThe endomorphism ring of the object [3XM[103X.[133X
  
  [1X3.4-13 UnitObject[101X
  
  [33X[1;0Y[29X[2XUnitObject[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Ya Chern character[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-14 RankOfObject[101X
  
  [33X[1;0Y[29X[2XRankOfObject[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya nonnegative integer[133X
  
  [33X[0;0YThe projective rank of the [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-15 ProjectiveDimension[101X
  
  [33X[1;0Y[29X[2XProjectiveDimension[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya nonnegative integer[133X
  
  [33X[0;0YThe projective dimension of the [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-16 DegreeOfTorsionFreeness[101X
  
  [33X[1;0Y[29X[2XDegreeOfTorsionFreeness[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya nonnegative integer of infinity[133X
  
  [33X[0;0YAuslander's  degree of torsion-freeness of the [5Xhomalg[105X object [3XM[103X. It is set to
  infinity only for [3XM[103X[22X=0[122X.[133X
  
  [1X3.4-17 Grade[101X
  
  [33X[1;0Y[29X[2XGrade[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya nonnegative integer of infinity[133X
  
  [33X[0;0YThe grade of the [5Xhomalg[105X object [3XM[103X. It is set to infinity if [3XM[103X[22X=0[122X. Another name
  for this operation is [10XDepth[110X.[133X
  
  [1X3.4-18 PurityFiltration[101X
  
  [33X[1;0Y[29X[2XPurityFiltration[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X filtration[133X
  
  [33X[0;0YThe purity filtration of the [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-19 CodegreeOfPurity[101X
  
  [33X[1;0Y[29X[2XCodegreeOfPurity[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of nonnegative integers[133X
  
  [33X[0;0YThe codegree of purity of the [5Xhomalg[105X object [3XM[103X.[133X
  
  [1X3.4-20 HilbertPolynomial[101X
  
  [33X[1;0Y[29X[2XHilbertPolynomial[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya univariate polynomial with rational coefficients[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-21 AffineDimension[101X
  
  [33X[1;0Y[29X[2XAffineDimension[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya nonnegative integer[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-22 ProjectiveDegree[101X
  
  [33X[1;0Y[29X[2XProjectiveDegree[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya nonnegative integer[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-23 ConstantTermOfHilbertPolynomialn[101X
  
  [33X[1;0Y[29X[2XConstantTermOfHilbertPolynomialn[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yan integer[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-24 ElementOfGrothendieckGroup[101X
  
  [33X[1;0Y[29X[2XElementOfGrothendieckGroup[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Yan element of the Grothendieck group of a projective space[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-25 ChernPolynomial[101X
  
  [33X[1;0Y[29X[2XChernPolynomial[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Ya Chern polynomial with rank[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  [1X3.4-26 ChernCharacter[101X
  
  [33X[1;0Y[29X[2XChernCharacter[102X( [3XM[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Ya Chern character[133X
  
  [33X[0;0Y[3XM[103X is a [5Xhomalg[105X object.[133X
  
  
  [1X3.5 [33X[0;0YObjects: Operations and Functions[133X[101X
  
  [1X3.5-1 CurrentResolution[101X
  
  [33X[1;0Y[29X[2XCurrentResolution[102X( [3XM[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X complex[133X
  
  [33X[0;0YThe computed (part of a) resolution of the static object [3XM[103X.[133X
  
  [1X3.5-2 UnderlyingObject[101X
  
  [33X[1;0Y[29X[2XUnderlyingObject[102X( [3XM[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X object[133X
  
  [33X[0;0YIn  case [3XM[103X was defined as a subobject of some object [22XL[122X the object underlying
  the subobject [22XM[122X is returned.[133X
  
  [1X3.5-3 Saturate[101X
  
  [33X[1;0Y[29X[2XSaturate[102X( [3XK[103X, [3XJ[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ideal[133X
  
  [33X[0;0YCompute the saturation ideal [22X[3XK[103X:[3XJ[103X^∞[122X of the ideals [3XK[103X and [3XJ[103X.[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 [27Xm := LeftSubmodule( "2", zz );[127X[104X
    [4X[28X<A principal (left) ideal given by a cyclic generator>[128X[104X
    [4X[25Xgap>[125X [27XDisplay( m );[127X[104X
    [4X[28X[ [  2 ] ][128X[104X
    [4X[28X[128X[104X
    [4X[28XA (left) ideal generated by the entry of the above matrix[128X[104X
    [4X[25Xgap>[125X [27XJ := LeftSubmodule( "3", zz );[127X[104X
    [4X[28X<A principal (left) ideal given by a cyclic generator>[128X[104X
    [4X[25Xgap>[125X [27XDisplay( J );[127X[104X
    [4X[28X[ [  3 ] ][128X[104X
    [4X[28X[128X[104X
    [4X[28XA (left) ideal generated by the entry of the above matrix[128X[104X
    [4X[25Xgap>[125X [27XI := Intersect( J, m^3 );[127X[104X
    [4X[28X<A principal (left) ideal given by a cyclic generator>[128X[104X
    [4X[25Xgap>[125X [27XDisplay( I );[127X[104X
    [4X[28X[ [  24 ] ][128X[104X
    [4X[28X[128X[104X
    [4X[28XA (left) ideal generated by the entry of the above matrix[128X[104X
    [4X[25Xgap>[125X [27XIm := SubobjectQuotient( I, m );[127X[104X
    [4X[28X<A principal (left) ideal of rank 1 on a free generator>[128X[104X
    [4X[25Xgap>[125X [27XDisplay( Im );[127X[104X
    [4X[28X[ [  12 ] ][128X[104X
    [4X[28X[128X[104X
    [4X[28XA (left) ideal generated by the entry of the above matrix[128X[104X
    [4X[25Xgap>[125X [27XI_m := Saturate( I, m );[127X[104X
    [4X[28X<A principal (left) ideal of rank 1 on a free generator>[128X[104X
    [4X[25Xgap>[125X [27XDisplay( I_m );[127X[104X
    [4X[28X[ [  3 ] ][128X[104X
    [4X[28X[128X[104X
    [4X[28XA (left) ideal generated by the entry of the above matrix[128X[104X
    [4X[25Xgap>[125X [27XI_m = J;[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [4X[32X  Code  [32X[104X
    [4XInstallMethod( Saturate,[104X
    [4X        "for homalg subobjects of static objects",[104X
    [4X        [ IsStaticFinitelyPresentedSubobjectRep, IsStaticFinitelyPresentedSubobjectRep ],[104X
    [4X        [104X
    [4X  function( K, J )[104X
    [4X    local quotient_last, quotient;[104X
    [4X    [104X
    [4X    quotient_last := SubobjectQuotient( K, J );[104X
    [4X    [104X
    [4X    quotient := SubobjectQuotient( quotient_last, J );[104X
    [4X    [104X
    [4X    while not IsSubset( quotient_last, quotient ) do[104X
    [4X        quotient_last := quotient;[104X
    [4X        quotient := SubobjectQuotient( quotient_last, J );[104X
    [4X    od;[104X
    [4X    [104X
    [4X    return quotient_last;[104X
    [4X    [104X
    [4Xend );[104X
    [4X[104X
    [4X[104X
    [4XInstallMethod( \-, ## a geometrically motivated definition[104X
    [4X        "for homalg subobjects of static objects",[104X
    [4X        [ IsStaticFinitelyPresentedSubobjectRep, IsStaticFinitelyPresentedSubobjectRep ],[104X
    [4X        [104X
    [4X  function( K, J )[104X
    [4X    [104X
    [4X    return Saturate( K, J );[104X
    [4X    [104X
    [4Xend );[104X
  [4X[32X[104X
  
