Gröbner basis on a particular set of equations

This question is very similar in gist to equation solving with GroebnerBasis, but hopefully when I say that I make the system a little larger I mean little. I have uploaded the code here for those who are trusting enough to download it. There is a lot of code, and my question of interest is related to the particular system of equations in my uploaded notebook, but I will try to give the general gist here.

I have a system of 20 polynomials and 13 variables. If I make one of these variables 0, the GroebnerBasis computes instantly. If I do not, the GroebnerBasis process maxes out 8GB of RAM after a day or two. I'm interested in knowing what characteristic of the more general set of polynomials is causing the GroebnerBasis process to take so long.

As you will see if you download the notebook, the system of equations is generated through an iterative process, and I can generate as many polynomials as desired (although they do get more and more complicated). If you have downloaded the notebook, you can generate more polynomials by adjusting the iterate[22222] command to, say, iterate[222222]. A solution is guaranteed, due to Hilbert's Nullstellensatz (and more specifically in this case because I am able to explicitly show such a solution when I set a particular variable equal to zero).

The question I initially referenced uses a few commands (CoefficientArrays in particular), and I am curious if the output of those commands would be at all useful in my problem, though I don't know what to look for (and that is the more general gist of my question). I guess what I'm hoping is that someone can tell me, "Ah, yes, when that variable is not zero your system is .... < insert property here >, so a Gröbner basis will be very difficult to compute".

By request, I added my code inline here:

deg = 3;
d = Table[
x^i*y^j*z^k, {i, 0, deg}, {j, 0, deg - i}, {k, 0, deg - i - j}];
d = Flatten[d];
v = Table[a[i], {i, 1, Length[d]}];
f = d.v;
cf = CoefficientList[f, {x, y, z}];
Evaluate[cf[[1]][[1]][[1]]] = 0;
Evaluate[cf[[2]][[1]][[1]]] = 0;
Evaluate[cf[[1]][[2]][[1]]] = 0;
Evaluate[cf[[1]][[1]][[2]]] = 1;
Evaluate[cf[[2]][[2]][[1]]] = 0;

cf[[3]][[1]][[1]]
cf[[1]][[3]][[1]]

(* a[17] and a[8] are dependant on a principal curvature assumption. *)

fx = D[f, x];
fy = D[f, y];
fz = D[f, z];
Nf = fx^2 + fy^2 + fz^2;
Lf = D[fx, x] + D[fy, y] + D[fz, z];
NNfNf = fx*D[Nf, x] + fy*D[Nf, y] + fz*D[Nf, z];
g = 2*Nf*Lf - NNfNf - 4*(Nf)^(3/2);
G[0] = g;
Q[0] = Block[{x = 0, y = 0, z = 0}, Simplify[G[0]]]

(* We want Q[0] to be zero, so at the very least we can make the \
following substitution: *)
a[17] = 1 - a[8];

cross1[h_] := D[h, y]*fz - D[h, z]*fy
cross2[h_] := D[h, z]*fx - D[h, x]*fz

nextIndex[index_] := (in = index;
rem = Mod[in, 10];
If[rem != 2, Return[in + 1],
retindex = nextIndex[(in - rem)/10];
Return[retindex*10 + Mod[retindex, 10]]
];
)

stats[letter_, index_] :=
Print[letter <> "[" <>
ToString[
NumberForm[index, DigitBlock -> 3, NumberSeparator -> " "]] <>
"] (" <> ToString[TimeUsed[]] <> " / " <>
ToString[
NumberForm[MemoryInUse[], DigitBlock -> 3,
NumberSeparator -> " "]] <> " / " <>
ToString[
NumberForm[MaxMemoryUsed[], DigitBlock -> 3,
NumberSeparator -> " "]] <> ")"];

Gdone = {};
Qdone = {};

iterate[num_] := (i = 0;
While[i < num,
i = nextIndex[i];
stats["G", i];
If [Mod[i, 10] == 1, G[i] = cross1[G[(i - Mod[i, 10])/10]],
G[i] = cross2[G[(i - Mod[i, 10])/10]]];
AppendTo[Gdone, i];
stats["Q", i];
Q[i] = Block[{x = 0, y = 0, z = 0}, Simplify[G[i]]];
AppendTo[Qdone, i];
];
)

iterate[22222]

q = Table[Q[Qdone[[i]]], {i, Length[Qdone]}];

r = q /. {a[8] -> 0};

GroebnerBasis[r, Variables[r]]

GroebnerBasis[q, Variables[q]]


It was designed to be taken in steps, so running it all in one cell may not be very enlightening, but you have the notebook file above if you want it spaced out as well.

-
Michael, the mediafire link is broken; would you re-upload the file for context? –  Mr.Wizard Jun 10 '12 at 9:09
@Mr.Wizard Sure - before I upload it to mediafire again, what's the preferred way to do this? Presumably this site may have many situations requiring attachments of code, is there a suggested way to upload it, or a preferred third-party host? –  Michael Boratko Jun 12 '12 at 2:24
I don't know. That sounds like a good question for Meta. –  Mr.Wizard Jun 12 '12 at 4:38
@Mr.Wizard Followed the suggestion here, which was to put it on github. It's a notebook file (.nb), not raw code, so you'll still have to download it and run it. Incidentally, I ended up using Singular's modStd command, which handled it with aplomb. –  Michael Boratko Jun 12 '12 at 4:57
@MichaelBoratko Instead of uploading the notebook, which also includes all the cell box data, cache info, etc., could you just paste the input form or plain text version of the commands you used? –  rm -rf Jun 12 '12 at 5:01
show 1 more comment

Your question cannot realistically be answered. One almost never knows what specifically comprises such an impediment.

Here is a Groebner basis for your system of polynomials, computed for degree reverse lexicographic order. It takes some time to do this. Not sure if it will run in reasonable time directly; I used a numeric approximation and rationalized (have not validated the result but I'm fairly sure it is correct).

gb2 = {a[15], (-3*a[12])/2 + a[8]*a[12] + a[16]/2 + (3*a[20])/2, a[6]/2 + a[6]*a[8] - (3*a[10])/2 - a[19]/2,
(-17*a[6])/18 - (35*a[7])/9 + (23*a[10])/6 + a[8]*a[10] + (29*a[19])/6 - (61*a[8]*a[19])/9,
(17*a[12])/18 + (35*a[13])/9 + (35*a[16])/18 - (61*a[8]*a[16])/9 - (29*a[20])/6 + a[8]*a[20],
-a[12]/3 + (5*a[13])/6 + a[8]*a[13] + (7*a[16])/6 - (8*a[8]*a[16])/3 - a[20]/2,
a[6]/3 - (11*a[7])/6 + a[7]*a[8] + a[10]/2 + (3*a[19])/2 - (8*a[8]*a[19])/3, -(a[6]*a[12]) + a[10]*a[12] + a[12]*a[19],
(52*a[12])/21 - a[3]*a[12] + a[9]*a[12] + (125*a[13])/21 + (52*a[16])/21 - (208*a[8]*a[16])/21 + a[12]*a[18] - (52*a[20])/7,
-(a[6]*a[12]) + a[6]*a[16] + a[12]*a[19], -(a[12]*a[19]) + a[6]*a[20], (52*a[6])/21 - a[3]*a[6] + (125*a[7])/21 + a[6]*a[9] -
(52*a[10])/7 + a[6]*a[18] - (52*a[19])/7 + (208*a[8]*a[19])/21, -(a[7]*a[12]) + a[6]*a[13],
(24*a[6])/7 - a[3]*a[6] + (115*a[7])/28 + a[6]*a[9] - (183*a[10])/28 - (211*a[19])/28 + a[3]*a[19] + (101*a[8]*a[19])/14,
(-202*a[6])/63 - (1805*a[7])/252 - a[6]*a[9] + (787*a[10])/84 + a[3]*a[10] + (871*a[19])/84 - (1679*a[8]*a[19])/126,
(20*a[12])/21 - a[9]*a[12] - (155*a[13])/84 - (235*a[16])/84 + a[3]*a[16] + (113*a[8]*a[16])/42 + (25*a[20])/28,
(-46*a[12])/63 - a[3]*a[12] + a[9]*a[12] - (305*a[13])/252 - (121*a[16])/252 + (431*a[8]*a[16])/126 + (163*a[20])/84 +
a[3]*a[20], (-47*a[12])/42 - a[4]*a[12] - (199*a[13])/42 + a[3]*a[13] - (34*a[16])/21 + (136*a[8]*a[16])/21 + (34*a[20])/7,
(-47*a[6])/42 - a[4]*a[6] - (199*a[7])/42 + a[3]*a[7] + (34*a[10])/7 + (34*a[19])/7 - (136*a[8]*a[19])/21,
(22*a[6]^2)/105 + (a[6]*a[7])/3 - (19*a[6]*a[10])/35 - (92*a[6]*a[19])/105 + a[10]*a[19] + a[19]^2/3,
(a[6]*a[12])/3 - (a[7]*a[12])/3 - a[12]*a[19] + (a[16]*a[19])/3 + a[19]*a[20],
(121*a[6])/84 - (a[3]*a[6])/2 + (a[4]*a[6])/2 + (253*a[7])/168 - (137*a[10])/56 - (137*a[19])/56 + (169*a[8]*a[19])/84 +
a[9]*a[19], (377*a[6])/84 - (a[3]*a[6])/2 - (a[4]*a[6])/2 + (1277*a[7])/168 + a[6]*a[9] - (649*a[10])/56 - (649*a[19])/56 +
(1193*a[8]*a[19])/84 + a[18]*a[19], (a[6]*a[12])/2 - (a[7]*a[12])/2 - a[12]*a[19] + a[13]*a[19],
(23*a[6]^2)/70 - (a[6]*a[7])/2 + (6*a[6]*a[10])/35 - (29*a[6]*a[19])/35 + a[7]*a[19],
(26627*a[6])/8064 - (a[3]*a[6])/2 - (a[4]*a[6])/2 + (73307*a[7])/16128 + a[6]*a[9] - (39499*a[10])/5376 -
(39499*a[19])/5376 + a[4]*a[19] + (65243*a[8]*a[19])/8064, (227*a[6]^2)/315 - (4*a[6]*a[7])/9 - (134*a[6]*a[10])/105 +
a[10]^2 - (52*a[6]*a[19])/315 - a[19]^2/9, (-2*a[6]*a[12])/3 - (a[7]*a[12])/3 + a[10]*a[16] + a[12]*a[19] + (a[16]*a[19])/3,
(-4*a[6]*a[12])/9 + (4*a[7]*a[12])/9 - (a[16]*a[19])/9 + a[10]*a[20], (-713*a[6])/252 + (a[3]*a[6])/2 - (a[4]*a[6])/2 -
(2789*a[7])/504 - a[6]*a[9] + (1321*a[10])/168 + a[9]*a[10] + (1321*a[19])/168 - (2537*a[8]*a[19])/252,
(263*a[6])/252 - (a[3]*a[6])/2 + (a[4]*a[6])/2 + (1619*a[7])/504 - (631*a[10])/168 + a[10]*a[18] - (631*a[19])/168 +
(1367*a[8]*a[19])/252, -(a[6]*a[12])/2 - (a[7]*a[12])/2 + a[10]*a[13] + a[12]*a[19],
(47*a[6]^2)/70 - (a[6]*a[7])/2 - (41*a[6]*a[10])/35 + a[7]*a[10] - (6*a[6]*a[19])/35,
(-86531*a[6])/24192 + (a[3]*a[6])/2 - (a[4]*a[6])/2 - (329051*a[7])/48384 - a[6]*a[9] + (159307*a[10])/16128 + a[4]*a[10] +
(159307*a[19])/16128 - (304859*a[8]*a[19])/24192, (22*a[12]^2)/105 + (a[12]*a[13])/3 - (92*a[12]*a[16])/105 + a[16]^2/3 -
(19*a[12]*a[20])/35 + a[16]*a[20], (169*a[12])/84 + (a[3]*a[12])/2 - (a[4]*a[12])/2 - a[9]*a[12] + (277*a[13])/168 +
(23*a[16])/168 - (361*a[8]*a[16])/84 + a[9]*a[16] - (233*a[20])/56, (121*a[12])/84 - (a[3]*a[12])/2 + (a[4]*a[12])/2 +
(253*a[13])/168 - (73*a[16])/168 - (169*a[8]*a[16])/84 + a[16]*a[18] - (137*a[20])/56,
(23*a[12]^2)/70 - (a[12]*a[13])/2 - (29*a[12]*a[16])/35 + a[13]*a[16] + (6*a[12]*a[20])/35,
-(a[6]*a[12])/2 - (a[7]*a[12])/2 + a[7]*a[16] + a[12]*a[19], (6659*a[12])/8064 + (a[3]*a[12])/2 - (a[4]*a[12])/2 -
a[9]*a[12] - (22693*a[13])/16128 - (27947*a[16])/16128 + a[4]*a[16] + (14629*a[8]*a[16])/8064 + (437*a[20])/5376,
(227*a[12]^2)/315 - (4*a[12]*a[13])/9 - (52*a[12]*a[16])/315 - a[16]^2/9 - (134*a[12]*a[20])/105 + a[20]^2,
(263*a[12])/252 - (a[3]*a[12])/2 + (a[4]*a[12])/2 + (1619*a[13])/504 + (841*a[16])/504 - (1367*a[8]*a[16])/252 -
(631*a[20])/168 + a[9]*a[20], (-89*a[12])/252 - (a[3]*a[12])/2 - (a[4]*a[12])/2 + a[9]*a[12] + (211*a[13])/504 +
(137*a[16])/504 + (41*a[8]*a[16])/252 + (73*a[20])/168 + a[18]*a[20],
(47*a[12]^2)/70 - (a[12]*a[13])/2 - (6*a[12]*a[16])/35 - (41*a[12]*a[20])/35 + a[13]*a[20],
(a[6]*a[12])/2 - (a[7]*a[12])/2 - a[12]*a[19] + a[7]*a[20], (-26627*a[12])/24192 - (a[3]*a[12])/2 - (a[4]*a[12])/2 +
a[9]*a[12] - (41051*a[13])/48384 - (11989*a[16])/48384 + (65243*a[8]*a[16])/24192 + (39499*a[20])/16128 + a[4]*a[20],
(2*a[12])/7 + (a[3]*a[12])/2 - (a[4]*a[12])/2 - a[9]*a[12] + a[13]/14 + a[9]*a[13] + (2*a[16])/7 - (8*a[8]*a[16])/7 -
(6*a[20])/7, (-26*a[6])/21 + (a[3]*a[6])/2 - (a[4]*a[6])/2 - (125*a[7])/42 - a[6]*a[9] + a[7]*a[9] + (26*a[10])/7 +
(26*a[19])/7 - (104*a[8]*a[19])/21, 1733/1602 - (641*a[3])/534 + (95*a[3]^2)/801 + (3775*a[4])/801 - (440*a[3]*a[4])/267 +
(94481*a[6]^2)/100926 - (7325*a[6]*a[7])/14418 - (182*a[8])/89 + (182*a[8]^2)/89 + (67*a[9])/178 + (424*a[3]*a[9])/801 -
(803*a[8]*a[9])/267 + a[9]^2 - (7201*a[6]*a[10])/16821 + (94481*a[12]^2)/100926 - (7325*a[12]*a[13])/14418 -
(72878*a[12]*a[16])/50463 + (7325*a[16]^2)/7209 - (1405*a[18])/534 + (424*a[3]*a[18])/801 + (803*a[8]*a[18])/267 -
(346*a[9]*a[18])/267 + a[18]^2 - (72878*a[6]*a[19])/50463 + (7325*a[19]^2)/7209 - (7201*a[12]*a[20])/16821,
(26*a[12])/21 - (a[3]*a[12])/2 - (a[4]*a[12])/2 + a[9]*a[12] + (125*a[13])/42 + (26*a[16])/21 - (104*a[8]*a[16])/21 +
a[13]*a[18] - (26*a[20])/7, (58*a[6])/21 - (a[3]*a[6])/2 - (a[4]*a[6])/2 + (253*a[7])/42 + a[6]*a[9] - (58*a[10])/7 +
a[7]*a[18] - (58*a[19])/7 + (232*a[8]*a[19])/21, -5455/12816 + (1931*a[3])/4272 - (169*a[3]^2)/6408 + (1627*a[4])/1602 -
(572*a[3]*a[4])/267 - (39349*a[6]^2)/807408 + (23765*a[6]*a[7])/57672 + (881*a[8])/1068 - (881*a[8]^2)/1068 -
(2169*a[9])/1424 + (7489*a[3]*a[9])/6408 + a[4]*a[9] + (2311*a[8]*a[9])/2136 - (97787*a[6]*a[10])/269136 -
(39349*a[12]^2)/807408 + (23765*a[12]*a[13])/57672 + (372059*a[12]*a[16])/807408 - (23765*a[16]^2)/28836 -
(1885*a[18])/4272 + (7489*a[3]*a[18])/6408 + a[4]*a[18] - (2311*a[8]*a[18])/2136 - (610*a[9]*a[18])/267 +
(372059*a[6]*a[19])/807408 - (23765*a[19]^2)/28836 - (97787*a[12]*a[20])/269136,
(47*a[12]^2)/70 - (3*a[12]*a[13])/2 + a[13]^2 - (6*a[12]*a[16])/35 - (6*a[12]*a[20])/35,
(a[6]*a[12])/2 - (3*a[7]*a[12])/2 + a[7]*a[13], (-26*a[12])/21 + (a[3]*a[12])/2 - (3*a[4]*a[12])/2 - (125*a[13])/42 +
a[4]*a[13] - (26*a[16])/21 + (104*a[8]*a[16])/21 + (26*a[20])/7, (47*a[6]^2)/70 - (3*a[6]*a[7])/2 + a[7]^2 -
(6*a[6]*a[10])/35 - (6*a[6]*a[19])/35, (-26*a[6])/21 + (a[3]*a[6])/2 - (3*a[4]*a[6])/2 - (125*a[7])/42 + a[4]*a[7] +
(26*a[10])/7 + (26*a[19])/7 - (104*a[8]*a[19])/21, -63037/230688 + (24473*a[3])/76896 - (5191*a[3]^2)/115344 +
(77081*a[4])/57672 - (10073*a[3]*a[4])/4806 + a[4]^2 - (20304931*a[6]^2)/581333760 + (7875295*a[6]*a[7])/33219072 +
(9641*a[8])/19224 - (9641*a[8]^2)/19224 - (3891*a[9])/2848 + (131599*a[3]*a[9])/115344 + (29083*a[8]*a[9])/38448 -
(78341821*a[6]*a[10])/387555840 - (20304931*a[12]^2)/581333760 + (7875295*a[12]*a[13])/33219072 +
(316245187*a[12]*a[16])/1162667520 - (7875295*a[16]^2)/16609536 - (46891*a[18])/76896 + (131599*a[3]*a[18])/115344 -
(29083*a[8]*a[18])/38448 - (2864*a[9]*a[18])/2403 + (316245187*a[6]*a[19])/1162667520 - (7875295*a[19]^2)/16609536 -
(78341821*a[12]*a[20])/387555840, -3/4 + (3*a[3])/4 + (3*a[6]^2)/8 + 2*a[8] - (3*a[3]*a[8])/2 - (3*a[8]^2)/2 + a[8]^3 +
(3*a[8]*a[9])/4 - (3*a[6]*a[10])/8 - (3*a[12]^2)/8 + (3*a[12]*a[16])/8 - (3*a[18])/4 + (3*a[8]*a[18])/4 - (3*a[6]*a[19])/8 +
(3*a[12]*a[20])/8, -3/4 + (3*a[3])/4 + 2*a[8] - a[3]*a[8] - 2*a[8]^2 + a[3]*a[8]^2 - a[9]/4 - (a[8]*a[9])/2 - (3*a[18])/4 +
(a[8]*a[18])/2, (-5*a[6])/4 - (5*a[7])/2 + (15*a[10])/4 + (15*a[19])/4 - (11*a[8]*a[19])/2 + a[8]^2*a[19],
(-5*a[12])/4 - (5*a[13])/2 - (3*a[16])/4 + (7*a[8]*a[16])/2 + a[8]^2*a[16] + (15*a[20])/4,
11501/4272 - (4217*a[3])/1424 + (575*a[3]^2)/2136 + (122405*a[4])/1068 - (19585*a[3]*a[4])/89 - (1007425*a[6]^2)/38448 +
(1106575*a[6]*a[7])/38448 - (1821*a[8])/356 + (93*a[3]*a[8])/2 + (435*a[4]*a[8])/4 - (14733*a[8]^2)/356 -
(49223*a[9])/1424 + (12895*a[3]*a[9])/2136 + 180*a[4]*a[9] - (14135*a[8]*a[9])/712 + a[8]^2*a[9] + (135*a[9]^2)/4 -
(16525*a[6]*a[10])/6408 + (12989045*a[12]^2)/269136 + (1106575*a[12]*a[13])/38448 - (1310755*a[12]*a[16])/67284 -
(1106575*a[16]^2)/19224 - (159373*a[18])/1424 + (469465*a[3]*a[18])/2136 - (80917*a[8]*a[18])/712 - (80585*a[9]*a[18])/356 +
(132125*a[6]*a[19])/2403 - (1106575*a[19]^2)/19224 - (3455845*a[12]*a[20])/44856,
-15817/4272 + (3829*a[3])/1424 + (2165*a[3]^2)/2136 - (126565*a[4])/1068 + (19685*a[3]*a[4])/89 + (6846695*a[6]^2)/269136 -
(1085975*a[6]*a[7])/38448 + (2997*a[8])/356 - (93*a[3]*a[8])/2 - (435*a[4]*a[8])/4 + (13557*a[8]^2)/356 +
(51123*a[9])/1424 - (18035*a[3]*a[9])/2136 - 180*a[4]*a[9] + (14527*a[8]*a[9])/712 - (135*a[9]^2)/4 +
(125855*a[6]*a[10])/44856 - (13194325*a[12]^2)/269136 - (1085975*a[12]*a[13])/38448 + (1398125*a[12]*a[16])/67284 +
(1085975*a[16]^2)/19224 + (163481*a[18])/1424 - (474605*a[3]*a[18])/2136 + (79101*a[8]*a[18])/712 + a[8]^2*a[18] +
(81385*a[9]*a[18])/356 - (1806065*a[6]*a[19])/33642 + (1085975*a[19]^2)/19224 + (3466025*a[12]*a[20])/44856,
227/534 - (199*a[3])/178 + (185*a[3]^2)/267 - (35*a[4])/1068 + (80*a[3]*a[4])/89 - (665*a[6]^2)/9612 -
(3445*a[6]*a[7])/9612 - (14*a[8])/89 - a[4]*a[8] + (14*a[8]^2)/89 + a[4]*a[8]^2 + (647*a[9])/356 - (425*a[3]*a[9])/267 -
(121*a[8]*a[9])/89 + (685*a[6]*a[10])/1602 - (665*a[12]^2)/9612 - (3445*a[12]*a[13])/9612 - (695*a[12]*a[16])/2403 +
(3445*a[16]^2)/4806 + (163*a[18])/356 - (425*a[3]*a[18])/267 + (121*a[8]*a[18])/89 + (160*a[9]*a[18])/89 -
(695*a[6]*a[19])/2403 + (3445*a[19]^2)/4806 + (685*a[12]*a[20])/1602, 70657/4272 - (18737*a[3])/1424 - (7223*a[3]^2)/2136 +
(814915*a[4])/1068 - (130405*a[3]*a[4])/89 - (6698009*a[6]^2)/38448 + (7374425*a[6]*a[7])/38448 - (6401*a[8])/178 +
(1227*a[3]*a[8])/4 + a[3]^2*a[8] + (2885*a[4]*a[8])/4 - (96757*a[8]^2)/356 - (339915*a[9])/1424 + (105425*a[3]*a[9])/2136 +
1200*a[4]*a[9] - (84397*a[8]*a[9])/712 + (873*a[9]^2)/4 - (14092*a[6]*a[10])/801 + (12304915*a[12]^2)/38448 +
(7374425*a[12]*a[13])/38448 - (2465245*a[12]*a[16])/19224 - (7374425*a[16]^2)/19224 - (1063001*a[18])/1424 +
(3136943*a[3]*a[18])/2136 - (541451*a[8]*a[18])/712 - (538343*a[9]*a[18])/356 + (7036217*a[6]*a[19])/19224 -
(7374425*a[19]^2)/19224 - (1639945*a[12]*a[20])/3204, 22159/1424 - (18573*a[3])/1424 - (1793*a[3]^2)/712 + (61120*a[4])/89 -
(117345*a[3]*a[4])/89 - (14078993*a[6]^2)/89712 + (2211575*a[6]*a[7])/12816 - (2994*a[8])/89 + (1113*a[3]*a[8])/4 +
(2595*a[4]*a[8])/4 - (87081*a[8]^2)/356 - (305731*a[9])/1424 + (31507*a[3]*a[9])/712 + 1080*a[4]*a[9] -
(76705*a[8]*a[9])/712 + a[3]*a[8]*a[9] + (783*a[9]^2)/4 - (29209*a[6]*a[10])/1869 + (3685885*a[12]^2)/12816 +
(2211575*a[12]*a[13])/12816 - (737155*a[12]*a[16])/6408 - (2211575*a[16]^2)/6408 - (955761*a[18])/1424 +
(940553*a[3]*a[18])/712 - (487199*a[8]*a[18])/712 - (484237*a[9]*a[18])/356 + (14780009*a[6]*a[19])/44856 -
(2211575*a[19]^2)/6408 - (491455*a[12]*a[20])/1068, 21011/1424 - (17097*a[3])/1424 - (1957*a[3]^2)/712 + (121735*a[4])/178 -
(117285*a[3]*a[4])/89 - (14083381*a[6]^2)/89712 + (2217475*a[6]*a[7])/12816 - (2871*a[8])/89 + (1113*a[3]*a[8])/4 +
(2595*a[4]*a[8])/4 - (87573*a[8]^2)/356 - (307439*a[9])/1424 + (31903*a[3]*a[9])/712 + 1080*a[4]*a[9] -
(74405*a[8]*a[9])/712 + (783*a[9]^2)/4 - (29978*a[6]*a[10])/1869 + (25796807*a[12]^2)/89712 + (2217475*a[12]*a[13])/12816 -
(5137241*a[12]*a[16])/44856 - (2217475*a[16]^2)/6408 - (952869*a[18])/1424 + (940237*a[3]*a[18])/712 -
(489499*a[8]*a[18])/712 + a[3]*a[8]*a[18] - (484469*a[9]*a[18])/356 + (14802853*a[6]*a[19])/44856 - (2217475*a[19]^2)/6408 -
(3443261*a[12]*a[20])/7476, 416159/25632 - (116359*a[3])/8544 - (33541*a[3]^2)/12816 + (560560*a[4])/801 -
(717005*a[3]*a[4])/534 - (258204115*a[6]^2)/1614816 + (10125205*a[6]*a[7])/57672 - (37475*a[8])/1068 + (2269*a[3]*a[8])/8 +
(2641*a[4]*a[8])/4 + a[3]*a[4]*a[8] - (530873*a[8]^2)/2136 - (622243*a[9])/2848 + (577657*a[3]*a[9])/12816 +
1099*a[4]*a[9] - (468767*a[8]*a[9])/4272 + (801*a[9]^2)/4 - (8433875*a[6]*a[10])/538272 + (474432137*a[12]^2)/1614816 +
(10125205*a[12]*a[13])/57672 - (190926397*a[12]*a[16])/1614816 - (10125205*a[16]^2)/28836 - (5840587*a[18])/8544 +
(17241661*a[3]*a[18])/12816 - (2975533*a[8]*a[18])/4272 - (1479353*a[9]*a[18])/1068 + (541709855*a[6]*a[19])/1614816 -
(10125205*a[19]^2)/28836 - (252645959*a[12]*a[20])/538272, -a[6]^2/140 + (a[6]*a[7])/2 - (69*a[6]*a[10])/140 +
(a[6]*a[19])/140 - a[19]^2/2 + a[8]*a[19]^2, -(a[16]*a[19])/2 + a[8]*a[16]*a[19],
a[12]^2/140 - (a[12]*a[13])/2 - (a[12]*a[16])/140 - a[16]^2/2 + a[8]*a[16]^2 + (69*a[12]*a[20])/140,
1360511/68352 - (393735*a[3])/22784 - (89653*a[3]^2)/34176 + (14068805*a[4])/17088 - (2248755*a[3]*a[4])/1424 -
(809530465*a[6]^2)/4306176 + (127195375*a[6]*a[7])/615168 - (120847*a[8])/2848 + (21441*a[3]*a[8])/64 +
(49875*a[4]*a[8])/64 - (1666555*a[8]^2)/5696 - (5861477*a[9])/22784 + (1813747*a[3]*a[9])/34176 + 1290*a[4]*a[9] -
(1500619*a[8]*a[9])/11392 + (15215*a[9]^2)/64 + a[8]*a[9]^2 - (3368215*a[6]*a[10])/179424 + (1487977835*a[12]^2)/4306176 +
(127195375*a[12]*a[13])/615168 - (298805105*a[12]*a[16])/2153088 - (127195375*a[16]^2)/307584 - (18304903*a[18])/22784 +
(54059773*a[3]*a[18])/34176 - (9329613*a[8]*a[18])/11392 - (9279521*a[9]*a[18])/5696 + (849949045*a[6]*a[19])/2153088 -
(127195375*a[19]^2)/307584 - (198195455*a[12]*a[20])/358848, 774529/68352 - (216953*a[3])/22784 - (61835*a[3]^2)/34176 +
(8144155*a[4])/17088 - (1303885*a[3]*a[4])/1424 - (469418015*a[6]^2)/4306176 + (73766225*a[6]*a[7])/615168 -
(69697*a[8])/2848 + (12447*a[3]*a[8])/64 + (28845*a[4]*a[8])/64 - (968389*a[8]^2)/5696 - (3414171*a[9])/22784 +
(1066061*a[3]*a[9])/34176 + 750*a[4]*a[9] - (846901*a[8]*a[9])/11392 + (8721*a[9]^2)/64 - (1956065*a[6]*a[10])/179424 +
(861334549*a[12]^2)/4306176 + (73766225*a[12]*a[13])/615168 - (172485487*a[12]*a[16])/2153088 - (73766225*a[16]^2)/307584 -
(10600697*a[18])/22784 + (31355075*a[3]*a[18])/34176 - (5422259*a[8]*a[18])/11392 - (5385759*a[9]*a[18])/5696 +
a[8]*a[9]*a[18] + (492890795*a[6]*a[19])/2153088 - (73766225*a[19]^2)/307584 - (114808177*a[12]*a[20])/358848,
1461919/153792 - (421379*a[3])/51264 - (98891*a[3]^2)/76896 + (7264295*a[4])/19224 - (580030*a[3]*a[4])/801 -
(840225875*a[6]^2)/9688896 + (65497975*a[6]*a[7])/692064 - (260135*a[8])/12816 + (1233*a[3]*a[8])/8 + (1425*a[4]*a[8])/4 -
(1715131*a[8]^2)/12816 - (2015183*a[9])/17088 + (1871267*a[3]*a[9])/76896 + (1777*a[4]*a[9])/3 - (1531063*a[8]*a[9])/25632 +
a[4]*a[8]*a[9] + (431*a[9]^2)/4 - (25581925*a[6]*a[10])/3229632 + (1536148885*a[12]^2)/9688896 +
(65497975*a[12]*a[13])/692064 - (619177235*a[12]*a[16])/9688896 - (65497975*a[16]^2)/346032 - (18884147*a[18])/51264 +
(55781771*a[3]*a[18])/76896 - (9625265*a[8]*a[18])/25632 - (2392367*a[9]*a[18])/3204 + (1757197525*a[6]*a[19])/9688896 -
(65497975*a[19]^2)/346032 - (817706845*a[12]*a[20])/3229632, (320*a[12])/63 - a[12]^3 + (640*a[13])/63 + (320*a[16])/63 -
(1280*a[8]*a[16])/63 + a[12]^2*a[16] - (320*a[20])/21 + a[12]^2*a[20], (a[6]^2*a[12])/2 - (a[6]*a[7]*a[12])/2 -
a[6]*a[12]*a[19] + a[12]*a[19]^2, -(a[6]*a[12]^2)/2 + (a[7]*a[12]^2)/2 + a[12]*a[16]*a[19],
(-608*a[12])/147 + a[12]^3/2 - (1216*a[13])/147 - (a[12]^2*a[13])/2 - (608*a[16])/147 + (2432*a[8]*a[16])/147 -
a[12]^2*a[16] + a[12]*a[16]^2 + (608*a[20])/49, (-2141*a[12])/588 - (3*a[3]*a[12])/4 + (a[3]^2*a[12])/2 + (a[4]*a[12])/4 -
(a[3]*a[4]*a[12])/2 + a[9]*a[12] - a[3]*a[9]*a[12] + a[9]^2*a[12] - (1144*a[13])/147 - (572*a[16])/147 +
(2288*a[8]*a[16])/147 + (572*a[20])/49, (-221*a[12])/588 - (3*a[3]*a[12])/4 + (a[3]^2*a[12])/2 + (a[4]*a[12])/4 -
(a[3]*a[4]*a[12])/2 + a[9]*a[12] - a[3]*a[9]*a[12] + a[4]*a[9]*a[12] - (184*a[13])/147 - (92*a[16])/147 +
(368*a[8]*a[16])/147 + (92*a[20])/49, (320*a[6])/63 - a[6]^3 + (640*a[7])/63 - (320*a[10])/21 + a[6]^2*a[10] -
(320*a[19])/21 + a[6]^2*a[19] + (1280*a[8]*a[19])/63, (-608*a[6])/147 + a[6]^3/2 - (1216*a[7])/147 - (a[6]^2*a[7])/2 +
(608*a[10])/49 + (608*a[19])/49 - a[6]^2*a[19] - (2432*a[8]*a[19])/147 + a[6]*a[19]^2,
(419*a[6])/588 - (3*a[3]*a[6])/4 + (a[3]^2*a[6])/2 + (a[4]*a[6])/4 - (a[3]*a[4]*a[6])/2 + (136*a[7])/147 + a[6]*a[9] -
a[3]*a[6]*a[9] + a[6]*a[9]^2 - (68*a[10])/49 - (68*a[19])/49 + (272*a[8]*a[19])/147,
(97*a[6])/196 - (3*a[3]*a[6])/4 + (a[3]^2*a[6])/2 + (a[4]*a[6])/4 - (a[3]*a[4]*a[6])/2 + (24*a[7])/49 + a[6]*a[9] -
a[3]*a[6]*a[9] + a[4]*a[6]*a[9] - (36*a[10])/49 - (36*a[19])/49 + (48*a[8]*a[19])/49,
8117/5340 - (711*a[3])/356 + (1972*a[3]^2)/1335 - a[3]^3 - (404*a[4])/267 + (121*a[3]*a[4])/89 - (591149*a[6]^2)/1177470 -
(4625*a[6]*a[7])/19224 - (1363*a[8])/445 + (1363*a[8]^2)/445 + (597*a[9])/356 - (2452*a[3]*a[9])/1335 + a[3]^2*a[9] +
(1207*a[8]*a[9])/890 + (1165907*a[6]*a[10])/1569960 - (591149*a[12]^2)/1177470 - (4625*a[12]*a[13])/19224 +
(1231471*a[12]*a[16])/4709880 + (4625*a[16]^2)/9612 + (5399*a[18])/1780 - (2452*a[3]*a[18])/1335 + a[3]^2*a[18] -
(1207*a[8]*a[18])/890 + (64*a[9]*a[18])/89 + (1231471*a[6]*a[19])/4709880 + (4625*a[19]^2)/9612 +
(1165907*a[12]*a[20])/1569960, -1166467/128160 + (75307*a[3])/8544 - (13609*a[3]^2)/64080 + a[3]^3/2 -
(9488027*a[4])/25632 + (3035287*a[3]*a[4])/4272 - (a[3]^2*a[4])/2 + (9522942379*a[6]^2)/113037120 -
(85692415*a[6]*a[7])/922752 + (200153*a[8])/10680 - (6003*a[3]*a[8])/40 - 351*a[4]*a[8] + (175331*a[8]^2)/1335 +
(101651*a[9])/890 - (34595*a[3]*a[9])/1602 - a[3]^2*a[9] - 579*a[4]*a[9] + (79729*a[8]*a[9])/1335 - (546*a[9]^2)/5 +
a[3]*a[9]^2 + (649585639*a[6]*a[10])/75358080 - (17589529901*a[12]^2)/113037120 - (85692415*a[12]*a[13])/922752 +
(14184418127*a[12]*a[16])/226074240 + (85692415*a[16]^2)/461376 + (3856139*a[18])/10680 - (5693467*a[3]*a[18])/8010 +
(392947*a[8]*a[18])/1068 + (7821119*a[9]*a[18])/10680 - (40040526433*a[6]*a[19])/226074240 + (85692415*a[19]^2)/461376 +
(18724567159*a[12]*a[20])/75358080, 95051/64080 - (4277*a[3])/4272 + (143*a[3]^2)/8010 - a[3]^3/2 + (10019*a[4])/25632 +
(161*a[3]*a[4])/4272 + (a[3]^2*a[4])/2 - (34854541*a[6]^2)/113037120 - (509585*a[6]*a[7])/922752 - (39503*a[8])/10680 +
(39503*a[8]^2)/10680 + (1837*a[9])/2848 + (28481*a[3]*a[9])/64080 + (9557*a[8]*a[9])/21360 +
(64852469*a[6]*a[10])/75358080 - (34854541*a[12]^2)/113037120 - (509585*a[12]*a[13])/922752 -
(55139243*a[12]*a[16])/226074240 + (509585*a[16]^2)/461376 + (46669*a[18])/42720 + (28481*a[3]*a[18])/64080 -
(9557*a[8]*a[18])/21360 - (907*a[9]*a[18])/2136 + a[3]*a[9]*a[18] - (55139243*a[6]*a[19])/226074240 +
(509585*a[19]^2)/461376 + (64852469*a[12]*a[20])/75358080, -6752417/4101120 + (669701*a[3])/273408 -
(2671829*a[3]^2)/2050560 + a[3]^3/2 - (9574447*a[4])/205056 + (1532833*a[3]*a[4])/17088 - (a[3]^2*a[4])/2 +
(3850112213*a[6]^2)/361718784 - (85429445*a[6]*a[7])/7382016 + (468209*a[8])/170880 - (24069*a[3]*a[8])/1280 -
(11259*a[4]*a[8])/256 + (1098001*a[8]^2)/68352 + (17558459*a[9])/1367040 - (1087453*a[3]*a[9])/2050560 - a[3]^2*a[9] -
(887*a[4]*a[9])/12 + a[3]*a[4]*a[9] + (1735367*a[8]*a[9])/227840 - (17219*a[9]^2)/1280 + (3499277*a[6]*a[10])/3767904 -
(7057018279*a[12]^2)/361718784 - (85429445*a[12]*a[13])/7382016 + (1435487737*a[12]*a[16])/180859392 +
(85429445*a[16]^2)/3691008 + (61578841*a[18])/1367040 - (182293411*a[3]*a[18])/2050560 + (10473297*a[8]*a[18])/227840 +
(31283207*a[9]*a[18])/341760 - (4018077509*a[6]*a[19])/180859392 + (85429445*a[19]^2)/3691008 +
(936921757*a[12]*a[20])/30143232, (-6791*a[6])/896 + (3*a[6]^3)/4 - (24959*a[7])/1792 - (3*a[6]^2*a[7])/4 +
(38541*a[10])/1792 - (a[6]*a[12]^2)/4 + (a[7]*a[12]^2)/4 + (38541*a[19])/1792 - a[6]^2*a[19] - (24959*a[8]*a[19])/896 +
a[16]^2*a[19] + a[19]^3, (-6791*a[12])/896 - (a[6]^2*a[12])/4 + (a[6]*a[7]*a[12])/4 + (3*a[12]^3)/4 - (24959*a[13])/1792 -
(3*a[12]^2*a[13])/4 - (11377*a[16])/1792 + (24959*a[8]*a[16])/896 - a[12]^2*a[16] + a[16]^3 + a[16]*a[19]^2 +
(38541*a[20])/1792, 183097/16020 - (70685*a[3])/8544 - (500621*a[3]^2)/128160 + (3*a[3]^3)/4 + (52935505*a[4])/102528 -
(4229873*a[3]*a[4])/4272 - (3*a[3]^2*a[4])/4 - (7564272227*a[6]^2)/64592640 + (481295435*a[6]*a[7])/3691008 -
(1095331*a[8])/42720 + (67419*a[3]*a[8])/320 + (63033*a[4]*a[8])/128 - (15810211*a[8]^2)/85440 - (9377989*a[9])/56960 +
(18900251*a[3]*a[9])/512640 - a[3]^2*a[9] + (12879*a[4]*a[9])/16 - (1468459*a[8]*a[9])/17088 + (98233*a[9]^2)/640 + a[9]^3 -
(572265257*a[6]*a[10])/43061760 + (98006554411*a[12]^2)/452148480 + (481295435*a[12]*a[13])/3691008 -
(78095727247*a[12]*a[16])/904296960 - (481295435*a[16]^2)/1845504 - (86272807*a[18])/170880 +
(127300691*a[3]*a[18])/128160 - (21963923*a[8]*a[18])/42720 - (174955669*a[9]*a[18])/170880 +
(31973884679*a[6]*a[19])/129185280 - (481295435*a[19]^2)/1845504 - (104643496799*a[12]*a[20])/301432320,
-840029/256320 + (65447*a[3])/17088 - (19399*a[3]^2)/64080 - a[3]^3/4 - (18158765*a[4])/102528 + (91111*a[3]*a[4])/267 +
(a[3]^2*a[4])/4 + (18218466373*a[6]^2)/452148480 - (166368295*a[6]*a[7])/3691008 + (251057*a[8])/42720 -
(23043*a[3]*a[8])/320 - (21561*a[4]*a[8])/128 + (5650367*a[8]^2)/85440 + (3127683*a[9])/56960 - (5157367*a[3]*a[9])/512640 -
(4463*a[4]*a[9])/16 + (491297*a[8]*a[9])/17088 - (33081*a[9]^2)/640 + (1441099843*a[6]*a[10])/301432320 -
(33949317947*a[12]^2)/452148480 - (166368295*a[12]*a[13])/3691008 + (27138403619*a[12]*a[16])/904296960 +
(166368295*a[16]^2)/1845504 + (29704589*a[18])/170880 - (21831221*a[3]*a[18])/64080 + (1884709*a[8]*a[18])/10680 +
(60124613*a[9]*a[18])/170880 + a[9]^2*a[18] - (77197165021*a[6]*a[19])/904296960 + (166368295*a[19]^2)/1845504 +
(36219622723*a[12]*a[20])/301432320, -354851893/36910080 + (24762505*a[3])/2460672 - (22134121*a[3]^2)/18455040 +
(3*a[3]^3)/4 - (652538555*a[4])/1845504 + (104303741*a[3]*a[4])/153792 - (3*a[3]^2*a[4])/4 +
(1312270017869*a[6]^2)/16277345280 - (5868675745*a[6]*a[7])/66438144 + (29456641*a[8])/1537920 - (183161*a[3]*a[8])/1280 -
(85671*a[4]*a[8])/256 + (381222601*a[8]^2)/3075840 + (439571293*a[9])/4101120 - (356475041*a[3]*a[9])/18455040 -
a[3]^2*a[9] - (19933*a[4]*a[9])/36 + (70233365*a[8]*a[9])/1230336 - (394573*a[9]^2)/3840 + a[4]*a[9]^2 +
(5231480819*a[6]*a[10])/678222720 - (2415218261551*a[12]^2)/16277345280 - (5868675745*a[12]*a[13])/66438144 +
(488696352013*a[12]*a[16])/8138672640 + (5868675745*a[16]^2)/33219072 + (4231973069*a[18])/12303360 -
(12508156079*a[3]*a[18])/18455040 + (2157110207*a[8]*a[18])/6151680 + (2146869467*a[9]*a[18])/3075840 -
(1375047787697*a[6]*a[19])/8138672640 + (5868675745*a[19]^2)/33219072 +
(321086984923*a[12]*a[20])/1356445440};


You can check, e.g. via NSolve, that the solution set has positive dimension.

In[93]:= Timing[sol = NSolve[gb2];]

During evaluation of In[93]:= NSolve::infsolns: Infinite solution set has dimension at least 1. Returning intersection of solutions with (78848 a[3])/86491-(52050 a[4])/86491+(57827 a[6])/86491+(148851 a[7])/172982+(101463 a[8])/172982+(188769 a[9])/172982-(191343 a[10])/172982-(89087 a[12])/86491+(78339 a[13])/86491+(140033 a[15])/172982-(83945 a[16])/86491-(56554 a[18])/86491+(83206 a[19])/86491-(107131 a[20])/172982 == 1. >>

During evaluation of In[93]:= NSolve::infsolns: Infinite solution set has dimension at least 2. Returning intersection of solutions with (67842 a[3])/95609-(184441 a[4])/191218-(97766 a[6])/95609-(184729 a[7])/191218+(93018 a[8])/95609-(59375 a[9])/95609+(147179 a[10])/191218+(81420 a[12])/95609-(60031 a[13])/95609+(156301 a[15])/191218+(130811 a[16])/191218+(94526 a[18])/95609-(2863 a[19])/2854+(54539 a[20])/95609 == 1. >>

During evaluation of In[93]:= NSolve::infsolns: Infinite solution set has dimension at least 3. Returning intersection of solutions with -((81281 a[3])/77135)+(86849 a[4])/77135-(65291 a[6])/77135+(177769 a[7])/154270-(76583 a[8])/77135-(130181 a[9])/154270-(15303 a[10])/15427+(54742 a[12])/77135+(64317 a[13])/77135+(83022 a[15])/77135+(70919 a[16])/77135-(30099 a[18])/30854-(80873 a[19])/77135-(70654 a[20])/77135 == 1. >>

During evaluation of In[93]:= General::stop: Further output of NSolve::infsolns will be suppressed during this calculation. >>

Out[93]= {3.13, Null}

In[94]:= sol

Out[94]= {{a[15] -> 0., a[10] -> 0., a[20] -> 34.7986,
a[13] -> 34.7986, a[7] -> 12.0763, a[18] -> 11.9732,
a[4] -> 11.9732, a[16] -> 0., a[19] -> 12.0763, a[9] -> 0.,
a[8] -> 0., a[3] -> 12.9732, a[6] -> 12.0763,
a[12] -> 34.7986}, {a[15] -> 0., a[10] -> -1.32805,
a[20] -> -1.52477, a[13] -> -1.52477, a[7] -> -1.32805,
a[18] -> -0.727061, a[4] -> -0.727061, a[16] -> -1.52477,
a[19] -> -1.32805, a[9] -> -0.727061, a[8] -> 0.5,
a[3] -> -0.954122, a[6] -> -2.65611,
a[12] -> -3.04955}, {a[15] -> 0., a[10] -> 1.47403, a[20] -> 0.,
a[13] -> 1.84961, a[7] -> 1.47403, a[18] -> 0., a[4] -> 0.644773,
a[16] -> 1.84961, a[19] -> 0., a[9] -> 0.644773, a[8] -> 1.,
a[3] -> 1.64477, a[6] -> 1.47403, a[12] -> 1.84961}}


If you run NSolve directly on the original set, it might in fact go to completion. But expect it to take considerable time-- I've had it running for a few hours now, with the end only dimly in sight.

-
Thanks for your efforts! This numeric approximation method was something I had actually tried after reading about it in your paper "Exact Computation Using Approximate Gröbner Bases", but I gave up on it after higher and higher precision levels still lead to the following error: "Excessive loss of precision during computation". The command I am running is gb1=GroebnerBasis[q1,Variables[q1],{},MonomialOrder->DegreeReverseLexicographic‌​,CoefficientDomain->InexactNumbers[1000]];. Would you be willing to share the command(s) you used in your numeric approximation? –  Michael Boratko Mar 9 '12 at 4:24
Incidentally, when I ran s = Solve[gb2,Variables[gb2]];, I got a result very quickly, which will prove very useful if I can just understand how to get gb2. If you would be willing (or would prefer) to continue this conversation over email, please let me know. I believe I have your contact information via the paper I mentioned earlier. –  Michael Boratko Mar 9 '12 at 4:27
@process91 I used, or more correctly, am using, NSolve. I have debugging info printing to my session so I can see where it is. NSolve will double the working precision some number of times before giving up. It obtained a basis with precision at 2400 (final result had precision around 500 or so). Alas NSolve, as it reduces dimension, is still chugging away for what seems like a very long time (she-bop she-bop). I think I know how to improve on that and may experiment in the next few days. As for recovering the exact basis, I just used rationalize on the numerical result. –  Daniel Lichtblau Mar 9 '12 at 15:55
Sorry, I must be daft, do you mean that you used NSolve to get the Gröbner Basis? I was curious as to the command you used to come up with gb2 (above). –  Michael Boratko Mar 9 '12 at 21:41
I need to amend my comment (I won't check until Monday but my NSolve could well still be running). The correct phrasing, from "Hello Stranger" of the 60's, is "It seems like a mighty long time (shoo-bop shoo-bop)"; where cultural icons are concerned, one should always strive to get such things right. –  Daniel Lichtblau Mar 11 '12 at 4:42