Ask Your Question

Revision history [back]

How to divide polynomials in a root of unity quotient ring?

I have a polynomial in two variables (t, w) which is in the "Fraction Field of Multivariate Polynomial Ring in t, w over Rational Field". The w variable is standing in for a root of unity so I want to be able to introduce a relation w^q−1, so that the answer given reduces the powers. (I already tried feeding in the actual root of unity and while it handles the powers correctly, it then prints out in the form Isqrt(1+sqrt(5))t^3 etc, which is also very hard to read).

However, when I try to create a quotient ring with this relation and cast my polynomial into it I keep getting a "fraction must have unit denominator" error. Code snippet below:

TwoPolyRing.<t,w> = QQ[]

TwAlexNum = M_rho_fox.determinant()

TwAlexDenom = M_tapDenom.determinant()

TAPdraft = TwAlexNum*(1-t)^s/TwAlexDenom; print(TAPdraft.parent()); print(TAPdraft)

UnityIdeal = TwoPolyRing.ideal(w^q -1)

UnityPolyRing.<t,w> = TwoPolyRing.quotient(UnityIdeal)

TAPfinal = UnityPolyRing(TAPdraft); print(TAPfinal.parent())

Produces the output:

Fraction Field of Multivariate Polynomial Ring in t, w over Rational Field

(t^3w^10 - t^2w^10 - tw^8 - t^2w^5 + tw^5 - tw^4 - tw^2 - tw - 1)/(-w^5) But then gives the error on the line TAPfinal = UnityPolyRing(TAPdraft) that says TypeError: fraction must have unit denominator.

More Information if needed:

The polynomial in question is (a twisted alexander polynomial) calculated as the determinant of a matrix (which I believe also outputs a polynomial in "Fraction Field of Multivariate Polynomial Ring in t, w over Rational Field") which is then multiplied by (1−t) and divided by another polynomial in "Multivariate Polynomial Ring in t, w over Rational Field". I previously tried to write a function that would simplify the roots of unity before the division, but I got the same error when I called it on the numerator (presumably because the polynomial was still in the fraction field).

I've been trying to figure out if there is a way to 'coerce' the function into the correct ring, but keep getting the same errors.

Any help would be appreciated! Please let me know what additional information would be helpful.

click to hide/show revision 2
None

How to divide polynomials in a root of unity quotient ring?

I have a polynomial in two variables (t, w) which is in the "Fraction Field of Multivariate Polynomial Ring in t, w over Rational Field". The w variable is standing in for a root of unity so I want to be able to introduce a relation w^q−1, so that the answer given reduces the powers. (I already tried feeding in the actual root of unity and while it handles the powers correctly, it then prints out in the form Isqrt(1+sqrt(5))t^3 etc, which is also very hard to read).

However, when I try to create a quotient ring with this relation and cast my polynomial into it I keep getting a "fraction must have unit denominator" error. Code snippet below:

TwoPolyRing.<t,w> = QQ[]

QQ[] TwAlexNum = M_rho_fox.determinant()

M_rho_fox.determinant() TwAlexDenom = M_tapDenom.determinant()

M_tapDenom.determinant() TAPdraft = TwAlexNum*(1-t)^s/TwAlexDenom; print(TAPdraft.parent()); print(TAPdraft)

print(TAPdraft) UnityIdeal = TwoPolyRing.ideal(w^q -1)

-1) UnityPolyRing.<t,w> = TwoPolyRing.quotient(UnityIdeal)

TwoPolyRing.quotient(UnityIdeal) TAPfinal = UnityPolyRing(TAPdraft); print(TAPfinal.parent())

print(TAPfinal.parent())

Produces the output:

Fraction Field of Multivariate Polynomial Ring in t, w over Rational Field

(t^3w^10 - t^2w^10 - tw^8 - t^2w^5 Field (t^3*w^10 - t^2*w^10 - t*w^8 - t^2*w^5 + tw^5 - tw^4 - tw^2 - tw t*w^5 - t*w^4 - t*w^2 - t*w - 1)/(-w^5)

But then gives the error on the line TAPfinal = UnityPolyRing(TAPdraft) UnityPolyRing(TAPdraft) that says TypeError: fraction must have unit denominator.

More Information if needed:

The polynomial in question is (a twisted alexander polynomial) calculated as the determinant of a matrix (which I believe also outputs a polynomial in "Fraction Field of Multivariate Polynomial Ring in t, w over Rational Field") which is then multiplied by (1−t) and divided by another polynomial in "Multivariate Polynomial Ring in t, w over Rational Field". I previously tried to write a function that would simplify the roots of unity before the division, but I got the same error when I called it on the numerator (presumably because the polynomial was still in the fraction field).

I've been trying to figure out if there is a way to 'coerce' the function into the correct ring, but keep getting the same errors.

Any help would be appreciated! Please let me know what additional information would be helpful.