next | previous | forward | backward | up | index | toc

## Synopsis

• Usage:
(numList,adjList,ptsList,J)=adjointMatrix(I)
(numList,adjList,ptsList,J)=adjointMatrix(I,N)
• Inputs:
• I, an ideal, of a projective surface
• N, an integer, number of adjunction steps
• Outputs:
• numList, a list, numerical Data of the adjunction process
• ptsList, a list, list of ideal if the exceptional points
• J, an ideal, ideal of the final surface in the adjunction process

## Description

Adjunction determines the image X' of X under the morphism phi: X -> X' defined by |H+K|. By Sommese and Van de Ven [SVdV] |H+K| is birational and blows down presisely all (-1) lines of unless

(1) X is a P2 linearly or quadratically embedded, or ruled in lines,

(2) X is a anticanonical embedded Del Pezzo surface,

(3) X is a conic bundle in which case phi_{|H+K|}: X -> B maps X to a curve B and the fibers are conics, or

(4) X is an element of one of the four families of exceptions where |K+H| defines a finite to 1 map. See TO "specialFamiliesOfSommeseVandeVen".

Since a (-1) conic on X become (-1) line on X', repeating this process finally reaches a minimal surface unless X has negative Kodaira dimension.

In case X is a rational surface, and the lucky case that the final surface is P2, one can use the list adjList to get a rational parametrization.

In case one ends up with a del Pezzo surface or a conic bundle, one has to identify the exceptional lines, thus one might need an algebraic field extension, to get a rational parametrization. However, one can always parametrize X in terms of the final surface in the adjunction process.

The numerical data are collected in a list with an entry

(n,d,pi)= (dim Pn_i, degree X_i, sectional genus of X_i)

for each surface X_i in the adjunction process, starting with X=X_0 and an entry the integer k if X_i -> X_(i+1) blows down k (-1) lines.

 i1 : d=7 o1 = 7 i2 : L=toList(8:2)|toList(5:1) o2 = {2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1} o2 : List i3 : n=expectedDimension(d,L)-1 o3 = 6 i4 : kk=ZZ/nextPrime(10^3) o4 = kk o4 : QuotientRing i5 : t=symbol t, x= symbol x o5 = (t, x) o5 : Sequence i6 : P2=kk[t_0..t_2] o6 = P2 o6 : PolynomialRing i7 : Pn=kk[x_0..x_n] o7 = Pn o7 : PolynomialRing i8 : betti(I=rationalSurface(P2,d,L,Pn)) 0 1 o8 = total: 1 11 0: 1 . 1: . 3 2: . 8 o8 : BettiTally i9 : minimalBetti I 0 1 2 3 4 o9 = total: 1 11 27 24 7 0: 1 . . . . 1: . 3 . . . 2: . 8 27 24 7 o9 : BettiTally i10 : (numList,adjList,ptsList,J)=adjunctionProcess(I); i11 : numList o11 = {(6, 12, 7), 5, (6, 8, 3), 8, (2, 1, 0)} o11 : List i12 : P2=ring J o12 = P2 o12 : PolynomialRing i13 : betti(H=parametrization(P2,adjList)) 0 1 o13 = total: 1 7 0: 1 . 1: . . 2: . . 3: . . 4: . . 5: . . 6: . 7 o13 : BettiTally i14 : phi=map(P2,Pn,H); o14 : RingMap P2 <-- Pn i15 : elapsedTime betti(I'=trim ker phi) -- 1.40383 seconds elapsed 0 1 o15 = total: 1 11 0: 1 . 1: . 3 2: . 8 o15 : BettiTally i16 : I'== I o16 = true i17 : elapsedTime basePts=primaryDecomposition ideal H; -- 9.14976 seconds elapsed i18 : tally apply(basePts,c->(dim c, degree c, betti c)) 0 1 o18 = Tally{(1, 1, total: 1 2) => 5} 0: 1 2 0 1 (1, 3, total: 1 3) => 8 0: 1 . 1: . 3 o18 : Tally