# Revision history [back]

The usual solution for groebner bases is to just throw the variables in the ring:

sage: R.<x1,y1,x2,y2,x3,y3,x0,y0> = PolynomialRing(QQ, order='lex')


It may be worth experimenting a little with what weight you want to give these variables, but probably a low weight (as above) is good: they are parameters to you, so you don't care to what degree they occur. In particular, they shouldn't be eliminated anywhere at the cost of letting other variables occur to higher degrees.

This is usually enough to get what you want, but it's not the same as having x0,y0 invertible. If you really want to work in the polynomial ring over the fraction field of QQ[x0,y0], then you can write

sage: R.<x1,y1,x2,y2,x3,y3,x0i,y0i,x0,y0> = PolynomialRing(QQ, order='lex')


and add the relations x0*x0i-1, y0*y0i-1 to your ideal.

You may want to experiment with variable ordering to see which gives you the best result (if you have to freedom to choose anything else then lexicographic)