If I want to first simplify the presentation of the module, which of
these functions work for local rings: prune, trim, or localPrune from
the LocalRings package? I'm asking because I ran into the following
behavior, which I think is a known problem with 'prune' in M2 version
1.3.1:
i1 : R=QQ[x,y,MonomialOrder=>RevLex,Global=>false];
i2 : N=coker matrix {{1+x,1+x},{1+x,1+y}};
i3 : M=prune N
o3 = cokernel | y-x x+xy |
1
o3 : R-module, quotient of R
i4 : basis(N)
stdio:4:1:(3):[0]: error: module given is not finite over the base
i5 : basis(M)
o5 = | 1 |
o5 : Matrix
If N and M were isomorphic, then they should have the same dimension
as QQ vector spaces. I believe that 'basis' is giving correct
answers, but that 'prune N' is giving a module which is not isomorphic
to N (but M is "close": N is isomorphic to coker matrix {{y-x}}).
This sort of behavior is documented in
http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.3.1/share/doc/Macaulay2/Macaulay2Doc/html/___Singular_sp__Book_sp2.1.34.html
but should probably be in the documentation for
minimalPresentation(Module). Really, M2 should give a warning if the
answer it gives may not be correct, just as it does for calculations
over CC.
So: how much of Macaulay 2 has been implemented for local ring
orderings? What's the difference between using built-in M2 functions
with a local ordering for the ring, or using the functions in
LocalRings?
Thanks,
Brian Pike