next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Book3264Examples > Intersection Theory Section 5.4.1-2

Intersection Theory Section 5.4.1-2 -- Chern class computations on projective space

Subsection 5.4.1 - Universal bundles on projective space

We have two different methods in Schubert2 for producing projective spaces. We have already seen one method: build n as a Grassmannian:

i1 : P3 = flagBundle({1,3})

o1 = P3

o1 : a flag bundle with subquotient ranks {1, 3}
i2 : (S,Q) = P3.Bundles

o2 = (S, Q)

o2 : Sequence

In this setting, the the bundle O(1) is the dual of the universal subbundle S.

i3 : O1 = dual(S)

o3 = O1

o3 : an abstract sheaf of rank 1 on P3
i4 : chern O1

o4 = 1 + H
          2,1

                       QQ[][H   , H   , H   , H   ]
                             1,1   2,1   2,2   2,3
o4 : ----------------------------------------------------------------
     (- H    - H   , - H   H    - H   , - H   H    - H   , -H   H   )
         1,1    2,1     1,1 2,1    2,2     1,1 2,2    2,3    1,1 2,3

Now, Schubert2 also comes with a built-in function abstractProjectiveSpace for making projective spaces. Using /tt abstractProjectiveSpace to build n is nice, because the resulting Chow ring is presented as a truncated polynomial ring in one variable, rather than as a ring with n+1 generators. But, be careful: this built-in actually produces the projective space of 1-quotients. For example:

i5 : P3' = abstractProjectiveSpace 3

o5 = P3'

o5 : a flag bundle with subquotient ranks {1, 3}
i6 : (S',Q') = P3'.Bundles

o6 = (S', Q')

o6 : Sequence
i7 : chern S'

o7 = 1 - H
          2,1

                    QQ[][h, H   , H   , H   ]
                             2,1   2,2   2,3
o7 : -------------------------------------------------------
     (- h - H   , - h*H    - H   , - h*H    - H   , -h*H   )
             2,1       2,1    2,2       2,2    2,3      2,3
i8 : chern Q' -- Q' is O(1) on P3'

o8 = 1 + H    + H    + H
          2,1    2,2    2,3

                    QQ[][h, H   , H   , H   ]
                             2,1   2,2   2,3
o8 : -------------------------------------------------------
     (- h - H   , - h*H    - H   , - h*H    - H   , -h*H   )
             2,1       2,1    2,2       2,2    2,3      2,3

For the rest of this section, we will use the flagBundle method to produce n, in order to be consistent with the choices in the book.

Subsection 5.4.2

The tangent bundle to projective space comes built-in in Schubert2. It can be accessed via the tangentBundle method:

i9 : T = tangentBundle(P3)

o9 = T

o9 : an abstract sheaf of rank 3 on P3
i10 : chern T

o10 = 1 + 4H    + 6H    + 4H
            2,1     2,2     2,3

                        QQ[][H   , H   , H   , H   ]
                              1,1   2,1   2,2   2,3
o10 : ----------------------------------------------------------------
      (- H    - H   , - H   H    - H   , - H   H    - H   , -H   H   )
          1,1    2,1     1,1 2,1    2,2     1,1 2,2    2,3    1,1 2,3

We can also produce the tangent bundle to n ourselves by using the Euler exact sequence:

i11 : TP3 = (4 * O1) - 1

o11 = T

o11 : an abstract sheaf of rank 3 on P3
i12 : chern T == chern TP3

o12 = true
i13 : rank T == rank TP3

o13 = true

Note how Schubert2 treats integers in a bundle computation as copies of a trivial bundle. See AbstractSheaf * AbstractSheaf and AbstractSheaf - AbstractSheaf, for example, for more information.