The package homalg is meant to be the first part of a continuously growing open source multi volume book about homological and homotopical algebra. homalg is an attempt to translate as much as possible of homological algebra, as can be found in books like [CE99], [ML63], [HS97], [Rot79], [Wei94], and [GM03], into a language that a computer can directly understand. But just like the aforementioned books, homalg should, to a great extent, be readable by a mathematician, even without deep programming knowledge. For the reasons mentioned in (--> Appendix Why GAP4?) GAP4 was chosen as the language of homalg.
The package homalg is the foundational part of the project. It provides procedures to construct basic objects in homological algebra:
filtrations of objects
complexes (of objects and of complexes)
chain morphisms
bicomplexes
bigraded (differential) objects
spectral sequences
functors
Beside these so-called constructors homalg provides operations to perform computations with these objects. The list of operations includes:
computation of subfactor objects
applying functors (like Ext
, Tor
, ...) to objects, morphisms, complexes and chain morphisms
derivation and composition of functors
horse shoe resolution of short exact sequences of objects
connecting homomorphisms and long exact sequences
Cartan-Eilenberg resolution of complexes
hyper (co)homology
spectral sequences of bicomplexes
the Grothendieck spectral sequences associated to two composable functors
test if an object is torsion-free, reflexive, projective, stably free, pure
determine the rank, grade, projective dimension, degree of torsion-freeness, and codegree of purity of an object
Using the philosophy of GAP4, one or more methods are installed for each operation, depending on properties and attributes of these objects. These properties and attributes can themselves be computed by methods installed for this purpose.
As mentioned above, the package homalg should only be the first and foundational part of the homalg project. On the one hand it is designed independently of the details of the different matrix operations, which other packages are meant to provide. Typically, these packages (like RingsForHomalg) heavily rely on existing, well tested, and optimized systems like Singular, Macaulay2, or MAGMA. On the other hand other packages can be built upon or extend the homalg package in different ways:
add constructors (sheaves, schemes, simplicial sets, ...)
add methods for basic operation (Yoneda products, Massey products, Steenrod operations, ...)
add methods to compute sheaf cohomology, local cohomology, Hochschild (co)homology, cyclic (co)homology...
provide algorithms for holonomic \(D\)-modules based on the restriction algorithm: localization, computing tensor products, Hom
, Ext
, de Rham cohomology, ...
support change of rings, Lyndon/Hochschild-Serre spectral sequence, base change spectral sequences, ...
support perturbation techniques, Serre and Eilenberg-Moore spectral sequence of simplicial spaces of infinite type, ...
...
The project will remain open and contributions are highly welcome. The different packages will be attributed to their respective authors. The whole project will be attributed to the "homalg team", i.e. the authors and contributers of all packages in the project.
Chapter 2 describes the installation of this package. The remaining chapters are each devoted to one of the homalg objects (--> 1.1-2) with its constructors, properties, attributes, and operations.
generated by GAPDoc2HTML