If the Module
M is graded then the module
N is a minimal presentation of
M. If not, then an attempt is made to improve the presentation of
M. An example follows.
i1 : R = ZZ/32003[a..d];
|
i2 : M = coker matrix {{a,1,b},{c,3,b+d}}
o2 = cokernel | a 1 b |
| c 3 b+d |
2
o2 : R-module, quotient of R
|
i3 : N = minimalPresentation M
o3 = cokernel | b+16001d a-10668c |
1
o3 : R-module, quotient of R
|
i4 : peek N.cache
o4 = CacheTable{pruningMap => | -10668 |}
| 0 |
|
i5 : g = N.cache.pruningMap
o5 = | -10668 |
| 0 |
o5 : Matrix
|
i6 : g^-1
o6 = | -3 1 |
o6 : Matrix
|
This function also works when M is
a graded module,
a chain complex, or
a coherent sheaf.
i7 : I = ideal(a^2,b^3,c^4,d^7)
2 3 4 7
o7 = ideal (a , b , c , d )
o7 : Ideal of R
|
i8 : X = Proj R
o8 = X
o8 : ProjectiveVariety
|
i9 : J = (module I)~
o9 = image | a2 b3 c4 d7 |
1
o9 : coherent sheaf on X, subsheaf of OO
X
|
i10 : minimalPresentation J
1
o10 = OO
X
o10 : coherent sheaf on X, free
|