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 ] 1,1 1,2 2,1 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 ] 1,1 1,2 2,1 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 ] 1,1 1,2 2,1 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 |