# vector space basis for a quotient module

For my question, let's say I have the following quotient module as an example,

\begin{align} & \frac{\left(\mathbb{Z}_{2}\left[x,y,z\right]\right)^{3}}{\left(\begin{array}{cccccc} 0 & 0 & 0 & 1+x+y+xy & 1+y+z+yz & 1+x+z+xz\newline 1+z & 1+x & 0 & 0 & 0 & 0\newline 0 & 1+x& 1+y & 0 & 0 & 0 \end{array}\right)} \end{align}

where $\mathbb{Z}_{2}\left[x,y,z\right]^{3}$ is a polynomial ring in variables $x,y,z$ over field $\mathbb{Z}_2$. I am interested in calculating the Groebner basis of the submodule in the denominator using Sage and I can do the rest. I am finally interested in finding the vector space basis of the quotient module or its dimension. If that is also possible directly using Sage, it will be great.

edit retag close merge delete

The submodule in the denominator is: $$\begin{bmatrix} 0 & 0 & 0 & 1+x+y+xy & 1+y+z+yz & 1+x+z+xz\\ 1+z & 1+x & 0 & 0 & 0 & 0\\ 0 & 1+x& 1+y & 0 & 0 & 0 \end{bmatrix} \Bbb F_2[x,y,z]^6 \ ?$$

( 2019-01-25 11:50:52 -0500 )edit

Thanks. Yes, I made the correction.

( 2019-01-25 14:32:02 -0500 )edit

Sort by » oldest newest most voted

I will start an answer, but the question is not clear to me at all.

First of all, what i understand.

Let $R$ be the ring $$R = \Bbb F_2[x,y,z]$$ fixed once for all times here to have an easy typing. Now we consider a submodule of a free module over $R$. It is not clear for me, if we work with the submodule $$L = [R\ R\ R] \begin{bmatrix} 0 & 0 & 0 & 1+x+y+xy & 1+y+z+yz & 1+x+z+xz\\ 1+z & 1+x & 0 & 0 & 0 & 0\\ 0 & 1+x& 1+y & 0 & 0 & 0 \end{bmatrix}$$ of the "free row module" $[R\ R\ R\ R\ R\ R]=R^6$, or rather with the submodule $$M= \begin{bmatrix} 0 & 0 & 0 & 1+x+y+xy & 1+y+z+yz & 1+x+z+xz\\ 1+z & 1+x & 0 & 0 & 0 & 0\\ 0 & 1+x& 1+y & 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} R\\R\\R\\R\\R\\R \end{bmatrix}$$ of the "free column module" $\begin{bmatrix} R\\R\\R \end{bmatrix} =R^3$, but in both cases we can do the same with the corresponding module $R^n$. (Here, $n$ is either $3$ or $6$.) The wiki page Gröbner basis tells us to look at the ring $R\oplus R^n$, with the one from $R\oplus0$ and so that multiplying two elements of $0\oplus R^n$ we get zero. In sage, we can use for this the ring Q from

sage: R.<x,y,z,E1,E2,E3> = PolynomialRing(GF(2))
sage: R
Multivariate Polynomial Ring in x, y, z, E1, E2, E3 over Finite Field of size 2
sage: Q = R.quotient( [e*ee for e in [E1,E2,E3] for ee in [E1,E2,E3]] )
sage: Q
Quotient of Multivariate Polynomial Ring in x, y, z, E1, E2, E3
over Finite Field of size 2
by the ideal (E1^2, E1*E2, E1*E3, E1*E2, E2^2, E2*E3, E1*E3, E2*E3, E3^2)


Above, i took $n=3$ and there were also some manual rearrangements of output....

We now "only have to implement the generators" of $R\otimes R^n$ correspondingly, and ask for the Gröbner basis. So here is the one possibility with $n=6$, if i correctly understood the submodule.

Then one can try:

sage: R.<x,y,z,E1,E2,E3,E4,E5,E6> = PolynomialRing(GF(2))
sage: E_List = [E1, E2, E3, E4, E5, E6]
sage: A = matrix(R, 3, 6,
....:     [0,0,0,(1+x)*(1+y),(1+y)*(1+z),(1+z)*(1+x),
....:      1+z,1+x,0,0,0,0,
....:      0,1+x,1+y,0,0,0])
sage: gens = [e*ee for e in E_List for ee in E_List] + list(A*vector(R, E_List))
sage: Q = R.quotient(gens)
sage: J = R*gens
sage: J.groebner_basis()
Polynomial Sequence with 24 Polynomials in 9 Variables


(I have to submit... loosing connection soon...)

more