Introduction to homalg

homalg is a Maple package that implements a lot of basic homological algebra constructions in an abstract way. This means, these constructions are implemented independently of any specific ring. Whenever one wants to perform concrete homological computations over a ring, one specifies a so-called ring package implementing the arithmetics of that ring: the package must provide a procedure which effectively solves the ideal membership problem and another one which computes a generating set of syzygies for a finite set of relations.
The main facilities of homalg are the following: The following Maple ring packages have successfully been used with homalg. In each of the following descriptions we append a list of rings which can be dealt with in homalg using the respective package. Further, and without any extra help from the ring package, homalg can automatically compute over residue class rings of any supported ring. homalg is also able to make use of various normal form algorithms for modules resp. special types of modules over various rings, which are used to provide a standard form for a presentation of these modules: Historically, homalg was created due to the repeated need for implementations of constructions from homological algebra over different rings, e.g. Involutive, Janet, and JanetOre demanded for such constructions, and the authors realized that they had to tackle the problem of finding a way to implement these constructions independently of the ring.