next | previous | forward | backward | up | index | toc

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

## Synopsis

• Usage:
HM = homologyModule(A,M)
• Inputs:
• Outputs:
• HM, ,

## 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) -- used 0.103999s (cpu); 0.104842s (thread); 0s (gc) Finding easy relations : 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 :

• homologyModule(DGAlgebra,Module)

## For the programmer

The object homologyModule is .