# abstractProjectiveSpace -- make a projective space

## Synopsis

• Usage:
abstractProjectiveSpace n
abstractProjectiveSpace(n, S)
abstractProjectiveSpace_n S
• Inputs:
• Optional inputs:
• VariableName => , default value "h", the symbol to use for the variable representing the first Chern class of the tautological line bundle on the resulting projective space
• Outputs:
• the projective space of rank 1 subbundles of the trivial bundle of rank $n+1$ on the base variety S.

## Description

Equivalent to flagBundle(\{1,n\},S,VariableNames=>\{h,\}).

 i1 : P = abstractProjectiveSpace 3 o1 = P o1 : a flag bundle with subquotient ranks {1, 3} i2 : tangentBundle P o2 = a sheaf o2 : an abstract sheaf of rank 3 on P i3 : chern tangentBundle P o3 = 1 + 4H + 6H + 4H 2,1 2,2 2,3 QQ[][h, H ..H ] 2,1 2,3 o3 : ------------------------------------------------------- (- h - H , - h*H - H , - h*H - H , -h*H ) 2,1 2,1 2,2 2,2 2,3 2,3 i4 : todd P 11 o4 = 1 + 2H + --H + H 2,1 6 2,2 2,3 QQ[][h, H ..H ] 2,1 2,3 o4 : ------------------------------------------------------- (- h - H , - h*H - H , - h*H - H , -h*H ) 2,1 2,1 2,2 2,2 2,3 2,3 i5 : chi OO_P(3) o5 = 20

The name is quite long. Here is one way to make it shorter

 i6 : PP = abstractProjectiveSpace o6 = abstractProjectiveSpace o6 : MethodFunctionWithOptions i7 : X = PP 4 o7 = X o7 : a flag bundle with subquotient ranks {1, 4}

To compute the Hilbert polynomial of a sheaf on projective space, we work over a base variety of dimension zero whose intersection ring contains a free variable $n$, instead of working over point:

 i8 : pt = base n o8 = pt o8 : an abstract variety of dimension 0 i9 : Q = abstractProjectiveSpace_4 pt o9 = Q o9 : a flag bundle with subquotient ranks {1, 4} i10 : chi OO_Q(n) 1 4 5 3 35 2 25 o10 = --n + --n + --n + --n + 1 24 12 24 12 o10 : QQ[n]

The base variety may itself be a projective space:

 i11 : S = abstractProjectiveSpace(4, VariableName => symbol h) o11 = S o11 : a flag bundle with subquotient ranks {1, 4} i12 : P = abstractProjectiveSpace(3, S, VariableName => H) warning: clearing value of symbol H to allow access to subscripted variables based on it : debug with expression debug 204 or with command line option --debug 204 warning: clearing value of symbol H to allow access to subscripted variables based on it : debug with expression debug 204 or with command line option --debug 204 o12 = P o12 : a flag bundle with subquotient ranks {1, 3} i13 : dim P o13 = 7 i14 : todd P 5 11 35 o14 = 1 + (2H + -H ) + (--H + 5H H + --H ) + (H + 2,1 2 2,1 6 2,2 2,1 2,1 12 2,2 2,3 ----------------------------------------------------------------------- 55 35 25 5 385 --H H + --H H + --H ) + (-H H + ---H H + 12 2,1 2,2 6 2,2 2,1 12 2,3 2 2,1 2,3 72 2,2 2,2 ----------------------------------------------------------------------- 25 35 275 --H H + H ) + (--H H + ---H H + 2H H ) + 6 2,3 2,1 2,4 12 2,2 2,3 72 2,3 2,2 2,4 2,1 ----------------------------------------------------------------------- 25 11 (--H H + --H H ) + H H 12 2,3 2,3 6 2,4 2,2 2,4 2,3 QQ[][h, H ..H ] 2,1 2,4 ------------------------------------------------------------------------[H, H ..H ] (- h - H , - h*H - H , - h*H - H , - h*H - H , -h*H ) 2,1 2,3 2,1 2,1 2,2 2,2 2,3 2,3 2,4 2,4 o14 : --------------------------------------------------------------------------------------- (- H - H , - H*H - H , - H*H - H , -H*H ) 2,1 2,1 2,2 2,2 2,3 2,3

## Ways to use abstractProjectiveSpace :

• "abstractProjectiveSpace(ZZ)"
• "abstractProjectiveSpace(ZZ,AbstractVariety)"

## For the programmer

The object abstractProjectiveSpace is .