An Abstract Variety in Schubert 2 is defined by its dimension and a QQ-algebra, interpreted as the rational Chow ring. For example, the following code defines the abstract variety corresponding to P2, with its Chow ring A. Once the variety X is created, we can access its structure sheaf OOX, represented by its Chern class
i1 : A=QQ[t]/ideal(t^3)
o1 = A
o1 : QuotientRing
|
i2 : X=abstractVariety(2,A)
o2 = X
o2 : an abstract variety of dimension 2
|
i3 : OO_X
o3 = a sheaf
o3 : an abstract sheaf of rank 1 on X
|
i4 : chern OO_X
o4 = 1
o4 : A
|
A variable of type AbstractVariety is actually of type MutableHashTable, and can contain other information, such as its TangentBundle (missing documentation). Once this is defined, we can compute the Todd class.
i5 : X.TangentBundle = abstractSheaf(X,Rank=>2, ChernClass=>(1+t)^3)
o5 = a sheaf
o5 : an abstract sheaf of rank 2 on X
|
i6 : todd X
3 2
o6 = 1 + -t + t
2
o6 : A
|
If we want things like the Euler characteristic of a sheaf, we must also specify a method to take the integral (missing documentation) for the Chow ring A; in the case where A is Gorenstein, as is the Chow ring of a complete nonsingular variety, this is a functional that takes the highest degree component. In the following example, The sheaf OOX is the structure sheaf of X, and OOX(2t) is the line bundle with first Chern class 2t. The computation of the Euler Characteristic is made using the Todd class and the Riemann-Roch formula.
i7 : integral A := f -> coefficient(t^2,f)
o7 = {*Function[stdio:7:16-7:35]*}
o7 : FunctionClosure
|
i8 : chi(OO_X(2*t))
o8 = 6
o8 : QQ
|
There are several other methods for constructing abstract varieties: the following functions construct basic useful varieties (often returning the corresponding structure map).
projectiveSpace,
projectiveBundle (missing documentation),
flagBundle (missing documentation),
base. Text This package and its documentation are still rather incomplete, but see the examples
Lines on hypersurfaces and
Conics on a quintic threefold, which should be enough to figure out some of what’s possible.