Ask Your Question
1

Trouble transforming a groebner basis

asked 2023-07-30 07:29:56 +0100

bjodah gravatar image

I'm using sage to compute Gröbner bases (in lexicographic order) over a fractional field. This has been working out well so far. For computational efficiency I've read that degrevlex order is often preferred for the initial basis calculation, followed by a transformation (using the FGLM algorithm) to the desired order (lex in my case).

However, I'm facing a problem when I try to transform the basis, my invocation might be wrong, but currently this is yielding me a TypeError: no conversion to a Singular ring defined.

This is the .sage file:

P.<p0, p1, p2, p3, p4, p5, p6, p7, p8, p9> = PolynomialRing(QQ)
F = Frac(P)
R = PolynomialRing(F, order='degrevlex', names=('z0', 'z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7'))
(z0, z1, z2, z3, z4, z5, z6, z7,) = R._first_ngens(8)

I = R.ideal(p0*z0*z1 - z2*z3, p1*z4 - z3*z5, p2*z1*z5 - z6, -p3 - p4 - p5 + z4 + z5 + z6, -p5 - p6 - p7 + z0 + z3 + z4, -p3 - p8 - p9 + z1 + z2 + z6, -p7 - p8 + z0 + z2, -z6 + z7)
gb = I.groebner_basis()
print('So far so good...')
S = PolynomialRing(F, order='lex', names=('z0', 'z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7'))
gbasis = Ideal(gb).transformed_basis('fglm', S)

print([{k: str(v) for k, v in _.dict().items()} for _ in gbasis])

and this is my backtrace:

So far so good...
Traceback (most recent call last):
  File "sage/rings/polynomial/multi_polynomial_libsingular.pyx", line 1222, in sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular._singular_ (build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:13949)
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/tmp8h3xz_3s.sage.py", line 16, in <module>
    gbasis = Ideal(gb).transformed_basis('fglm', S)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 297, in __call__
    return self.f(self._instance, *args, **kwds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sage/rings/qqbar_decorators.py", line 96, in wrapper
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sage/interfaces/singular.py", line 2763, in wrapper
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sage/libs/singular/standard_options.py", line 142, in wrapper
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 2055, in transformed_basis
    Rs = singular(R)
         ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sage/interfaces/singular.py", line 766, in __call__
    return x._singular_(self)
           ^^^^^^^^^^^^^^^^^^
  File "sage/rings/polynomial/multi_polynomial_libsingular.pyx", line 1236, in sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular._singular_ (build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:14457)
  File "sage/rings/polynomial/multi_polynomial_libsingular.pyx", line 1433, in sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular._singular_init_ (build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:16290)
TypeError: no conversion to a Singular ring defined

Any clue as to what I might be doing wrong?

I'm using sage 9.5, provided by Debian 12 (bookworm)

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2023-07-30 14:05:36 +0100

rburing gravatar image

You can use Singular's notion of a ring with parameters, but Sage's PolynomialRing interface to Singular doesn't understand this yet, so currently you have to do it by hand like so:

R = singular.ring('(0, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)', '(z0, z1, z2, z3, z4, z5, z6, z7)', 'dp')
I = singular.ideal('p0*z0*z1 - z2*z3', 'p1*z4 - z3*z5', 'p2*z1*z5 - z6', '-p3 - p4 - p5 + z4 + z5 + z6', '-p5 - p6 - p7 + z0 + z3 + z4', '-p3 - p8 - p9 + z1 + z2 + z6', '-p7 - p8 + z0 + z2', '-z6 + z7')
singular.option('redSB')
gb = singular.std(I)
S = singular.ring('(0, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)', '(z0, z1, z2, z3, z4, z5, z6, z7)', 'lp')
J = singular.ideal('fglm({}, {})'.format(R.name(), gb.name()))
J

It takes a few minutes but finally returns:

(-p0^2*p1*p2^2+p0^2*p2+2*p0*p1^2*p2^3-2*p0*p1*p2^2-p1^3*p2^4+p1^2*p2^3)*z7^5+(3*p0^2*p1*p2^2*p3+p0^2*p1*p2^2*p4+p0^2*p1*p2^2*p5-2*p0^2*p1*p2^2*p7+2*p0^2*p1*p2^2*p9+p0^2*p1*p2-2*p0^2*p2*p3-p0^2*p2*p4+p0^2*p2*p6+2*p0^2*p2*p7-p0^2*p2*p9-p0^2-p0*p1^3*p2^3-8*p0*p1^2*p2^3*p3-3*p0*p1^2*p2^3*p4-4*p0*p1^2*p2^3*p5-p0*p1^2*p2^3*p6+2*p0*p1^2*p2^3*p7-2*p0*p1^2*p2^3*p8-5*p0*p1^2*p2^3*p9-p0*p1^2*p2^2+6*p0*p1*p2^2*p3+3*p0*p1*p2^2*p4+2*p0*p1*p2^2*p5-p0*p1*p2^2*p6-2*p0*p1*p2^2*p7+2*p0*p1*p2^2*p8+3*p0*p1*p2^2*p9+2*p0*p1*p2+5*p1^3*p2^4*p3+2*p1^3*p2^4*p4+3*p1^3*p2^4*p5+p1^3*p2^4*p6+2*p1^3*p2^4*p8+3*p1^3*p2^4*p9+2*p1^3*p2^3-4*p1^2*p2^3*p3-2*p1^2*p2^3*p4-2*p1^2*p2^3*p5-2*p1^2*p2^3*p8-2*p1^2*p2^3*p9-2*p1^2*p2^2)*z7^4+(-3*p0^2*p1*p2^2*p3^2-2*p0^2*p1*p2^2*p3*p4-2*p0^2*p1*p2^2*p3*p5+4*p0^2*p1*p2^2*p3*p7-4*p0^2*p1*p2^2*p3*p9+2*p0^2*p1*p2^2*p4*p7-2*p0^2*p1*p2^2*p4*p9+2*p0^2*p1*p2^2*p5*p7-2*p0^2*p1*p2^2*p5*p9-p0^2*p1*p2^2*p7^2+2*p0^2*p1*p2^2*p7*p9-p0^2*p1*p2^2*p9^2-p0^2*p1*p2*p3+p0^2*p1*p2*p7-p0^2*p1*p2*p9+p0^2*p2*p3^2+p0^2*p2*p3*p4-p0^2*p2*p3*p6-2*p0^2*p2*p3*p7+p0^2*p2*p3*p9-p0^2*p2*p4*p7+p0^2*p2*p4*p9+p0^2*p2*p6*p7-p0^2*p2*p6*p9+p0^2*p2*p7^2-p0^2*p2*p7*p9+3*p0*p1^3*p2^3*p3+p0*p1^3*p2^3*p4+p0*p1^3*p2^3*p5-p0*p1^3*p2^3*p7+p0*p1^3*p2^3*p8+2*p0*p1^3*p2^3*p9+p0*p1^3*p2^2+12*p0*p1^2*p2^3*p3^2+9*p0*p1^2*p2^3*p3*p4+12*p0*p1^2*p2^3*p3*p5+3*p0*p1^2*p2^3*p3*p6-6*p0*p1^2*p2^3*p3*p7+6*p0*p1^2*p2^3*p3*p8+15*p0*p1^2*p2^3*p3*p9+p0*p1^2*p2^3*p4^2+3*p0*p1^2*p2^3*p4*p5+p0*p1^2*p2^3*p4*p6-3*p0*p1^2*p2^3*p4*p7+3*p0*p1^2*p2^3*p4*p8+7*p0*p1^2*p2^3*p4*p9+2*p0*p1^2*p2^3*p5^2+p0*p1^2*p2^3*p5*p6-4*p0*p1^2*p2^3*p5*p7+4*p0*p1^2*p2^3*p5*p8+9*p0*p1^2*p2^3*p5*p9-p0*p1^2*p2^3*p6*p7+p0*p1^2*p2^3*p6*p8+2*p0*p1^2*p2^3*p6*p9-2*p0*p1^2*p2^3*p7*p8-3*p0*p1^2*p2^3*p7*p9+3*p0*p1^2*p2^3*p8*p9+4*p0*p1^2*p2^3*p9^2+2*p0*p1^2*p2^2*p3+2*p0*p1^2*p2^2*p5+2*p0*p1^2*p2^2*p6+2*p0*p1^2*p2^2*p7+2*p0*p1^2*p2^2*p8+2*p0*p1^2*p2^2*p9-p0*p1^2*p2-6*p0*p1*p2^2*p3^2-6*p0*p1*p2^2*p3*p4-4*p0*p1*p2^2*p3*p5+2*p0*p1*p2^2*p3*p6+4*p0*p1*p2^2*p3*p7-4*p0*p1*p2^2*p3*p8-6*p0*p1*p2^2*p3*p9-p0*p1*p2^2*p4^2-2*p0*p1*p2^2*p4*p5+2*p0*p1*p2^2*p4*p7-2*p0*p1*p2^2*p4*p8-4*p0*p1*p2^2*p4*p9+2*p0*p1*p2^2*p5*p6+2*p0*p1*p2^2*p5*p7-2*p0*p1*p2^2*p5*p8-2*p0*p1*p2^2*p5*p9+p0*p1*p2^2*p6^2+2*p0*p1*p2^2*p6*p9+2*p0*p1*p2^2*p7*p8+2*p0*p1*p2^2*p7*p9-2*p0*p1*p2^2*p8*p9-p0*p1*p2^2*p9^2-2*p0*p1*p2*p3-p0*p1*p2*p4-2*p0*p1*p2*p5-p0*p1*p2*p6-2*p0*p1*p2*p7-2*p0*p1*p2*p8-p0*p1*p2*p9-10*p1^3*p2^4*p3^2-8*p1^3*p2^4*p3*p4-12*p1^3*p2^4*p3*p5-4*p1^3*p2^4*p3*p6-8*p1^3*p2^4*p3*p8-12*p1^3*p2^4*p3*p9-p1^3*p2^4*p4^2-4*p1^3*p2^4*p4*p5-2*p1^3*p2^4*p4*p6-4*p1^3*p2^4*p4*p8-6*p1^3*p2^4*p4*p9-3*p1^3*p2^4*p5^2-2*p1^3*p2^4*p5*p6-6*p1^3*p2^4*p5*p8-8*p1^3*p2^4*p5*p9-2*p1^3*p2^4*p6*p8-2*p1^3*p2^4*p6*p9-p1^3*p2^4*p8^2-4*p1^3*p2^4*p8*p9-3*p1^3*p2^4*p9^2-6*p1^3*p2^3*p3-2*p1^3*p2^3*p4-3*p1^3*p2^3*p5-p1^3*p2^3*p6-3*p1^3*p2^3*p8-4*p1^3*p2^3*p9-p1^3*p2^2+6*p1^2*p2^3*p3^2+6*p1^2*p2^3*p3*p4+6*p1^2*p2^3*p3*p5+6*p1^2*p2^3*p3*p8+6*p1^2*p2^3*p3*p9+p1^2*p2^3*p4^2+3*p1^2*p2^3*p4*p5+p1^2*p2^3*p4*p6+3*p1^2*p2^3*p4*p8+4*p1^2*p2^3*p4*p9+p1^2*p2^3*p5^2-p1^2*p2^3*p5*p6+4*p1^2*p2^3*p5*p8+3*p1^2*p2^3*p5*p9-p1^2*p2^3*p6^2+p1^2*p2^3*p6*p8-p1^2*p2^3*p6*p9+p1^2*p2^3*p8^2+3*p1^2*p2^3*p8*p9+p1^2*p2^3*p9^2+4*p1^2*p2^2*p3+2*p1^2*p2^2*p4+2*p1^2*p2^2*p5+2*p1^2*p2^2*p8+2*p1^2*p2^2*p9+p1^2*p2)*z7^3+(p0^2*p1*p2^2*p3^3+p0^2*p1*p2^2*p3^2*p4+p0^2*p1*p2^2*p3^2*p5-2*p0^2*p1*p2^2*p3^2*p7+2*p0^2*p1*p2^2*p3^2*p9-2*p0^2*p1*p2^2*p3*p4*p7+2*p0^2*p1*p2^2*p3*p4*p9-2*p0^2*p1*p2^2*p3*p5*p7+2*p0^2*p1*p2^2*p3*p5*p9+p0^2*p1*p2^2*p3*p7^2-2*p0^2*p1*p2^2*p3*p7*p9+p0^2*p1*p2^2*p3*p9^2+p0^2*p1*p2^2*p4*p7^2-2*p0^2*p1*p2^2*p4*p7*p9+p0^2*p1*p2^2*p4*p9^2+p0^2*p1*p2^2*p5*p7^2-2*p0^2*p1*p2^2*p5*p7*p9+p0^2*p1*p2^2*p5*p9^2-3*p0*p1^3*p2^3*p3^2-2*p0*p1^3*p2^3*p3*p4-2*p0*p1^3*p2^3*p3*p5+2*p0*p1^3*p2^3*p3*p7-2*p0*p1^3*p2^3*p3*p8-4*p0*p1^3*p2^3*p3*p9+p0*p1^3*p2^3*p4*p7-p0*p1^3*p2^3*p4*p8-2*p0*p1^3*p2^3*p4*p9+p0*p1^3*p2^3*p5*p7-p0*p1^3*p2^3*p5*p8-2*p0*p1^3*p2^3*p5*p9+p0*p1^3*p2^3*p7*p8+p0*p1^3*p2^3*p7*p9-p0*p1^3*p2^3*p8*p9-p0*p1^3*p2^3*p9^2-p0*p1^3*p2^2*p3-p0*p1^3*p2^2*p8-p0*p1^3*p2^2*p9-8*p0*p1^2*p2^3*p3^3-9*p0*p1^2*p2^3*p3^2*p4-12*p0*p1^2*p2^3*p3^2*p5-3*p0*p1^2*p2^3*p3^2*p6+6*p0*p1^2*p2^3*p3^2*p7-6*p0*p1^2*p2^3*p3^2*p8-15*p0*p1^2*p2^3*p3^2*p9-2*p0*p1^2*p2^3*p3*p4^2-6*p0*p1^2*p2^3*p3*p4*p5-2*p0*p1^2*p2^3*p3*p4*p6+6*p0*p1^2*p2^3*p3*p4*p7-6*p0*p1^2*p2^3*p3*p4*p8-14*p0*p1^2*p2^3*p3*p4*p9-4*p0*p1^2*p2^3*p3*p5^2-2*p0*p1^2*p2^3*p3*p5*p6+8*p0*p1^2*p2^3*p3*p5*p7-8*p0*p1^2*p2^3*p3*p5*p8-18*p0*p1^2*p2^3*p3*p5*p9+2*p0*p1^2*p2^3*p3*p6*p7-2*p0*p1^2*p2^3*p3*p6*p8-4*p0*p1^2*p2^3*p3*p6*p9+4*p0*p1^2*p2^3*p3*p7*p8+6*p0*p1^2*p2^3*p3*p7*p9-6*p0*p1^2*p2^3*p3*p8*p9-8*p0*p1^2*p2^3*p3*p9^2+p0*p1^2*p2^3*p4^2*p7-p0*p1^2*p2^3*p4^2*p8-2*p0*p1^2*p2^3*p4^2*p9+3*p0*p1^2*p2^3*p4*p5*p7-3*p0*p1^2*p2^3*p4*p5*p8-6*p0*p1^2*p2^3*p4*p5*p9+p0*p1^2*p2^3*p4*p6*p7-p0*p1^2*p2^3*p4*p6*p8-2*p0*p1^2*p2^3*p4*p6*p9+3*p0*p1^2*p2^3*p4*p7*p8+4*p0*p1^2*p2^3*p4*p7*p9-4*p0*p1^2*p2^3*p4*p8*p9-5*p0*p1^2*p2^3*p4*p9^2+2*p0*p1^2*p2^3*p5^2*p7-2*p0*p1^2*p2^3*p5^2*p8-4*p0*p1^2*p2^3*p5^2*p9+p0*p1^2*p2^3*p5*p6*p7-p0*p1^2*p2^3*p5*p6*p8-2*p0*p1^2*p2^3*p5*p6*p9+4*p0*p1^2*p2^3*p5*p7*p8+5*p0*p1^2*p2^3*p5*p7*p9-5*p0*p1^2*p2^3*p5*p8*p9-6*p0*p1^2*p2^3*p5*p9^2+p0*p1^2*p2^3*p6*p7*p8+p0*p1^2*p2^3*p6*p7*p9-p0*p1^2*p2^3*p6*p8*p9-p0*p1^2*p2^3*p6*p9^2+p0*p1^2*p2^3*p7*p8*p9+p0*p1^2*p2^3*p7*p9^2-p0*p1^2*p2^3*p8*p9^2-p0*p1^2*p2^3*p9^3-p0*p1^2*p2^2*p3^2-2*p0*p1^2*p2^2*p3*p5-2*p0*p1^2*p2^2*p3*p6-2*p0*p1^2*p2^2*p3*p7-2*p0*p1^2*p2^2*p3*p8-2*p0*p1^2*p2^2*p3*p9-p0*p1^2*p2^2*p4*p7-p0*p1^2*p2^2*p4*p8-p0*p1^2*p2^2*p5*p7-3*p0*p1^2*p2^2*p5*p8-2*p0*p1^2*p2^2*p5*p9-2*p0*p1^2*p2^2*p6*p8-2*p0*p1^2*p2^2*p6*p9-p0*p1^2*p2^2*p7*p8-p0*p1^2*p2^2*p7*p9-p0*p1^2*p2^2*p8*p9-p0*p1^2*p2^2*p9^2+2*p0*p1*p2^2*p3^3+3*p0*p1*p2^2*p3^2*p4+2*p0*p1*p2^2*p3^2*p5-p0*p1*p2^2*p3^2*p6-2*p0*p1*p2^2*p3^2*p7+2*p0*p1*p2^2*p3^2*p8+3*p0*p1*p2^2*p3^2*p9+p0*p1*p2^2*p3*p4^2+2*p0*p1*p2^2*p3*p4*p5-2*p0*p1*p2^2*p3*p4*p7+2*p0*p1*p2^2*p3*p4*p8+4*p0*p1*p2^2*p3*p4*p9-2*p0*p1*p2^2*p3*p5*p6-2*p0*p1*p2^2*p3*p5*p7+2*p0*p1*p2^2*p3*p5*p8+2*p0*p1*p2^2*p3*p5*p9-p0*p1*p2^2*p3*p6^2-2*p0*p1*p2^2*p3*p6*p9-2*p0*p1*p2^2*p3*p7*p8-2*p0*p1*p2^2*p3*p7*p9+2*p0*p1*p2^2*p3*p8*p9+p0*p1*p2^2*p3*p9^2-p0*p1*p2^2*p4^2*p7+p0*p1*p2^2*p4^2*p9-p0*p1*p2^2*p4*p5*p7+p0*p1*p2^2*p4*p5*p8+2*p0*p1*p2^2*p4*p5*p9+p0*p1*p2^2*p4*p6*p7+p0*p1*p2^2*p4*p6*p8-p0*p1*p2^2*p4*p7*p8+2*p0*p1*p2^2*p4*p8*p9+p0*p1*p2^2*p4*p9^2+p0*p1*p2^2*p5*p6*p7-p0*p1*p2^2*p5*p6*p8-2*p0*p1*p2^2*p5*p6*p9-2*p0*p1*p2^2*p5*p7*p8-p0*p1*p2^2*p5*p7*p9+p0*p1*p2^2*p5*p8*p9-p0*p1*p2^2*p6^2*p8-p0*p1*p2^2*p6^2*p9-p0*p1*p2^2*p6*p7*p8-p0*p1*p2^2*p6*p7*p9-p0*p1*p2^2*p6*p8*p9-p0*p1*p2^2*p6*p9^2-p0*p1*p2^2*p7*p8*p9-p0*p1*p2^2*p7*p9^2+10*p1^3*p2^4*p3^3+12*p1^3*p2^4*p3^2*p4+18*p1^3*p2^4*p3^2*p5+6*p1^3*p2^4*p3^2*p6+12*p1^3*p2^4*p3^2*p8+18*p1^3*p2^4*p3^2*p9+3*p1^3*p2^4*p3*p4^2+12*p1^3*p2^4*p3*p4*p5+6*p1^3*p2^4*p3*p4*p6+12*p1^3*p2^4*p3*p4*p8+18*p1^3*p2^4*p3*p4*p9+9*p1^3*p2^4*p3*p5^2+6*p1^3*p2^4*p3*p5*p6+18*p1^3*p2^4*p3*p5*p8+24*p1^3*p2^4*p3*p5*p9+6*p1^3*p2^4*p3*p6*p8+6*p1^3*p2^4*p3*p6*p9+3*p1^3*p2^4*p3*p8^2+12*p1^3*p2^4*p3*p8*p9+9*p1^3*p2^4*p3*p9^2+p1^3*p2^4*p4^2*p5+p1^3*p2^4*p4^2*p6+2*p1^3*p2^4*p4^2*p8+3*p1^3*p2^4*p4^2*p9+2*p1^3*p2^4*p4*p5^2+2*p1^3*p2^4*p4*p5*p6+8*p1^3*p2^4*p4*p5*p8+10*p1^3*p2^4*p4*p5*p9+4*p1^3*p2^4*p4*p6*p8+4*p1^3*p2^4*p4*p6*p9+2*p1^3*p2^4*p4*p8^2+8*p1^3*p2^4*p4*p8*p9+6*p1^3*p2^4*p4*p9^2+p1^3*p2^4*p5^3+p1^3*p2^4*p5^2*p6+6*p1^3*p2^4*p5^2*p8+7*p1^3*p2^4*p5^2*p9+4*p1^3*p2^4*p5*p6*p8+4*p1^3*p2^4*p5*p6*p9+3*p1^3*p2^4*p5*p8^2+10*p1^3*p2^4*p5*p8*p9+7*p1^3*p2^4*p5*p9^2+p1^3*p2^4*p6*p8^2+2*p1^3*p2^4*p6*p8*p9+p1^3*p2^4*p6*p9^2+p1^3*p2^4*p8^2*p9+2*p1^3*p2^4*p8*p9^2+p1^3*p2^4*p9^3+6*p1^3*p2^3*p3^2+4*p1^3*p2^3*p3*p4+6*p1^3*p2^3*p3*p5+2*p1^3*p2^3*p3*p6+6*p1^3*p2^3*p3*p8+8*p1^3*p2^3*p3*p9+p1^3*p2^3*p4*p5+p1^3*p2^3*p4*p6+3*p1^3*p2^3*p4*p8+4*p1^3*p2^3*p4*p9+p1^3*p2^3*p5^2+p1^3*p2^3*p5*p6+4*p1^3*p2^3*p5*p8+5*p1^3*p2^3*p5*p9+p1^3*p2^3*p6*p8+p1^3*p2^3*p6*p9+p1^3*p2^3*p8^2+3*p1^3*p2^3*p8*p9+2*p1^3*p2^3*p9^2+p1^3*p2^2*p3+p1^3*p2^2*p8+p1^3*p2^2*p9-4*p1^2*p2^3*p3^3-6*p1^2*p2^3*p3^2*p4-6*p1^2*p2^3*p3^2*p5-6*p1^2*p2^3*p3^2*p8-6*p1^2*p2^3*p3^2*p9-2*p1^2*p2^3*p3*p4^2-6*p1^2*p2^3*p3*p4*p5-2*p1^2*p2^3*p3*p4*p6-6*p1^2*p2^3*p3*p4*p8-8*p1^2*p2^3*p3*p4*p9-2*p1^2*p2^3*p3*p5^2+2*p1^2*p2^3*p3*p5*p6-8*p1^2*p2^3*p3*p5*p8-6*p1^2*p2^3*p3*p5*p9+2*p1^2*p2^3*p3*p6^2-2*p1^2*p2^3*p3*p6*p8+2*p1^2*p2^3*p3*p6*p9-2*p1^2*p2^3*p3*p8^2-6*p1^2*p2^3*p3*p8*p9-2*p1^2*p2^3*p3*p9^2-p1^2*p2^3*p4^2*p5-p1^2*p2^3*p4^2*p6-p1^2*p2^3*p4^2*p8-2*p1^2*p2^3*p4^2*p9-p1^2*p2^3*p4*p5^2-4*p1^2*p2^3*p4*p5*p8-4*p1^2*p2^3*p4*p5*p9+p1^2*p2^3*p4*p6^2-2*p1^2*p2^3*p4*p6*p8-p1^2*p2^3*p4*p8^2-4*p1^2*p2^3*p4*p8*p9-2*p1^2*p2^3*p4*p9^2+p1^2*p2^3*p5^2*p6-2*p1^2*p2^3*p5^2*p8-p1^2*p2^3*p5^2*p9+p1^2*p2^3*p5*p6^2+2*p1^2*p2^3*p5*p6*p9-2*p1^2*p2^3*p5*p8^2-4*p1^2*p2^3*p5*p8*p9-p1^2*p2^3*p5*p9^2+p1^2*p2^3*p6^2*p8+p1^2*p2^3*p6^2*p9-p1^2*p2^3*p6*p8^2+p1^2*p2^3*p6*p9^2-p1^2*p2^3*p8^2*p9-p1^2*p2^3*p8*p9^2-2*p1^2*p2^2*p3^2-2*p1^2*p2^2*p3*p4-2*p1^2*p2^2*p3*p5-2*p1^2*p2^2*p3*p8-2*p1^2*p2^2*p3*p9-p1^2*p2^2*p4*p5-p1^2*p2^2*p4*p6-p1^2*p2^2*p4*p8-2*p1^2*p2^2*p4*p9-p1^2*p2^2*p5^2-p1^2*p2^2*p5*p6-p1^2*p2^2*p5*p9+p1^2*p2^2*p6*p8+p1^2*p2^2*p6*p9-p1^2*p2^2*p8^2-p1^2*p2^2*p8*p9)*z7^2+(p0*p1^3*p2^3*p3^3+p0*p1^3*p2^3*p3^2*p4+p0*p1^3*p2^3*p3^2*p5-p0*p1^3*p2^3*p3^2*p7+p0*p1^3*p2^3*p3^2*p8+2*p0*p1^3*p2^3*p3^2*p9-p0*p1^3*p2^3*p3*p4*p7+p0*p1^3*p2^3*p3*p4*p8+2*p0*p1^3*p2^3*p3*p4*p9-p0*p1^3*p2^3*p3*p5*p7+p0*p1^3*p2^3*p3*p5*p8+2*p0*p1^3*p2^3*p3*p5*p9-p0*p1^3*p2^3*p3*p7*p8-p0*p1^3*p2^3*p3*p7*p9+p0*p1^3*p2^3*p3*p8*p9+p0*p1^3*p2^3*p3*p9^2-p0*p1^3*p2^3*p4*p7*p8-p0*p1^3*p2^3*p4*p7*p9+p0*p1^3*p2^3*p4*p8*p9+p0*p1^3*p2^3*p4*p9^2-p0*p1^3*p2^3*p5*p7*p8-p0*p1^3*p2^3*p5*p7*p9+p0*p1^3*p2^3*p5*p8*p9+p0*p1^3*p2^3*p5*p9^2+2*p0*p1^2*p2^3*p3^4+3*p0*p1^2*p2^3*p3^3*p4+4*p0*p1^2*p2^3*p3^3*p5+p0*p1^2*p2^3*p3^3*p6-2*p0*p1^2*p2^3*p3^3*p7+2*p0*p1^2*p2^3*p3^3*p8+5*p0*p1^2*p2^3*p3^3*p9+p0*p1^2*p2^3*p3^2*p4^2+3*p0*p1^2*p2^3*p3^2*p4*p5+p0*p1^2*p2^3*p3^2*p4*p6-3*p0*p1^2*p2^3*p3^2*p4*p7+3*p0*p1^2*p2^3*p3^2*p4*p8+7*p0*p1^2*p2^3*p3^2*p4*p9+2*p0*p1^2*p2^3*p3^2*p5^2+p0*p1^2*p2^3*p3^2*p5*p6-4*p0*p1^2*p2^3*p3^2*p5*p7+4*p0*p1^2*p2^3*p3^2*p5*p8+9*p0*p1^2*p2^3*p3^2*p5*p9-p0*p1^2*p2^3*p3^2*p6*p7+p0*p1^2*p2^3*p3^2*p6*p8+2*p0*p1^2*p2^3*p3^2*p6*p9-2*p0*p1^2*p2^3*p3^2*p7*p8-3*p0*p1^2*p2^3*p3^2*p7*p9+3*p0*p1^2*p2^3*p3^2*p8*p9+4*p0*p1^2*p2^3*p3^2*p9^2-p0*p1^2*p2^3*p3*p4^2*p7+p0*p1^2*p2^3*p3*p4^2*p8+2*p0*p1^2*p2^3*p3*p4^2*p9-3*p0*p1^2*p2^3*p3*p4*p5*p7+3*p0*p1^2*p2^3*p3*p4*p5*p8+6*p0*p1^2*p2^3*p3*p4*p5*p9-p0*p1^2*p2^3*p3*p4*p6*p7+p0*p1^2*p2^3*p3*p4*p6*p8+2*p0*p1^2*p2^3*p3*p4*p6*p9-3*p0*p1^2*p2^3*p3*p4*p7*p8-4*p0*p1^2*p2^3*p3*p4*p7*p9+4*p0*p1^2*p2^3*p3*p4*p8*p9+5*p0*p1^2*p2^3*p3*p4*p9^2-2*p0*p1^2*p2^3*p3*p5^2*p7+2*p0*p1^2*p2^3*p3*p5^2*p8+4*p0*p1^2*p2^3*p3*p5^2*p9-p0*p1^2*p2^3*p3*p5*p6*p7+p0*p1^2*p2^3*p3*p5*p6*p8+2*p0*p1^2*p2^3*p3*p5*p6*p9-4*p0*p1^2*p2^3*p3*p5*p7*p8-5*p0*p1^2*p2^3*p3*p5*p7*p9+5*p0*p1^2*p2^3*p3*p5*p8*p9+6*p0*p1^2*p2^3*p3*p5*p9^2-p0*p1^2*p2^3*p3*p6*p7*p8-p0*p1^2*p2^3*p3*p6*p7*p9+p0*p1^2*p2^3*p3*p6*p8*p9+p0*p1^2*p2^3*p3*p6*p9^2-p0*p1^2*p2^3*p3*p7*p8*p9-p0*p1^2*p2^3*p3*p7*p9^2+p0*p1^2*p2^3*p3*p8*p9^2+p0*p1^2*p2^3*p3*p9^3-p0*p1^2*p2^3*p4^2*p7*p8-p0*p1^2*p2^3*p4^2*p7*p9+p0*p1^2*p2^3*p4^2*p8*p9+p0*p1^2*p2^3*p4^2*p9^2-3*p0*p1^2*p2^3*p4*p5*p7*p8-3*p0*p1^2*p2^3*p4*p5*p7*p9+3*p0*p1^2*p2^3*p4*p5*p8*p9+3*p0*p1^2*p2^3*p4*p5*p9^2-p0*p1^2*p2^3*p4*p6*p7*p8-p0*p1^2*p2^3*p4*p6*p7*p9+p0*p1^2*p2^3*p4*p6*p8*p9+p0*p1^2*p2^3*p4*p6*p9^2-p0*p1^2*p2^3*p4*p7*p8*p9-p0*p1^2*p2^3*p4*p7*p9^2+p0*p1^2*p2^3*p4*p8*p9^2+p0*p1^2*p2^3*p4*p9^3-2*p0*p1^2*p2^3*p5^2*p7*p8-2*p0*p1^2*p2^3*p5^2*p7*p9+2*p0*p1^2*p2^3*p5^2*p8*p9+2*p0*p1^2*p2^3*p5^2*p9^2-p0*p1^2*p2^3*p5*p6*p7*p8-p0*p1^2*p2^3*p5*p6*p7*p9+p0*p1^2*p2^3*p5*p6*p8*p9+p0*p1^2*p2^3*p5*p6*p9^2-p0*p1^2*p2^3*p5*p7*p8*p9-p0*p1^2*p2^3*p5*p7*p9^2+p0*p1^2*p2^3*p5*p8*p9^2+p0*p1^2*p2^3*p5*p9^3-5*p1^3*p2^4*p3^4-8*p1^3*p2^4*p3^3*p4-12*p1^3*p2^4*p3^3*p5-4*p1^3*p2^4*p3^3*p6-8*p1^3*p2^4*p3^3*p8-12*p1^3*p2^4*p3^3*p9-3*p1^3*p2^4*p3^2*p4^2-12*p1^3*p2^4*p3^2*p4*p5-6*p1^3*p2^4*p3^2*p4*p6-12*p1^3*p2^4*p3^2*p4*p8-18*p1^3*p2^4*p3^2*p4*p9-9*p1^3*p2^4*p3^2*p5^2-6*p1^3*p2^4*p3^2*p5*p6-18*p1^3*p2^4*p3^2*p5*p8-24*p1^3*p2^4*p3^2*p5*p9-6*p1^3*p2^4*p3^2*p6*p8-6*p1^3*p2^4*p3^2*p6*p9-3*p1^3*p2^4*p3^2*p8^2-12*p1^3*p2^4*p3^2*p8*p9-9*p1^3*p2^4*p3^2*p9^2-2*p1^3*p2^4*p3*p4^2*p5-2*p1^3*p2^4*p3*p4^2*p6-4*p1^3*p2^4*p3*p4^2*p8-6*p1^3*p2^4*p3*p4^2*p9-4*p1^3*p2^4*p3*p4*p5^2-4*p1^3*p2^4*p3*p4*p5*p6-16*p1^3*p2^4*p3*p4*p5*p8-20*p1^3*p2^4*p3*p4*p5*p9-8*p1^3*p2^4*p3*p4*p6*p8-8*p1^3*p2^4*p3*p4*p6*p9-4*p1^3*p2^4*p3*p4*p8^2-16*p1^3*p2^4*p3*p4*p8*p9-12*p1^3*p2^4*p3*p4*p9^2-2*p1^3*p2^4*p3*p5^3-2*p1^3*p2^4*p3*p5^2*p6-12*p1^3*p2^4*p3*p5^2*p8-14*p1^3*p2^4*p3*p5^2*p9-8*p1^3*p2^4*p3*p5*p6*p8-8*p1^3*p2^4*p3*p5*p6*p9-6*p1^3*p2^4*p3*p5*p8^2-20*p1^3*p2^4*p3*p5*p8*p9-14*p1^3*p2^4*p3*p5*p9^2-2*p1^3*p2^4*p3*p6*p8^2-4*p1^3*p2^4*p3*p6*p8*p9-2*p1^3*p2^4*p3*p6*p9^2-2*p1^3*p2^4*p3*p8^2*p9-4*p1^3*p2^4*p3*p8*p9^2-2*p1^3*p2^4*p3*p9^3-2*p1^3*p2^4*p4^2*p5*p8-2*p1^3*p2^4*p4^2*p5*p9-2*p1^3*p2^4*p4^2*p6*p8-2*p1^3*p2^4*p4^2*p6*p9-p1^3*p2^4*p4^2*p8^2-4*p1^3*p2^4*p4^2*p8*p9-3*p1^3*p2^4*p4^2*p9^2-4*p1^3*p2^4*p4*p5^2*p8-4*p1^3*p2^4*p4*p5^2*p9-4*p1^3*p2^4*p4*p5*p6*p8-4*p1^3*p2^4*p4*p5*p6*p9-4*p1^3*p2^4*p4*p5*p8^2-12*p1^3*p2^4*p4*p5*p8*p9-8*p1^3*p2^4*p4*p5*p9^2-2*p1^3*p2^4*p4*p6*p8^2-4*p1^3*p2^4*p4*p6*p8*p9-2*p1^3*p2^4*p4*p6*p9^2-2*p1^3*p2^4*p4*p8^2*p9-4*p1^3*p2^4*p4*p8*p9^2-2*p1^3*p2^4*p4*p9^3-2*p1^3*p2^4*p5^3*p8-2*p1^3*p2^4*p5^3*p9-2*p1^3*p2^4*p5^2*p6*p8-2*p1^3*p2^4*p5^2*p6*p9-3*p1^3*p2^4*p5^2*p8^2-8*p1^3*p2^4*p5^2*p8*p9-5*p1^3*p2^4*p5^2*p9^2-2*p1^3*p2^4*p5*p6*p8^2-4*p1^3*p2^4*p5*p6*p8*p9-2*p1^3*p2^4*p5*p6*p9^2-2*p1^3*p2^4*p5*p8^2*p9-4*p1^3*p2^4*p5*p8*p9^2-2*p1^3*p2^4*p5*p9^3-2*p1^3*p2^3*p3^3-2*p1^3*p2^3*p3^2*p4-3*p1^3*p2^3*p3^2*p5-p1^3*p2^3*p3^2*p6-3*p1^3*p2^3*p3^2*p8-4*p1^3*p2^3*p3^2*p9-p1^3*p2^3*p3*p4*p5-p1^3*p2^3*p3*p4*p6-3*p1^3*p2^3*p3*p4*p8-4*p1^3*p2^3*p3*p4*p9-p1^3*p2^3*p3*p5^2-p1^3*p2^3*p3*p5*p6-4*p1^3*p2^3*p3*p5*p8-5*p1^3*p2^3*p3*p5*p9-p1^3*p2^3*p3*p6*p8-p1^3*p2^3*p3*p6*p9-p1^3*p2^3*p3*p8^2-3*p1^3*p2^3*p3*p8*p9-2*p1^3*p2^3*p3*p9^2-p1^3*p2^3*p4*p5*p8-p1^3*p2^3*p4*p5*p9-p1^3*p2^3*p4*p6*p8-p1^3*p2^3*p4*p6*p9-p1^3*p2^3*p4*p8^2-3*p1^3*p2^3*p4*p8*p9-2*p1^3*p2^3*p4*p9^2-p1^3*p2^3*p5^2*p8-p1^3*p2^3*p5^2*p9-p1^3*p2^3*p5*p6*p8-p1^3*p2^3*p5*p6*p9-p1^3*p2^3*p5*p8^2-3*p1^3*p2^3*p5*p8*p9-2*p1^3*p2^3*p5*p9^2+p1^2*p2^3*p3^4+2*p1^2*p2^3*p3^3*p4+2*p1^2*p2^3*p3^3*p5+2*p1^2*p2^3*p3^3*p8+2*p1^2*p2^3*p3^3*p9+p1^2*p2^3*p3^2*p4^2+3*p1^2*p2^3*p3^2*p4*p5+p1^2*p2^3*p3^2*p4*p6+3*p1^2*p2^3*p3^2*p4*p8+4*p1^2*p2^3*p3^2*p4*p9+p1^2*p2^3*p3^2*p5^2-p1^2*p2^3*p3^2*p5*p6+4*p1^2*p2^3*p3^2*p5*p8+3*p1^2*p2^3*p3^2*p5*p9-p1^2*p2^3*p3^2*p6^2+p1^2*p2^3*p3^2*p6*p8-p1^2*p2^3*p3^2*p6*p9+p1^2*p2^3*p3^2*p8^2+3*p1^2*p2^3*p3^2*p8*p9+p1^2*p2^3*p3^2*p9^2+p1^2*p2^3*p3*p4^2*p5+p1^2*p2^3*p3*p4^2*p6+p1^2*p2^3*p3*p4^2*p8+2*p1^2*p2^3*p3*p4^2*p9+p1^2*p2^3*p3*p4*p5^2+4*p1^2*p2^3*p3*p4*p5*p8+4*p1^2*p2^3*p3*p4*p5*p9-p1^2*p2^3*p3*p4*p6^2+2*p1^2*p2^3*p3*p4*p6*p8+p1^2*p2^3*p3*p4*p8^2+4*p1^2*p2^3*p3*p4*p8*p9+2*p1^2*p2^3*p3*p4*p9^2-p1^2*p2^3*p3*p5^2*p6+2*p1^2*p2^3*p3*p5^2*p8+p1^2*p2^3*p3*p5^2*p9-p1^2*p2^3*p3*p5*p6^2-2*p1^2*p2^3*p3*p5*p6*p9+2*p1^2*p2^3*p3*p5*p8^2+4*p1^2*p2^3*p3*p5*p8*p9+p1^2*p2^3*p3*p5*p9^2-p1^2*p2^3*p3*p6^2*p8-p1^2*p2^3*p3*p6^2*p9+p1^2*p2^3*p3*p6*p8^2-p1^2*p2^3*p3*p6*p9^2+p1^2*p2^3*p3*p8^2*p9+p1^2*p2^3*p3*p8*p9^2+p1^2*p2^3*p4^2*p5*p8+p1^2*p2^3*p4^2*p5*p9+p1^2*p2^3*p4^2*p6*p8+p1^2*p2^3*p4^2*p6*p9+p1^2*p2^3*p4^2*p8*p9+p1^2*p2^3*p4^2*p9^2+p1^2*p2^3*p4*p5^2*p8+p1^2*p2^3*p4*p5^2*p9+p1^2*p2^3*p4*p5*p8^2+2*p1^2*p2^3*p4*p5*p8*p9+p1^2*p2^3*p4*p5*p9^2-p1^2*p2^3*p4*p6^2*p8-p1^2*p2^3*p4*p6^2*p9+p1^2*p2^3*p4*p6*p8^2-p1^2*p2^3*p4*p6*p9^2+p1^2*p2^3*p4*p8^2*p9+p1^2*p2^3*p4*p8*p9^2-p1^2*p2^3*p5^2*p6*p8-p1^2*p2^3*p5^2*p6*p9+p1^2*p2^3*p5^2*p8^2+p1^2*p2^3*p5^2*p8*p9-p1^2*p2^3*p5*p6^2*p8-p1^2*p2^3*p5*p6^2*p9+p1^2*p2^3*p5*p6*p8^2-p1^2*p2^3*p5*p6*p9^2+p1^2*p2^3*p5*p8^2*p9+p1^2*p2^3*p5*p8*p9^2)*z7+(p1^3*p2^4*p3^5+2*p1^3*p2^4*p3^4*p4+3*p1^3*p2^4*p3^4*p5+p1^3*p2^4*p3^4*p6+2*p1^3*p2^4*p3^4*p8+3*p1^3*p2^4*p3^4*p9+p1^3*p2^4*p3^3*p4^2+4*p1^3*p2^4*p3^3*p4*p5+2*p1^3*p2^4*p3^3*p4*p6+4*p1^3*p2^4*p3^3*p4*p8+6*p1^3*p2^4*p3^3*p4*p9+3*p1^3*p2^4*p3^3*p5^2+2*p1^3*p2^4*p3^3*p5*p6+6*p1^3*p2^4*p3^3*p5*p8+8*p1^3*p2^4*p3^3*p5*p9+2*p1^3*p2^4*p3^3*p6*p8+2*p1^3*p2^4*p3^3*p6*p9+p1^3*p2^4*p3^3*p8^2+4*p1^3*p2^4*p3^3*p8*p9+3*p1^3*p2^4*p3^3*p9^2+p1^3*p2^4*p3^2*p4^2*p5+p1^3*p2^4*p3^2*p4^2*p6+2*p1^3*p2^4*p3^2*p4^2*p8+3*p1^3*p2^4*p3^2*p4^2*p9+2*p1^3*p2^4*p3^2*p4*p5^2+2*p1^3*p2^4*p3^2*p4*p5*p6+8*p1^3*p2^4*p3^2*p4*p5*p8+10*p1^3*p2^4*p3^2*p4*p5*p9+4*p1^3*p2^4*p3^2*p4*p6*p8+4*p1^3*p2^4*p3^2*p4*p6*p9+2*p1^3*p2^4*p3^2*p4*p8^2+8*p1^3*p2^4*p3^2*p4*p8*p9+6*p1^3*p2^4*p3^2*p4*p9^2+p1^3*p2^4*p3^2*p5^3+p1^3*p2^4*p3^2*p5^2*p6+6*p1^3*p2^4*p3^2*p5^2*p8+7*p1^3*p2^4*p3^2*p5^2*p9+4*p1^3*p2^4*p3^2*p5*p6*p8+4*p1^3*p2^4*p3^2*p5*p6*p9+3*p1^3*p2^4*p3^2*p5*p8^2+10*p1^3*p2^4*p3^2*p5*p8*p9+7*p1^3*p2^4*p3^2*p5*p9^2+p1^3*p2^4*p3^2*p6*p8^2+2*p1^3*p2^4*p3^2*p6*p8*p9+p1^3*p2^4*p3^2*p6*p9^2+p1^3*p2^4*p3^2*p8^2*p9+2*p1^3*p2^4*p3^2*p8*p9^2+p1^3*p2^4*p3^2*p9^3+2*p1^3*p2^4*p3*p4^2*p5*p8+2*p1^3*p2^4*p3*p4^2*p5*p9+2*p1^3*p2^4*p3*p4^2*p6*p8+2*p1^3*p2^4*p3*p4^2*p6*p9+p1^3*p2^4*p3*p4^2*p8^2+4*p1^3*p2^4*p3*p4^2*p8*p9+3*p1^3*p2^4*p3*p4^2*p9^2+4*p1^3*p2^4*p3*p4*p5^2*p8+4*p1^3*p2^4*p3*p4*p5^2*p9+4*p1^3*p2^4*p3*p4*p5*p6*p8+4*p1^3*p2^4*p3*p4*p5*p6*p9+4*p1^3*p2^4*p3*p4*p5*p8^2+12*p1^3*p2^4*p3*p4*p5*p8*p9+8*p1^3*p2^4*p3*p4*p5*p9^2+2*p1^3*p2^4*p3*p4*p6*p8^2+4*p1^3*p2^4*p3*p4*p6*p8*p9+2*p1^3*p2^4*p3*p4*p6*p9^2+2*p1^3*p2^4*p3*p4*p8^2*p9+4*p1^3*p2^4*p3*p4*p8*p9^2+2*p1^3*p2^4*p3*p4*p9^3+2*p1^3*p2^4*p3*p5^3*p8+2*p1^3*p2^4*p3*p5^3*p9+2*p1^3*p2^4*p3*p5^2*p6*p8+2*p1^3*p2^4*p3*p5^2*p6*p9+3*p1^3*p2^4*p3*p5^2*p8^2+8*p1^3*p2^4*p3*p5^2*p8*p9+5*p1^3*p2^4*p3*p5^2*p9^2+2*p1^3*p2^4*p3*p5*p6*p8^2+4*p1^3*p2^4*p3*p5*p6*p8*p9+2*p1^3*p2^4*p3*p5*p6*p9^2+2*p1^3*p2^4*p3*p5*p8^2*p9+4*p1^3*p2^4*p3*p5*p8*p9^2+2*p1^3*p2^4*p3*p5*p9^3+p1^3*p2^4*p4^2*p5*p8^2+2*p1^3*p2^4*p4^2*p5*p8*p9+p1^3*p2^4*p4^2*p5*p9^2+p1^3*p2^4*p4^2*p6*p8^2+2*p1^3*p2^4*p4^2*p6*p8*p9+p1^3*p2^4*p4^2*p6*p9^2+p1^3*p2^4*p4^2*p8^2*p9+2*p1^3*p2^4*p4^2*p8*p9^2+p1^3*p2^4*p4^2*p9^3+2*p1^3*p2^4*p4*p5^2*p8^2+4*p1^3*p2^4*p4*p5^2*p8*p9+2*p1^3*p2^4*p4*p5^2*p9^2+2*p1^3*p2^4*p4*p5*p6*p8^2+4*p1^3*p2^4*p4*p5*p6*p8*p9+2*p1^3*p2^4*p4*p5*p6*p9^2+2*p1^3*p2^4*p4*p5*p8^2*p9+4*p1^3*p2^4*p4*p5*p8*p9^2+2*p1^3*p2^4*p4*p5*p9^3+p1^3*p2^4*p5^3*p8^2+2*p1^3*p2^4*p5^3*p8*p9+p1^3*p2^4*p5^3*p9^2+p1^3*p2^4*p5^2*p6*p8^2+2*p1^3*p2^4*p5^2*p6*p8*p9+p1^3*p2^4*p5^2*p6*p9^2+p1^3*p2^4*p5^2*p8^2*p9+2*p1^3*p2^4*p5^2*p8*p9^2+p1^3*p2^4*p5^2*p9^3),
z6-z7,
...

Better yet would be using the libSingular interface.

edit flag offensive delete link more

Comments

Thank you so much Ricardo. Regarding your note about using libSingular: Am I interpreting the situation correctly if I'm guessing that it would enable a more natural usage from sage, whereas the code you provide here are interactive singular commands sent to a console session? But performance would be the same, no?

bjodah gravatar imagebjodah ( 2023-07-30 18:23:18 +0100 )edit
1

You're welcome! Indeed it wouldn't make a difference in performance, it would just be cleaner than using the pexpect interface. As for more natural usage from Sage, you could take your originally defined ring and ideal, and create the corresponding Singular objects e.g. by string manipulation.

rburing gravatar imagerburing ( 2023-07-30 20:31:07 +0100 )edit
1

@rburing, just FYI, I opened an issue relating to converting back the polynomias to Sage using ._sage_()here: https://github.com/sagemath/sage/issu...

bjodah gravatar imagebjodah ( 2023-07-30 21:08:40 +0100 )edit

Your Answer

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

Add Answer

Question Tools

1 follower

Stats

Asked: 2023-07-30 07:29:56 +0100

Seen: 150 times

Last updated: Jul 30 '23