1 | initial version |
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...)