# Revision history [back]

The simplest way is to do it during the Gröbner basis computation, e.g. in Buchberger's algorithm. I will repeat that 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.

The simplest way is to do it during the Gröbner basis computation, e.g. in Buchberger's algorithm. I will repeat that 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.generators or an ideal:

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

The simplest way is to do it during the Gröbner basis computation, e.g. in Buchberger's algorithm. I will repeat that 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.

The simplest way is to do it during the Gröbner basis computation, e.g. in Buchberger's algorithm. I will repeat that it's 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.