Ask Your Question

Rewriting linear combination of Groebner basis in terms of original terms

asked 2020-09-02 23:41:22 +0200

whatupmatt gravatar image

Let assume I have an ideal given by

x,y,z = QQ['x,y,z'].gens()
I = ideal(f1,f2,f3)
B = I.groebner_basis()

where f1,f2,f3 are just polynomials in variables x,y,z. Let's say B=(g1,g2).

Let's assume I happen to take a polynomial,h, that is in my ideal I. Then doing polynomial division, I can write


Basically I can write h as a linear combination of the elements in my Groebner basis. Is there a function that converts a linear combination in terms of Groebner to linear combination of terms in my ideal I? i.e.I can write

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-09-03 06:38:33 +0200

dan_fulea gravatar image

This answer ignores completely the Groebner basis. Just "lift" the corresponding element.

In an example:

R.<x,y,z> = QQ[]
f1, f2, f3 = (x + y + z)^2, x*y + y*z + z*x, x^3 + y^3 + z^3
J = R.ideal([f1, f2, f3])
h = x*y*z
print("Is h in J? {}".format(h in J))
q1, q2, q3 = h.lift(J)
print(f"q1 = {q1}\nq2 = {q2}\nq3 = {q3}")

This gives:

Is h in J? True
q1 = -1/3*x - 1/3*y - 1/3*z
q2 = x + y + z
q3 = 1/3

We have

sage: h == f1*q1 + f2*q2 + f3*q3

The line answering the question is q1, q2, q3 = h.lift(J).

edit flag offensive delete link more


This might be a harder question but what if I have something that is not in the Ideal? Is there a function that extracts the Ideal part? I believe I will need Groebner basis for that. Basically, the ideal part is when I divide out by the Groebner basis and the remainder is the non-Ideal part. Just wondering if there was a function that immediately does this.

whatupmatt gravatar imagewhatupmatt ( 2020-09-04 01:47:11 +0200 )edit

Hi! May I ask a question that why h.lift(J) seems to take huge amount of time but sage could tell us whether h is in J within a second? Here in my case J may be an ideal with more that 15 generators in a polynomial ring with 16 variables. I suppose when sage is checking whether h is in J, it should have a representation of h (though maybe wrt the Groebner basis). Thanks!

jane gravatar imagejane ( 2022-10-19 18:07:15 +0200 )edit

Your Answer

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

Add Answer

Question Tools

1 follower


Asked: 2020-09-02 23:41:22 +0200

Seen: 180 times

Last updated: Sep 03 '20