next | previous | forward | backward | up | top | index | toc | Macaulay2 website
DGAlgebras :: homologyModule

homologyModule -- Compute the homology of a DGModule as a module over a DGAlgebra.

Synopsis

Description

Given a DGAlgebra A over a ring R, and an R-module M, A ** M carries the structure of a left DG module over A. It follows that H(A ** M) is a module over H(A). Although DGModules have yet to be implemented as objects in Macaulay2 in their own right, the current infrastructure (with a little extra work) allows us to determine the module structure of this type of DG module as a module over the homology algebra of A.

Currently, this code will only work on DGAlgebras that are finite over their ring of definition, such as Koszul complexes. (Truncations of) module structures in case of non-finite DGAlgebras may be made available in a future update.

For an example, we will compute the module structure of the Koszul homology of the canonical module over the Koszul homology algebra.

i1 : Q = QQ[x,y,z,w]

o1 = Q

o1 : PolynomialRing
i2 : I = ideal (w^2, y*w+z*w, x*w, y*z+z^2, y^2+z*w, x*y+x*z, x^2+z*w)

             2                         2   2                    2
o2 = ideal (w , y*w + z*w, x*w, y*z + z , y  + z*w, x*y + x*z, x  + z*w)

o2 : Ideal of Q
i3 : R = Q/I

o3 = R

o3 : QuotientRing
i4 : KR = koszulComplexDGA R

o4 = {Ring => R                      }
      Underlying algebra => R[T ..T ]
                               1   4
      Differential => {x, y, z, w}

o4 : DGAlgebra
i5 : cxKR = toComplex KR

      1      4      6      4      1
o5 = R  <-- R  <-- R  <-- R  <-- R
                                  
     0      1      2      3      4

o5 : ChainComplex
i6 : HKR = HH(KR)
Finding easy relations           :      -- used 0.138424 seconds

o6 = HKR

o6 : QuotientRing

The following is the graded canonical module of R:

i7 : degList = first entries vars Q / degree / first

o7 = {1, 1, 1, 1}

o7 : List
i8 : M = Ext^4(Q^1/I,Q^{-(sum degList)}) ** R

o8 = cokernel {-2} | w x z 0   0 0  0   0 -zw 0     0  |
              {-2} | 0 0 w y+z 0 x  0   w 0   z2+zw 0  |
              {-2} | 0 0 0 0   w -z y+z x 0   0     z2 |

                            3
o8 : R-module, quotient of R

We obtain the Koszul homology module using the following command:

i9 : HKM = homologyModule(KR,M);

One may notice the duality of HKR and HKM by considering their Hilbert series:

i10 : hsHKR = value numerator reduceHilbert hilbertSeries HKR

              2     2 4     2 3     3 5     3 4     4 6
o10 = 1 + 7T T  + 6T T  + 8T T  + 8T T  + 3T T  + 3T T
            0 1     0 1     0 1     0 1     0 1     0 1

o10 : ZZ[T ..T ]
          0   1
i11 : hsHKM = value numerator reduceHilbert hilbertSeries HKM

        -2             -1     2       2     3 2    4 4
o11 = 3T   + 3T  + 8T T   + 8T T  + 6T  + 7T T  + T T
        1      0     0 1      0 1     0     0 1    0 1

o11 : ZZ[T ..T ]
          0   1
i12 : AA = ring hsHKR

o12 = AA

o12 : PolynomialRing
i13 : e = numgens Q

o13 = 4
i14 : hsHKR == T_0^e*T_1^e*sub(hsHKM, {T_0 => T_0^(-1), T_1 => T_1^(-1)})

o14 = true

Ways to use homologyModule :

For the programmer

The object homologyModule is a method function.