Schubert2 has all of the basic operations on vector bundles and their Chern classes built in. A full list of all of the available operations can be found in the documentation for AbstractSheaf. A few examples:
Direct Sums:
i1 : GG24 = flagBundle({3,2}) o1 = GG24 o1 : a flag bundle with subquotient ranks {3, 2} |
i2 : (S,Q) = GG24.Bundles o2 = (S, Q) o2 : Sequence |
i3 : B1 = S + Q --direct sum of S+Q o3 = B1 o3 : an abstract sheaf of rank 5 on GG24 |
i4 : chern B1 o4 = 1 QQ[][H ..H , H ..H ] 1,1 1,3 2,1 2,2 o4 : --------------------------------------------------------------------------------------------------------- (- 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,3 1,2 2,1 1,1 2,2 1,3 2,1 1,2 2,2 1,3 2,2 |
Note that the Chern class of $S+Q$ is the same as that of the trivial bundle, since $S$ and $Q$ fit into an exact sequence whose middle term is trivial (see Prop 5.5).
Tensor Products:
i5 : B2 = S ** Q --tensor product of S and Q o5 = B2 o5 : an abstract sheaf of rank 6 on GG24 |
i6 : chern B2 2 3 2 2 o6 = 1 + H + (H + H ) + (- H + 4H H ) + (- H H + 4H ) - 2,1 2,1 2,2 2,1 2,1 2,2 2,1 2,2 2,2 ------------------------------------------------------------------------ 2 3 2H H + 2H 2,1 2,2 2,2 QQ[][H ..H , H ..H ] 1,1 1,3 2,1 2,2 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,3 1,2 2,1 1,1 2,2 1,3 2,1 1,2 2,2 1,3 2,2 |
Duals:
i7 : B3 = dual(S) ** Q o7 = B3 o7 : an abstract sheaf of rank 6 on GG24 |
i8 : chern B3 2 3 2 2 o8 = 1 + 5H + (11H + H ) + 15H + (35H H - 10H ) + 2,1 2,1 2,2 2,1 2,1 2,2 2,2 ------------------------------------------------------------------------ 2 3 30H H + 10H 2,1 2,2 2,2 QQ[][H ..H , H ..H ] 1,1 1,3 2,1 2,2 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,3 1,2 2,1 1,1 2,2 1,3 2,1 1,2 2,2 1,3 2,2 |
Note that B3 is the tangent bundle to $\mathbb{G}(2,4)$.
Pullbacks:
Currently Schubert2 has few morphisms implemented, but given a morphism of abstract varieties, it is easy to pull back vector bundles:
i9 : GG13 = flagBundle({2,2}) o9 = GG13 o9 : a flag bundle with subquotient ranks {2:2} |
i10 : f = GG13 / point -- The structure map of G13 o10 = f o10 : a map to point from GG13 |
i11 : B = abstractSheaf(point,Rank=>2) -- The trivial vector bundle of rank 2 over point o11 = B o11 : an abstract sheaf of rank 2 on point |
i12 : f^* B --Pulls back to a trivial bundle of rank 2 on G13 o12 = a sheaf o12 : an abstract sheaf of rank 2 on GG13 |