Hi Bruno, I am sorry that I (as author of the InfinitePolynomialRing stuff) did not answer before.
On 2014-04-16, BJ <[email protected]> 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 -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
