Singular.jl
Singular.jl copied to clipboard
Gröbner bases in plural
I will collect here some remarks on the Gröbner basics (std
, liftstd
, lift
, syz
, ...) in Singular
's subsystem Plural
. These remarks might be helpful for designing the interaction between the noncommutative ring interface in Oscar/AbstractAlgebra
and Plural
.
Whenever I say matrix below I mean a matrix or module in Singular/Plural
. I think of what is called a module in Singular/Plural
as a sparse, column-oriented data structure for matrices.
- By design
Plural
'sstd
command computes GB of left ideals/modules. I am happy to see that this is now explicitly stated in the documentation.
To understand this claim it suffices to look at the documentation of liftstd
in Plural
. The multiple occurrences of the transposition could be interpreted as follows:
Let A is an r x c matrix over the noncommutative ring R provided by Plural
. Then liftstd
(taking into account the multiple transpositions) takes A as input and returns:
- its left GB matrix B, i.e., a GB of its rows which generate a left submodule of the free left module R^{1 x c} of row vectors.
- a transformation matrix X such that X * A = B.
Currently, Plural
does not take A as input but transpose(A) and returns transpose(B) and transpose(X) instead of B and X.
- If the noncommutative algebra has no or at least no known involution then
Plural
has no way to compute GB of right ideals/modules. This is because the transposition trick that works for commutative rings allowing one to move from left to right modules and back does not work here since:
transpose(AB) is not equal to transpose(B) * transpose(A) over noncommutative rings.
- The transpositions of input and output also affect the commands
lift
andsyz
. For the latter, this means, thatPlural
can a priori only compute the left kernel of the matrix A. In order to compute the right kernel the ring R has to have a known involution.
I will be updating/clarifying/augmenting this post upon request.
@tthsqe12 are you aware of this issue with remarks regarding PLURAL? Now that you implemented access to Plural, it would be good to check these things
I am well aware of this post and have the issues on my radar.