Vector space dimension of a module over a local ring

217 views
Skip to first unread message

Brian Pike

unread,
Sep 3, 2010, 11:55:27 AM9/3/10
to maca...@googlegroups.com
Hello,
I would like to calculate the vector space dimension of a module over
a local ring, similar to 'vdim' in Singular. (For example, to compute
the Milnor number of an isolated hypersurface singularity defined by a
polynomial.) Should 'numColumns basis N' work for such a module N, as
long as I use a local ordering of the monomials for my ring?

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

Reply all
Reply to author
Forward
0 new messages