S = dgSubmodule(M, incMat)S = dgSubmodule(M, gs)The constructor iteratively adjoins the M-differentials of the current generators until the column span is closed, then builds the lifted differential on the resulting free module. If d-closure fails to stabilize within 200 iterations, an error is raised — in practice this only happens if the ambient module has unbounded homological degree and the seed is chosen poorly.
|
|
|
|
|
|
|
The list form coerces each entry to an element of M.natural; passing the empty list produces the zero submodule.
|
|
|
d-closure is performed automatically. Seeding with a non-closed generator pulls in its M-differential:
|
|
|
|
|
|
|
|
|
In a richer setting, consider the minimal semifree resolution of the residue field over the complete intersection R = QQ[x, y]/(x^2, y^2). Seeding the submodule with the hom-degree-2 natural generators, d-closure automatically pulls in the hom-degree-4 generators that sit below them in the Koszul-style differential:
|
|
|
|
|
|
|
|
|
The target of the inclusion matrix must be M.natural on the nose (object identity, not just isomorphism). This catches common shape mistakes up front — for example, building matrix {{a, b}} for a rank-n ambient produces a 1×2 matrix whose target is rank 1, not rank n.
The object dgSubmodule 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:3197:0.