Elimination of variables in polynomial equation

Hi, I'm trying to eliminate 5 variables from a system of 6 equations in 7 unknowns, to obtain a planar curve. Am I asking for too much?

This is what I tried:

R.<x,v,c1,c2,c3,c4,c5> = PolynomialRing(QQ)
p0 = -16*c1*c2*c3*c4*c5+16*v
p1 = 16*c1*c2*c3*c4-16*(-c1*c2*c3-(c1*c2-(-c1-c2)*c3)*c4)*c5+40*v
p2 = -16*c1*c2*c3-16*(c1*c2-(-c1-c2)*c3)*c4-16*(c1*c2-(-c1-c2)*c3-(-c1-c2-c3)*c4)*c5+25*v
p3 = 16*c1*c2-16*(-c1-c2)*c3-16*(-c1-c2-c3)*c4-16*(-c1-c2-c3-c4)*c5-25;
p4 = -16*c1-16*c2-16*c3-16*c4-16*c5-40
I = ideal((c1-c3)*(c2-c4)-x*(c1-c4)*(c2-c3),p0,p1,p2,p3,p4)
J = I.elimination_ideal([c1,c2,c3,c4,c5])


Note that the system is symmetric in permutations of c1...c5, except for one equation that says that x is the cross-ratio of c1...c4.

I'm all the more embarrassed because I already computed the solution some time ago, but forgot how: it should be a polynomial J of degree 30 in v and 16 in x.

Many thanks in advance! Laurent

edit retag close merge delete

This should work. What happens ? Just takes too long ?

( 2016-03-09 17:52:03 +0200 )edit

It's been running for a day without success. I remember that I had gotten something similar to work in less than an hour, in 2013; but too many of my brain cells died since then. Note that I.elimination_ideal([c1,c2]) already fails. I suspect that it should be possible to use the symmetry of the polynomials in some way or other.

( 2016-03-09 22:06:52 +0200 )edit

Sort by » oldest newest most voted

Ideally, FGb should be included in Singular or Sage but it is closed source... However it is still possible to interface it with Sage ! There seems to be a C library, so it should not be too hard with cython. If you feel able to do that by yourself, that would be an awesome contribution, you can have a first look at http://doc.sagemath.org/html/en/thema... We can help you in the process of letting your work enter Sage source code.

EDIT Regarding the computation of the Groebner basis of this ideal, actually there is a way to let Sage compute it, using the interface with giac:

First install giacpy from your terminal:

sage -i giacpy


Then, you can get the Groebner Basis (in about one minute) from within Sage as follows:

sage: G = I.groebner_basis(algorithm='giac:gbasis')

more

What is the policy (if there is one) about including some compiled non-free C library into Sage? I guess that to distribute FGb with Sage, it would be necessary to get the permission from J.-C. Faugère at least.

( 2016-03-11 09:03:14 +0200 )edit

@Bruno : since FGb is closed-source, it is not possible to include it in Sage or Singular. However, an interface could be part of Sage (if GPL), and the binary could be downloaded directly by the user.

( 2016-05-11 17:35:52 +0200 )edit

I was informed by Pierre-Jean Spaenlehauer that the Gröbner basis code in FGb solves the problem in about a minute.

more