# K3Carpets -- The unique Gorenstein double structure on a surface scroll

## Description

This package accompanies our paper Equations and syzygies of K3 carpets and union of scrolls for experimental exploration. There is a unique surjection from the ideal of a 2-dimensional rational normal scroll (other than the cone over a rational normal curve) onto the canonical module of the scroll and the kernel of the this map is the ideal of a scheme that looks numerically like a K3 surface: a K3 carpet. (Theorem 1.3 of Degenerations of K3 surfaces in projective space, by Francisco Gallego and B.P. Purnaprajna, Trans. Amer. Math. Soc. 349 (1997), no. 6, 2477–2492.)

The carpet lies on the intersection of the cones over two rational normal curves Ca and Cb of degrees a>=b. We write the ideal of Ca as the minors of a 2xa matrix X with entries x_i, i= 0..a, and similarly for Cb, with a 2 x b matrix Y with entries y_j. We write Xi for the ith column of X, and similarly for Y. In the general case, where a,b are both >=2, the additional generators of the ideal of the Carpet are then given by the differences det(Xi,Yj)-det(X(i+1),Y(j-1)), or equivalently, by the minors of (Xi+Yj,X(i+1)+Y(j-1), (In the case a=1=b the ideal is the square of the determinant of X|Y; if a>1, b=1 then for the mixed minors we replace the 1-column matrix Y by a symmetric 2x2 matrix with entries y_0^2,y_0y_1,y_1^2 )

The hyperplane section of a K3 carpet is a canonical ribbon indexed by genus g=a+b+1 and clifford index b.

The K3 carpets generalize to a family of degenerate K3 surfaces which are unoins of two scrolls, whose hyperplane sections are reducible canonical curves consisting of two rational normal curves of degree g-1 intersecting in g+1 points. The functions in this package explore the syzygies of these surfaces for fields of arbitrary characteristic. Inparticular, the functions in the package allow for g <= 15 a computational proof of the following conjecture.

Conjecture 0.1 A general canonical curve of genus g over a field of characteristic p satisfies Green's conjecture, if p >= (g-1)/2.

## Constructions

• carpet -- Ideal of the unique Gorenstein double structure on a 2-dimensional scroll
• canonicalCarpet -- Carpet of given genus and Clifford index
• gorensteinDouble -- attempts to produce a Gorenstein double structure J subset I

## Analyzing

• carpetBettiTables -- compute the Betti tables of a carpet of given genus and Clifford index over all prime fields
• carpetBettiTable -- compute the Betti tables of a carpet of given genus and Clifford index over a prime field of characteristic p
• analyzeStrand -- analyze the (a+1)-st constant strand of F over ZZ
• degenerateK3BettiTables -- compute the Betti tables of a degenerate K3 over all prime fields
• schreyerName -- get the names of generators in the (nonminimal) Schreyer resolution according to Schreyer's convention
• carpetDet -- compute the determinant of the crucial constant strand of a carpet X(a,b)
• resonanceDet -- compute the resonance determinant of the crucial constant strand of a degenerate K3 X_e(a,a)

## Correspondence Scrolls

• correspondenceScroll -- Union of planes joining points of rational normal curves according to a given correspondence
• hankelMatrix -- matrix with constant anti-diagonal entries
• productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• schemeInProduct -- multi-graded Ideal of the image of a map to a product of projective spaces
• smallDiagonal -- Ideal of the small diagonal in (P^1)^n
• irrelevantIdeal -- returns the irrelevant ideal of a multi-graded ring
• degenerateK3 -- Ideal of a degenerate K3 surface X_e(a,b)

## Version

This documentation describes version 0.5 of K3Carpets.

## Source code

The source code from which this documentation is derived is in the file K3Carpets.m2.

## Exports

• Functions and commands
• analyzeStrand -- analyze the (a+1)-st constant strand of F over ZZ
• canonicalCarpet -- Carpet of given genus and Clifford index
• canonicalHomotopies -- Homotopies on the resolution of a K3 carpet
• carpet -- Ideal of the unique Gorenstein double structure on a 2-dimensional scroll
• carpetBettiTable -- compute the Betti tables of a carpet of given genus and Clifford index over a prime field of characteristic p
• carpetBettiTables -- compute the Betti tables of a carpet of given genus and Clifford index over all prime fields
• carpetDet -- compute the determinant of the crucial constant strand of a carpet X(a,b)
• computeBound -- compute the bound for the good types in case of k resonance
• correspondenceScroll -- Union of planes joining points of rational normal curves according to a given correspondence
• coxMatrices -- compute the Cox matrices
• degenerateK3 -- Ideal of a degenerate K3 surface X_e(a,b)
• degenerateK3BettiTables -- compute the Betti tables of a degenerate K3 over all prime fields
• gorensteinDouble -- attempts to produce a Gorenstein double structure J subset I
• hankelMatrix -- matrix with constant anti-diagonal entries
• homotopyRanks -- compute the ranks of the quadratic homotopies on a carpet
• irrelevantIdeal -- returns the irrelevant ideal of a multi-graded ring
• productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• relativeEquations -- compute the relative quadrics
• relativeResolution -- compute the relative resolution
• relativeResolutionTwists -- compute the twists in the relative resolution
• resonanceDet -- compute the resonance determinant of the crucial constant strand of a degenerate K3 X_e(a,a)
• resonanceScroll -- compute the splitting type of the resonance scroll
• schemeInProduct -- multi-graded Ideal of the image of a map to a product of projective spaces
• schreyerName -- get the names of generators in the (nonminimal) Schreyer resolution according to Schreyer's convention
• smallDiagonal -- Ideal of the small diagonal in (P^1)^n
• Methods
• "analyzeStrand(ChainComplex,ZZ)" -- see analyzeStrand -- analyze the (a+1)-st constant strand of F over ZZ
• "canonicalCarpet(ZZ,ZZ)" -- see canonicalCarpet -- Carpet of given genus and Clifford index
• "canonicalHomotopies(ZZ,ZZ)" -- see canonicalHomotopies -- Homotopies on the resolution of a K3 carpet
• "carpet(ZZ,ZZ)" -- see carpet -- Ideal of the unique Gorenstein double structure on a 2-dimensional scroll
• "carpet(ZZ,ZZ,Matrix)" -- see carpet -- Ideal of the unique Gorenstein double structure on a 2-dimensional scroll
• "carpetBettiTable(HashTable,ZZ)" -- see carpetBettiTable -- compute the Betti tables of a carpet of given genus and Clifford index over a prime field of characteristic p
• "carpetBettiTable(ZZ,ZZ,ZZ)" -- see carpetBettiTable -- compute the Betti tables of a carpet of given genus and Clifford index over a prime field of characteristic p
• "carpetBettiTables(ZZ,ZZ)" -- see carpetBettiTables -- compute the Betti tables of a carpet of given genus and Clifford index over all prime fields
• "carpetDet(ZZ,ZZ)" -- see carpetDet -- compute the determinant of the crucial constant strand of a carpet X(a,b)
• "computeBound(ZZ)" -- see computeBound -- compute the bound for the good types in case of k resonance
• "computeBound(ZZ,ZZ,ZZ)" -- see computeBound -- compute the bound for the good types in case of k resonance
• "correspondenceScroll(Ideal,List)" -- see correspondenceScroll -- Union of planes joining points of rational normal curves according to a given correspondence
• "coxMatrices(ZZ,ZZ,ZZ)" -- see coxMatrices -- compute the Cox matrices
• "degenerateK3(ZZ,ZZ,List)" -- see degenerateK3 -- Ideal of a degenerate K3 surface X_e(a,b)
• "degenerateK3(ZZ,ZZ,Sequence)" -- see degenerateK3 -- Ideal of a degenerate K3 surface X_e(a,b)
• "degenerateK3BettiTables(ZZ,ZZ,Sequence)" -- see degenerateK3BettiTables -- compute the Betti tables of a degenerate K3 over all prime fields
• "gorensteinDouble(Ideal)" -- see gorensteinDouble -- attempts to produce a Gorenstein double structure J subset I
• "hankelMatrix(Matrix,ZZ,ZZ)" -- see hankelMatrix -- matrix with constant anti-diagonal entries
• "hankelMatrix(Ring,RingElement,ZZ,ZZ)" -- see hankelMatrix -- matrix with constant anti-diagonal entries
• "hankelMatrix(Ring,ZZ,ZZ)" -- see hankelMatrix -- matrix with constant anti-diagonal entries
• "hankelMatrix(ZZ,ZZ)" -- see hankelMatrix -- matrix with constant anti-diagonal entries
• "homotopyRanks(ZZ,ZZ)" -- see homotopyRanks -- compute the ranks of the quadratic homotopies on a carpet
• "productOfProjectiveSpaces(List)" -- see productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• "productOfProjectiveSpaces(List,Symbol)" -- see productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• "productOfProjectiveSpaces(List,Symbol,Ring)" -- see productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• "productOfProjectiveSpaces(ZZ)" -- see productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• "productOfProjectiveSpaces(ZZ,Symbol)" -- see productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
• "relativeEquations(ZZ,ZZ,ZZ)" -- see relativeEquations -- compute the relative quadrics
• "relativeResolution(ZZ,ZZ,ZZ)" -- see relativeResolution -- compute the relative resolution
• "relativeResolutionTwists(ZZ,ZZ,ChainComplex)" -- see relativeResolutionTwists -- compute the twists in the relative resolution
• "resonanceDet(ZZ)" -- see resonanceDet -- compute the resonance determinant of the crucial constant strand of a degenerate K3 X_e(a,a)
• "resonanceScroll(ZZ,ZZ,ZZ)" -- see resonanceScroll -- compute the splitting type of the resonance scroll
• "schemeInProduct(Ideal,List,Ring)" -- see schemeInProduct -- multi-graded Ideal of the image of a map to a product of projective spaces
• "schemeInProduct(Ideal,List,Symbol)" -- see schemeInProduct -- multi-graded Ideal of the image of a map to a product of projective spaces
• "schreyerName(ChainComplex)" -- see schreyerName -- get the names of generators in the (nonminimal) Schreyer resolution according to Schreyer's convention
• "schreyerName(ChainComplex,ZZ)" -- see schreyerName -- get the names of generators in the (nonminimal) Schreyer resolution according to Schreyer's convention
• "schreyerName(ChainComplex,ZZ,ZZ)" -- see schreyerName -- get the names of generators in the (nonminimal) Schreyer resolution according to Schreyer's convention
• "schreyerName(HashTable,ZZ,ZZ)" -- see schreyerName -- get the names of generators in the (nonminimal) Schreyer resolution according to Schreyer's convention
• "smallDiagonal(Ring)" -- see smallDiagonal -- Ideal of the small diagonal in (P^1)^n
• "smallDiagonal(ZZ)" -- see smallDiagonal -- Ideal of the small diagonal in (P^1)^n
• Symbols
• FineGrading -- Option for carpet, canonicalCarpet
• Scrolls -- Option for carpet, canonicalCarpet

## For the programmer

The object K3Carpets is .