# Revision history [back]

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...)