Macaulay2 » Documentation
Packages » DGAlgebras » Base change and tensor with non-DG types » DGModule ** Module
next | previous | forward | backward | up | index | toc

DGModule ** Module -- Exterior tensor product of a DG module with an ordinary free module

Description

This is the exterior tensor product of DG-modules, where N is viewed as a complex concentrated in homological degree 0 with zero differential. The commuted form N ** M is defined as M ** N.

i1 : R = ZZ/101[x,y]

o1 = R

o1 : PolynomialRing
i2 : A = koszulComplexDGA R

o2 = {Ring => R                          }
      Underlying algebra => R[T   ..T   ]
                               1,1   1,2
      Differential => {x, y}

o2 : DGAlgebra
i3 : M = freeDGModule(A, {0})

o3 = {Base ring => R                    }
      DG algebra => R[T   ..T   ]
                       1,1   1,2
                                       1
      Natural module => (R[T   ..T   ])
                            1,1   1,2
      Generator degrees => {{0, 0}}
      Differentials on gens => {0}

o3 : DGModule
i4 : N = R^2

      2
o4 = R

o4 : R-module, free
i5 : MN = M ** N

o5 = {Base ring => R                       }
      DG algebra => R[T   ..T   ]
                       1,1   1,2
                                       2
      Natural module => (R[T   ..T   ])
                            1,1   1,2
      Generator degrees => {{0, 0}, {0, 0}}
      Differentials on gens => {0, 0}

o5 : DGModule
i6 : class MN

o6 = DGModule

o6 : Type
i7 : numgens MN

o7 = 2
i8 : isWellDefined MN

o8 = true

The special case M ** R^1 is canonically isomorphic to M, and M ** R^{d} is a shift of M by the internal degree d.

Multi-degree M tensors predictably: if M has multiple homological degrees and N is free of rank r, the result has (rank M.natural) * r natural generators and is well-defined.

i9 : M2m = freeDGModule(A, {0, 1})

o9 = {Base ring => R                       }
      DG algebra => R[T   ..T   ]
                       1,1   1,2
                                       2
      Natural module => (R[T   ..T   ])
                            1,1   1,2
      Generator degrees => {{0, 0}, {1, 0}}
      Differentials on gens => {0, 0}

o9 : DGModule
i10 : N3 = R^3

       3
o10 = R

o10 : R-module, free
i11 : M2N = M2m ** N3

o11 = {Base ring => R                                                       }
       DG algebra => R[T   ..T   ]
                        1,1   1,2
                                        6
       Natural module => (R[T   ..T   ])
                             1,1   1,2
       Generator degrees => {{0, 0}, {0, 0}, {0, 0}, {1, 0}, {1, 0}, {1, 0}}
       Differentials on gens => {0, 0, 0, 0, 0, 0}

o11 : DGModule
i12 : numgens M2N == 2 * 3

o12 = true
i13 : isWellDefined M2N

o13 = true

Edge case: tensoring with the zero module R^0 gives a well-defined zero DGModule.

i14 : MZ = M ** R^0

o14 = {Base ring => R             }
       DG algebra => R[T   ..T   ]
                        1,1   1,2
       Natural module => 0
       Generator degrees => {}
       Differentials on gens => {}

o14 : DGModule
i15 : isWellDefined MZ

o15 = true
i16 : numgens MZ == 0

o16 = true

Caveat

Both M and N must be free (semifree on the DG side). For the non-free case, take an initial free resolution and then tensor.

See also

Ways to use this method:

  • DGModule ** Module -- Exterior tensor product of a DG module with an ordinary free module
  • Module ** DGModule

The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/DGAlgebras/doc.m2:2100:0.