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

Basic operations on DG Algebra Maps -- Outlines some basic operations on DGAlgebraMaps

An algebra map between the underlying graded algebras that satisfies the Leibniz rule is a morphism of DG algebras. Such objects are created using the DGAlgebraMap class. As with DGAlgebras, one can define a DGAlgebraMap 'from scratch' using dgAlgebraMap.

i1 : R = ZZ/101[a,b,c]/ideal{a^3+b^3+c^3,a*b*c}

o1 = R

o1 : QuotientRing
i2 : K1 = koszulComplexDGA(ideal vars R,Variable=>"Y")

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

o2 : DGAlgebra
i3 : K2 = koszulComplexDGA(ideal {b,c},Variable=>"T")

o3 = {Ring => R                          }
      Underlying algebra => R[T   ..T   ]
                               1,1   1,2
      Differential => {b, c}

o3 : DGAlgebra
i4 : f = dgAlgebraMap(K2,K1,matrix{{0,T_(1,1),T_(1,2)}})

o4 = map (R[T   ..T   ], R[Y   ..Y   ], {0, T   , T   , a, b, c})
             1,1   1,2      1,1   1,3        1,1   1,2

o4 : DGAlgebraMap

Once we define the DGAlgebraMap, it is a good idea to check to see if it indeed satisfies the Leibniz rule. This can be checked by using isWellDefined.

i5 : isWellDefined f

o5 = false

Oops! Let's try that again.

i6 : g = dgAlgebraMap(K1,K2,matrix{{Y_(1,2),Y_(1,3)}})

o6 = map (R[Y   ..Y   ], R[T   ..T   ], {Y   , Y   , a, b, c})
             1,1   1,3      1,1   1,2     1,2   1,3

o6 : DGAlgebraMap
i7 : isWellDefined g

o7 = true

One can lift a ring homomorphism in degree zero to a map of DGAlgebras (up to a specified degree) using liftToDGMap. This is helpful in some of the internal functions of the DGAlgebras package, such as computing the map induced on Tor algebras by a RingMap.

i8 : R = ZZ/101[a,b,c]/ideal{a^3,b^3,c^3}

o8 = R

o8 : QuotientRing
i9 : S = R/ideal{a^2*b^2*c^2}

o9 = S

o9 : QuotientRing
i10 : f = map(S,R)

o10 = map (S, R, {a, b, c})

o10 : RingMap S <-- R
i11 : A = acyclicClosure(R,EndDegree=>3)

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

o11 : DGAlgebra
i12 : B = acyclicClosure(S,EndDegree=>3)

o12 = {Ring => S                                                                                                                                                                    }
       Underlying algebra => S[T   ..T   , T   ..T   , T   ..T   , T   ..T   ]
                                1,1   1,3   2,1   2,4   3,1   3,3   4,1   4,6
                                  2       2       2         2 2       2 2        2 2        2 2       2 2            2 2           2 2            2           2           2
       Differential => {a, b, c, a T   , b T   , c T   , a*b c T   , b c T   , -a b T   , -a c T   , b c T   T   , -a c T   T   , b c T   T   , -a T   T   , c T   T   , b T   T   }
                                    1,1     1,2     1,3         1,1       2,1        2,3        2,2       1,3 2,1        1,3 2,2       1,2 2,1      1,1 2,4     1,3 2,4     1,2 2,4

o12 : DGAlgebra
i13 : phi = liftToDGMap(B,A,f)

o13 = map (S[T   ..T   , T   ..T   , T   ..T   , T   ..T   ], R[T   ..T   ], {T   , T   , T   , T   , T   , T   , a, b, c})
              1,1   1,3   2,1   2,4   3,1   3,3   4,1   4,6      1,1   2,3     1,1   1,2   1,3   2,1   2,2   2,3

o13 : DGAlgebraMap

Once one has a DGAlgebraMap, one can also obtain the underlying map of complexes via toComplexMap.

i14 : cmPhi = toComplexMap(phi,EndDegree=>3)

                                          1
o14 = 0 : cokernel | a2b2c2 | <--------- R  : 0
                                 | 1 |

                                                                    3
      1 : cokernel {1} | a2b2c2 0      0      | <----------------- R  : 1
                   {1} | 0      a2b2c2 0      |    {1} | 1 0 0 |
                   {1} | 0      0      a2b2c2 |    {1} | 0 1 0 |
                                                   {1} | 0 0 1 |

                                                                                                      6
      2 : cokernel {2} | a2b2c2 0      0      0      0      0      0      | <----------------------- R  : 2
                   {2} | 0      a2b2c2 0      0      0      0      0      |    {2} | 1 0 0 0 0 0 |
                   {2} | 0      0      a2b2c2 0      0      0      0      |    {2} | 0 1 0 0 0 0 |
                   {3} | 0      0      0      a2b2c2 0      0      0      |    {2} | 0 0 1 0 0 0 |
                   {3} | 0      0      0      0      a2b2c2 0      0      |    {3} | 0 0 0 1 0 0 |
                   {3} | 0      0      0      0      0      a2b2c2 0      |    {3} | 0 0 0 0 1 0 |
                   {6} | 0      0      0      0      0      0      a2b2c2 |    {3} | 0 0 0 0 0 1 |
                                                                               {6} | 0 0 0 0 0 0 |

                                                                                                                                                                             10
      3 : cokernel {3} | a2b2c2 0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      | <------------------------------- R   : 3
                   {4} | 0      a2b2c2 0      0      0      0      0      0      0      0      0      0      0      0      0      0      |    {3} | 1 0 0 0 0 0 0 0 0 0 |
                   {4} | 0      0      a2b2c2 0      0      0      0      0      0      0      0      0      0      0      0      0      |    {4} | 0 1 0 0 0 0 0 0 0 0 |
                   {4} | 0      0      0      a2b2c2 0      0      0      0      0      0      0      0      0      0      0      0      |    {4} | 0 0 1 0 0 0 0 0 0 0 |
                   {4} | 0      0      0      0      a2b2c2 0      0      0      0      0      0      0      0      0      0      0      |    {4} | 0 0 0 1 0 0 0 0 0 0 |
                   {4} | 0      0      0      0      0      a2b2c2 0      0      0      0      0      0      0      0      0      0      |    {4} | 0 0 0 0 1 0 0 0 0 0 |
                   {4} | 0      0      0      0      0      0      a2b2c2 0      0      0      0      0      0      0      0      0      |    {4} | 0 0 0 0 0 1 0 0 0 0 |
                   {4} | 0      0      0      0      0      0      0      a2b2c2 0      0      0      0      0      0      0      0      |    {4} | 0 0 0 0 0 0 1 0 0 0 |
                   {4} | 0      0      0      0      0      0      0      0      a2b2c2 0      0      0      0      0      0      0      |    {4} | 0 0 0 0 0 0 0 1 0 0 |
                   {4} | 0      0      0      0      0      0      0      0      0      a2b2c2 0      0      0      0      0      0      |    {4} | 0 0 0 0 0 0 0 0 1 0 |
                   {7} | 0      0      0      0      0      0      0      0      0      0      a2b2c2 0      0      0      0      0      |    {4} | 0 0 0 0 0 0 0 0 0 1 |
                   {7} | 0      0      0      0      0      0      0      0      0      0      0      a2b2c2 0      0      0      0      |    {7} | 0 0 0 0 0 0 0 0 0 0 |
                   {7} | 0      0      0      0      0      0      0      0      0      0      0      0      a2b2c2 0      0      0      |    {7} | 0 0 0 0 0 0 0 0 0 0 |
                   {7} | 0      0      0      0      0      0      0      0      0      0      0      0      0      a2b2c2 0      0      |    {7} | 0 0 0 0 0 0 0 0 0 0 |
                   {7} | 0      0      0      0      0      0      0      0      0      0      0      0      0      0      a2b2c2 0      |    {7} | 0 0 0 0 0 0 0 0 0 0 |
                   {7} | 0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      a2b2c2 |    {7} | 0 0 0 0 0 0 0 0 0 0 |
                                                                                                                                              {7} | 0 0 0 0 0 0 0 0 0 0 |

o14 : ComplexMap

There are also some auxiliary commands associated with DGAlgebraMaps

i15 : source phi

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

o15 : DGAlgebra
i16 : target phi

o16 = {Ring => S                                                                                                                                                                    }
       Underlying algebra => S[T   ..T   , T   ..T   , T   ..T   , T   ..T   ]
                                1,1   1,3   2,1   2,4   3,1   3,3   4,1   4,6
                                  2       2       2         2 2       2 2        2 2        2 2       2 2            2 2           2 2            2           2           2
       Differential => {a, b, c, a T   , b T   , c T   , a*b c T   , b c T   , -a b T   , -a c T   , b c T   T   , -a c T   T   , b c T   T   , -a T   T   , c T   T   , b T   T   }
                                    1,1     1,2     1,3         1,1       2,1        2,3        2,2       1,3 2,1        1,3 2,2       1,2 2,1      1,1 2,4     1,3 2,4     1,2 2,4

o16 : DGAlgebra

One can also obtain the map on homology induced by a DGAlgebra map.

i17 : HHg = HH g
Finding easy relations           :  -- used 0.0158936s (cpu); 0.0147967s (thread); 0s (gc)

                          ZZ
                         ---[a..c]
            ZZ           101
o17 = map (---[X ..X ], ----------[X ], {X , 0, 0, 0})
           101  1   2           3   1     1
                        (c, b, a )

                                ZZ
                               ---[a..c]
               ZZ              101
o17 : RingMap ---[X ..X ] <-- ----------[X ]
              101  1   2              3   1
                              (c, b, a )
i18 : matrix HHg

o18 = | X_1 0 0 0 |

               ZZ         1       ZZ         4
o18 : Matrix (---[X ..X ])  <-- (---[X ..X ])
              101  1   2         101  1   2

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