There are several different methods for creating projective $n$-space in Macaulay2.
To generate projective space as a ProjectiveVariety, we use the Proj-construction.
i1 : X0 = Proj (QQ[x_0..x_3]) o1 = X0 o1 : ProjectiveVariety |
i2 : assert (3 === dim X0) |
i3 : ring X0 o3 = QQ[x ..x ] 0 3 o3 : PolynomialRing |
i4 : hilbertPolynomial(X0, Projective => false) 1 3 2 11 o4 = -i + i + --i + 1 6 6 o4 : QQ[i] |
i5 : for d to 10 list rank HH^0 (OO_X0(d)) o5 = {1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286} o5 : List |
To work with projective space as a NormalToricVariety, we simply use the method toricProjectiveSpace.
i6 : X1 = toricProjectiveSpace 3 o6 = X1 o6 : NormalToricVariety |
i7 : assert (3 === dim X1) |
i8 : rays X1 o8 = {{-1, -1, -1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}} o8 : List |
i9 : max X1 o9 = {{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}} o9 : List |
i10 : ring X1 o10 = QQ[x ..x ] 0 3 o10 : PolynomialRing |
i11 : intersectionRing X1 QQ[][t ..t ] 0 3 o11 = ------------------------------------------- (t t t t , - t + t , - t + t , - t + t ) 0 1 2 3 0 1 0 2 0 3 o11 : QuotientRing |
i12 : hilbertPolynomial (X1) 1 3 2 11 o12 = -i + i + --i + 1 6 0 0 6 0 o12 : QQ[i ] 0 |
i13 : for d to 10 list rank HH^0 (X1, OO_X1(d)) o13 = {1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286} o13 : List |
i14 : assert (X0 =!= X1) |
To manipulate projective space as an AbstractVariety, we employ the method abstractProjectiveSpace.
i15 : X2 = abstractProjectiveSpace (3, base(symbol i)) o15 = X2 o15 : a flag bundle with subquotient ranks {1, 3} |
i16 : assert (3 === dim X2) |
i17 : intersectionRing X2 QQ[i][h, H ..H ] 2,1 2,3 o17 = ------------------------------------------------------- (- h - H , - h*H - H , - h*H - H , -h*H ) 2,1 2,1 2,2 2,2 2,3 2,3 o17 : QuotientRing |
i18 : chi (OO_X2(i)) 1 3 2 11 o18 = -i + i + --i + 1 6 6 o18 : QQ[i] |
i19 : assert (X2 =!= X0) |
i20 : assert (X2 =!= X1) |
If you prefer a shorter name for your favourite method of constructing projective space, then make one.
i21 : projectiveSpace = n -> Proj (QQ[x_0..x_n]); |
i22 : projectiveSpace 2 o22 = Proj(QQ[x ..x ]) 0 2 o22 : ProjectiveVariety |
i23 : PP = toricProjectiveSpace; |
i24 : PP 2 o24 = normalToricVariety ({{-1, -1}, {1, 0}, {0, 1}}, {{0, 1}, {0, 2}, {1, 2}}) o24 : NormalToricVariety |