First time here? Check out the FAQ!

Ask Your Question
1

Express Groebner basis in terms of original basis

asked 5 years ago

hshackle gravatar image

Working with a polynomial ring R, if I have an ideal generated by a set of polynomials fi (taking two for concreteness), I can obtain a Groebner basis gj by the commands

I = R.ideal([f1, f2])
g = I.groebner_basis()

What I want to do is express the Groebner basis in terms of the original basis, i.e. gj=iaijfi. How can I accomplish this in Sage? My understanding is that such an expression is calculated implicitly when the Groebner basis is calculated, so perhaps it is possible to recover it directly from the algorithm.

Preview: (hide)

2 Answers

Sort by » oldest newest most voted
1

answered 5 years ago

rburing gravatar image

updated 5 years ago

The simplest way is to do it during the Gröbner basis computation, e.g. in Buchberger's algorithm. It's possible to implement this in a few lines in SageMath.

As an alternative you can use the lift method on a polynomial, passing it a list of generators or an ideal:

sage: R.<x,y> = QQ[] 
sage: f = x^2 - y^2
sage: f.lift(R.ideal([x, y]))
[x, -y]

Keep in mind that the solution is generally not unique due to the existence of syzygies between the generators.

Preview: (hide)
link

Comments

Hi! May I ask how to implement it during groebner basis computation as you said? since in my case, the function .lift() took too much time...

jane gravatar imagejane ( 2 years ago )
1

answered 5 years ago

nbruin gravatar image

I think the quick way for this is to carry around marker variables, say b1,b2 and then compute the groebner basis of the ideal (b1-f1,b2-f2), making sure you have a block order that prioritizes the original variables (that occur in f1,f2). You can then see in the resulting basis from the part of the polynomials in the b1,b2 how your original generators were combined. It's comparable to the trick of augmenting a matrix for Gaussian elimination to find the transformation that gets you there (i.e., the inverse of the matrix).

Preview: (hide)
link

Comments

This is usable but not very convenient when you get e.g. b1^3 in the result; this is more suited for a subalgebra test.

rburing gravatar imagerburing ( 5 years ago )

It may not be convenient but it does exactly reflect what happens: to obtain that relation, you'd need to take f1^3 in terms of your original basis.

nbruin gravatar imagenbruin ( 5 years ago )

Your Answer

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

Add Answer

Question Tools

2 followers

Stats

Asked: 5 years ago

Seen: 567 times

Last updated: Apr 02 '20