Is there any particular reason why computing the kernel of a matrix over a polynomial ring might fail? Consider the following example:
sage: PR.<x1, x2, x3, y1, y2, y3> = QQ[]
sage: def P(t):
... u = 1 - t
... x = x1*t*t + x2*t*u*2 + x3*u*u
... y = y1*t*t + y2*t*u*2 + y3*u*u
... return (x, y)
sage: def C(t):
... x, y = P(t)
... return vector(PR, [x^2, y^2, x*y, x, y, 1])
sage: M = Matrix([C(t) for t in [0, 1, -1, 2, 1/2]])
sage: M.right_kernel()
Traceback (most recent call last):
...
ArithmeticError: Ideal Ideal (x3^2, x1^2) of Multivariate Polynomial Ring
in x1, x2, x3, y1, y2, y3 over Rational Field not principal
It seems to me as if being able to compute the reduced echelon form (using the frac
method) should be enough to actually compute a kernel as well, without any additional requirements. I will demonstrate this in an answer below. So why does computing the echelon form work, but computing the kernel not?