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