Ask Your Question

How to add term order to free module?

asked 2010-12-12 11:51:06 -0600

Jeff Stroomer gravatar image

updated 2010-12-15 02:02:21 -0600

niles gravatar image

I am working with a free module over a ring of polynomials, and need more than what's available in FreeModule. To be specific, I want to define an order on the terms in the module (think term orders for Grobner bases), and then to be able to obtain leading monomials of module elements.

I tried to augment sage.modules.free_module_element.FreeModuleElement.__bases__ with my own mix-in as described in the tutorial, but apparently FreeModuleElement cannot be augmented in this way.

Presumably I could also put together derived classes for FreeModule and FreeModuleElement, but I'm somewhat up in the air as how to do this.

I considered augmenting my ring of polynomials with extra variables as a back-door way to produce my free module, but the term orders available in polynomial rings are not general enough for my application.

Any suggestions? So far I have worked around the problem, but it's ugly.

edit retag flag offensive close merge delete


Have you tried "CombinatorialFreeModule" instead of "FreeModule"? For giving elements names, for example, it's very good, and it might suit your needs.

John Palmieri gravatar imageJohn Palmieri ( 2010-12-12 14:59:33 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2010-12-14 03:29:42 -0600

Jason Bandlow gravatar image

updated 2010-12-14 03:31:30 -0600

To slightly elaborate on John's comment, "CombinatorialFreeModule" allows you to specify an arbitrary comparison function on the elements. Here is a sample doctest from sage.categories.modules_with_basis :

            sage: X = CombinatorialFreeModule(QQ, [1, 2, 3]); X.rename("X")
            sage: x = 3*X.monomial(1) + 2*X.monomial(2) + X.monomial(3)
            sage: x.leading_monomial()
            sage: def cmp(x,y): return y-x
            sage: x.leading_monomial(cmp=cmp)
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2010-12-12 11:51:06 -0600

Seen: 145 times

Last updated: Dec 15 '10