  
  
                                     [1X[5Xhomalg[0m[1X[0m
  
  
                  [1XA [5XGAP4[0m[1X Meta-Package for Homological Algebra[0m
  
  
                               Version 2009.11.09
  
  
                                 November 2009
  
  
                                Mohamed Barakat
  
  
  
            ([13Xthis manual is still under construction[0m)
            This  manual  is  best  viewed  as an [12XHTML[0m document. The
            latest version is available [12Xonline[0m at:
            [7Xhttp://homalg.math.rwth-aachen.de/~barakat/homalg/chap0.html[0m
            An   [12Xoffline[0m   version   should   be   included  in  the
            documentation  subfolder of the package. This package is
            part of the [5Xhomalg[0m-project:
            [7Xhttp://homalg.math.rwth-aachen.de/index.php/core-packages/homalg-package[0m
  
  
  
  Mohamed Barakat
      Email:    [7Xmailto:barakat@mathematik.uni-kl.de[0m
      Homepage: [7Xhttp://wwwb.math.rwth-aachen.de/~barakat/[0m
      Address:  Department of Mathematics,
                University of Kaiserslautern,
                67653 Kaiserslautern,
                Germany
  
  
  
  -------------------------------------------------------
  [1XCopyright[0m
  © 2007-2009 by Mohamed Barakat
  
  This  package  may  be distributed under the terms and conditions of the GNU
  Public License Version 2.
  
  
  -------------------------------------------------------
  [1XAcknowledgements[0m
  Max  Neunhöffer  not  only  taught  me  the  philosophy  of  object-oriented
  programming in [5XGAP4[0m, but also to what extent this philosophy is still unique
  among programming languages (--> [14XA.2[0m). The slides (in German) to his talk in
  our    seminar    on    30.10.2006    can   be   found   on   his   homepage
  ([7Xhttp://www-groups.mcs.st-and.ac.uk/~neunhoef/Publications/talks.html[0m).
  
  He, Frank Lübeck, and Thomas Breuer patiently answered trillions of specific
  questions, even those I was too lazy to look up in the excellent programming
  tutorial.  Without  their  continuous and tireless help and advice, not only
  this  package  but  the  [5Xhomalg[0m project as a whole would have remained on my
  todo list.
  
  A  lot  of ideas that make up this package and the whole [5Xhomalg[0m project came
  out   of   intensive  discussions  with  Daniel  Robertz  during  our  early
  collaboration,  where  we  developed  our  philosophy  of a meta package for
  homological algebra and implemented it in [5XMaple[0m.
  
  In  the  fall  of  2007  I began collaborating with Simon Görtzen to further
  pursue  and  extend  these  ideas preparing the transition to [5XGAP4[0m. With his
  help [5Xhomalg[0m became an extendable multi-package project.
  
  Max  Neunhöffer  convinced  me  to  use  his  wonderful  [5XIO[0m package to start
  communicating  with  external  computer algebra systems. This was crucial to
  remedy  the yet missing support for important rings in [5XGAP[0m. Max provided the
  first piece of code to access the computer algebra system [5XSingular[0m. This was
  the  starting point of the packages [5XHomalgToCAS[0m and [5XIO_ForHomalg[0m, which were
  further  abstracted  by Simon and myself enabling [5Xhomalg[0m to communicate with
  virtually any external (computer algebra) system.
  
  Thomas Bächler wrote the package [5XMapleForHomalg[0m to directly access [5XMaple[0m via
  its [5XC[0m-interface. It offers an alternative to the package [5XIO_ForHomalg[0m, which
  requires [5XMaple[0m's terminal interface [10Xcmaple[0m.
  
  The  basic support for [5XSage[0m was added by Simon, and the support for [5XSingular[0m
  was  initiated  by  Markus  Lange-Hegermann  and continued by him and Simon,
  while  Markus  Kirschmer  contributed  the  complete support for [5XMAGMA[0m. This
  formed  the  beginning of the [5XRingsForHomalg[0m package. Recently, Daniel added
  the support for [5XMacaulay2[0m.
  
  My  concerns  about  how  to  handle  the garbage collection in the external
  computer  algebra  systems  were  evaporated  with the idea of Thomas Breuer
  using  the so-called weak pointers in [5XGAP4[0m to keep track of all the external
  objects  that  became  obsolete  for  [5Xhomalg[0m.  This  idea  took  shape  in a
  discussion  with  him  and  Frank  Lübeck and finally found its way into the
  package [5XHomalgToCAS[0m.
  
  My  gratitude  to  all  with  whom  I  worked  together to develop extension
  packages  and  those  who  developed  their  own  packages within the [5Xhomalg[0m
  project  (-->  Appendix  [14XH[0m).  Without their contributions the package [5Xhomalg[0m
  would have remained a core without a body:
  
  --    Thomas Bächler ([7Xhttp://wwwb.math.rwth-aachen.de/~thomas/[0m)
  
  --    Barbara Bremer
  
  --    Thomas Breuer ([7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/[0m)
  
  --    Anna Fabiańska
  
  --    Simon Görtzen ([7Xhttp://wwwb.math.rwth-aachen.de/goertzen/[0m)
  
  --    Markus Kirschmer ([7Xhttp://www.math.rwth-aachen.de/~Markus.Kirschmer/[0m)
  
  --    Markus Lange-Hegermann ([7Xhttp://wwwb.math.rwth-aachen.de/~markus/[0m)
  
  --    Frank Lübeck ([7Xhttp://www.math.rwth-aachen.de/~Frank.Luebeck/[0m)
  
  --    Max Neunhöffer ([7Xhttp://www-groups.mcs.st-and.ac.uk/~neunhoef/[0m)
  
  --    Daniel Robertz ([7Xhttp://wwwb.math.rwth-aachen.de/~daniel/[0m)
  
  I  would  also like to thank Alban Quadrat for supporting the [5Xhomalg[0m project
  and  for all the wonderful discussions we had. At several places in the code
  I was happy to add the comment: "I learned this from Alban".
  
  My  teacher  Wilhelm  Plesken  remains  an inexhaustible source of extremely
  broad and deep knowledge. Thank you for being such a magnificent person.
  
  This manual was created using the GAPDoc package of Max Neunhöffer and Frank
  Lübeck.
  
  Last  but  not  least,  thanks  to  [13XMiriam[0m,  [13XJosef[0m, [13XJonas[0m, and [13XIrene[0m for the
  endless love and support.
  
  
  -------------------------------------------------------
  
  
  [1XContents (homalg)[0X
  
  1 Introduction
    1.1 What is the role of the [5Xhomalg[0m package in the [5Xhomalg[0m project?
      1.1-1 Philosophy
      1.1-2 [5Xhomalg[0m provides ...
      1.1-3 [5Xhomalg[0m delegates ...
      1.1-4 Rings supported in a sufficient way
      1.1-5 Principal limitation
      1.1-6 The black box concept
      1.1-7 [5Xhomalg[0m's dictionaries (technical)
      1.1-8 The advantages of the outsourcing concept
      1.1-9 Does this mean that [5Xhomalg[0m has only algorithms for the generic
      case?
      1.1-10 The principle of least communication (technical)
      1.1-11 Building upon the [5Xhomalg[0m package
      1.1-12 Frequently asked questions
    1.2 This manual
  2 Installation of the [5Xhomalg[0m Package
  3 Quick Start
    3.1 Why are all examples in this manual over ℤ or ℤ/mℤ?
    3.2 [10Xgap> ExamplesForHomalg();[0m
    3.3 A typical example
      3.3-1 HomHom
  4 Rings
    4.1 Rings: Category and Representations
      4.1-1 IsHomalgRing
      4.1-2 IsPreHomalgRing
      4.1-3 IsHomalgRingElement
      4.1-4 IsHomalgInternalRingRep
    4.2 Rings: Constructors
      4.2-1 HomalgRingOfIntegers
      4.2-2 HomalgFieldOfRationals
      4.2-3 \/
    4.3 Rings: Properties
      4.3-1 ContainsAField
      4.3-2 IsRationalsForHomalg
      4.3-3 IsFieldForHomalg
      4.3-4 IsDivisionRingForHomalg
      4.3-5 IsIntegersForHomalg
      4.3-6 IsResidueClassRingOfTheIntegers
      4.3-7 IsBezoutRing
      4.3-8 IsIntegrallyClosedDomain
      4.3-9 IsUniqueFactorizationDomain
      4.3-10 IsKaplanskyHermite
      4.3-11 IsDedekindDomain
      4.3-12 IsDiscreteValuationRing
      4.3-13 IsFreePolynomialRing
      4.3-14 IsWeylRing
      4.3-15 IsGlobalDimensionFinite
      4.3-16 IsLeftGlobalDimensionFinite
      4.3-17 IsRightGlobalDimensionFinite
      4.3-18 HasInvariantBasisProperty
      4.3-19 HasLeftInvariantBasisProperty
      4.3-20 HasRightInvariantBasisProperty
      4.3-21 IsLocalRing
      4.3-22 IsSemiLocalRing
      4.3-23 IsIntegralDomain
      4.3-24 IsHereditary
      4.3-25 IsLeftHereditary
      4.3-26 IsRightHereditary
      4.3-27 IsHermite
      4.3-28 IsLeftHermite
      4.3-29 IsRightHermite
      4.3-30 IsNoetherian
      4.3-31 IsLeftNoetherian
      4.3-32 IsRightNoetherian
      4.3-33 IsArtinian
      4.3-34 IsLeftArtinian
      4.3-35 IsRightArtinian
      4.3-36 IsOreDomain
      4.3-37 IsLeftOreDomain
      4.3-38 IsRightOreDomain
      4.3-39 IsPrincipalIdealRing
      4.3-40 IsLeftPrincipalIdealRing
      4.3-41 IsRightPrincipalIdealRing
      4.3-42 IsRegular
      4.3-43 IsFiniteFreePresentationRing
      4.3-44 IsLeftFiniteFreePresentationRing
      4.3-45 IsRightFiniteFreePresentationRing
      4.3-46 IsSimpleRing
      4.3-47 IsSemiSimpleRing
      4.3-48 BasisAlgorithmRespectsPrincipalIdeals
      4.3-49 IsMinusOne
    4.4 Rings: Attributes
      4.4-1 Zero
      4.4-2 One
      4.4-3 homalgTable
      4.4-4 RingElementConstructor
      4.4-5 TypeOfHomalgMatrix
      4.4-6 ConstructorForHomalgMatrices
      4.4-7 Zero
      4.4-8 One
      4.4-9 MinusOne
      4.4-10 IndeterminatesOfPolynomialRing
      4.4-11 IndeterminateCoordinatesOfRingOfDerivations
      4.4-12 IndeterminateDerivationsOfRingOfDerivations
      4.4-13 IndeterminateAntiCommutingVariablesOfExteriorRing
      4.4-14 IndeterminatesOfExteriorRing
      4.4-15 WeightsOfIndeterminates
      4.4-16 MatrixOfWeightsOfIndeterminates
      4.4-17 CoefficientsRing
      4.4-18 KrullDimension
      4.4-19 LeftGlobalDimension
      4.4-20 RightGlobalDimension
      4.4-21 GlobalDimension
      4.4-22 GeneralLinearRank
      4.4-23 ElementaryRank
      4.4-24 StableRank
    4.5 Rings: Operations and Functions
  5 Ring Maps
    5.1 Ring Maps: Category and Representations
      5.1-1 IsHomalgRingMap
      5.1-2 IsHomalgRingSelfMap
      5.1-3 IsHomalgRingMapRep
    5.2 Ring Maps: Constructors
      5.2-1 RingMap
    5.3 Ring Maps: Properties
      5.3-1 IsMorphism
      5.3-2 IsIdentityMorphism
      5.3-3 IsMonomorphism
      5.3-4 IsEpimorphism
      5.3-5 IsIsomorphism
      5.3-6 IsAutomorphism
    5.4 Ring Maps: Attributes
      5.4-1 Source
      5.4-2 Range
      5.4-3 DegreeOfMorphism
      5.4-4 CoordinateRingOfGraph
      5.4-5 KernelSubmodule
      5.4-6 KernelEmb
    5.5 Ring Maps: Operations and Functions
      5.5-1 Kernel
  6 Matrices
    6.1 Matrices: Category and Representations
      6.1-1 IsHomalgMatrix
      6.1-2 IsHomalgInternalMatrixRep
    6.2 Matrices: Constructors
      6.2-1 HomalgInitialMatrix
      6.2-2 HomalgInitialIdentityMatrix
      6.2-3 HomalgZeroMatrix
      6.2-4 HomalgIdentityMatrix
      6.2-5 HomalgVoidMatrix
      6.2-6 HomalgMatrix
      6.2-7 HomalgDiagonalMatrix
      6.2-8 \*
    6.3 Matrices: Properties
      6.3-1 IsZero
      6.3-2 IsIdentityMatrix
      6.3-3 IsPermutationMatrix
      6.3-4 IsSpecialSubidentityMatrix
      6.3-5 IsSubidentityMatrix
      6.3-6 IsLeftRegularMatrix
      6.3-7 IsRightRegularMatrix
      6.3-8 IsInvertibleMatrix
      6.3-9 IsLeftInvertibleMatrix
      6.3-10 IsRightInvertibleMatrix
      6.3-11 IsEmptyMatrix
      6.3-12 IsDiagonalMatrix
      6.3-13 IsScalarlMatrix
      6.3-14 IsUpperTriangularMatrix
      6.3-15 IsLowerTriangularMatrix
      6.3-16 IsStrictUpperTriangularMatrix
      6.3-17 IsStrictLowerTriangularMatrix
      6.3-18 IsUpperStairCaseMatrix
      6.3-19 IsLowerStairCaseMatrix
      6.3-20 IsTriangularMatrix
      6.3-21 IsBasisOfRowsMatrix
      6.3-22 IsBasisOfColumnsMatrix
      6.3-23 IsReducedBasisOfRowsMatrix
      6.3-24 IsReducedBasisOfColumnsMatrix
      6.3-25 IsMutableMatrix
      6.3-26 IsInitialMatrix
      6.3-27 IsInitialIdentityMatrix
      6.3-28 IsVoidMatrix
    6.4 Matrices: Attributes
      6.4-1 NrRows
      6.4-2 NrColumns
      6.4-3 DeterminantMat
      6.4-4 ZeroRows
      6.4-5 ZeroColumns
      6.4-6 NonZeroRows
      6.4-7 NonZeroColumns
      6.4-8 PositionOfFirstNonZeroEntryPerRow
      6.4-9 PositionOfFirstNonZeroEntryPerColumn
      6.4-10 DegreesOfEntries
      6.4-11 RowRankOfMatrix
      6.4-12 ColumnRankOfMatrix
      6.4-13 LeftInverse
      6.4-14 RightInverse
    6.5 Matrices: Operations and Functions
      6.5-1 HomalgRing
      6.5-2 Involution
      6.5-3 CertainRows
      6.5-4 CertainColumns
      6.5-5 UnionOfRows
      6.5-6 UnionOfColumns
      6.5-7 DiagMat
      6.5-8 KroneckerMat
      6.5-9 \*
      6.5-10 \+
      6.5-11 \-
      6.5-12 \*
      6.5-13 \=
      6.5-14 GetColumnIndependentUnitPositions
      6.5-15 GetRowIndependentUnitPositions
      6.5-16 GetUnitPosition
      6.5-17 BasisOfRowModule
      6.5-18 BasisOfColumnModule
      6.5-19 DecideZeroRows
      6.5-20 DecideZeroColumns
      6.5-21 SyzygiesGeneratorsOfRows
      6.5-22 SyzygiesGeneratorsOfColumns
      6.5-23 SyzygiesGeneratorsOfRows
      6.5-24 SyzygiesGeneratorsOfColumns
      6.5-25 ReducedBasisOfRowModule
      6.5-26 ReducedBasisOfColumnModule
      6.5-27 ReducedSyzygiesGeneratorsOfRows
      6.5-28 ReducedSyzygiesGeneratorsOfColumns
      6.5-29 BasisOfRowsCoeff
      6.5-30 BasisOfColumnsCoeff
      6.5-31 DecideZeroRowsEffectively
      6.5-32 DecideZeroColumnsEffectively
      6.5-33 BasisOfRows
      6.5-34 BasisOfColumns
      6.5-35 DecideZero
      6.5-36 SyzygiesOfRows
      6.5-37 SyzygiesOfColumns
      6.5-38 ReducedSyzygiesOfRows
      6.5-39 ReducedSyzygiesOfColumns
      6.5-40 RightDivide
      6.5-41 LeftDivide
      6.5-42 RightDivide
      6.5-43 LeftDivide
      6.5-44 GenerateSameRowModule
      6.5-45 GenerateSameColumnModule
  7 Relations
    7.1 Relations: Categories and Representations
      7.1-1 IsHomalgRelations
      7.1-2 IsHomalgRelationsOfLeftModule
      7.1-3 IsHomalgRelationsOfRightModule
      7.1-4 IsRelationsOfFinitelyPresentedModuleRep
    7.2 Relations: Constructors
    7.3 Relations: Properties
      7.3-1 CanBeUsedToDecideZeroEffectively
      7.3-2 IsInjectivePresentation
    7.4 Relations: Attributes
      7.4-1 FreeResolution
    7.5 Relations: Operations and Functions
  8 Generators
    8.1 Generators: Categories and Representations
      8.1-1 IsHomalgGenerators
      8.1-2 IsHomalgGeneratorsOfLeftModule
      8.1-3 IsHomalgGeneratorsOfRightModule
      8.1-4 IsGeneratorsOfFinitelyGeneratedModuleRep
    8.2 Generators: Constructors
    8.3 Generators: Properties
      8.3-1 IsReduced
    8.4 Generators: Attributes
      8.4-1 ProcedureToReadjustGenerators
    8.5 Generators: Operations and Functions
  9 Modules
    9.1 Modules: Category and Representations
      9.1-1 IsHomalgModule
      9.1-2 IsFinitelyPresentedModuleOrSubmoduleRep
      9.1-3 IsFinitelyPresentedModuleRep
      9.1-4 IsFinitelyPresentedSubmoduleRep
    9.2 Modules: Constructors
      9.2-1 LeftPresentation
      9.2-2 RightPresentation
      9.2-3 HomalgFreeLeftModule
      9.2-4 HomalgFreeRightModule
      9.2-5 HomalgZeroLeftModule
      9.2-6 HomalgZeroRightModule
      9.2-7 \*
      9.2-8 Subobject
      9.2-9 Subobject
      9.2-10 Subobject
      9.2-11 LeftSubmodule
      9.2-12 RightSubmodule
    9.3 Modules: Properties
      9.3-1 IsFree
      9.3-2 IsStablyFree
      9.3-3 IsProjective
      9.3-4 FiniteFreeResolutionExists
      9.3-5 IsReflexive
      9.3-6 IsTorsionFree
      9.3-7 IsArtinian
      9.3-8 IsCyclic
      9.3-9 IsTorsion
      9.3-10 IsHolonomic
      9.3-11 IsPure
      9.3-12 HasConstantRank
      9.3-13 ConstructedAsAnIdeal
      9.3-14 IsPrimeIdeal
    9.4 Modules: Attributes
      9.4-1 TheZeroMorphism
      9.4-2 TheIdentityMorphism
      9.4-3 FullSubmodule
      9.4-4 EmbeddingInSuperObject
      9.4-5 FactorObject
      9.4-6 ResidueClassRing
      9.4-7 UnderlyingSubobject
      9.4-8 NatTrIdToHomHom_R
      9.4-9 PrimaryDecomposition
      9.4-10 ElementaryDivisors
      9.4-11 RankOfModule
      9.4-12 ProjectiveDimension
      9.4-13 DegreeOfTorsionFreeness
      9.4-14 Codim
      9.4-15 PurityFiltration
      9.4-16 CodegreeOfPurity
      9.4-17 BettiDiagram
      9.4-18 CastelnuovoMumfordRegularity
    9.5 Modules: Operations and Functions
      9.5-1 HomalgRing
      9.5-2 ByASmallerPresentation
      9.5-3 UnderlyingObject
      9.5-4 SuperObject
      9.5-5 \*
      9.5-6 SubmoduleQuotient
      9.5-7 Saturate
  10 Maps
    10.1 Maps: Categories and Representations
      10.1-1 IsHomalgMap
      10.1-2 IsHomalgSelfMap
      10.1-3 IsMapOfFinitelyGeneratedModulesRep
    10.2 Maps: Constructors
      10.2-1 HomalgMap
      10.2-2 HomalgZeroMap
      10.2-3 HomalgIdentityMap
    10.3 Maps: Properties
      10.3-1 IsMorphism
      10.3-2 IsGeneralizedMorphism
      10.3-3 IsGeneralizedEpimorphism
      10.3-4 IsGeneralizedMonomorphism
      10.3-5 IsGeneralizedIsomorphism
      10.3-6 IsIdentityMorphism
      10.3-7 IsMonomorphism
      10.3-8 IsEpimorphism
      10.3-9 IsSplitMonomorphism
      10.3-10 IsSplitEpimorphism
      10.3-11 IsIsomorphism
      10.3-12 IsAutomorphism
    10.4 Maps: Attributes
      10.4-1 Source
      10.4-2 Range
      10.4-3 DegreeOfMorphism
      10.4-4 CokernelEpi
      10.4-5 CokernelNaturalGeneralizedIsomorphism
      10.4-6 KernelSubmodule
      10.4-7 KernelEmb
      10.4-8 ImageSubmodule
      10.4-9 ImageModuleEmb
      10.4-10 ImageModuleEpi
      10.4-11 MorphismAidMap
    10.5 Maps: Operations and Functions
      10.5-1 HomalgRing
      10.5-2 ByASmallerPresentation
      10.5-3 PreInverse
  11 Complexes
    11.1 Complexes: Category and Representations
      11.1-1 IsHomalgComplex
      11.1-2 IsComplexOfFinitelyPresentedObjectsRep
      11.1-3 IsCocomplexOfFinitelyPresentedObjectsRep
    11.2 Complexes: Constructors
      11.2-1 HomalgComplex
      11.2-2 HomalgCocomplex
    11.3 Complexes: Properties
      11.3-1 IsSequence
      11.3-2 IsComplex
      11.3-3 IsAcyclic
      11.3-4 IsRightAcyclic
      11.3-5 IsLeftAcyclic
      11.3-6 IsGradedObject
      11.3-7 IsExactSequence
      11.3-8 IsShortExactSequence
      11.3-9 IsSplitShortExactSequence
      11.3-10 IsTriangle
      11.3-11 IsExactTriangle
    11.4 Complexes: Attributes
      11.4-1 BettiDiagram
    11.5 Complexes: Operations and Functions
      11.5-1 Add
      11.5-2 ByASmallerPresentation
  12 Chain Maps
    12.1 ChainMaps: Categories and Representations
      12.1-1 IsHomalgChainMap
      12.1-2 IsHomalgChainSelfMap
      12.1-3 IsChainMapOfFinitelyPresentedObjectsRep
      12.1-4 IsCochainMapOfFinitelyPresentedObjectsRep
    12.2 Chain Maps: Constructors
      12.2-1 HomalgChainMap
    12.3 Chain Maps: Properties
      12.3-1 IsMorphism
      12.3-2 IsGeneralizedMorphism
      12.3-3 IsGeneralizedEpimorphism
      12.3-4 IsGeneralizedMonomorphism
      12.3-5 IsGeneralizedIsomorphism
      12.3-6 IsIdentityMorphism
      12.3-7 IsMonomorphism
      12.3-8 IsEpimorphism
      12.3-9 IsSplitMonomorphism
      12.3-10 IsSplitEpimorphism
      12.3-11 IsIsomorphism
      12.3-12 IsAutomorphism
      12.3-13 IsGradedMorphism
      12.3-14 IsQuasiIsomorphism
    12.4 Chain Maps: Attributes
      12.4-1 Source
      12.4-2 Range
    12.5 Chain Maps: Operations and Functions
      12.5-1 ByASmallerPresentation
  13 Bicomplexes
    13.1 Bicomplexes: Category and Representations
      13.1-1 IsHomalgBicomplex
      13.1-2 IsBicomplexOfFinitelyPresentedObjectsRep
      13.1-3 IsBicocomplexOfFinitelyPresentedObjectsRep
    13.2 Bicomplexes: Constructors
      13.2-1 HomalgBicomplex
    13.3 Bicomplexes: Properties
      13.3-1 IsBisequence
      13.3-2 IsBicomplex
      13.3-3 IsTransposedWRTTheAssociatedComplex
    13.4 Bicomplexes: Attributes
      13.4-1 TotalComplex
      13.4-2 SpectralSequence
    13.5 Bicomplexes: Operations and Functions
      13.5-1 UnderlyingComplex
      13.5-2 ByASmallerPresentation
  14 Bigraded Objects
    14.1 BigradedObjects: Categories and Representations
      14.1-1 IsHomalgBigradedObject
      14.1-2 IsHomalgBigradedObjectAssociatedToAnExactCouple
      14.1-3 IsHomalgBigradedObjectAssociatedToAFilteredComplex
      14.1-4 IsHomalgBigradedObjectAssociatedToABicomplex
      14.1-5 IsBigradedObjectOfFinitelyPresentedObjectsRep
    14.2 Bigraded Objects: Constructors
      14.2-1 HomalgBigradedObject
      14.2-2 AsDifferentialObject
      14.2-3 DefectOfExactness
    14.3 Bigraded Objects: Properties
      14.3-1 IsEndowedWithDifferential
      14.3-2 IsStableSheet
    14.4 Bigraded Objects: Operations and Functions
      14.4-1 ByASmallerPresentation
  15 Spectral Sequences
    15.1 SpectralSequences: Categorie and Representations
      15.1-1 IsHomalgSpectralSequence
      15.1-2 IsHomalgSpectralSequenceAssociatedToAnExactCouple
      15.1-3 IsHomalgSpectralSequenceAssociatedToAFilteredComplex
      15.1-4 IsHomalgSpectralSequenceAssociatedToABicomplex
      15.1-5 IsSpectralSequenceOfFinitelyPresentedObjectsRep
      15.1-6 IsSpectralCosequenceOfFinitelyPresentedObjectsRep
    15.2 Spectral Sequences: Constructors
      15.2-1 HomalgSpectralSequence
    15.3 Spectral Sequences: Attributes
      15.3-1 GeneralizedEmbeddingsInTotalObjects
      15.3-2 GeneralizedEmbeddingsInTotalDefects
    15.4 Spectral Sequences: Operations and Functions
      15.4-1 ByASmallerPresentation
  16 Functors
    16.1 Functors: Category and Representations
      16.1-1 IsHomalgFunctor
      16.1-2 IsHomalgFunctorRep
    16.2 Functors: Constructors
      16.2-1 CreateHomalgFunctor
      16.2-2 InsertObjectInMultiFunctor
      16.2-3 RightSatelliteOfCofunctor
      16.2-4 LeftSatelliteOfFunctor
      16.2-5 RightDerivedCofunctor
      16.2-6 LeftDerivedFunctor
      16.2-7 ComposeFunctors
    16.3 Functors: Attributes
      16.3-1 Genesis
    16.4 Basic Functors
      16.4-1 functor_Cokernel
      16.4-2 Cokernel
      16.4-3 functor_ImageModule
      16.4-4 ImageModule
      16.4-5 functor_Kernel
      16.4-6 Kernel
      16.4-7 functor_DefectOfExactness
      16.4-8 DefectOfExactness
      16.4-9 Functor_Hom
      16.4-10 Hom
      16.4-11 Functor_TensorProduct
      16.4-12 TensorProduct
      16.4-13 Functor_Ext
      16.4-14 Ext
      16.4-15 Functor_Tor
      16.4-16 Tor
      16.4-17 Functor_RHom
      16.4-18 RHom
      16.4-19 Functor_LTensorProduct
      16.4-20 LTensorProduct
      16.4-21 Functor_HomHom
      16.4-22 Functor_LHomHom
    16.5 Tool Functors
    16.6 Other Functors
    16.7 Functors: Operations and Functions
      16.7-1 NameOfFunctor
      16.7-2 InstallFunctor
      16.7-3 InstallDeltaFunctor
  17 Examples
    17.1 ExtExt
    17.2 Purity
    17.3 TorExt-Grothendieck
    17.4 TorExt
  A Development
    A.1 Why was [5Xhomalg[0m discontinued in [5XMaple[0m?
    A.2 Why [5XGAP4[0m?
      A.2-1 [5XGAP[0m is free and open software
      A.2-2 [5XGAP[0m has an area of expertise
      A.2-3 [5XGAP4[0m can communicate
      A.2-4 [5XGAP4[0m is a [13Xmathematical[0m object-oriented programming language
      A.2-5 [5XGAP4[0m packages are easily extendible
    A.3 Why not [5XSage[0m?
    A.4 How does [5Xhomalg[0m compare to [5XSage[0m?
      A.4-1 They differ in objectives and scale
      A.4-2 They differ in the programming language
      A.4-3 They differ in the way they communicate with the outer world
  B The Mathematical Idea behind [5Xhomalg[0m
  C The Basic Matrix Operations
    C.1 Main
    C.2 Effective
    C.3 Relative
    C.4 Reduced
  D The Matrix Tool Operations
    D.1 The Tool Operations [13Xwithout[0m a Fallback Method
      D.1-1 ZeroMatrix
      D.1-2 IdentityMatrix
      D.1-3 ZeroMatrix
      D.1-4 IdentityMatrix
      D.1-5 Involution
      D.1-6 CertainRows
      D.1-7 CertainColumns
      D.1-8 UnionOfRows
      D.1-9 UnionOfColumns
      D.1-10 DiagMat
      D.1-11 KroneckerMat
      D.1-12 MulMat
      D.1-13 AddMat
      D.1-14 SubMat
      D.1-15 Compose
      D.1-16 IsZeroMatrix
      D.1-17 NrRows
      D.1-18 NrColumns
      D.1-19 Determinant
    D.2 The Tool Operations with a Fallback Method
      D.2-1 AreEqualMatrices
      D.2-2 IsIdentityMatrix
      D.2-3 IsDiagonalMatrix
      D.2-4 ZeroRows
      D.2-5 ZeroColumns
      D.2-6 GetColumnIndependentUnitPositions
      D.2-7 GetRowIndependentUnitPositions
      D.2-8 GetUnitPosition
      D.2-9 DegreesOfEntries
  E Logic Subpackages
    E.1 [5XLIRNG[0m: Logical Implications for Rings
    E.2 [5XLIMAP[0m: Logical Implications for Ring Maps
    E.3 [5XLIMAT[0m: Logical Implications for Matrices
    E.4 [5XCOLEM[0m: Clever Operations for Lazy Evaluated Matrices
      E.4-1 Eval
      E.4-2 Eval
      E.4-3 Eval
      E.4-4 Eval
      E.4-5 Eval
      E.4-6 Eval
      E.4-7 Eval
      E.4-8 Eval
      E.4-9 Eval
      E.4-10 Eval
      E.4-11 Eval
      E.4-12 Eval
      E.4-13 Eval
      E.4-14 Eval
      E.4-15 Eval
      E.4-16 Eval
      E.4-17 Eval
    E.5 [5XLIMOD[0m: Logical Implications for Modules
    E.6 [5XLIMOR[0m: Logical Implications for Morphisms
    E.7 [5XLICPX[0m: Logical Implications for Complexes
  F The subpackage [5XResidueClassRingForHomalg[0m as a sample ring package
    F.1 The Mandatory Basic Operations
      F.1-1 BasisOfRowModule
      F.1-2 BasisOfColumnModule
      F.1-3 DecideZeroRows
      F.1-4 DecideZeroColumns
      F.1-5 SyzygiesGeneratorsOfRows
      F.1-6 SyzygiesGeneratorsOfColumns
      F.1-7 BasisOfRowsCoeff
      F.1-8 BasisOfColumnsCoeff
      F.1-9 DecideZeroRowsEffectively
      F.1-10 DecideZeroColumnsEffectively
      F.1-11 RelativeSyzygiesGeneratorsOfRows
      F.1-12 RelativeSyzygiesGeneratorsOfColumns
    F.2 The Mandatory Tool Operations
      F.2-1 ZeroMatrix
      F.2-2 IdentityMatrix
      F.2-3 Involution
      F.2-4 CertainRows
      F.2-5 CertainColumns
      F.2-6 UnionOfRows
      F.2-7 UnionOfColumns
      F.2-8 DiagMat
      F.2-9 KroneckerMat
      F.2-10 MulMat
      F.2-11 AddMat
      F.2-12 SubMat
      F.2-13 Compose
      F.2-14 IsZeroMatrix
      F.2-15 NrRows
      F.2-16 NrColumns
      F.2-17 Determinant
    F.3 Some of the Recommended Tool Operations
      F.3-1 AreEqualMatrices
      F.3-2 IsIdentityMatrix
      F.3-3 IsDiagonalMatrix
      F.3-4 ZeroRows
      F.3-5 ZeroColumns
  G Debugging [5Xhomalg[0m
    G.1 Increase the assertion level
    G.2 Use [10XhomalgMode[0m
      G.2-1 homalgMode
  H The Core Packages and the Idea behind their Splitting
    H.1 The 5=1+4 split
      H.1-1 Logically independent
      H.1-2 Black boxes
      H.1-3 Summing up
    H.2 The 4=1+1+1+1 split
      H.2-1 [5XHomalgToCAS[0m
      H.2-2 [5XIO_ForHomalg[0m and Alternatives
      H.2-3 [5XRingsForHomalg[0m
      H.2-4 Your own [5XRingsForHomalg[0m
      H.2-5 [5XExamplesForHomalg[0m
      H.2-6 Documentation
      H.2-7 Crediting
      H.2-8 Stability
  I Overview of the [5Xhomalg[0m Package Source Code
    I.1 Rings, Ring Maps, Matrices, Relations, and Generators
    I.2 The Basic Objects
    I.3 The Low Level Algorithms
    I.4 The High Level Algorithms
    I.5 Logical Implications for [5Xhomalg[0m Objects
    I.6 The subpackage [5XResidueClassRingForHomalg[0m
    I.7 The homalgTable for [5XGAP4[0m built-in rings
  
  
  -------------------------------------------------------
