Loading [MathJax]/jax/output/HTML-CSS/jax.js
Ask Your Question
2

Testing whether polynomial is in algebra of other polynomials

asked 5 years ago

mathworker21 gravatar image

A collection Σ of polynomials is an algebra if: (1) λf+ηgΣ for any f,gΣ,λ,ηR and (2) f,gΣ implies fgΣ. We say that P is in the algebra of P1,,Pn if P is in the smallest algebra containing P1,,Pn.

I was wondering if there was a way to check whether a given P as in the algebra of a given collection P1,,Pn.

Example: take n1 and let P1=x1++xn,P2=x21++x2n,Pn=xn1++xnn. Then all n of the following symmetric functions are in the algebra generated by P1,,Pn: x1++xn x1x2++xn1xn x1x2x3++xn2xn1xn x1xn

I'd appreciate any help.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
2

answered 5 years ago

rburing gravatar image

My first thought was that you want an analogue of a Gröbner basis of an ideal. A web search yields that exactly such a thing has been thought of: SAGBI: Subalgebra Analogue to Gröbner Bases for Ideals. We can use an implementation in Singular, as discussed in the old question Basis of invariant polynomial system. I think you can use it as follows:

n = 3
R = PolynomialRing(QQ, n, names='x')
x = R.gens()
A = R.ideal([sum(xi^k for xi in x) for k in range(1,n+1)])
print('Algebra:', A.gens())

from itertools import combinations
E = [sum(prod(xi) for xi in combinations(x,k)) for k in range(1,n+1)]
print('Elements to reduce:', E)

singular.LIB("sagbi.lib")
S = singular.sagbi(A)
for e in E:
    print(e, '--->', singular.sagbiReduce(e, S).sage())

Output:

Algebra: [x0 + x1 + x2, x0^2 + x1^2 + x2^2, x0^3 + x1^3 + x2^3]
Elements to reduce: [x0 + x1 + x2, x0*x1 + x0*x2 + x1*x2, x0*x1*x2]
x0 + x1 + x2 ---> 0
x0*x1 + x0*x2 + x1*x2 ---> 0
x0*x1*x2 ---> 0

See the Singular manual of sagbi_lib.

(I tried calling sagbiReduce with just A instead of sagbi(A), but it didn't manage to do the reduction to 0.)

For n=4 the computation of sagbi(A) already takes more than half an hour (I'll update this post when/if it finishes).

Maybe there exist faster implementations?

P.S. The paper F4-invariant algorithm for computing SAGBI-Gröbner bases discusses an implementation of SAGBI in SAGE 4.2.1, but I didn't manage to find the code.

Preview: (hide)
link

Comments

Hey. Thanks a lot for your answer! I still need to play around with it some more. In the meantime, do you think there's any way to also spit out how, for example, x0x1+x0x2+x1x2 came from the given algebra, i.e. what combination of stuff in our algebra yields x0x1+x0x2+x1x2?

mathworker21 gravatar imagemathworker21 ( 5 years ago )

I think once you have the SAGBI basis (which seems to be not so easy), the reduction step is very easy. In theory you can keep track of the expressions in terms of the original generators, but that is not done in this implementation. You would have to modify this implementation, or find/write another that does it.

rburing gravatar imagerburing ( 5 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 5 years ago

Seen: 346 times

Last updated: Jan 18 '20