factorization of sum of fractions in the ring of Laurent polynomials
Are there any tricks or suggestions to improve speed of this kind of computations?
In the ring $R = \mathbb Z[q_1^{\pm1},q_2^{\pm1},q_3^{\pm1},q_4^{\pm1},M^{\pm1},b_1^{\pm1},b_2^{\pm1}]$ of Laurent polynomials in many variables, I consider fractions $f_i \in F(R)$, and then evaluate the sum $\sum_i f_i$ at $q_1=1$, $q_2=1$, $q_3=1$, which I know to be well-defined.
R.<q1,q2,q3,q4,M,tB1,tB2> = LaurentPolynomialRing(QQ)
F = FractionField(R)
Here is an example. The goal is to be faster for larger examples, where TXp is a larger list.
z = tp * sum ( t for t in TXp ); z (q1=1,q2=1,q3=1) . factor()
gives
(M*tB1^3 - M*tB1^2*tB2 - 2*tB1^3*tB2 - M*tB1*tB2^2 + 4*tB1^2*tB2^2 + M*tB2^3 - 2*tB1*tB2^3 - 2*M*tB1^2 + tB1^3 + 4*M*tB1*tB2 - tB1^2*tB2 - 2*M*tB2^2 - tB1*tB2^2 + tB2^3)/(tB1^2*tB2^2 - tB1^2*tB2 - tB1*tB2^2 + tB1*tB2)
where
Txp=[(-q1^5*q2^5*q4^4*tB1^2*tB2^2 - q1^5*q2^5*q4^3*tB1^2*tB2^2 + q1^5*q2^4*q4^3*tB1^2*tB2^2 + q1^4*q2^5*q4^3*tB1^2*tB2^2 - q1^4*q2^4*q4^4*tB1^2*tB2^2 + q1^4*q2^4*q4^4*tB1^2*tB2 + q1^4*q2^4*q4^3*M*tB1^2*tB2 + 2*q1^4*q2^4*q4^3*tB1^3*tB2 + q1^4*q2^4*q4^4*tB1*tB2^2 + q1^4*q2^4*q4^3*M*tB1*tB2^2 + q1^5*q2^4*q4^2*tB1^2*tB2^2 + q1^4*q2^5*q4^2*tB1^2*tB2^2 + 2*q1^4*q2^4*q4^3*tB1^2*tB2^2 + 2*q1^4*q2^4*q4^3*tB1*tB2^3 + q1^3*q2^3*q4^4*M*tB1^2*tB2 + q1^3*q2^3*q4^4*M*tB1*tB2^2 - 2*q1^4*q2^4*q4^2*tB1^2*tB2^2 + q1^4*q2^3*q4^3*tB1^2*tB2^2 + q1^3*q2^4*q4^3*tB1^2*tB2^2 - q1^3*q2^3*q4^3*M*tB1^3 - q1^3*q2^3*q4^4*M*tB1*tB2 - q1^4*q2^3*q4^3*tB1^2*tB2 - q1^3*q2^4*q4^3*tB1^2*tB2 - q1^4*q2^3*q4^2*M*tB1^2*tB2 - q1^3*q2^4*q4^2*M*tB1^2*tB2 - 2*q1^3*q2^3*q4^3*M*tB1^2*tB2 - 2*q1^4*q2^3*q4^2*tB1^3*tB2 - 2*q1^3*q2^4*q4^2*tB1^3*tB2 - q1^4*q2^3*q4^3*tB1*tB2^2 - q1^3*q2^4*q4^3*tB1*tB2^2 - q1^4*q2^3*q4^2*M*tB1*tB2^2 - q1^3*q2^4*q4^2*M*tB1*tB2^2 - 2*q1^3*q2^3*q4^3*M*tB1*tB2^2 - q1^4*q2^4*q4*tB1^2*tB2^2 - 2*q1^4*q2^3*q4^2*tB1^2*tB2^2 - 2*q1^3*q2^4*q4^2*tB1^2*tB2^2 - q1^3*q2^3*q4^3*tB1^2*tB2^2 - q1^3*q2^3*q4^3*M*tB2^3 - 2*q1^4*q2^3*q4^2*tB1*tB2^3 - 2*q1^3*q2^4*q4^2*tB1*tB2^3 - q1^3*q2^3*q4^3*tB1^3 - q1^3*q2^3*q4^3*M*tB1*tB2 - 2*q1^3*q2^3*q4^3*tB1^2*tB2 - q1^3*q2^2*q4^3*M*tB1^2*tB2 - q1^2*q2^3*q4^3*M*tB1^2*tB2 - 2*q1^3*q2^3*q4^3*tB1*tB2^2 - q1^3*q2^2*q4^3*M*tB1*tB2^2 - q1^2*q2^3*q4^3*M*tB1*tB2^2 + q1^4*q2^3*q4*tB1^2*tB2^2 + q1^3*q2^4*q4*tB1^2*tB2^2 - 2*q1^3*q2^3*q4^2*tB1^2*tB2^2 - q1^3*q2^3*q4^3*tB2^3 + q1^3*q2^2*q4^2*M*tB1^3 + q1^2*q2^3*q4^2*M*tB1^3 + q1^3*q2^2*q4^3*M*tB1*tB2 + q1^2*q2^3*q4^3*M*tB1*tB2 - q1^2*q2^2*q4^4*M*tB1*tB2 + 2*q1^3*q2^3*q4^2*tB1^2*tB2 + q1^3*q2^3*q4*M*tB1^2*tB2 + 2*q1^3*q2^2*q4^2*M*tB1^2*tB2 + 2*q1^2*q2^3*q4^2*M*tB1^2*tB2 + 2*q1^3*q2^3*q4*tB1^3*tB2 + 2*q1^3*q2^3*q4^2*tB1*tB2^2 + q1^3*q2^3*q4*M*tB1*tB2^2 + 2*q1^3*q2^2*q4^2*M*tB1*tB2^2 + 2*q1^2*q2^3*q4^2*M*tB1*tB2^2 + 2*q1^3*q2^3*q4*tB1^2*tB2^2 + q1^3*q2^2*q4^2*tB1^2*tB2^2 + q1^2*q2^3*q4^2*tB1^2*tB2^2 + q1^3*q2^2*q4^2*M*tB2^3 + q1^2*q2^3*q4^2*M*tB2^3 + 2*q1^3*q2^3*q4*tB1*tB2^3 + 2*q1^2*q2^2*q4^3*M*tB1^2 + q1^3*q2^2*q4^2*tB1^3 + q1^2*q2^3*q4^2*tB1^3 + q1^3*q2^2*q4^2*M*tB1*tB2 + q1^2*q2^3*q4^2*M*tB1*tB2 + 2*q1^2*q2^2*q4^3*M*tB1*tB2 + 2*q1^3*q2^2*q4^2*tB1^2*tB2 + 2*q1^2*q2^3*q4^2*tB1^2*tB2 + q1^2*q2^2*q4^3*tB1^2*tB2 + 2*q1^2*q2^2*q4^2*M*tB1^2*tB2 + 2*q1^2*q2^2*q4^3*M*tB2^2 + 2*q1^3*q2^2*q4^2*tB1*tB2^2 + 2*q1^2*q2^3*q4^2*tB1*tB2^2 + q1^2*q2^2*q4^3*tB1*tB2^2 + 2*q1^2*q2^2*q4^2*M*tB1*tB2^2 - q1^3*q2^3*tB1^2*tB2^2 + q1^3*q2^2*q4*tB1^2*tB2^2 + q1^2*q2^3*q4*tB1^2*tB2^2 + q1^3*q2^2*q4^2*tB2^3 + q1^2*q2^3*q4^2*tB2^3 - q1^2*q2^2*q4*M*tB1^3 - 2*q1^2*q2^2*q4^2*M*tB1*tB2 + q1^2*q2*q4^3*M*tB1*tB2 + q1*q2^2*q4^3*M*tB1*tB2 - q1^3*q2^2*q4*tB1^2*tB2 - q1^2*q2^3*q4*tB1^2*tB2 - 2*q1^2*q2^2*q4*M*tB1^2*tB2 - q1^3*q2^2*q4*tB1*tB2^2 - q1^2*q2^3*q4*tB1*tB2^2 - 2*q1^2*q2^2*q4*M*tB1*tB2^2 - q1^2*q2^2*q4*tB1^2*tB2^2 - q1^2*q2^2*q4*M*tB2^3 - 2*q1^2*q2*q4^2*M*tB1^2 - 2*q1*q2^2*q4^2*M*tB1^2 - q1^2*q2^2*q4*tB1^3 - q1^2*q2^2*q4*M*tB1*tB2 - 2*q1^2*q2*q4^2*M*tB1*tB2 - 2*q1*q2^2*q4^2*M*tB1*tB2 - q1*q2*q4^3*M*tB1*tB2 - 2*q1^2*q2^2*q4*tB1^2*tB2 - q1^2*q2*q4^2*tB1^2*tB2 - q1*q2^2*q4^2*tB1^2*tB2 - q1^2*q2*q4*M*tB1^2*tB2 - q1*q2^2*q4*M*tB1^2*tB2 - 2*q1^2*q2*q4^2*M*tB2^2 - 2*q1*q2^2*q4^2*M*tB2^2 - 2*q1^2*q2^2*q4*tB1*tB2^2 - q1^2*q2*q4^2*tB1*tB2^2 - q1*q2^2*q4^2*tB1*tB2^2 - q1^2*q2*q4*M*tB1*tB2^2 - q1*q2^2*q4*M*tB1*tB2^2 - q1^2*q2^2*tB1^2*tB2^2 - q1^2*q2^2*q4*tB2^3 + q1^2*q2*q4*M*tB1*tB2 + q1*q2^2*q4*M*tB1*tB2 - 2*q1*q2*q4^2*M*tB1*tB2 + q1^2*q2^2*tB1^2*tB2 + q1^2*q2^2*tB1*tB2^2 + 2*q1*q2*q4*M*tB1^2 + 2*q1*q2*q4*M*tB1*tB2 + q1*q4^2*M*tB1*tB2 + q2*q4^2*M*tB1*tB2 + q1*q2*q4*tB1^2*tB2 + q1*q2*M*tB1^2*tB2 + 2*q1*q2*q4*M*tB2^2 + q1*q2*q4*tB1*tB2^2 + q1*q2*M*tB1*tB2^2 - q1*q2*M*tB1*tB2 + q1*q4*M*tB1*tB2 + q2*q4*M*tB1*tB2 - q4*M*tB1*tB2 - M*tB1*tB2)/(-q1^5*q2^5*q4^2*tB1^2*tB2^2 + q1^5*q2^4*q4^2*tB1^2*tB2^2 + q1^4*q2^5*q4^2*tB1^2*tB2^2 + q1^4*q2^4*q4^2*M*tB1^2*tB2 + q1^4*q2^4*q4^2*tB1^3*tB2 + q1^4*q2^4*q4^2*M*tB1*tB2^2 - q1^4*q2^4*q4^2*tB1^2*tB2^2 + q1^4*q2^4*q4^2*tB1*tB2^3 - q1^4*q2^3*q4^2*M*tB1^2*tB2 - q1^3*q2^4*q4^2*M*tB1^2*tB2 - q1^4*q2^3*q4^2*tB1^3*tB2 - q1^3*q2^4*q4^2*tB1^3*tB2 - q1^4*q2^3*q4^2*M*tB1*tB2^2 - q1^3*q2^4*q4^2*M*tB1*tB2^2 - q1^4*q2^3*q4^2*tB1*tB2^3 - q1^3*q2^4*q4^2*tB1*tB2^3 - q1^3*q2^3*q4^2*M*tB1^3 - q1^3*q2^3*q4^2*M^2*tB1*tB2 + q1^3*q2^3*q4^2*tB1^3*tB2 - q1^3*q2^3*q4^2*tB1^2*tB2^2 - q1^3*q2^3*q4^2*M*tB2^3 + q1^3*q2^3*q4^2*tB1*tB2^3 + q1^3*q2^2*q4^2*M*tB1^3 + q1^2*q2^3*q4^2*M*tB1^3 + q1^3*q2^2*q4^2*M^2*tB1*tB2 + q1^2*q2^3*q4^2*M^2*tB1*tB2 + q1^3*q2^2*q4^2*M*tB1^2*tB2 + q1^2*q2^3*q4^2*M*tB1^2*tB2 + q1^3*q2^2*q4^2*M*tB1*tB2^2 + q1^2*q2^3*q4^2*M*tB1*tB2^2 + q1^3*q2^2*q4^2*tB1^2*tB2^2 + q1^2*q2^3*q4^2*tB1^2*tB2^2 + q1^3*q2^2*q4^2*M*tB2^3 + q1^2*q2^3*q4^2*M*tB2^3 + q1^2*q2^2*q4^2*M^2*tB1^2 - q1^2*q2^2*q4^2*M*tB1^3 - q1^2*q2^2*q4^2*M^2*tB1*tB2 + q1^2*q2^2*q4^2*M^2*tB2^2 - q1^2*q2^2*q4^2*tB1^2*tB2^2 - q1^2*q2^2*q4^2*M*tB2^3 - q1^2*q2*q4^2*M^2*tB1^2 - q1*q2^2*q4^2*M^2*tB1^2 - q1^2*q2*q4^2*M*tB1^2*tB2 - q1*q2^2*q4^2*M*tB1^2*tB2 - q1^2*q2*q4^2*M^2*tB2^2 - q1*q2^2*q4^2*M^2*tB2^2 - q1^2*q2*q4^2*M*tB1*tB2^2 - q1*q2^2*q4^2*M*tB1*tB2^2 + q1*q2*q4^2*M^2*tB1^2 - q1*q2*q4^2*M^2*tB1*tB2 + q1*q2*q4^2*M*tB1^2*tB2 + q1*q2*q4^2*M^2*tB2^2 + q1*q2*q4^2*M*tB1*tB2^2 + q1*q4^2*M^2*tB1*tB2 + q2*q4^2*M^2*tB1*tB2 - q4^2*M^2*tB1*tB2),
(q1^2*q2^10*q4^4*M*tB1*tB2 - q1^3*q2^8*q4^4*M*tB1^2*tB2 - q1^3*q2^8*q4^4*M*tB1*tB2^2 + q1^3*q2^8*q4^4*M*tB1*tB2 + q1^4*q2^6*q4^4*tB1^2*tB2^2 - q1^2*q2^9*q4^3*M*tB1*tB2 + q1*q2^10*q4^3*M*tB1*tB2 - q1^4*q2^6*q4^4*tB1^2*tB2 + q1^3*q2^7*q4^3*M*tB1^2*tB2 - q1^4*q2^6*q4^4*tB1*tB2^2 + q1^3*q2^7*q4^3*M*tB1*tB2^2 + q1^5*q2^4*q4^4*tB1^2*tB2^2 - 2*q1^2*q2^8*q4^3*M*tB1^2 + q1^3*q2^6*q4^3*M*tB1^3 - q1^3*q2^7*q4^3*M*tB1*tB2 - 2*q1^2*q2^8*q4^3*M*tB1*tB2 - q1*q2^9*q4^3*M*tB1*tB2 - q1^2*q2^8*q4^3*tB1^2*tB2 + 2*q1^3*q2^6*q4^3*M*tB1^2*tB2 + q1^2*q2^7*q4^3*M*tB1^2*tB2 - 2*q1^2*q2^8*q4^3*M*tB2^2 - q1^2*q2^8*q4^3*tB1*tB2^2 + 2*q1^3*q2^6*q4^3*M*tB1*tB2^2 + q1^2*q2^7*q4^3*M*tB1*tB2^2 - q1^4*q2^5*q4^3*tB1^2*tB2^2 + q1^3*q2^6*q4^3*tB1^2*tB2^2 + q1^3*q2^6*q4^3*M*tB2^3 + q1^3*q2^6*q4^3*tB1^3 - q1*q2^9*q4^2*M*tB1*tB2 + q1^3*q2^6*q4^3*M*tB1*tB2 - q1^2*q2^7*q4^3*M*tB1*tB2 + q1^4*q2^5*q4^3*tB1^2*tB2 + 2*q1^3*q2^6*q4^3*tB1^2*tB2 - q1^4*q2^4*q4^3*M*tB1^2*tB2 - 2*q1^4*q2^4*q4^3*tB1^3*tB2 + q1^4*q2^5*q4^3*tB1*tB2^2 + 2*q1^3*q2^6*q4^3*tB1*tB2^2 - q1^4*q2^4*q4^3*M*tB1*tB2^2 - q1^5*q2^3*q4^3*tB1^2*tB2^2 - 2*q1^4*q2^4*q4^3*tB1^2*tB2^2 - q1^3*q2^5*q4^3*tB1^2*tB2^2 + q1^3*q2^6*q4^3*tB2^3 - 2*q1^4*q2^4*q4^3*tB1*tB2^3 + 2*q1^2*q2^7*q4^2*M*tB1^2 - q1^3*q2^5*q4^2*M*tB1^3 + 2*q1^2*q2^7*q4^2*M*tB1*tB2 + 2*q1*q2^8*q4^2*M*tB1*tB2 - q2^9*q4^2*M*tB1*tB2 + q1^2*q2^7*q4^2*tB1^2*tB2 + q1^3*q2^5*q4^3*tB1^2*tB2 - 2*q1^3*q2^5*q4^2*M*tB1^2*tB2 - 2*q1^2*q2^6*q4^2*M*tB1^2*tB2 + 2*q1^2*q2^7*q4^2*M*tB2^2 + q1^2*q2^7*q4^2*tB1*tB2^2 + q1^3*q2^5*q4^3*tB1*tB2^2 - 2*q1^3*q2^5*q4^2*M*tB1*tB2^2 - 2*q1^2*q2^6*q4^2*M*tB1*tB2^2 - q1^3*q2^5*q4^2*tB1^2*tB2^2 + q1^5*q2^2*q4^3*tB1^2*tB2^2 - q1^4*q2^3*q4^3*tB1^2*tB2^2 - q1^3*q2^5*q4^2*M*tB2^3 + 2*q1*q2^7*q4^2*M*tB1^2 - q1^3*q2^5*q4^2*tB1^3 - q1^2*q2^5*q4^2*M*tB1^3 - q1^3*q2^5*q4^2*M*tB1*tB2 + 2*q1^2*q2^6*q4^2*M*tB1*tB2 + 2*q1*q2^7*q4^2*M*tB1*tB2 - 2*q1^3*q2^5*q4^2*tB1^2*tB2 + q1*q2^7*q4^2*tB1^2*tB2 + q1^4*q2^3*q4^2*M*tB1^2*tB2 - 2*q1^2*q2^5*q4^2*M*tB1^2*tB2 + 2*q1^4*q2^3*q4^2*tB1^3*tB2 + 2*q1*q2^7*q4^2*M*tB2^2 - 2*q1^3*q2^5*q4^2*tB1*tB2^2 + q1*q2^7*q4^2*tB1*tB2^2 + q1^4*q2^3*q4^2*M*tB1*tB2^2 - 2*q1^2*q2^5*q4^2*M*tB1*tB2^2 + 2*q1^4*q2^3*q4^2*tB1^2*tB2^2 + 2*q1^3*q2^4*q4^2*tB1^2*tB2^2 - q1^2*q2^5*q4^2*tB1^2*tB2^2 - q1^3*q2^5*q4^2*tB2^3 - q1^2*q2^5*q4^2*M*tB2^3 + 2*q1^4*q2^3*q4^2*tB1*tB2^3 - q1^2*q2^5*q4^2*tB1^3 - q1*q2^7*q4*M*tB1*tB2 + q2^8*q4*M*tB1*tB2 - q1^2*q2^5*q4^2*M*tB1*tB2 - 2*q1^3*q2^4*q4^2*tB1^2*tB2 - 2*q1^2*q2^5*q4^2*tB1^2*tB2 + q1^2*q2^5*q4*M*tB1^2*tB2 + q1^3*q2^3*q4^2*M*tB1^2*tB2 + 2*q1^3*q2^3*q4^2*tB1^3*tB2 - 2*q1^3*q2^4*q4^2*tB1*tB2^2 - 2*q1^2*q2^5*q4^2*tB1*tB2^2 + q1^2*q2^5*q4*M*tB1*tB2^2 + q1^3*q2^3*q4^2*M*tB1*tB2^2 - q1^5*q2*q4^2*tB1^2*tB2^2 + 2*q1^4*q2^2*q4^2*tB1^2*tB2^2 + 2*q1^3*q2^3*q4^2*tB1^2*tB2^2 - q1^2*q2^5*q4^2*tB2^3 + 2*q1^3*q2^3*q4^2*tB1*tB2^3 - 2*q1*q2^6*q4*M*tB1^2 + q1^2*q2^4*q4*M*tB1^3 - q1^2*q2^5*q4*M*tB1*tB2 - 2*q1*q2^6*q4*M*tB1*tB2 - q2^7*q4*M*tB1*tB2 - q1*q2^6*q4*tB1^2*tB2 + 2*q1^2*q2^4*q4*M*tB1^2*tB2 + q1*q2^5*q4*M*tB1^2*tB2 - 2*q1*q2^6*q4*M*tB2^2 - q1*q2^6*q4*tB1*tB2^2 + 2*q1^2*q2^4*q4*M*tB1*tB2^2 + q1*q2^5*q4*M*tB1*tB2^2 - q1^3*q2^3*q4*tB1^2*tB2^2 + q1^2*q2^4*q4*tB1^2*tB2^2 - q1^4*q2*q4^2*tB1^2*tB2^2 + q1^2*q2^4*q4*M*tB2^3 + q1^2*q2^4*q4*tB1^3 + q1^2*q2^4*q4*M*tB1*tB2 - q1*q2^5*q4*M*tB1*tB2 + q1^3*q2^3*q4*tB1^2*tB2 + 2*q1^2*q2^4*q4*tB1^2*tB2 - q1^3*q2^2*q4*M*tB1^2*tB2 - 2*q1^3*q2^2*q4*tB1^3*tB2 + q1^3*q2^3*q4*tB1*tB2^2 + 2*q1^2*q2^4*q4*tB1*tB2^2 - q1^3*q2^2*q4*M*tB1*tB2^2 - q1^4*q2*q4*tB1^2*tB2^2 - 2*q1^3*q2^2*q4*tB1^2*tB2^2 - q1^2*q2^3*q4*tB1^2*tB2^2 + q1^2*q2^4*q4*tB2^3 - 2*q1^3*q2^2*q4*tB1*tB2^3 + q2^6*M*tB1*tB2 + q1^2*q2^3*q4*tB1^2*tB2 - q1*q2^4*M*tB1^2*tB2 + q1^2*q2^3*q4*tB1*tB2^2 - q1*q2^4*M*tB1*tB2^2 + q1^4*q4*tB1^2*tB2^2 - q1^3*q2*q4*tB1^2*tB2^2 + q1*q2^4*M*tB1*tB2 + q1^2*q2^2*tB1^2*tB2^2 - q1^2*q2^2*tB1^2*tB2 - q1^2*q2^2*tB1*tB2^2 + q1^3*tB1^2*tB2^2)/(-q1*q2^9*q4^2*M^2*tB1*tB2 + q2^10*q4^2*M^2*tB1*tB2 + q1^2*q2^7*q4^2*M^2*tB1^2 - q1*q2^8*q4^2*M^2*tB1^2 + q1*q2^8*q4^2*M^2*tB1*tB2 - q2^9*q4^2*M^2*tB1*tB2 + q1^2*q2^7*q4^2*M*tB1^2*tB2 - q1*q2^8*q4^2*M*tB1^2*tB2 + q1^2*q2^7*q4^2*M^2*tB2^2 - q1*q2^8*q4^2*M^2*tB2^2 + q1^2*q2^7*q4^2*M*tB1*tB2^2 - q1*q2^8*q4^2*M*tB1*tB2^2 - q1^2*q2^6*q4^2*M^2*tB1^2 + q1*q2^7*q4^2*M^2*tB1^2 - q1^3*q2^5*q4^2*M*tB1^3 + q1^2*q2^6*q4^2*M*tB1^3 - q1^3*q2^5*q4^2*M^2*tB1*tB2 + q1^2*q2^6*q4^2*M^2*tB1*tB2 - q1^3*q2^5*q4^2*M*tB1^2*tB2 + q1*q2^7*q4^2*M*tB1^2*tB2 - q1^2*q2^6*q4^2*M^2*tB2^2 + q1*q2^7*q4^2*M^2*tB2^2 - q1^3*q2^5*q4^2*M*tB1*tB2^2 + q1*q2^7*q4^2*M*tB1*tB2^2 - q1^3*q2^5*q4^2*tB1^2*tB2^2 + q1^2*q2^6*q4^2*tB1^2*tB2^2 - q1^3*q2^5*q4^2*M*tB2^3 + q1^2*q2^6*q4^2*M*tB2^3 + q1^3*q2^4*q4^2*M*tB1^3 - q1^2*q2^5*q4^2*M*tB1^3 + q1^3*q2^4*q4^2*M^2*tB1*tB2 - q1^2*q2^5*q4^2*M^2*tB1*tB2 + q1^4*q2^3*q4^2*M*tB1^2*tB2 - q1^2*q2^5*q4^2*M*tB1^2*tB2 + q1^4*q2^3*q4^2*tB1^3*tB2 - q1^3*q2^4*q4^2*tB1^3*tB2 + q1^4*q2^3*q4^2*M*tB1*tB2^2 - q1^2*q2^5*q4^2*M*tB1*tB2^2 + q1^3*q2^4*q4^2*tB1^2*tB2^2 - q1^2*q2^5*q4^2*tB1^2*tB2^2 + q1^3*q2^4*q4^2*M*tB2^3 - q1^2*q2^5*q4^2*M*tB2^3 + q1^4*q2^3*q4^2*tB1*tB2^3 - q1^3*q2^4*q4^2*tB1*tB2^3 - q1^4*q2^2*q4^2*M*tB1^2*tB2 + q1^3*q2^3*q4^2*M*tB1^2*tB2 - q1^4*q2^2*q4^2*tB1^3*tB2 + q1^3*q2^3*q4^2*tB1^3*tB2 - q1^4*q2^2*q4^2*M*tB1*tB2^2 + q1^3*q2^3*q4^2*M*tB1*tB2^2 - q1^5*q2*q4^2*tB1^2*tB2^2 + q1^4*q2^2*q4^2*tB1^2*tB2^2 - q1^4*q2^2*q4^2*tB1*tB2^3 + q1^3*q2^3*q4^2*tB1*tB2^3 + q1^5*q4^2*tB1^2*tB2^2 - q1^4*q2*q4^2*tB1^2*tB2^2),
(-q1^10*q2^2*q4^4*M*tB1*tB2 + q1^8*q2^3*q4^4*M*tB1^2*tB2 + q1^8*q2^3*q4^4*M*tB1*tB2^2 - q1^8*q2^3*q4^4*M*tB1*tB2 - q1^6*q2^4*q4^4*tB1^2*tB2^2 - q1^10*q2*q4^3*M*tB1*tB2 + q1^9*q2^2*q4^3*M*tB1*tB2 + q1^6*q2^4*q4^4*tB1^2*tB2 - q1^7*q2^3*q4^3*M*tB1^2*tB2 + q1^6*q2^4*q4^4*tB1*tB2^2 - q1^7*q2^3*q4^3*M*tB1*tB2^2 - q1^4*q2^5*q4^4*tB1^2*tB2^2 + 2*q1^8*q2^2*q4^3*M*tB1^2 - q1^6*q2^3*q4^3*M*tB1^3 + q1^9*q2*q4^3*M*tB1*tB2 + 2*q1^8*q2^2*q4^3*M*tB1*tB2 + q1^7*q2^3*q4^3*M*tB1*tB2 + q1^8*q2^2*q4^3*tB1^2*tB2 - q1^7*q2^2*q4^3*M*tB1^2*tB2 - 2*q1^6*q2^3*q4^3*M*tB1^2*tB2 + 2*q1^8*q2^2*q4^3*M*tB2^2 + q1^8*q2^2*q4^3*tB1*tB2^2 - q1^7*q2^2*q4^3*M*tB1*tB2^2 - 2*q1^6*q2^3*q4^3*M*tB1*tB2^2 - q1^6*q2^3*q4^3*tB1^2*tB2^2 + q1^5*q2^4*q4^3*tB1^2*tB2^2 - q1^6*q2^3*q4^3*M*tB2^3 - q1^6*q2^3*q4^3*tB1^3 + q1^9*q2*q4^2*M*tB1*tB2 + q1^7*q2^2*q4^3*M*tB1*tB2 - q1^6*q2^3*q4^3*M*tB1*tB2 - 2*q1^6*q2^3*q4^3*tB1^2*tB2 - q1^5*q2^4*q4^3*tB1^2*tB2 + q1^4*q2^4*q4^3*M*tB1^2*tB2 + 2*q1^4*q2^4*q4^3*tB1^3*tB2 - 2*q1^6*q2^3*q4^3*tB1*tB2^2 - q1^5*q2^4*q4^3*tB1*tB2^2 + q1^4*q2^4*q4^3*M*tB1*tB2^2 + q1^5*q2^3*q4^3*tB1^2*tB2^2 + 2*q1^4*q2^4*q4^3*tB1^2*tB2^2 + q1^3*q2^5*q4^3*tB1^2*tB2^2 - q1^6*q2^3*q4^3*tB2^3 + 2*q1^4*q2^4*q4^3*tB1*tB2^3 - 2*q1^7*q2^2*q4^2*M*tB1^2 + q1^5*q2^3*q4^2*M*tB1^3 + q1^9*q4^2*M*tB1*tB2 - 2*q1^8*q2*q4^2*M*tB1*tB2 - 2*q1^7*q2^2*q4^2*M*tB1*tB2 - q1^7*q2^2*q4^2*tB1^2*tB2 - q1^5*q2^3*q4^3*tB1^2*tB2 + 2*q1^6*q2^2*q4^2*M*tB1^2*tB2 + 2*q1^5*q2^3*q4^2*M*tB1^2*tB2 - 2*q1^7*q2^2*q4^2*M*tB2^2 - q1^7*q2^2*q4^2*tB1*tB2^2 - q1^5*q2^3*q4^3*tB1*tB2^2 + 2*q1^6*q2^2*q4^2*M*tB1*tB2^2 + 2*q1^5*q2^3*q4^2*M*tB1*tB2^2 + q1^5*q2^3*q4^2*tB1^2*tB2^2 + q1^3*q2^4*q4^3*tB1^2*tB2^2 - q1^2*q2^5*q4^3*tB1^2*tB2^2 + q1^5*q2^3*q4^2*M*tB2^3 - 2*q1^7*q2*q4^2*M*tB1^2 + q1^5*q2^3*q4^2*tB1^3 + q1^5*q2^2*q4^2*M*tB1^3 - 2*q1^7*q2*q4^2*M*tB1*tB2 - 2*q1^6*q2^2*q4^2*M*tB1*tB2 + q1^5*q2^3*q4^2*M*tB1*tB2 - q1^7*q2*q4^2*tB1^2*tB2 + 2*q1^5*q2^3*q4^2*tB1^2*tB2 + 2*q1^5*q2^2*q4^2*M*tB1^2*tB2 - q1^3*q2^4*q4^2*M*tB1^2*tB2 - 2*q1^3*q2^4*q4^2*tB1^3*tB2 - 2*q1^7*q2*q4^2*M*tB2^2 - q1^7*q2*q4^2*tB1*tB2^2 + 2*q1^5*q2^3*q4^2*tB1*tB2^2 + 2*q1^5*q2^2*q4^2*M*tB1*tB2^2 - q1^3*q2^4*q4^2*M*tB1*tB2^2 + q1^5*q2^2*q4^2*tB1^2*tB2^2 - 2*q1^4*q2^3*q4^2*tB1^2*tB2^2 - 2*q1^3*q2^4*q4^2*tB1^2*tB2^2 + q1^5*q2^3*q4^2*tB2^3 + q1^5*q2^2*q4^2*M*tB2^3 - 2*q1^3*q2^4*q4^2*tB1*tB2^3 + q1^5*q2^2*q4^2*tB1^3 - q1^8*q4*M*tB1*tB2 + q1^7*q2*q4*M*tB1*tB2 + q1^5*q2^2*q4^2*M*tB1*tB2 + 2*q1^5*q2^2*q4^2*tB1^2*tB2 + 2*q1^4*q2^3*q4^2*tB1^2*tB2 - q1^5*q2^2*q4*M*tB1^2*tB2 - q1^3*q2^3*q4^2*M*tB1^2*tB2 - 2*q1^3*q2^3*q4^2*tB1^3*tB2 + 2*q1^5*q2^2*q4^2*tB1*tB2^2 + 2*q1^4*q2^3*q4^2*tB1*tB2^2 - q1^5*q2^2*q4*M*tB1*tB2^2 - q1^3*q2^3*q4^2*M*tB1*tB2^2 - 2*q1^3*q2^3*q4^2*tB1^2*tB2^2 - 2*q1^2*q2^4*q4^2*tB1^2*tB2^2 + q1*q2^5*q4^2*tB1^2*tB2^2 + q1^5*q2^2*q4^2*tB2^3 - 2*q1^3*q2^3*q4^2*tB1*tB2^3 + 2*q1^6*q2*q4*M*tB1^2 - q1^4*q2^2*q4*M*tB1^3 + q1^7*q4*M*tB1*tB2 + 2*q1^6*q2*q4*M*tB1*tB2 + q1^5*q2^2*q4*M*tB1*tB2 + q1^6*q2*q4*tB1^2*tB2 - q1^5*q2*q4*M*tB1^2*tB2 - 2*q1^4*q2^2*q4*M*tB1^2*tB2 + 2*q1^6*q2*q4*M*tB2^2 + q1^6*q2*q4*tB1*tB2^2 - q1^5*q2*q4*M*tB1*tB2^2 - 2*q1^4*q2^2*q4*M*tB1*tB2^2 - q1^4*q2^2*q4*tB1^2*tB2^2 + q1^3*q2^3*q4*tB1^2*tB2^2 + q1*q2^4*q4^2*tB1^2*tB2^2 - q1^4*q2^2*q4*M*tB2^3 - q1^4*q2^2*q4*tB1^3 + q1^5*q2*q4*M*tB1*tB2 - q1^4*q2^2*q4*M*tB1*tB2 - 2*q1^4*q2^2*q4*tB1^2*tB2 - q1^3*q2^3*q4*tB1^2*tB2 + q1^2*q2^3*q4*M*tB1^2*tB2 + 2*q1^2*q2^3*q4*tB1^3*tB2 - 2*q1^4*q2^2*q4*tB1*tB2^2 - q1^3*q2^3*q4*tB1*tB2^2 + q1^2*q2^3*q4*M*tB1*tB2^2 + q1^3*q2^2*q4*tB1^2*tB2^2 + 2*q1^2*q2^3*q4*tB1^2*tB2^2 + q1*q2^4*q4*tB1^2*tB2^2 - q1^4*q2^2*q4*tB2^3 + 2*q1^2*q2^3*q4*tB1*tB2^3 - q1^6*M*tB1*tB2 - q1^3*q2^2*q4*tB1^2*tB2 + q1^4*q2*M*tB1^2*tB2 - q1^3*q2^2*q4*tB1*tB2^2 + q1^4*q2*M*tB1*tB2^2 + q1*q2^3*q4*tB1^2*tB2^2 - q2^4*q4*tB1^2*tB2^2 - q1^4*q2*M*tB1*tB2 - q1^2*q2^2*tB1^2*tB2^2 + q1^2*q2^2*tB1^2*tB2 + q1^2*q2^2*tB1*tB2^2 - q2^3*tB1^2*tB2^2)/(-q1^10*q4^2*M^2*tB1*tB2 + q1^9*q2*q4^2*M^2*tB1*tB2 + q1^8*q2*q4^2*M^2*tB1^2 - q1^7*q2^2*q4^2*M^2*tB1^2 + q1^9*q4^2*M^2*tB1*tB2 - q1^8*q2*q4^2*M^2*tB1*tB2 + q1^8*q2*q4^2*M*tB1^2*tB2 - q1^7*q2^2*q4^2*M*tB1^2*tB2 + q1^8*q2*q4^2*M^2*tB2^2 - q1^7*q2^2*q4^2*M^2*tB2^2 + q1^8*q2*q4^2*M*tB1*tB2^2 - q1^7*q2^2*q4^2*M*tB1*tB2^2 - q1^7*q2*q4^2*M^2*tB1^2 + q1^6*q2^2*q4^2*M^2*tB1^2 - q1^6*q2^2*q4^2*M*tB1^3 + q1^5*q2^3*q4^2*M*tB1^3 - q1^6*q2^2*q4^2*M^2*tB1*tB2 + q1^5*q2^3*q4^2*M^2*tB1*tB2 - q1^7*q2*q4^2*M*tB1^2*tB2 + q1^5*q2^3*q4^2*M*tB1^2*tB2 - q1^7*q2*q4^2*M^2*tB2^2 + q1^6*q2^2*q4^2*M^2*tB2^2 - q1^7*q2*q4^2*M*tB1*tB2^2 + q1^5*q2^3*q4^2*M*tB1*tB2^2 - q1^6*q2^2*q4^2*tB1^2*tB2^2 + q1^5*q2^3*q4^2*tB1^2*tB2^2 - q1^6*q2^2*q4^2*M*tB2^3 + q1^5*q2^3*q4^2*M*tB2^3 + q1^5*q2^2*q4^2*M*tB1^3 - q1^4*q2^3*q4^2*M*tB1^3 + q1^5*q2^2*q4^2*M^2*tB1*tB2 - q1^4*q2^3*q4^2*M^2*tB1*tB2 + q1^5*q2^2*q4^2*M*tB1^2*tB2 - q1^3*q2^4*q4^2*M*tB1^2*tB2 + q1^4*q2^3*q4^2*tB1^3*tB2 - q1^3*q2^4*q4^2*tB1^3*tB2 + q1^5*q2^2*q4^2*M*tB1*tB2^2 - q1^3*q2^4*q4^2*M*tB1*tB2^2 + q1^5*q2^2*q4^2*tB1^2*tB2^2 - q1^4*q2^3*q4^2*tB1^2*tB2^2 + q1^5*q2^2*q4^2*M*tB2^3 - q1^4*q2^3*q4^2*M*tB2^3 + q1^4*q2^3*q4^2*tB1*tB2^3 - q1^3*q2^4*q4^2*tB1*tB2^3 - q1^3*q2^3*q4^2*M*tB1^2*tB2 + q1^2*q2^4*q4^2*M*tB1^2*tB2 - q1^3*q2^3*q4^2*tB1^3*tB2 + q1^2*q2^4*q4^2*tB1^3*tB2 - q1^3*q2^3*q4^2*M*tB1*tB2^2 + q1^2*q2^4*q4^2*M*tB1*tB2^2 - q1^2*q2^4*q4^2*tB1^2*tB2^2 + q1*q2^5*q4^2*tB1^2*tB2^2 - q1^3*q2^3*q4^2*tB1*tB2^3 + q1^2*q2^4*q4^2*tB1*tB2^3 + q1*q2^4*q4^2*tB1^2*tB2^2 - q2^5*q4^2*tB1^2*tB2^2)]
tp=(-q1^3*q2^3*q3^3*q4*M^4*tB2^4 + q1^3*q2^3*q3^3*q4*M^3*tB2^5 + q1^3*q2^3*q3^2*q4*M^4*tB1*tB2^3 + q1^3*q2^2*q3^3*q4*M^4*tB1*tB2^3 + q1^2*q2^3*q3^3*q4*M^4*tB1*tB2^3 - q1^3*q2^3*q3^2*q4*M^2*tB1*tB2^5 - q1^3*q2^2*q3^3*q4*M^2*tB1*tB2^5 - q1^2*q2^3*q3^3*q4*M^2*tB1*tB2^5 - q1^3*q2^2*q3^2*q4*M^4*tB1^2*tB2^2 - q1^2*q2^3*q3^2*q4*M^4*tB1^2*tB2^2 - q1^2*q2^2*q3^3*q4*M^4*tB1^2*tB2^2 - q1^3*q2^3*q3*q4*M^3*tB1^2*tB2^3 - q1^3*q2^2*q3^2*q4*M^3*tB1^2*tB2^3 - q1^2*q2^3*q3^2*q4*M^3*tB1^2*tB2^3 - q1^3*q2*q3^3*q4*M^3*tB1^2*tB2^3 - q1^2*q2^2*q3^3*q4*M^3*tB1^2*tB2^3 - q1*q2^3*q3^3*q4*M^3*tB1^2*tB2^3 + q1^3*q2^3*q3*q4*M^2*tB1^2*tB2^4 + q1^3*q2^2*q3^2*q4*M^2*tB1^2*tB2^4 + q1^2*q2^3*q3^2*q4*M^2*tB1^2*tB2^4 + q1^3*q2*q3^3*q4*M^2*tB1^2*tB2^4 + q1^2*q2^2*q3^3*q4*M^2*tB1^2*tB2^4 + q1*q2^3*q3^3*q4*M^2*tB1^2*tB2^4 + q1^3*q2^2*q3^2*q4*M*tB1^2*tB2^5 + q1^2*q2^3*q3^2*q4*M*tB1^2*tB2^5 + q1^2*q2^2*q3^3*q4*M*tB1^2*tB2^5 + q1^2*q2^2*q3^2*q4*M^4*tB1^3*tB2 + q1^3*q2^2*q3*q4*M^3*tB1^3*tB2^2 + q1^2*q2^3*q3*q4*M^3*tB1^3*tB2^2 + q1^3*q2*q3^2*q4*M^3*tB1^3*tB2^2 + 2*q1^2*q2^2*q3^2*q4*M^3*tB1^3*tB2^2 + q1*q2^3*q3^2*q4*M^3*tB1^3*tB2^2 + q1^2*q2*q3^3*q4*M^3*tB1^3*tB2^2 + q1*q2^2*q3^3*q4*M^3*tB1^3*tB2^2 - q1^3*q2^2*q3*q4*M*tB1^3*tB2^4 - q1^2*q2^3*q3*q4*M*tB1^3*tB2^4 - q1^3*q2*q3^2*q4*M*tB1^3*tB2^4 - 2*q1^2*q2^2*q3^2*q4*M*tB1^3*tB2^4 - q1*q2^3*q3^2*q4*M*tB1^3*tB2^4 - q1^2*q2*q3^3*q4*M*tB1^3*tB2^4 - q1*q2^2*q3^3*q4*M*tB1^3*tB2^4 - q1^2*q2^2*q3^2*q4*tB1^3*tB2^5 - q1^2*q2^2*q3*q4*M^3*tB1^4*tB2 - q1^2*q2*q3^2*q4*M^3*tB1^4*tB2 - q1*q2^2*q3^2*q4*M^3*tB1^4*tB2 - q1^3*q2*q3*q4*M^2*tB1^4*tB2^2 - q1^2*q2^2*q3*q4*M^2*tB1^4*tB2^2 - q1*q2^3*q3*q4*M^2*tB1^4*tB2^2 - q1^2*q2*q3^2*q4*M^2*tB1^4*tB2^2 - q1*q2^2*q3^2*q4*M^2*tB1^4*tB2^2 - q1*q2*q3^3*q4*M^2*tB1^4*tB2^2 + q1^3*q2*q3*q4*M*tB1^4*tB2^3 + q1^2*q2^2*q3*q4*M*tB1^4*tB2^3 + q1*q2^3*q3*q4*M*tB1^4*tB2^3 + q1^2*q2*q3^2*q4*M*tB1^4*tB2^3 + q1*q2^2*q3^2*q4*M*tB1^4*tB2^3 + q1*q2*q3^3*q4*M*tB1^4*tB2^3 + q1^2*q2^2*q3*q4*tB1^4*tB2^4 + q1^2*q2*q3^2*q4*tB1^4*tB2^4 + q1*q2^2*q3^2*q4*tB1^4*tB2^4 + q1^2*q2*q3*q4*M^2*tB1^5*tB2 + q1*q2^2*q3*q4*M^2*tB1^5*tB2 + q1*q2*q3^2*q4*M^2*tB1^5*tB2 - q1^2*q2*q3*q4*tB1^5*tB2^3 - q1*q2^2*q3*q4*tB1^5*tB2^3 - q1*q2*q3^2*q4*tB1^5*tB2^3 - q1*q2*q3*q4*M*tB1^6*tB2 + q1*q2*q3*q4*tB1^6*tB2^2)/(-q1^2*q2^2*q3^2*q4*tB1^3*tB2^2 + q1^2*q2^2*q3*q4*tB1^4*tB2^2 + q1^2*q2*q3^2*q4*tB1^4*tB2^2 + q1*q2^2*q3^2*q4*tB1^4*tB2^2 - q1^2*q2*q3*q4*tB1^5*tB2^2 - q1*q2^2*q3*q4*tB1^5*tB2^2 - q1*q2*q3^2*q4*tB1^5*tB2^2 + q1*q2*q3*q4*tB1^6*tB2^2 + q1^2*q2^2*q3^2*q4*tB1^3*tB2 - q1^2*q2^2*q3*q4*tB1^4*tB2 - q1^2*q2*q3^2*q4*tB1^4*tB2 - q1*q2^2*q3^2*q4*tB1^4*tB2 + q1^2*q2*q3*q4*tB1^5*tB2 + q1*q2^2*q3*q4*tB1^5*tB2 + q1*q2*q3^2*q4*tB1^5*tB2 - q1*q2*q3*q4*tB1^6*tB2 + q1*q2*q3*tB1^4*tB2 - q1*q2*tB1^5*tB2 - q1*q3*tB1^5*tB2 - q2*q3*tB1^5*tB2 + q1*tB1^6*tB2 + q2*tB1^6*tB2 + q3*tB1^6*tB2 - tB1^7*tB2 - q1*q2*q3*tB1^4 + q1*q2*tB1^5 + q1*q3*tB1^5 + q2*q3*tB1^5 - q1*tB1^6 - q2*tB1^6 - q3*tB1^6 + tB1^7)
Not sure if it helps much, but instead of substitution
z(q1=1,q2=1,q3=1)
you can perform specializationz.specialization({q1:1,q2:1,q3:1})
, which reduces the underlying ring and can potentially make things work faster.Thank you. Even though specialization in this particular case gives error, I agree that having the smallest possible ring is the right thing to do.