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

Intersection Theory Section 5.2 -- Basics of vector bundles and Chern classes

In Schubert2, a vector bundle (or more generally, an AbstractSheaf) is given by two pieces of data: its Chern classes and its rank. Schubert2 has many built-in bundles for common varieties. For example, a Grassmannian G comes with its universal subbundle and quotient bundle stored in G.Bundles:
i1 : G = flagBundle({2,3})

o1 = G

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

o2 = (S, Q)

o2 : Sequence
i3 : S

o3 = S

o3 : an abstract sheaf of rank 2 on G
i4 : Q

o4 = Q

o4 : an abstract sheaf of rank 3 on G
The Chern classes of a vector bundle are accessed using the chern command:
i5 : chern(1,Q) -- The first Chern class of Q

o5 = H
      2,1

                                         QQ[][H   , H   , H   , H   , H   ]
                                               1,1   1,2   2,1   2,2   2,3
o5 : ---------------------------------------------------------------------------------------------------------
     (- H    - H   , - H    - H   H    - H   , - H   H    - H   H    - H   , - H   H    - H   H   , -H   H   )
         1,1    2,1     1,2    1,1 2,1    2,2     1,2 2,1    1,1 2,2    2,3     1,2 2,2    1,1 2,3    1,2 2,3
i6 : chern Q -- The total Chern class of Q, defined as the sum of the Chern classes of Q.

o6 = 1 + H    + H    + H
          2,1    2,2    2,3

                                         QQ[][H   , H   , H   , H   , H   ]
                                               1,1   1,2   2,1   2,2   2,3
o6 : ---------------------------------------------------------------------------------------------------------
     (- H    - H   , - H    - H   H    - H   , - H   H    - H   H    - H   , - H   H    - H   H   , -H   H   )
         1,1    2,1     1,2    1,1 2,1    2,2     1,2 2,1    1,1 2,2    2,3     1,2 2,2    1,1 2,3    1,2 2,3
If we want to specify a bundle directly by its Chern classes, we can use the abstractSheaf command:
i7 : Q = abstractSheaf(G,ChernClass=>1+H_(2,1)+H_(2,2)+H_(2,3),Rank=>3)

o7 = Q

o7 : an abstract sheaf of rank 3 on G
i8 : chern Q

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

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