Package alggeozd
This page describes the alggeozd
package. The package contains various functions for checking algebraic and geometric properties of zero-dimensional affine K-algebra/schemes and related computations. For a complete list of functions, see Category:Package alggeozd.
Alg-Geo Properties
Let K be a field, let I be a 0-dimensional ideal in a polynomial ring P=K[x_1,...x_n], and let R=P/I and X=Spec(P/I). In this package, we checking some algebraic and geometric properties of the scheme X or of the affine K-algebra R such as: locally Gorenstein, strict/arithmetically Gorenstein, complete intersection, Cayley-Bacharach property, and (i,j)-uniformity.
Algebraic Properties
Suppose the support of X contains s points p_1,...,p_s. For i=1,...s, the local ring of X at p_i is of the form O_i=P/q_i where q_i is a primary ideal of P. Let m_i be the maximal ideal of O_i and K_i=O_i/m_i for i=1,...,s.
- The local ring O_i is called a Gorenstein ring if the K_i-vector space (0:m_i) has dimension 1.
- The scheme X (or the ring R) is called a locally Goreinstein ring if the local ring O_i is a Gorenstein ring for every i=1,...,s.
The associated graded ring of R with respect to the standard grading is denoted by gr(R). Then gr(R) is a 0-dimenisonal local ring.
- The scheme X (or the ring R) is called a strict/arithmetically Goreinstein ring if gr(R) is a Goresntein ring.
- The local ring O_i is called a complete intersection if the ideal q_i is generated by a regular sequence of length n in P.
- The scheme X (or the ring R) is called a locally complete intersection if the local ring O_i is a complete intersection for every i=1,...,s.
- The scheme X (or the ring R) is called a complete intersection if gr(R) is a complete intersection ring.
Geometric Properties
Now we consider X as a projective subscheme of the projective n-space under the embedding X into D_+(x_0). The homogeneous coordinate ring of X is R_X and its homogeneous vanishing ideal in S=K[x_0,...,x_n] is I_X. The Hilbert function of R_X is denoted by HF_X and its regularity index is r_X. The number d_X = dim_K(R) is known as the degree of X. Suppose that X has K-rational support, that is, the maximal ideal of each O_i is generated by only linear forms. Let i,j be two positive integers. Under this assumption, we have the following notion.
- The scheme X is called (i,j)-uniform if every subscheme Y of X of degree d_Y=d_X-1 satisfies HF_Y(j)=HF_X(j).
- The scheme X is said to have the Cayley-Bacharach property if it is (1,r_X-1)-uniform.
The Cayley-Bacharach property of X has a long and rich history and it can be generalized for an arbitrary 0-dimensional scheme X (see e.g. the paper [M. Kreuzer, L.N. Long, L. Robbiano, On the Cayley-Bacharach Property, Communications in Algebra 47 (2019), 328-354]).
Package Discription
The alggeozd
package provides functions for checking the introduced properties of zero-dimensional schemes. Alias of the package is AGZD
.
List of main functions
CheckingCBP(LX): checks the Cayley-Bacharach Property. input: LX=list of primary components of a 0-dim ideal Ix output: the corresponding boolean value for CBP
CheckingCBPUsingCanModule(Ix): checks the CBP using the canonical module. input: Ix=a 0-dim ideal in P=K[x[1..N]] output: the corresponding boolean value for CBP
CheckingGor(Ix): checks the locally Gorenstein property. input: Ix=a 0-dim ideal in K[x[1..N]] output: the corresponding boolean value for Gor-property
CheckingGorWithValues(Ix,Values): checks the loc. Gor. property. input: Ix=a 0-dim ideal in P=K[x[1..N]] Values=list of numbers with length Dim_K(P/Ix) output: the corresponding boolean value for Gor-property
CheckingStrictGor(Ix): checks the strict/arith. Gor. property. input: Ix=a 0-dim ideal in P=K[x[1..N]] term ordering on P is degree-compatible output: the corresponding boolean value
CheckingGorCBP(Ix): checks the CBP with local Gor. input: Ix=a 0-dim ideal in P=K[x[1..N]] output: the corresponding boolean value
CheckingGorCBPWithValues(Ix,Values): checks the CBP property with locally Gorenstein. input: Ix=a 0-dim ideal in P=K[x[1..N]] Values=list of numbers with length Delta output: the corresponding boolean value
CheckingSCIS(Ix): checks the strict comp. intersection property. input: Ix=a 0-dim ideal in P=K[x[1..N]] term ordering on P is degree-compatible output: the corresponding boolean value
CheckingSCIS2(Ix): checks the strict comp. intersection property. input: Ix=a 0-dim ideal in P=K[x[1..N]] term ordering on P is degree-compatible (using border) output: the corresponding boolean value
IsUniformity(P,Points,i,j): checks the (i,j)-uniform property. input: P=K[x[0..N]], Points=Set of projective points, pair (i,j) of non-negative integres output: the corresponding boolean value
Example for computations
Now let us apply the alggeozd
package to some concrete examples. Recall that the alias of the package is AGZD
, and so to call a function from this package in computation one uses ZD.functions-name.
Example 1:
Use P ::= QQ[X[1..2]]; Ix := ideal(-X[1]^2 +X[1], X[2]^3 -3*X[2]^2 +2*X[2]); Dim(P/Ix); 0
Then we check the mentioned algebraic and geometric of X as follows:
-- Checking the Cayley-Bacharach property: AGZD.CheckingCBPUsingCanModule(Ix); true -- Checking the locally Gorenstein property: AGZD.CheckingGor(Ix); true -- Checking the arithmetically Gorenstein property: AGZD.CheckingStrictGor(Ix); true -- Checking the Complete Intersection: AGZD.CheckingSCIS(Ix); true AGZD.CheckingSCIS2(Ix); true
Example 2: The 0-dimensional ideal I is given by its primary components.
Use P ::= QQ[X[1..2]]; J1 := Ideal(X[1],X[2]); J2 := Ideal(X[1],X[2]^2+3); J3 := Ideal(X[1]-1,X[2])^2; Ly := [J1,J2,J3]; Iy := IntersectionList(Ly); Dim(P/Iy); 0
We check the property of X as follows:
-- Checking the Cayley-Bacharach property: AGZD.CheckingCBP(Ly); true AGZD.CheckingCBPUsingCanModule(Iy); true -- Checking the locall Gorenstein property: AGZD.CheckingGor(Iy); false
-- This also shows that the scheme does not have the arithmetically Gorenstein and complete intersection properties.
Example 3: The scheme X is a set of 10 projective points and we check the uniformity of X at some pairs (i,j):
Use P ::= QQ[X[0..2]]; Points := [[1,1,0], [1,3,0], [1,1,1], [1,2,1], [1,3,1], [1,0,2], [1,1,2], [1,2,2], [1,3,2], [1,3,3]]; AGZD.IsUniformity(P,Points,1,2); true AGZD.IsUniformity(P,Points,2,2); true AGZD.IsUniformity(P,Points,3,2); false
Thus X is (i,j)-uniform for (i,j)=(1,2) or (2,2), but not (2,3)-uniform.