Hi Bruno,
I am sorry that I (as author of the InfinitePolynomialRing stuff) did
not answer before.
On 2014-04-16, BJ <
bruno...@gmail.com> wrote:
> The output looks something like this:
>
> [-e_8 + e_4^2, -e_10 + e_6*e_4, -1382*e_12 + 2205*e_8*e_4 + 500*e_6^2 -
>> 1323*e_4^3, -10*e_14 + 21*e_10*e_4 + 22*e_8*e_6 - 33*e_6*e_4^2,
>> 45606*e_12*e_4 + 65000*e_10*e_6 + 42042*e_8^2 - 63063*e_8*e_4^2 -
>> 71500*e_6^2*e_4, 126126*e_14*e_4 + 212828*e_12*e_6 + 309582*e_10*e_8 -
>> 154791*e_10*e_4^2 - 378378*e_8*e_6*e_4 - 71500*e_6^3, 858000*e_14*e_6 +
>> 1337776*e_12*e_8 - 501666*e_12*e_4^2 + 760500*e_10^2 -
>> 1287000*e_10*e_6*e_4 - 693693*e_8^2*e_4 - 786500*e_8*e_6^2]
>
>
> These list elements should be interpreted as relations between the
> variables e_i (for even i), so that, for instance, the first one should be
> interpreted as e_8 = e_4^2.
>
> Moreover, I know that these relations should allow me to inductively
> express each e_k in terms of e_4 and e_6.
The original purpose of InfinitePolynomialRing is to implement the algorithm of
Aschenbrenner and Hillar for the computation of "symmetric Gröbner bases". This
means: You would be in a situation where any permutation of indices applied
to a relation between the e[i] results in another relation between the
e[i]. In your example, you could easily deduce that all coefficients
would be trivial if you would allow to freely permute indices:
sage: SI = M.ideal(L)
sage: SG = SI.groebner_basis()
sage: SG
[e_1]
Do you have any permutation action at all on your coefficients? Say, if
you have a relation then shifting all coefficients by 1 will result in
another relation? If I recall correctly, it is not implemented yet, but
it should be possible (without being able to guarantee termination of
the algorithm, though) to consider a subgroup of the full permutation
group.
> For instance, the second relation
> shows that e_10 = e_4e_6. The third relation -1382*e_12 + 2205*e_8*e_4 +
> 500*e_6^2 -1323*e_4^3 = 0 allows me (using a pen and paper...) to express
> e_12 only in terms of e_4 and e_6, by using e_8 = e_4^2.
>
> What I would like is to be able, for each k in the appropriate range, to
> obtain a polynomial f_k(u,v) with rational coefficients, such that f_k(e_4,
> e_6) = e_k.
Well, if you have any *finite* list of relations and no index
permutations on it, then you could simply use classical (non-symmetric)
Gröbner bases. In fact, by your construction, all element of your list L
are "classical" polynomials. Hence, it should be easy to get a
polynomial ring with the variables involved in this list, and hopefully
such that e_j>e_i for j>i, because then the Gröbner basis will tell you
how to express e_k in terms of e_4,e_6 for k>6.
Let's try:
sage: I = ideal(L)
sage: I
Ideal (-e_8 + e_4^2, -e_10 + e_6*e_4, -1382*e_12 + 2205*e_8*e_4 +
500*e_6^2 - 1323*e_4^3, -10*e_14 + 21*e_10*e_4 + 22*e_8*e_6 -
33*e_6*e_4^2, 45606*e_12*e_4 + 65000*e_10*e_6 + 42042*e_8^2 -
63063*e_8*e_4^2 - 71500*e_6^2*e_4, 126126*e_14*e_4 + 212828*e_12*e_6 +
309582*e_10*e_8 - 154791*e_10*e_4^2 - 378378*e_8*e_6*e_4 -
71500*e_6^3, 858000*e_14*e_6 + 1337776*e_12*e_8 - 501666*e_12*e_4^2 +
760500*e_10^2 - 1287000*e_10*e_6*e_4 - 693693*e_8^2*e_4 -
786500*e_8*e_6^2) of Multivariate Polynomial Ring in e_14, e_12, e_10,
e_8, e_6, e_4, e_0 over Rational Field
sage: G
[e_14 - e_6*e_4^2, e_12 - 250/691*e_6^2 - 441/691*e_4^3, e_10 -
e_6*e_4, e_8 - e_4^2, e_6^3 + 38367/5500*e_6*e_4^3, e_6^2*e_4 +
1617/2000*e_4^4, e_6*e_4^4, e_4^5]
sage: P = G.ring()
sage: P
Multivariate Polynomial Ring in e_14, e_12, e_10, e_8, e_6, e_4, e_0
over Rational Field
sage: P('e_10').reduce(G)
e_6*e_4
sage: P('e_12').reduce(G)
250/691*e_6^2 + 441/691*e_4^3
sage: P('e_14').reduce(G)
e_6*e_4^2
Does this solve your problem?
I am very sorry for the late answer.
Best regards,
Simon