Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have a polynomial ring $R=k[x,y,z...]$ and a given ideal $I$ (defined by given generators) and several polynomials $f_1,f_2,...$ in the ring. I also have several other elements of $R$ given as polynomials in $f_1,f_2,...$ and $x,y,z...$. I wish to determine whether these elements lie in the ideal or not. I do not have exact expressions for $f_1,f_2,...$ but I know certain relations that hold between these and the indeterminates. Now, my problem is computational. I wish to simplify the expressions I have to a more manageable form where I am able to "see" the membership. So I was wondering whether there are any softwares that will allow me to automate this. Essentially I would like to feed the relations to the software, and it should simplify the expression as much as possible using these relations. So far I have tried Maple and Matlab, but both of those require too much manual intervention. For example the expression I have may have a term like $f_1(x+f_1)$ and I have a relation $f_1^2=f_2+f_3$. Then I would like the term simplified to $xf_1+f_2+f_3$. Is there any software that might help me with this?

share|improve this question
add comment

3 Answers

Try Singular or CoCoA or Macaulay2.

share|improve this answer
Thanks. I have used Macaulay2Sage before, but I am not sure how to handle these type of problems in that. I will look at Singular and CoCoA. –  user9902 Apr 21 '11 at 17:49
@Kyle, I'm not sure they can handle your problem, but I thought I'd mention those programs just in case. –  lhf Apr 21 '11 at 17:55
add comment

Any computer algebra system supporting Grobner bases will suffice, e.g. in Macsyma

$\rm (c_1)\ \ grob\_tot\_reduce(\ f_1*(x+f_1),\ [\:f_1^2-f_2-f_3],\ [\:x,f_3,f_2,f_1]);$

$\rm(d_1)\ /R/\quad\quad\quad\quad\quad\quad\quad\quad\quad x\ f_1 + f_2 + f_3$

share|improve this answer
Thanks for the response. How do I actually get this? Do I need to define any ambient ring or something. When I typed the above command in Macsyma, the output was exactly what I had typed. Nothing else. –  user9902 Apr 21 '11 at 19:34
Never mind that. What I downloaded was Maxima which is based on Macsyma. I don't have access to Macysma, so I will keep looking for another way. –  user9902 Apr 21 '11 at 19:40
If you're using the free version Maxima then you may need to load grobner first (googling shows it does have some version of grobner). Alas, I don't recall the differences (Maxima is based on a very old version of Macsyma). Try the support email list sourceforge.net/mail/?group_id=4933 –  Bill Dubuque Apr 21 '11 at 19:40
Thanks again, Bill. Douglas Leonard over at Macaulay2 google group helped me with the relevant Macaulay2 code, which solves my problem. –  user9902 Apr 21 '11 at 21:20
add comment

In Maple you could use simplify with respect to side relations: http://www.maplesoft.com/support/help/Maple/view.aspx?path=simplify%2Fsiderels

The input for your example would be: simplify( f1*(x+f1), [f1^2 = f2+f3] );

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.