Macaulay2 » Documentation
Packages » DGAlgebras » Basic operations on DG Module Maps
next | previous | forward | backward | up | index | toc

Basic operations on DG Module Maps -- Outlines some basic operations on DGModuleMaps

A morphism of DG modules over a fixed DG algebra A is an A-linear map of underlying graded A.natural-modules that commutes with the differentials. Such objects are created using the DGModuleMap class. The workhorse constructor is dgModuleMap, which accepts either a full Matrix encoding of the map or a list of image Vectors (one per natural generator of the source).

i1 : R = QQ[x,y]/ideal(x^2,y^2)

o1 = R

o1 : QuotientRing
i2 : A = koszulComplexDGA R

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

o2 : DGAlgebra
i3 : k = R^1 / ideal(x, y)

o3 = cokernel | x y |

                            1
o3 : R-module, quotient of R
i4 : Mdg = minimalSemifreeResolution(A, k, EndDegree => 2)

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

o4 : DGModule
i5 : idM = identityDGModuleMap Mdg

                               3
o5 = {Source => (R[T   ..T   ])  }
                    1,1   1,2
                               3
      Target => (R[T   ..T   ])
                    1,1   1,2
      Natural => {0, 0} | 1 0 0 |
                 {2, 2} | 0 1 0 |
                 {2, 2} | 0 0 1 |

o5 : DGModuleMap
i6 : isWellDefined idM

o6 = true

As with DGAlgebraMaps, once you have a candidate map it is a good idea to check isWellDefined. The check verifies (per natural generator of the source) both the hom-degree condition and the chain-map condition $d_N \circ f = f \circ d_M$.

i7 : natGens = apply(rank Mdg.natural, i -> (Mdg.natural)_i)

o7 = {| 1 |, | 0 |, | 0 |}
      | 0 |  | 1 |  | 0 |
      | 0 |  | 0 |  | 1 |

o7 : List
i8 : xMap = dgModuleMap(Mdg, Mdg, apply(natGens, g -> x * g))

                               3
o8 = {Source => (R[T   ..T   ])  }
                    1,1   1,2
                               3
      Target => (R[T   ..T   ])
                    1,1   1,2
      Natural => {0, 0} | x 0 0 |
                 {2, 2} | 0 x 0 |
                 {2, 2} | 0 0 x |

o8 : DGModuleMap
i9 : isWellDefined xMap

o9 = true

A DGModuleMap induces a chain map between the underlying complexes via toComplexMap, and a module map on every homology degree via homology.

i10 : H0 = homology(xMap, 0)

o10 = 0

o10 : Matrix k <-- k
i11 : H0 == map(target H0, source H0, 0)

o11 = true

Classical construction: given a hom-degree-0 seed (the images of the hom-deg-0 generators of M in N.natural), liftToDGModuleMap inductively solves $d_N(x) = f(d_M(e))$ degree by degree, producing a full chain map M -> N. Requires N to be acyclic up to the requested EndDegree.

i12 : f = liftToDGModuleMap(Mdg, Mdg, {(Mdg.natural)_0}, EndDegree => 2)

                                3
o12 = {Source => (R[T   ..T   ])  }
                     1,1   1,2
                                3
       Target => (R[T   ..T   ])
                     1,1   1,2
       Natural => {0, 0} | 1 0 0 |
                  {2, 2} | 0 1 0 |
                  {2, 2} | 0 0 1 |

o12 : DGModuleMap
i13 : isWellDefined f

o13 = true
i14 : h0 = homology(f, 0)

o14 = | 1 |

o14 : Matrix k <-- k
i15 : h0 == id_(source h0)

o15 = true

Auxiliary operations: addition, subtraction, scalar multiplication by elements of A.ring, negation, and composition via $*$ are all supported, mirroring the matrix-level operations on f.natural.

i16 : (2_R * idM).natural == 2 * idM.natural

o16 = true
i17 : (idM * idM).natural == idM.natural

o17 = true

See also


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