# 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 also 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.