Difference between revisions of "Package alggeozd"

From ApCoCoAWiki
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Version|1|[[:Category:ApCoCoA-2.0:Package alggeozd]]}}
+
This page describes the <code>alggeozd</code> 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]].
This page describes the zerodim package. The package contains various functions for computing algebraic invariants of zero-dimensional schemes and related computations. For a complete list of functions, see [[:Category:Package alggeozd]].
 
  
  
== Algebraic and Geometric Properties ==
+
== Alg-Geo Properties ==
Let <math>K</math> be a field,
+
 
 +
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 <em>Gorenstein ring</em> if the K_i-vector space (0:m_i) has dimension 1.
 +
* The scheme X (or the ring R) is called a <em>locally Goreinstein ring</em> 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 <em>strict/arithmetically Goreinstein ring</em> if gr(R) is a Goresntein ring.
 +
* The local ring O_i is called a <em>complete intersection</em> 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 <em>locally complete intersection</em> 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 <em>complete intersection</em> 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 <em>(i,j)-uniform</em> 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 <em>Cayley-Bacharach property</em> 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 <code>alggeozd</code> package provides functions for checking the introduced properties of zero-dimensional schemes. Alias of the package is <code>AGZD</code>.
 +
 
 +
=== List of main functions ===
 +
 
 +
[[/CheckingCBP/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingCBPUsingCanModule/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingGor/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingGorWithValues/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingStrictGor/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingGorCBP/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingGorCBPWithValues/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingSCIS/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/CheckingSCIS2/]]
 +
<pre>
 +
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
 +
</pre>
 +
[[/IsUniformity/]]
 +
<pre>
 +
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
 +
</pre>
 +
 
 +
=== Example for computations ===
 +
Now let us apply the <code>alggeozd</code> package to some concrete examples. Recall that the alias of the package is <code>AGZD</code>, and so to call a function from this package in computation one uses [[/ZD.functions-name/]].
 +
 
 +
Example 1:
 +
<pre>
 +
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
 +
</pre>
 +
Then we check the mentioned algebraic and geometric of X as follows:
 +
<pre>
 +
-- 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
 +
</pre>
 +
 
 +
Example 2: The 0-dimensional ideal I is given by its primary components.
 +
<pre>
 +
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
 +
</pre>
 +
We check the property of X as follows:
 +
<pre>
 +
-- Checking the Cayley-Bacharach property:
 +
AGZD.CheckingCBP(Ly);
 +
  true
 +
AGZD.CheckingCBPUsingCanModule(Iy);
 +
  true
 +
-- Checking the locall Gorenstein property:
 +
AGZD.CheckingGor(Iy);
 +
  false
 +
</pre>
 +
-- 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):
 +
<pre>
 +
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
 +
</pre>
 +
Thus X is (i,j)-uniform for (i,j)=(1,2) or (2,2), but not (2,3)-uniform.
 +
 
 +
[[Category:Package zerodim]]
 +
[[Category:Package alggeozd]]
 +
[[Category:Package borderbasis]]
 +
[[Category:ApCoCoA Packages]]

Latest revision as of 23:20, 17 November 2022

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

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

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

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

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

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

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

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

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

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

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.