The main facilities of

- tensor product module of two modules over a commutative ring,
- dual module over a ring with involution,
- module of homomorphisms between two modules over a commutative ring,
- computation of kernels, cokernels, defects of homomorphisms, pullbacks and pushouts,
- derivation of functors,
- satellites,
- connecting homomorphisms,
- long exact (co)homology sequences,
- composition of functors,
- from n-cocycles to n-extensions and back,
- Yoneda product,
- ...

- PIR is a
tiny package, or rather a pseudo package, that makes Maple's built-in facilities
for dealing with integers and some other principal ideal rings available to
*homalg*. (Prime subfields*Q*and*Z*/*pZ*and their finite field extensions, realized as primitive extensions, rational function fields over the previous fields, the integers*Z*, the Gaussian integers*Z*[√-1] and univariate polynomial rings*Z*/*pZ*[*x*], where*p*is a prime,*Q*[*x*] and*K*[*x*], where*K*is a rational function field over a finite extension of*Q*, realized as a primitive extension.) - Involutive
implements the involutive basis technique of V. P. Gerdt and
Y. A. Blinkov in Maple. An involutive basis is a special kind of
Gröbner basis for an ideal of a polynomial ring or, more generally, for a submodule of a
free module over a polynomial ring. Involutive bases have nice combinatorial
properties [PR05],
and the algorithms designed by
V. P. Gerdt and Y. A. Blinkov
[Ger05], [GB98a],
[GB98b]
compute them efficiently. In fact, these algorithms provide an efficient
alternative to Buchberger's algorithm [Buc65]
to compute Gröbner bases.
The packages Involutive, Janet, and JanetOre
restricts to particular involutive bases, namely Janet bases. It also
provides an interface to a C++ implementation of the involutive basis
technique which can be used to call the fast routines when needed as well as
to switch to these fast routines for the whole Maple session.
(Commutative polynomial rings:
*S*[x_{1}, ..., x_{n}], where*S*is either*Z*or a field existing in Maple.) - Janet
implements the involutive basis technique for computing
Janet bases of linear systems of partial differential equations.
(Differential algebras over differential fields:
*K*[∂/∂x_{1}, ..., ∂/∂x_{n}], where*K*is a differential field which exists in Maple.) - JanetOre
generalizes Involutive
from commutative polynomial rings to certain iterated skew polynomial rings. In particular,
it computes Janet bases for left ideals in Ore algebras
[CS98].
(
*K*[∂; σ, δ], where*K*is a polynomial ring over a field, ∂ a new indeterminate, σ is a certain automorphism of*K*and δ a σ-derivation of*K*, and iterated extensions of this kind.) - OreModules [CQR07] is a Maple package for the study of structural properties of linear systems over Ore algebras, i.e. linear equations involving certain linear functional operators which can be considered as elements of an Ore algebra. By default, it uses the Maple package Ore_algebra [CS98] to compute Gröbner bases, but these calls can also be switched to JanetOre. (Ore algebras [CS98] and the iterated skew polynomial rings from the previous point.)

- PIR uses
the
**Smith**normal form for (Maple-built-in) principal ideal rings. - Janet
optionally uses the
**Jacobson**normal form for univariate differential rings, i.e. rings of the form*K*[∂], where*K*is a differential field with ∂ a derivation of*K*. - Involutive
optionally uses the extension package
QuillenSuslin
written by Anna Fabianska
[Fab06] [FQ07]
implementing the
**Quillen-Suslin**theorem to compute a free basis of a projective module over a polynomial ring (which is then free by the theorem). - OreModules
optionally uses the extension package
Stafford [QR07]
which computes a free basis using the
**Stafford**algorithm for a stably free module of rank at least 2 over the Weyl algebras*k*[x_{1},...,x_{n},∂_{1},..., ∂_{n}] and*k*(x_{1},...,x_{n})[∂_{1},...,∂_{n}], with*k*a field of characteristic 0.