Macaulay2 » Documentation
Packages » DGAlgebras » Operations on DG Ideals » dgIdeal
next | previous | forward | backward | up | index | toc

dgIdeal -- Construct a DG ideal from a list, matrix, or ideal of generators

Description

If the inputs are already cycles, no new generators are introduced and I.natural is the ordinary ideal they generate.

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 : Anat = A.natural

o3 = Anat

o3 : PolynomialRing, 2 skew commutative variable(s)
i4 : xA = sub(x, Anat)

o4 = x

o4 : Anat
i5 : I = dgIdeal(A, {xA})

o5 = DGIdeal of Anat
     generators => | x |

o5 : DGIdeal
i6 : numgens I.natural == 1

o6 = true
i7 : isDGIdeal(A, I.natural)

o7 = true

If a seed element is not a cycle, d-saturation may enlarge the ideal. For the Koszul complex on {x}, d(T_1) = x, so dgIdeal(A, {T_1}) ends up containing both T_1 and x.

i8 : R' = ZZ/101[x]

o8 = R'

o8 : PolynomialRing
i9 : A' = koszulComplexDGA R'

o9 = {Ring => R'                    }
      Underlying algebra => R'[T   ]
                                1,1
      Differential => {x}

o9 : DGAlgebra
i10 : T = (A'.natural)_0

o10 = T
       1,1

o10 : R'[T   ]
          1,1
i11 : I' = dgIdeal(A', {T})

o11 = DGIdeal of R'[T   ]
                     1,1
      generators => | x T_(1,1) |

o11 : DGIdeal
i12 : numgens I'.natural

o12 = 2
i13 : isDGIdeal(A', I'.natural)

o13 = true

A more interesting multi-variable example: over the Koszul algebra of QQ[x, y], the top-degree exterior product T_1 T_2 has d(T_1 T_2) = -y T_1 + x T_2, and d-saturation records both the seed and its differential as minimal generators of the resulting d-closed ideal:

i14 : R2 = QQ[x, y]

o14 = R2

o14 : PolynomialRing
i15 : A2 = koszulComplexDGA R2
warning: clearing value of symbol T to allow access to subscripted variables based on it
       : debug with expression   debug 6944   or with command line option   --debug 6944

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

o15 : DGAlgebra
i16 : T1 = (A2.natural)_0

o16 = T
       1,1

o16 : R2[T   ..T   ]
          1,1   1,2
i17 : T2 = (A2.natural)_1

o17 = T
       1,2

o17 : R2[T   ..T   ]
          1,1   1,2
i18 : polyDifferential(A2, T1 * T2)

o18 = - y*T    + x*T
           1,1      1,2

o18 : R2[T   ..T   ]
          1,1   1,2
i19 : J = dgIdeal(A2, {T1 * T2})

o19 = DGIdeal of R2[T   ..T   ]
                     1,1   1,2
      generators => | yT_(1,1)-xT_(1,2) T_(1,1)T_(1,2) |

o19 : DGIdeal
i20 : mingens J.natural

o20 = | yT_(1,1)-xT_(1,2) T_(1,1)T_(1,2) |

                             1                     2
o20 : Matrix (R2[T   ..T   ])  <-- (R2[T   ..T   ])
                  1,1   1,2             1,1   1,2

An empty seed or a list of zero seeds yields the zero DG ideal.

i21 : Z = dgIdeal(A, {})

o21 = DGIdeal of Anat
      generators => 0

o21 : DGIdeal
i22 : isWellDefined Z

o22 = true
i23 : isZero Z

o23 = true
i24 : Z' = dgIdeal(A, {0_Anat, 0_Anat})

o24 = DGIdeal of Anat
      generators => 0

o24 : DGIdeal
i25 : isZero Z'

o25 = true

A seed containing 1 gives the unit DG ideal.

i26 : U = dgIdeal(A, {1_Anat, x_Anat})

o26 = DGIdeal of Anat
      generators => | 1 |

o26 : DGIdeal
i27 : U.natural == ideal 1_Anat

o27 = true

See also

Ways to use dgIdeal:

  • dgIdeal(DGAlgebra,Ideal)
  • dgIdeal(DGAlgebra,List)
  • dgIdeal(DGAlgebra,Matrix)

For the programmer

The object dgIdeal is a method function.


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