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.