Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Factorization/Irreducibility of multivariate polynomials over function fields

I want to do this:

L.<t> = FunctionField(GF(5))
R.<x,y> = PolynomialRing(L)
p = x^2-t^2*y^2
p.factor()

As a result, I would like to get something like (x+t*y)(x-t*y) or (x+t*y)(x+4*t*y).

But what I get is:

sage: L.<t> = FunctionField(GF(5))
/software/sagemath/9.0/SageMath/local/lib/python3.7/site-packages/sage/rings/function_field/ideal.py:2217: DeprecationWarning: invalid escape sequence \g
  """
sage: R.<x,y> = PolynomialRing(L)
sage: p = x^2-t^2*y^2
sage: p.factor()
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-5-f448610e9d77> in <module>()
----> 1 p.factor()

/software/sagemath/9.0/SageMath/local/lib/python3.7/site-packages/sage/rings/polynomial/multi_polynomial_element.py in factor(self, proof)
   1842             proof = get_flag(subsystem="polynomial")
   1843         if proof:
-> 1844             raise NotImplementedError("Provably correct factorization not implemented. Disable this error by wrapping your code in a `with proof.WithProof('polynomial', False):` block.")
   1845 
   1846         R._singular_().set_ring()

NotImplementedError: Provably correct factorization not implemented. Disable this error by wrapping your code in a `with proof.WithProof('polynomial', False):` block.

However, this works, but (as already indicated in the parentheses) I get a wrong result:

sage: p.factor(false)
[(x + t*y, 1), (-x + t*y, 1)]

Unlike the univariate case, there is also no option to check whether the polynomial is irreducible, i.e. p.is_irreducible() doesn't exist.