A SageMath program to check the geometric vertex decomposability property of ideals.
This Sage notebook contains several functions, most notable is the isGVD
function.
Taking any polynomial ideal, stored as a string, as input, this function returns whether or not the ideal is geometrically vertex decomposable.
This software was developed during an NSERC USRA, supervised by Sergio Da Silva, Jenna Rajchgot, and Adam Van Tuyl.
This is a scrappy first attempt at code for geometric vertex decomposability of ideals. With Adam Van Tuyl, we are developing a Macaulay2 package GeometricDecomposability which builds upon this code, adds functionailty, and improves usabliity.
The following ideal is geometrically vertex decomposable [1].
We use show_output=False
to hide intermediate output.
isGVD('ideal(y*(z*s-x^2), y*w*r, w*r*(z^2 + z*x + w*r + s^2))', show_output=False)
This is test case 1 in the notebook and it returns True
.
By default, the option show_output
is set to True
.
In this case, every intermediate geometric vertex decomposition and all the C_{y,I} and N_{y,I} ideals are shown, as well as any warnings.
isGVD('ideal(y*(z*s-x^2), y*w*r, w*r*(z^2 + z*x + w*r + s^2))')
Has the following output.
------
I = ideal(y*(z*s-x^2), y*w*r, w*r*(z^2+z*x+w*r+s^2))
decomposing with respect to r
[WARNING] Groebner basis not squarefree in r
decomposing with respect to s
[WARNING] Groebner basis not squarefree in s
decomposing with respect to w
[WARNING] Groebner basis not squarefree in w
decomposing with respect to x
[WARNING] Groebner basis not squarefree in x
decomposing with respect to y
C = ideal(x^2-s*z,r*w)
N = ideal(r*s^2*w+r^2*w^2+r*w*x*z+r*w*z^2)
C and N form a valid geometric vertex decomposition
------
I = ideal(x^2-s*z,r*w)
decomposing with respect to r
C = ideal(w,x^2-s*z)
N = ideal(x^2-s*z)
C and N form a valid geometric vertex decomposition
------
I = ideal(w,x^2-s*z)
decomposing with respect to s
C = ideal(z,w)
N = ideal(w)
C and N form a valid geometric vertex decomposition
------
I = ideal(z,w)
generated by indeterminates
------
I = ideal(w)
generated by indeterminates
------
I = ideal(x^2-s*z)
decomposing with respect to s
C = ideal z
N = ideal()
C and N form a valid geometric vertex decomposition
------
I = ideal z
generated by a single indeterminate
------
I = ideal()
zero ideal
------
I = ideal(r*s^2*w+r^2*w^2+r*w*x*z+r*w*z^2)
decomposing with respect to r
[WARNING] Groebner basis not squarefree in r
decomposing with respect to s
[WARNING] Groebner basis not squarefree in s
decomposing with respect to w
[WARNING] Groebner basis not squarefree in w
decomposing with respect to x
C = ideal(r*w*z)
N = ideal()
C and N form a valid geometric vertex decomposition
------
I = ideal(r*w*z)
decomposing with respect to r
C = ideal(w*z)
N = ideal()
C and N form a valid geometric vertex decomposition
------
I = ideal(w*z)
decomposing with respect to w
C = ideal z
N = ideal()
C and N form a valid geometric vertex decomposition
------
I = ideal z
generated by a single indeterminate
------
I = ideal()
zero ideal
------
I = ideal()
zero ideal
------
I = ideal()
zero ideal
True
[1] P. Klein and J. Rajchgot. Geometric vertex decomposition and liaison. Forum of Math, Sigma, 9(70), 2021.