This package includes various methods for pruning chain complexes over polynomial and local rings. In particular, in the local or graded case the output is guaranteed to be a minimal free resolution.
Algorithms in this package are also implemented using C++ in e/mutablecomplex.hpp for speed.
R = ZZ/32003[vars(0..17)]; |
m1 = genericMatrix(R,a,3,3) |
m2 = genericMatrix(R,j,3,3) |
I = ideal(m1*m2-m2*m1) |
Here we produce an intentionally nonminimal resolution:
C = res(I, FastNonminimal=>true) |
Now we prune the resolution above to get a minimal resolution:
D = pruneComplex(C, UnitTest => isScalar) |
isCommutative D.cache.pruningMap |
betti D == betti res I |
Only supports localization at prime ideals.