The DGAlgebras package extends ** so that every DG object (DGAlgebra, DGModule, DGSubmodule, DGQuotientModule, DGIdeal, DGAlgebraMap, DGModuleMap) can be base-changed along any ring map out of the ground ring. It also defines the exterior tensor of a DGModule with an ordinary Module, subsuming the usual ring-of-scalars base change as the special case M ** S^1.
Two design choices make these operations usable in larger constructions.
Caching (object identity). Both DGAlgebra ** Ring and DGModule ** Ring cache their result, so repeated calls with the same operands return the SAME object. This matters because a DGAlgebraMap or DGModuleMap is tagged by its source and target DG-objects, and without identity the source of id_M ** S and the target of id_M ** S would be two distinct (though isomorphic) DGModules.
Functoriality. These operations are functorial: if id is the identity DGModuleMap on M, then id ** S is the identity DGModuleMap on M ** S; likewise for DGAlgebraMaps. Composition is preserved.
|
|
|
|
|
|
|
|
|
|
For a DGModule M and an ordinary free module N, M ** N forms the exterior tensor product over A.natural. This lets you tensor by copies of a ring, by direct sums, or by arbitrary graded shifts without leaving the DG world.
|
|
|
|
|
The tensor is associative in the natural way: you can chain (M ** N) ** K for a sequence of ordinary free modules, producing a DGModule whose natural rank is the product of the ranks.
|
|
|
|
A deliberate omission: there is no ** Ideal method. For an ideal I, the underlying module module I is almost never free, so exterior tensor with a DGModule is not well-defined in our framework. Use ** (R/I) for base change along the quotient instead.
The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/DGAlgebras/doc.m2:1780:0.