# Finding the kernel of a matrix in a non-integral domain

I have been trying to find the kernel of the matrix in a quotient, for example. If we have the following quotient ring in sage:

R.<t> = PolynomialRing(GF(3),'t')
I = R.ideal([t^3])
S = R.quotient_ring(I);


and if I try to find the kernel of the matrix:

E = Matrix(S, ([[0+a*t+b*t^2, 1+a*t+b*t^2, 0+a*t+b*t^2, 0+a*t+b*t^2],
[0+a*t+b*t^2, 0+a*t+b*t^2, 0+a*t+b*t^2, 0+a*t+b*t^2],
[0+a*t+b*t^2, 0+a*t+b*t^2, 0+a*t+b*t^2, 1+a*t+b*t^2],
[0+a*t+b*t^2, 0+a*t+b*t^2,  0+a*t+b*t^2,0+a*t+b*t^2]]))
E.kernel()


It gives me the following error: NotImplementedError.

I guess this is because F3[x]/(x^3) is not an integral domain but I would like a way around it.

edit retag close merge delete

How do you define a and b ?

( 2018-12-30 15:21:18 -0500 )edit

a and b are in F3. yes, i should have mentioned.

( 2018-12-30 22:58:38 -0500 )edit

Did you fix them or are them indeterminates ("variables") ?

( 2018-12-31 15:46:24 -0500 )edit

Sort by » oldest newest most voted

Since the ring is finite of order $3^3$ and the matrix is $4 \times 4$, one approach is to try every possible vector; there are only $(3^3)^4 = 531441$ possibilities.

A more refined approach is to introduce a vector with $3 \cdot 4 = 12$ undetermined coefficients, e.g. by making the base ring the quotient by $t^3$ of the univariate polynomial ring in $t$ over a polynomial ring in $12$ variables over $\mathbb{F}_3$.

Considering the matrix over this base ring, you can multiply with this vector with undetermined coefficients, take the components, and set the coefficients of powers of $t$ (of which the higher ones were automatically eliminated, due to the quotient by $t^3$) equal to zero; this is an ordinary $12 \times 12$ linear system over $\mathbb{F}_3$.

more