Macaulay2 » Documentation
Packages » DGAlgebras :: koszulComplexDGA
next | previous | forward | backward | up | index | toc

koszulComplexDGA -- The Koszul complex on the variables of a ring, as a DG algebra

Description

Given a ring R with n = numgens R generators x_1, ..., x_n, the returned DG algebra has underlying graded-commutative polynomial ring R[T_(1,1), ..., T_(1,n)] on n exterior (odd, square-zero) generators in hom-degree 1, with differential d(T_(1,i)) = x_i extended by the Leibniz rule. In the R-module direction, the complex is identical to the classical Koszul complex K_\bullet(x_1, ..., x_n; R).

Variable naming convention. Generators are named T_(i, j), where i is the homological degree (here always 1) and j is a 1-indexed counter among generators at that hom-degree. Pass Variable => "S" to use base name S instead.

i1 : R = ZZ/101[a, b, c] / ideal(a^3, b^3, c^3)

o1 = R

o1 : QuotientRing
i2 : A = koszulComplexDGA R

o2 = {Ring => R                          }
      Underlying algebra => R[T   ..T   ]
                               1,1   1,3
      Differential => {a, b, c}

o2 : DGAlgebra
i3 : gens A.natural

o3 = {T   , T   , T   }
       1,1   1,2   1,3

o3 : List
i4 : flatten entries matrix A.diff

o4 = {a, b, c, a, b, c}

o4 : List

Converting to a Complex gives the ordinary Koszul complex on the variables (up to a choice of monomial order on the exterior product); taking homology recovers the classical Koszul homology:

i5 : complexA = toComplex A

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

o5 : Complex
i6 : complexA.dd_1

o6 = | a b c |

             1      3
o6 : Matrix R  <-- R
i7 : ranks = apply(4, i -> numgens prune HH_i complexA)

o7 = {1, 3, 3, 1}

o7 : List
i8 : ranks == apply(4, i -> numgens prune HH_i koszul vars R)

o8 = true

The homology can be computed directly from A via HH_ZZ DGAlgebra, or as an algebra via homologyAlgebra.

To rename the Koszul generators, pass the Variable option:

i9 : S = ZZ/101[a, b]

o9 = S

o9 : PolynomialRing
i10 : AS = koszulComplexDGA(S, Variable => "U")

o10 = {Ring => S                          }
       Underlying algebra => S[U   ..U   ]
                                1,1   1,2
       Differential => {a, b}

o10 : DGAlgebra
i11 : gens AS.natural

o11 = {U   , U   }
        1,1   1,2

o11 : List

Caveat

The Koszul complex is built on all elements of gens R, not on a minimal generating set of a possibly non-irrelevant ideal. To build a Koszul complex on a specific sequence of ring elements, use koszulComplexDGA(List); for a full generating set of an ideal, use koszulComplexDGA(Ideal). Also, toComplex uses a different monomial order than the koszul command, so individual differentials may differ by a basis permutation even though the complexes are isomorphic.

See also

Ways to use koszulComplexDGA:

For the programmer

The object koszulComplexDGA is a method function with options.


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