Overview of the &homalg; Package Source Code

The &homalg; package reached more than 50.000 lines of &GAP4; code (excluding the documentation) before the first release was made. To keep this amount of code tracebale, the package was split in several files.

Rings, Ring Maps, Matrices, Relations, and Generators

The &homalg; package files
Filename .gd/.gi
Content
homalg
definitions of the basic &GAP4; categories
and some tool functions (e.g. homalgMode)
homalgTable
dictionaries between &homalg;
and the computing engines
HomalgRing
internal and external rings
HomalgRingMap
ring maps
HomalgMatrix
internal and external matrices
HomalgRelations
a set of relations
SetsOfRelations
several sets of relations
HomalgGenerators
a set of generators
SetsOfGenerators
several sets of generators

The Basic Objects

The &homalg; package files (continued)
Filename .gd/.gi
Content
HomalgModule
modules and submodules allowing several
presentations linked with transition matrices
HomalgMap
maps allowing several presentations
of their source and target
HomalgFiltration
filtration of a module
HomalgComplex
(co)complexes of modules or of (co)complexes
HomalgChainMap
chain maps of (co)complexes
consisting of maps or chain maps
HomalgBicomplex
bicomplexes of modules or of (co)complexes
HomalgBigradedObject
(differential) bigraded modules
HomalgSpectralSequence
homological and cohomological
spectral sequences
HomalgFunctor
constructors of (multi) functors of
module categories (yet over the same ring),
left derivation of covariant functors,
right derivation of contravariant functors,
left satellites of covariant functors,
right satellites of contravariant functors,
and composition of functors
HomalgDiagram
Betti diagrams

The Low Level Algorithms

In the following CAS or CASystem mean computer algebra systems.

The &homalg; package files (continued)
Filename .gd/.gi
Content
Tools
the elementary matrix operations that can be
overwritten using the homalgTable
(and hence delegable even to other CASystems)
Service
the three operations: basis, reduction, and syzygies;
they can also be overwritten using the homalgTable
(and hence delegable even to other CASystems)
Basic
higher level operations for matrices
(cannot be overwritten using the homalgTable)

The High Level Algorithms

The &homalg; package files (continued)
Filename .gd/.gi
Content
Modules
subfactors, resolutions, syzygy modules,
parameterizations, intersections, annihilators
Maps
resolutions, (co)kernel sequences
Complexes
(co)homology, horse shoe lemma, connecting
homomorphisms, Cartan-Eilenberg resolution
ChainMaps
(co)homology
SpectralSequences
Grothendieck bicomplexes associated to two
composable functors, spectral sequences
of bicomplexes, Grothendieck spectral sequences
Filtrations
spectral filtrations, i.e. filtrations induced
by spectral sequences of bicomplexes,
purity filtration
ToolFunctors
composition, addition, substraction,
stacking, augmentation, and post dividing maps
BasicFunctors
cokernel, image, kernel, tensor product, Hom,
Ext, Tor, RHom, LTensorProduct, HomHom, LHomHom,
BaseChange (preliminary)
OtherFunctors
torsion submodule, torsion free factor,
direct sum, pullback, pushout, Auslander dual

Logical Implications for &homalg; Objects

The &homalg; package files (continued)
Filename .gd/.gi
Content
LIRNG
logical implications for rings
LIMAP
logical implications for ring maps
LIMAT
logical implications for matrices
COLEM
clever operations for lazy evaluated matrices
LIMOD
logical implications for modules
LIMOR
logical implications for morphisms
LICPX
logical implications for complexes

The subpackage &ResidueClassRingForHomalg;

The &homalg; package files (continued)
Filename .gd/.gi
Content
ResidueClassRingForHomalg
some global variables
ResidueClassRing
residue class rings, their elements, and matrices,
together with their constructors and operations
ResidueClassRingTools
the elementary matrix operations for matrices
over residue class rings
ResidueClassRingBasic
the three operations: basis, reduction, and syzygies
for matrices over residue class rings

The homalgTable for &GAP4; built-in rings

For the purposes of &homalg;, the ring of integers is, at least up till now, the only ring which is properly supported in &GAP4;. The &GAP4; built-in cababilities for polynomial rings (also univariate) and group rings do not statisfy the minimum requirements of &homalg;. The &GAP4; package &Gauss; enables &GAP; to fullfil the &homalg; requirements for prime fields, and &ZZ; / p^n.

The &homalg; package files (continued)
Filename .gi
Content
Integers
the homalgTable for the ring of integers