Macaulay2 » Documentation
Packages » DGAlgebras » Low-level differential computations and validity checks » isDGSubmodule
next | previous | forward | backward | up | index | toc

isDGSubmodule -- Test whether the image of an inclusion matrix is d-closed

Description

isDGSubmodule checks whether a matrix of candidate generators spans a DG submodule: it assembles d_M applied column-wise and then verifies that the result lies in the column span of incMat via a single // solve. Unlike dgSubmodule, it does not saturate: a submodule that is not d-closed is reported as such rather than enlarged. The empty matrix is always d-closed.

i1 : R = ZZ/101[x]

o1 = R

o1 : PolynomialRing
i2 : A = koszulComplexDGA R

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

o2 : DGAlgebra
i3 : M = freeDGModule(A, {0, 1})

o3 = {Base ring => R                       }
      DG algebra => R[T   ]
                       1,1
                                 2
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}, {1, 0}}
      Differentials on gens => {0, 0}

o3 : DGModule
i4 : natGens = apply(rank M.natural, i -> (M.natural)_i)

o4 = {| 1 |, | 0 |}
      | 0 |  | 1 |

o4 : List
i5 : setDiff(M, {0, x * natGens#0})

o5 = {Base ring => R                       }
      DG algebra => R[T   ]
                       1,1
                                 2
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}, {1, 0}}
      Differentials on gens => {0, | x |}
                                   | 0 |

o5 : DGModule
i6 : idM = identityDGModuleMap M

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

o6 : DGModuleMap
i7 : imF = image idM

o7 = DGSubmodule of ambient DGModule
     Degrees  => {{0, 0}, {1, 0}}
                          2
     natural  => (R[T   ])
                     1,1
     inclusion => {0, 0} | 1 0 |
                  {1, 0} | 0 1 |

o7 : DGSubmodule
i8 : assert(isDGSubmodule(target idM, (inclusion imF).natural))
i9 : kerF = kernel idM

o9 = DGSubmodule of ambient DGModule
     Degrees  => {}
     natural  => 0
     inclusion => 0

o9 : DGSubmodule
i10 : assert(isDGSubmodule(source idM, (inclusion kerF).natural))

See also

Ways to use isDGSubmodule:

  • isDGSubmodule(DGModule,Matrix)

For the programmer

The object isDGSubmodule 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:7103:0.