We follow Example 15.2.2 of Fulton's book, Intersection Theory.
i1 : X = abstractVariety(2,QQ[r,D,d_1,K,c_2,d_2,Degrees=>{0,3:1,2:2}])
o1 = X
o1 : an abstract variety of dimension 2
|
i2 : X.TangentBundle = abstractSheaf(X,Rank=>2,ChernClass=>1-K+c_2) o2 = a sheaf o2 : an abstract sheaf of rank 2 on X |
i3 : todd X
1 1 2 1
o3 = 1 - -K + (--K + --c )
2 12 12 2
o3 : QQ[r, D, d , K, c , d ]
1 2 2
|
i4 : chi OO_X
1 2 1
o4 = integral(--K + --c )
12 12 2
o4 : Expression of class Adjacent
|
i5 : E = abstractSheaf(X,Rank => r, ChernClass => 1+d_1+d_2) o5 = E o5 : an abstract sheaf of rank r on X |
i6 : chi ( E - rank E * OO_X )
1 2 1
o6 = integral(-d - -d K - d )
2 1 2 1 2
o6 : Expression of class Adjacent
|
i7 : chi ( OO(D) - OO_X )
1 2 1
o7 = integral(-D - -D*K)
2 2
o7 : Expression of class Adjacent
|
i8 : chi OO_D
1 2 1
o8 = integral(- -D - -D*K)
2 2
o8 : Expression of class Adjacent
|
We define a function to compute the arithmetic genus and use it to compute the arithmetic genus of a curve on $X$ whose divisor class is $D$:
i9 : p_a = D -> 1 - chi OO_D; |
i10 : p_a D
1 2 1
o10 = 1 - integral(- -D - -D*K)
2 2
o10 : Expression of class Sum
|
We we compute the arithmetic genus of a curve of degree $n$ in $\PP^2$:
i11 : Y = abstractProjectiveSpace'_2 base n
o11 = Y
o11 : a flag bundle with subquotient ranks {2, 1}
|
i12 : factor p_a (n*h)
1
o12 = (n - 2)(n - 1)(-)
2
o12 : Expression of class Product
|
Here we compute the arithmetic genus of a curve on with $\PP^1 \times \PP^1$:
i13 : Z = abstractProjectiveSpace'_(1,VariableName => k) abstractProjectiveSpace'_1 base(m,n)
o13 = Z
o13 : a flag bundle with subquotient ranks {2:1}
|
i14 : factor p_a (m*h + n*k) o14 = (n - 1)(m - 1) o14 : Expression of class Product |
In the code above we have used the notation f_(a,b) x as an abbreviation for f(a,b,x), see Function _ Thing.