[sage-support] Some bugs and some wishes

2012-02-16 Thread Manuel Kauers


Hi there,

here are some bugs which may or may not be already known. If they are 
new, could you please file them wherever such bugs need to be filed? Or 
if they are not bugs but wrong usage, could you explain to me what I 
should type instead?


I am still working with version 4.7.1, so some remarks might be obsolete 
already. (Sorry about that.)



1.  When I have rational functions over a field [or over an integral 
domain], I expect that the denominator is made monic [or the content of 
numerator and denominator coprime]. This is not always happening. For 
example:


sage: R.x = QQ[]
sage: (2*x+4)/(4*x-8)
(2*x + 4)/(4*x - 8)  # bad
sage: R.x = ZZ[]
sage: (2*x+4)/(4*x-8)
(x + 2)/(2*x - 4)  # good

Although mathematically correct, I consider this as a bug, because not 
bringing rational functions to normal form can easily lead to ridiculous 
expression swell. For example:


sage: R1.x = QQ[]
sage: R2.y = R1.fraction_field()[]
sage: K = R2.fraction_field()

sage: def canonic(rat):
num, den = rat.numerator(), rat.denominator()
clear = lcm(num.denominator(), den.denominator())
num, den = num*clear, den*clear
clear = map(lambda p: p.numerator().coeffs(), \
num.coeffs() + den.coeffs())
clear = lcm([a.denominator() for b in clear for a in b])
num, den = num*clear, den*clear
x = rat.parent().gen()
t = rat.parent().base_ring().gen()
return rat.parent()(ZZ[t,x](num)/ZZ[t,x](den))

sage: d = K.random_element().derivative(y).derivative(x);
sage: len(str(d))
919274
sage: len(str(canonic(d)))
8371


2.  A coercion problem?

sage: K = QQ[x].fraction_field()
sage: R.y = K[]
sage: S = QuotientRing(R, R.ideal(y^2-(x^2+1)))
sage: ybar = S.gen()
sage: S(y) # works
ybar
sage: 1/ybar # works
(-1/(-x^2 - 1))*ybar
sage: S(1/y) # doesn't work
*** output flushed ***
TypeError: denominator must be a unit


3.  Another coercion problem?

sage: R0 = QQ['t'].fraction_field(); t = R0.gen()
sage: R1 = R0['x'].fraction_field(); x = R1.gen()
sage: R2 = R1['y']; y = R2.gen()
sage: R = QuotientRing(R2, R2.ideal(y^2-(x+t)))
sage: ybar = R.gen()
sage: ybar^2 # works
x + t
sage: ybar + x # works
ybar + x
sage: ybar * x # doesn't work
*** output flushed ***
NotImplementedError:
sage: ybar*R(x) # works
x*ybar


4.  A bug in LCM:

sage: u = QQ['u'].gen(); v = QQ[u].fraction_field()['v'].gen()
sage: pol = ((u^2 - u - 1)/(-1/5*u^2 - u - 1))*v^2 + ((4/9*u^2 - 
1/2)/(1/2*u - 2))*v + (2*u^2 - 1/2*u - 1/3)/(-2*u^2 - 5*u - 1/2)

sage: lcm(pol, 1)
*** output flushed ***
TypeError: denominator must be a unit



5.  The universe of a factorization cannot be changed if the 
factorization happens to be empty.


sage: factor(2).base_change(ZZ['t','x']).universe()
Multivariate Polynomial Ring in t, x over Integer Ring # correct
sage: factor(1).base_change(ZZ['t','x']).universe()
Integer Ring # incorrect


6.  Resultants for elements of Quot(ZZ[t])[x,y] crash.

sage: K = ZZ['t'].fraction_field(); t = K.gen()
sage: R = K['x', 'y']; x,y = R.gens()
sage: R.random_element().resultant(R.random_element(), y)
*** Output flushed ***
TypeError: denominator must be a unit


7.  Nullspace for matrices over finite fields is unreasonably slow

sage: M = MatrixSpace(GF(2^31-1), 1000, 1001).random_element();
sage: %time M.right_kernel();
CPU times: user 165.71 s, sys: 0.01 s, total: 165.73 s
Wall time: 166.20 s

Mathematica does this almost 20 times as fast:

In[5]:= mat = Table[RandomInteger[{0,2^31-1}], {n,0,1000},{k,0,1001}];
In[6]:= Timing[NullSpace[mat, Modulus - 2^31-1];]
Out[6]= {8.98856, Null}


And here is a wish list of some things that I would find convenient to 
have, but didn't find.


1.  a method .derivative for quotient ring elements, with which 
algebraic functions can be differentiated.


2.  a method Factorization.square_free_part

3.  a possibility to specify a variable in the method .minpoly for 
quotient ring elements. It is confusing that this method takes 'x' as 
variable for the minimal polynomial even if there is already an 'x' in 
the ground field.



Thanks  best regards,
Manuel

--
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Re: Modular operation in multivariate polynomials

2012-02-16 Thread Simon King
Hi Oleksandr,

On 16 Feb., 14:09, Oleksandr Kazymyrov vrona.aka.ham...@gmail.com
wrote:
 I expect that the degree of the polynomial will be less than 2^bits=8.

Why do you expect this? There is a difference between a polynomial
(i.e., an element of a polynomial ring) and a polynomial function.
Polynomials can be of arbitrary degree, over any coefficient field.

Over a finite field, it is just normal that a polynomial constantly
evaluates as zero, but is not zero:
 sage: P.x,y = GF(3)[]
 sage: p = x^3 - x + y^3 - y
 sage: p.degree()
 3
 sage: p == 0
 False
 sage: [p(x=a,y=b) for a,b in cartesian_product_iterator([list(GF(3)),
list(GF(3))])]
 [0, 0, 0, 0, 0, 0, 0, 0, 0]

Sorry if I misunderstood the problem.

Best regards,
Simon

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support]

2012-02-16 Thread Santanu Sarkar
Hi all,
  I have used the function  E,N1=M2.hermite_form(transformation=True)
to compute the Hermite Normal Form and
 observed  that it is very slow. Is there any better function?

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


Re: [sage-support]

2012-02-16 Thread William Stein
On Thu, Feb 16, 2012 at 9:23 AM, Santanu Sarkar
sarkar.santanu@gmail.com wrote:
 Hi all,
  I have used the function  E,N1=M2.hermite_form(transformation=True)
 to compute the Hermite Normal Form and
  observed  that it is very slow. Is there any better function?

What is M2?


 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to 
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at 
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


Re: [sage-support]

2012-02-16 Thread Santanu Sarkar
M2 is a (50, 50) matrix. Its entries are large (2048 bit).

On 16 February 2012 09:32, William Stein wst...@gmail.com wrote:
 On Thu, Feb 16, 2012 at 9:23 AM, Santanu Sarkar
 sarkar.santanu@gmail.com wrote:
 Hi all,
  I have used the function  E,N1=M2.hermite_form(transformation=True)
 to compute the Hermite Normal Form and
  observed  that it is very slow. Is there any better function?

 What is M2?


 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to 
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at 
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org



 --
 William Stein
 Professor of Mathematics
 University of Washington
 http://wstein.org

 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to 
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at 
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Re: SAGE CPLEX

2012-02-16 Thread Dima Pasechnik
In gmane.comp.mathematics.sage.support, you wrote:
 Hi Nathan,

 Yes, I checked local/include and local/lib. CPLEX runs fine also as a
 64 bit standalone.
 I recompiled everything with ./sage -ba, and now
 MixedIntegerLinearProgram(solver=CPLEX) triggers a new error
 message 

it might be a good test for compatibility if you
fire up sage's python (i.e. start sage -sh
and run python within this shell))
and test CPLEX's own Python interface.
(you'd need to run python setup.py at an appropriate place to
install the CPLEX's python interface)

Please report here on how this went.

Thanks,
Dmitrii

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Re:

2012-02-16 Thread Dima Pasechnik
In gmane.comp.mathematics.sage.support, you wrote:
 M2 is a (50, 50) matrix. Its entries are large (2048 bit).

did you try 'algorithm=padic' option, as suggested in the manual for
such a case (small matrix, large entrie)?

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


Re: [sage-support]

2012-02-16 Thread William Stein
On Thu, Feb 16, 2012 at 9:53 AM, Santanu Sarkar
sarkar.santanu@gmail.com wrote:
 M2 is a (50, 50) matrix. Its entries are large (2048 bit).

 On 16 February 2012 09:32, William Stein wst...@gmail.com wrote:
 On Thu, Feb 16, 2012 at 9:23 AM, Santanu Sarkar
 sarkar.santanu@gmail.com wrote:
 Hi all,
  I have used the function  E,N1=M2.hermite_form(transformation=True)
 to compute the Hermite Normal Form and
  observed  that it is very slow. Is there any better function?

By very slow, do you mean very slow compared to insert other math
software?

William


 What is M2?


 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to 
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at 
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org



 --
 William Stein
 Professor of Mathematics
 University of Washington
 http://wstein.org

 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to 
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at 
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org

 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to 
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at 
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


Re: [sage-support]

2012-02-16 Thread Santanu Sarkar
No, that I do not know. I run my code half an hour. But still donot get result.

On 16/02/2012, William Stein wst...@gmail.com wrote:
 On Thu, Feb 16, 2012 at 9:53 AM, Santanu Sarkar
 sarkar.santanu@gmail.com wrote:
 M2 is a (50, 50) matrix. Its entries are large (2048 bit).

 On 16 February 2012 09:32, William Stein wst...@gmail.com wrote:
 On Thu, Feb 16, 2012 at 9:23 AM, Santanu Sarkar
 sarkar.santanu@gmail.com wrote:
 Hi all,
  I have used the function  E,N1=M2.hermite_form(transformation=True)
 to compute the Hermite Normal Form and
  observed  that it is very slow. Is there any better function?

 By very slow, do you mean very slow compared to insert other math
 software?

 William


 What is M2?


 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org



 --
 William Stein
 Professor of Mathematics
 University of Washington
 http://wstein.org

 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org

 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org



 --
 William Stein
 Professor of Mathematics
 University of Washington
 http://wstein.org

 --
 To post to this group, send email to sage-support@googlegroups.com
 To unsubscribe from this group, send email to
 sage-support+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/sage-support
 URL: http://www.sagemath.org


-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Re: Modular operation in multivariate polynomials

2012-02-16 Thread Oleksandr Kazymyrov
Dear Simon,

 There is a difference between a polynomial (i.e., an element of a 
polynomial ring) and a polynomial function. Polynomials can be of arbitrary 
degree, over any coefficient field.

Yes I know this. But I think there is no difference between defining of 
PolynomialRing and PolynomialQuotientRing, assuming that you independently 
perform the operation by modulus. I am forcing the call of a function 
pol.mod(P(y^8+y)) to obtain the remainder by modulus. And I expect that 
monomial y^10*a2*b1^10*p5^2 will has degree 3 (y^3*a2*b1^10*p5^2) after 
operation pol.mod(P(y^8+y)) in the polynomial.

KInd regards,
Oleksandr

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Sage 4.8 notebook/server error on OSX and Linux

2012-02-16 Thread Adrian
Hi,


I have just tried to move on to v4.8 and I have encountered an error, on both 
precompiled binaries for OSX 10.6 64bit (running on OSX 10.6.8) and on OpenSuse 
Linux 64bit (where Sage was compiled from sources, which went OK).

The error is as following: on any worksheet, if a click evaluate under a 
cell, the web browser sends the request to the server, and it waits for it, but 
it never receives one. Instead Sage outputs the same error several times 
(appended in the end). If I save  close and then reopen the worksheet I now 
see the result of evaluate under that cell which tells me the issue is in 
server's response to requests.


Sage error output (identical on pre-build binaries for OSX and on compiled from 
source sage on Suse Linux), repeated several times for one request:


2012-02-17 00:45:11+0200 [HTTPChannel,13,127.0.0.1] Exception rendering:
2012-02-17 00:45:11+0200 [HTTPChannel,13,127.0.0.1] Unhandled Error
Traceback (most recent call last):
  File 
/data/sys/bin/sagemath.org/sage-4.8/local/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/internet/defer.py,
 line 625, in gotResult
_deferGenerator(g, deferred)
  File 
/data/sys/bin/sagemath.org/sage-4.8/local/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/internet/defer.py,
 line 602, in _deferGenerator
deferred.callback(result)
  File 
/data/sys/bin/sagemath.org/sage-4.8/local/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/internet/defer.py,
 line 238, in callback
self._startRunCallbacks(result)
  File 
/data/sys/bin/sagemath.org/sage-4.8/local/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/internet/defer.py,
 line 307, in _startRunCallbacks
self._runCallbacks()
--- exception caught here ---
  File 
/data/sys/bin/sagemath.org/sage-4.8/local/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/internet/defer.py,
 line 323, in _runCallbacks
self.result = callback(self.result, *args, **kw)
  File 
/data/sys/bin/sagemath.org/sage-4.8/local/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/web2/resource.py,
 line 230, in lambda
).addCallback(lambda res: self.render(request))
  File 
/data/sys/bin/sagemath.org/sage-4.8/devel/sagenb/sagenb/notebook/twist.py, 
line 1244, in render
notebook.add_to_user_history(H, self.username)
  File 
/data/sys/bin/sagemath.org/sage-4.8/devel/sagenb/sagenb/notebook/notebook.py, 
line 956, in add_to_user_history
history = self.user_history(username)
  File 
/data/sys/bin/sagemath.org/sage-4.8/devel/sagenb/sagenb/notebook/notebook.py, 
line 938, in user_history
for hunk in self.__storage.load_user_history(username):
  File 
/data/sys/bin/sagemath.org/sage-4.8/devel/sagenb/sagenb/storage/filesystem_storage.py,
 line 251, in load_user_history
return self._load(filename)
  File 
/data/sys/bin/sagemath.org/sage-4.8/devel/sagenb/sagenb/storage/filesystem_storage.py,
 line 134, in _load
return cPickle.load(open(self._abspath(filename)))
exceptions.EOFError: 



Thank you.

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Re: Sage 4.8 notebook/server error on OSX and Linux

2012-02-16 Thread Adrian
As usually, one tries to find the error source several hours and then, 
after asking for help, one finds it in minutes.

The problem was notebooks files got corrupted after a power outage. I've 
moved the directory to a backup location, recreated it by running Sage and 
then copied the old files from admin/ directory.

All is OK with an empty notebook folder. I'll search the user history to 
see if I can eliminate the error source.

Topic closed.

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org


[sage-support] Re: Modular operation in multivariate polynomials

2012-02-16 Thread Simon King
Hi Oleksandr,

On 16 Feb., 17:58, Oleksandr Kazymyrov vrona.aka.ham...@gmail.com
wrote:
 I am forcing the call of a function
 pol.mod(P(y^8+y)) to obtain the remainder by modulus.

Sorry, I had missed that (the example was quite long, and thus I had
the impression that you had merely constructed a polynomial over a
finite field, but no modulus except the modulus of the finite field).

 And I expect that
 monomial y^10*a2*b1^10*p5^2 will has degree 3 (y^3*a2*b1^10*p5^2) after
 operation pol.mod(P(y^8+y)) in the polynomial.

Right. That sounds like a bug to me.

Starting with your definitions, it seems to me that the bug is in
libSingular (which is used for polynomial arithmetic in Sage), whereas
Singular itself computes it correctly:

sage: polS = singular(pol)
sage: IS = singular(I)
sage: singular(NF(%s,std(%s))%(polS.name(), IS.name()))
y^7*a2*b1^14*p7^2+y^7*a2*b2^14*p7^2+y^6*a2*b0^8*b1^6*p7^2+y^6*a2*b1^8*b2^6*p7^2+y^6*a2*b0^2*b1^4*b2^8*p7^2+y^6*a2*b0^4*b2^10*p7^2+y^5*a2*b0^2*b1^12*p7^2+y^5*a2*b0^4*b1^8*b2^2*p7^2+y^5*a2*b0^8*b2^6*p7^2+y^5*a2*b1^2*b2^12*p7^2+y^6*a2*b1^4*b2^8*p6^2+y^4*a2*b0^10*b1^4*p7^2+y^4*a2*b0^12*b2^2*p7^2+y^4*a2*b1^10*b2^4*p7^2+y^4*a2*b0^4*b1^2*b2^8*p7^2+y^5*a2*b1^12*p6^2+y^3*a2*b0^4*b1^10*p7^2+y^3*a2*b0^8*b1^2*b2^4*p7^2+y^3*a2*b1^4*b2^10*p7^2+y^3*a2*b0^2*b2^12*p7^2+y^6*a2*b2^10*p5^2+y^4*a2*b0^8*b1^4*p6^2+y^2*a2*b0^12*b1^2*p7^2+y^2*a2*b1^12*b2^2*p7^2+y^2*a2*b0^2*b1^8*b2^4*p7^2+y^2*a2*b0^6*b2^8*p7^2+y^5*a2*b1^8*b2^2*p5^2+y^3*a2*b2^12*p6^2+y*a2*b0^6*b1^8*p7^2+y*a2*b0^8*b1^4*b2^2*p7^2+y*a2*b0^10*b2^4*p7^2+y*a2*b1^6*b2^8*p7^2+y^4*a2*b0^8*b2^2*p5^2+y^4*a2*b1^2*b2^8*p5^2+y^2*a2*b1^8*b2^4*p6^2+y^2*a2*b0^4*b2^8*p6^2+a2*b0^14*p7^2+y^3*a2*b1^10*p5^2+y*a2*b0^4*b1^8*p6^2+y*a2*b0^8*b2^4*p6^2+y^7*a1*b1^7*p7+y^7*a1*b2^7*p7+y^6*a2*b1^6*p3^2+y^2*a2*b0^8*b1^2*p5^2+y^2*a2*b0^2*b2^8*p5^2+a2*b0^12*p6^2+y^6*a1*b0*b1^6*p7+y^6*a1*b0^2*b1^4*b2*p7+y^6*a1*b0^4*b2^3*p7+y^6*a1*b1*b2^6*p7+y^5*a2*b2^6*p3^2+y*a2*b0^2*b1^8*p5^2+y^6*a1*b1^6*p6+y^5*a1*b0^2*b1^5*p7+y^5*a1*b0^4*b1*b2^2*p7+y^5*a1*b1^2*b2^5*p7+y^5*a1*b0*b2^6*p7+y^4*a2*b0^2*b1^4*p3^2+y^4*a2*b0^4*b2^2*p3^2+y^2*a2*b2^8*p4^2+y^6*a1*b1^4*b2*p5+a2*b0^10*p5^2+y^5*a1*b2^6*p6+y^4*a1*b0^3*b1^4*p7+y^4*a1*b0^4*b1^2*b2*p7+y^4*a1*b0^5*b2^2*p7+y^4*a1*b1^3*b2^4*p7+y^3*a2*b1^2*b2^4*p3^2+y*a2*b1^8*p4^2+y^5*a1*b1^5*p5+y^4*a1*b0^2*b1^4*p6+y^4*a1*b0^4*b2^2*p6+y^3*a1*b0^4*b1^3*p7+y^3*a1*b1^4*b2^3*p7+y^3*a1*b0*b1^2*b2^4*p7+y^3*a1*b0^2*b2^5*p7+y^4*a2*b1^4*p2^2+y^6*a1*b2^3*p3+y^2*a2*b0^4*b1^2*p3^2+a2*b0^8*p4^2+y^4*a1*b0*b1^4*p5+y^3*a1*b1^2*b2^4*p6+y^2*a1*b0^5*b1^2*p7+y^2*a1*b0^6*b2*p7+y^2*a1*b1^5*b2^2*p7+y^2*a1*b0^2*b1*b2^4*p7+y^5*a1*b1*b2^2*p3+y*a2*b1^4*b2^2*p3^2+y*a2*b0^2*b2^4*p3^2+y^4*a1*b1^4*p4+y^3*a1*b2^5*p5+y^2*a1*b0^4*b1^2*p6+y*a1*b0^6*b1*p7+y*a1*b1^6*b2*p7+y*a1*b0*b1^4*b2^2*p7+y*a1*b0^3*b2^4*p7+y^4*a2*b2^2*p1^2+y^4*a1*b1^2*b2*p3+y^4*a1*b0*b2^2*p3+a2*b0^6*p3^2+y^2*a1*b0^4*b2*p5+y^2*a1*b1*b2^4*p5+y*a1*b1^4*b2^2*p6+y*a1*b0^2*b2^4*p6+a1*b0^7*p7+y^4*a1*b2^2*p2+y*a2*b2^4*p2^2+y^3*a1*b1^3*p3+y*a1*b0^4*b1*p5+y*a1*b0*b2^4*p5+a1*b0^6*p6+y^2*a2*b1^2*p1^2+a2*b0^4*p2^2+y^2*a1*b0*b1^2*p3+y^2*a1*b0^2*b2*p3+y*a1*b2^4*p4+a1*b0^5*p5+y^2*a1*b1^2*p2+y*a1*b0^2*b1*p3+a1*b0^4*p4+y^2*a1*b2*p1+a2*b0^2*p1^2+a1*b0^3*p3+y*a1*b1*p1+a1*b0^2*p2+y^2*c2+a2*p0^2+a1*b0*p1+y*c1+a1*p0+a0
sage: pol.reduce(I)
y^7*a2*b1^14*p7^2 + y^7*a2*b2^14*p7^2 + y^10*a2*b1^10*p5^2 +
y^8*a2*b0^4*b1^8*p6^2 + y^8*a2*b0^8*b2^4*p6^2 + y^14*a1*b2^7*p7 +
y^6*a2*b0^8*b1^6*p7^2 + y^6*a2*b1^8*b2^6*p7^2 +
y^6*a2*b0^2*b1^4*b2^8*p7^2 + y^6*a2*b0^4*b2^10*p7^2 +
y^9*a2*b0^2*b2^8*p5^2 + y^13*a1*b1*b2^6*p7 + y^5*a2*b0^2*b1^12*p7^2 +
y^5*a2*b0^4*b1^8*b2^2*p7^2 + y^5*a2*b0^8*b2^6*p7^2 +
y^5*a2*b1^2*b2^12*p7^2 + y^12*a2*b2^6*p3^2 + y^8*a2*b0^2*b1^8*p5^2 +
y^6*a2*b1^4*b2^8*p6^2 + y^12*a1*b1^2*b2^5*p7 + y^12*a1*b0*b2^6*p7 +
y^4*a2*b0^10*b1^4*p7^2 + y^4*a2*b0^12*b2^2*p7^2 +
y^4*a2*b1^10*b2^4*p7^2 + y^4*a2*b0^4*b1^2*b2^8*p7^2 + y^9*a2*b2^8*p4^2
+ y^12*a1*b2^6*p6 + y^5*a2*b1^12*p6^2 + y^11*a1*b1^3*b2^4*p7 +
y^3*a2*b0^4*b1^10*p7^2 + y^3*a2*b0^8*b1^2*b2^4*p7^2 +
y^3*a2*b1^4*b2^10*p7^2 + y^3*a2*b0^2*b2^12*p7^2 +
y^10*a2*b1^2*b2^4*p3^2 + y^8*a2*b1^8*p4^2 + y^6*a2*b2^10*p5^2 +
y^4*a2*b0^8*b1^4*p6^2 + y^10*a1*b1^4*b2^3*p7 + y^10*a1*b0*b1^2*b2^4*p7
+ y^10*a1*b0^2*b2^5*p7 + y^2*a2*b0^12*b1^2*p7^2 +
y^2*a2*b1^12*b2^2*p7^2 + y^2*a2*b0^2*b1^8*b2^4*p7^2 +
y^2*a2*b0^6*b2^8*p7^2 + y^5*a2*b1^8*b2^2*p5^2 + y^10*a1*b1^2*b2^4*p6 +
y^3*a2*b2^12*p6^2 + y^9*a1*b1^5*b2^2*p7 + y^9*a1*b0^2*b1*b2^4*p7 +
y*a2*b0^6*b1^8*p7^2 + y*a2*b0^8*b1^4*b2^2*p7^2 + y*a2*b0^10*b2^4*p7^2
+ y*a2*b1^6*b2^8*p7^2 + y^8*a2*b1^4*b2^2*p3^2 + y^8*a2*b0^2*b2^4*p3^2
+ y^10*a1*b2^5*p5 + y^4*a2*b0^8*b2^2*p5^2 + y^4*a2*b1^2*b2^8*p5^2 +
y^2*a2*b1^8*b2^4*p6^2 + y^2*a2*b0^4*b2^8*p6^2 + y^8*a1*b1^6*b2*p7 +
y^8*a1*b0*b1^4*b2^2*p7 + y^8*a1*b0^3*b2^4*p7 + a2*b0^14*p7^2 +
y^9*a1*b1*b2^4*p5 + y^8*a1*b1^4*b2^2*p6 + y^8*a1*b0^2*b2^4*p6 +
y^7*a1*b1^7*p7 + y^8*a2*b2^4*p2^2 + y^6*a2*b1^6*p3^2 +
y^8*a1*b0*b2^4*p5 + y^2*a2*b0^8*b1^2*p5^2 + a2*b0^12*p6^2 +
y^6*a1*b0*b1^6*p7 + y^6*a1*b0^2*b1^4*b2*p7 + y^6*a1*b0^4*b2^3*p7