First we make a base variety and illustrate a computation with its two abstract sheaves:
i1 : S = base(2,p,q, Bundle =>(A,1,a), Bundle => (B,2,"b")) o1 = S o1 : an abstract variety of dimension 2 |
i2 : intersectionRing S o2 = QQ[p..q, a , b1, b2] 1 o2 : PolynomialRing |
i3 : degrees oo o3 = {{0}, {0}, {1}, {1}, {2}} o3 : List |
i4 : chern (A*B) 2 o4 = 1 + (2a + b1) + (a + a b1 + b2) 1 1 1 o4 : QQ[p..q, a , b1, b2] 1 |
i5 : integral oo 2 o5 = integral(a + a b1 + b2) 1 1 o5 : Expression of class Adjacent |
Then we make a projective space over it and use the auxiliary parameters p and q in a computation that checks the projection formula.
i6 : X = abstractProjectiveSpace'(3,S,VariableName => H) warning: clearing value of symbol H to allow access to subscripted variables based on it : debug with expression debug 204 or with command line option --debug 204 o6 = X o6 : a flag bundle with subquotient ranks {3, 1} |
i7 : intersectionRing X QQ[p..q, a , b1, b2][H ..H , H] 1 1,1 1,3 o7 = ---------------------------------------------------- (- H - H, - H - H H, - H - H H, -H H) 1,1 1,2 1,1 1,3 1,2 1,3 o7 : QuotientRing |
i8 : f = X.StructureMap o8 = f o8 : a map to S from X |
i9 : x = chern f_* (f^* OO_S(p*a_1) * OO_X(q*H)) 1 3 2 11 1 2 6 2 1 2 5 2 29 2 4 2 23 2 3 2 157 2 2 2 11 2 2 o9 = 1 + (-p*q a + p*q a + --p*q*a + p*a ) + (--p q a + -p q a + --p q a + --p q a + ---p q a + --p q*a ) 6 1 1 6 1 1 72 1 6 1 36 1 12 1 72 1 12 1 o9 : QQ[p..q, a , b1, b2] 1 |
i10 : y = chern f_* OO_X((f^*(p*a_1))+q*H) 1 3 2 11 1 2 6 2 1 2 5 2 29 2 4 2 23 2 3 2 157 2 2 2 11 2 2 o10 = 1 + (-p*q a + p*q a + --p*q*a + p*a ) + (--p q a + -p q a + --p q a + --p q a + ---p q a + --p q*a ) 6 1 1 6 1 1 72 1 6 1 36 1 12 1 72 1 12 1 o10 : QQ[p..q, a , b1, b2] 1 |
i11 : x == y o11 = true |
The object base is a method function with a single argument.