# Quotient decomposition by Groebner basis

I can accomplish the following task in awkward ways using syzygy modules, but I am wondering if there is a better way somehow. It would be nice to have a single command for it.

Suppose we have a polynomial $P$ and a set of polynomials $Q_1,...,Q_n$, and it is possible to calculate the Groebner basis $G$ of the ideal generated by all the $Q_i$. Let $R$ be the remainder of $P$ after reducing by $G$. In Sage, how can we find polynomials $S_1,...,S_n$ such that $P = R + \sum S_i Q_i$?

edit retag close merge delete

Sort by » oldest newest most voted

Do you mean this?

sage: R.<x,y,z> = GF(127)[]
sage: p = R.random_element(degree=3)
sage: Q = [R.random_element() for _ in range(R.ngens())]
sage: r = p.reduce(Ideal(Q))
sage: M = (p - r).lift(Q)
sage: p -r == sum([M[i]*Q[i] for i in range(len(M))])
True
more

Thanks, somehow I had missed the "lift" command. That is exactly what I needed.

( 2011-01-14 01:41:07 +0200 )edit

This is more of a question than an answer, but Singular can do this with the command "division." Couldn't you use that?

more