# projectiveSpace -- make a projective space

## Synopsis

• Usage:
projectiveSpace n
projectiveSpace(n, S)
projectiveSpace_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 = projectiveSpace 3 o1 = P o1 : a flag bundle with 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 , H ] 2,1 2,2 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 , H ] 2,1 2,2 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```
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:
 ```i6 : pt = base n o6 = pt o6 : an abstract variety of dimension 0``` ```i7 : Q = projectiveSpace_4 pt o7 = Q o7 : a flag bundle with ranks {1, 4}``` ```i8 : chi OO_Q(n) 1 4 5 3 35 2 25 o8 = --n + --n + --n + --n + 1 24 12 24 12 o8 : QQ[n]```
The base variety may itself be a projective space:
 ```i9 : S = projectiveSpace(4, VariableName => symbol h) o9 = S o9 : a flag bundle with ranks {1, 4}``` ```i10 : P = projectiveSpace(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 o10 = P o10 : a flag bundle with ranks {1, 3}``` ```i11 : dim P o11 = 7``` ```i12 : todd P 5 11 35 o12 = 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 , H , H ] 2,1 2,2 2,3 2,4 ---------------------------------------------------------------[H, H , H , H ] (h + H , h*H + H , h*H + H , h*H + H , h*H ) 2,1 2,2 2,3 2,1 2,1 2,2 2,2 2,3 2,3 2,4 2,4 o12 : ------------------------------------------------------------------------------------ (H + H , H*H + H , H*H + H , H*H ) 2,1 2,1 2,2 2,2 2,3 2,3```

• projectiveSpace' -- make a projective space
• projectiveBundle -- make a projective bundle from an abstract sheaf
• flagBundle -- make a flag bundle
• tangentBundle -- get the tangent bundle
• todd -- compute the Todd class of an abstract sheaf, variety, map
• chi (missing documentation)
• base -- make an abstract variety from nothing, equipped with some parameters and some bundles
• OO _ AbstractVariety -- the structure sheaf of an abstract variety

## Ways to use projectiveSpace :

• projectiveSpace(ZZ)
• projectiveSpace(ZZ,AbstractVariety)