Experimental algebraic geometry I : the grassmannian
7 February 2009 at 11:17 pm Leave a comment
I just began playing with Macaulay 2 to see how it could help doing algebraic geometry without manual tedious computations. Let’s try with the grassmannian: fortunately, the program comes with lots of pre-written functions, including the generation of Grassmanians.
Macaulay provides a command-line interface using the readline library (like many other command-line programs) : here is what input/output looks like
i1 : V = Grassmannian(1,3) o1 = ideal(p p - p p + p p ) 1,2 0,3 0,2 1,3 0,1 2,3 o1 : Ideal of ZZ[p , p , p , p , p , p ] 0,1 0,2 1,2 0,3 1,3 2,3
When I type a command at i1
, I get an output o1
with a value and a type: this output is an ideal of the ring
. Many features of the Grassmannian as an algebraic variety are available: first define
i1 : V = Grassmannian(1,3,CoefficientRing => QQ); o1 : Ideal of QQ[p , p , p , p , p , p ] 0,1 0,2 1,2 0,3 1,3 2,3 i2 : X = Proj(ring V / V) o2 = X o2 : ProjectiveVariety
the projective variety X over defined by the homogeneous ideal V : here
ring V
denotes the ambient ring of V. We see that is a non-singular quadric in 5-dimensional projective space, and check several well-known facts
i3 : degree X o3 = 2 i4 : TX = tangentSheaf X; i5 : HH^0(TX) 15 o5 = QQ o5 : QQ-module, free i6 : hh^(0,0)(X) o6 = 1 i7 : hh^(1,1)(X) o7 = 1 i8 : hh^(2,2)(X) o8 = 2 i9 : hh^(3,3)(X) o9 = 1 i10 : hh^(4,4)(X) o10 = 1
We check respectively that X has degree two, that the sections of its tangent bundle form a 15-dimensional vector space (which is actually naturally isomorphic to the Lie algebra describing infinitesimal generators of projective transformations of the three-dimensional space). The last numbers are the Hodge numbers of the Grassmannian, which also give the topological Betti numbers. As you can guess the
tangentSheaf
function has a cotangentSheaf
counterpart : their output has type CoherentSheaf. Coherent sheaves are represented as quotients of locally free sheaves of the form . However, the naïve representation given by the program is certainly not optimal: the canonical bundle
cotangentSheaf(4,X)
is not easy to handle, but it is isomorphic to which is certainly easy to study (it can obtained with the expression
OO_X(-4)
, it is easy to check that rank HH^4(OO_X(-4)) = 1
).
The commands HH^k(F)
compute sheaf cohomology. We are usually interested in rank HH^k(F)
only, which gives the dimension of the cohomology groups.
To get nicer variable names, it is possible to reuse a custom ring :
i1 : R = QQ[u..z] o1 = R o1 : PolynomialRing i2 : V = Grassmannian(1, 3, R) o2 = ideal(w*x - v*y + u*z) o2 : Ideal of R
Let’s use this to study Schubert varieties. The included Schubert
constructor does not allow choosing a custom ambient ring for the Schubert ideal :
i1 : IS = Schubert(1,3,{1,3}, CoefficientRing => QQ) o1 = ideal (p , p p - p p ) 2,3 1,2 0,3 0,2 1,3 o1 : Ideal of QQ[p , p , p , p , p , p ] 0,1 0,2 1,2 0,3 1,3 2,3 i2 : R = ring IS o2 = R o2 : PolynomialRing i3 : IG = Grassmannian(1,3,R) o3 = ideal(p p - p p + p p ) 1,2 0,3 0,2 1,3 0,1 2,3 o3 : Ideal of R i4 : isSubset(IG, IS) o4 = true i5 : isSubset(IS, IG) o5 = false
The syntax is Schubert(n,p,I)
, which defines a subvariety (actually an ideal) of Grassmannian(n,p)
indexed by the finite set . The convention is that
Schubert(n,p,I)
is the orbit of the point (representing
) under the standard Borel subgroup of upper triangular matrices. Now to study the intersection theory of classes
(which are hyperplane sections of
) we need to define generic translates of these Schubert varieties. Then Kleiman’s transversality theorem ensures all intersections are transverse. So assume we are lucky and choose random projective transformations of
in the group
(that is, random 4×4 matrices) : then the corresponding transformation of the grassmannian is the second exterior power of this matrix, acting as a projective transformation on the ambient space of the Plücker embedding.
i6 : M = random(QQ^4,QQ^4) o6 = | 5/4 7/6 10/3 6/7 | | 9/2 6/5 7/4 9/8 | | 2/5 3/4 5/6 3/4 | | 7/6 1/4 8 8/7 | 4 4 o6 : Matrix QQ <--- QQ i7 : M2 = exteriorPower(2,M) o7 = | -15/4 -205/16 -47/24 -549/224 159/560 9/4 | | 113/240 -7/24 -55/36 333/560 13/56 25/14 | | 579/200 61/20 -5/16 117/40 9/160 3/8 | | -151/144 55/9 17/2 3/7 47/42 -64/21 | | -11/40 815/24 733/80 429/112 1221/1120 -7 | | -31/40 401/180 139/24 -117/280 75/112 -106/21 | 6 6 o7 : Matrix QQ <--- QQ i8 : T1 = M2*transpose(vars(R)) o8 = | -15/4p_(0,1)-205/16p_(0,2)-47/24p_(1,2)-549/224p_(0,3)+159/560p_(1,3)+9/4p_(2,3) | | 113/240p_(0,1)-7/24p_(0,2)-55/36p_(1,2)+333/560p_(0,3)+13/56p_(1,3)+25/14p_(2,3) | | 579/200p_(0,1)+61/20p_(0,2)-5/16p_(1,2)+117/40p_(0,3)+9/160p_(1,3)+3/8p_(2,3) | | -151/144p_(0,1)+55/9p_(0,2)+17/2p_(1,2)+3/7p_(0,3)+47/42p_(1,3)-64/21p_(2,3) | | -11/40p_(0,1)+815/24p_(0,2)+733/80p_(1,2)+429/112p_(0,3)+1221/1120p_(1,3)-7p_(2,3) | | -31/40p_(0,1)+401/180p_(0,2)+139/24p_(1,2)-117/280p_(0,3)+75/112p_(1,3)-106/21p_(2,3) | 6 1 o8 : Matrix R <--- R
Here we have defined a random 4×4 matrix in , and calculated the coordinates of the associated projective transformation of
. These are used to define the associated endomorphism of the coordinate ring R (I am currently totally confused about whether this corresponds to
,
or
or
). Thus it is possible to push
forward (or equivalently, pull the associated
-module back by the ring homomorphism).
i9 : f1 = map(R,R,transpose(T1)) o9 = map(R,R, ...) o9 : RingMap R <--- R i10 : OS1 = pushForward(f1, R^1/IS) o10 = cokernel | 2790p_(0,1)-990p_(0,2)+3775p_(1,2)-10422p_(0,3)+1695p_(1,3)+13500p_(2,3) 2790p_(1,2)p_(0,3)-2790p_(0,2)p_(1,3)+990p_(0,2)p_(2,3)-3775p_(1,2)p_(2,3)+10422p_(0,3)p_(2,3)-1695p_(1,3)p_(2,3)-13500p_(2,3)^2 | 1 o10 : R-module, quotient of R i11 : IS1 = ann OS1 o11 = ideal (2790p - 990p + 3775p - 10422p + 1695p + 13500p , 2790p p - 2790p p + 990p p 0,1 0,2 1,2 0,3 1,3 2,3 1,2 0,3 0,2 1,3 0,2 2,3 ------------------------------------------------------------------------------------------------------------------ 2 - 3775p p + 10422p p - 1695p p - 13500p ) 1,2 2,3 0,3 2,3 1,3 2,3 2,3 o11 : Ideal of R
The last command recovers the defining ideal of the translate S1 with function ann
(annihilating ideal). Let us define another random translate of the Schubert variety :
i12 : N = random(QQ^4,QQ^4); 4 4 o12 : Matrix QQ <--- QQ i13 : N2 = exteriorPower(2,N); 6 6 o13 : Matrix QQ <--- QQ i14 : T2 = N2*transpose(vars(R)); 6 1 o14 : Matrix R <--- R i15 : f2 = map(R,R,transpose(T2)); o15 : RingMap R <--- R i16 : OS2 = pushForward(f2, R^1/IS); i17 : IS2 = ann OS2 o17 = ideal (1452p - 1400p + 735p - 2704p + 258p + 1120p , 1452p p - 1452p p + 1400p p - 0,1 0,2 1,2 0,3 1,3 2,3 1,2 0,3 0,2 1,3 0,2 2,3 ------------------------------------------------------------------------------------------------------------------ 2 735p p + 2704p p - 258p p - 1120p ) 1,2 2,3 0,3 2,3 1,3 2,3 2,3 o17 : Ideal of R
Now we define a fourth Schubert variety and the variety intersection4
which is the intersection of the four Schubert varieties defined above. We check that it is zero-dimensional, with length 2.
i18 : NN = random(QQ^4,QQ^4); NN2 = exteriorPower(2,NN); T3 = NN2*transpose(vars(R)); 4 4 o18 : Matrix QQ <--- QQ 6 6 o19 : Matrix QQ <--- QQ 6 1 o20 : Matrix R <--- R i21 : f3 = map(R,R,transpose(T3)); OS3 = pushForward(f3, R^1/IS); IS3 = ann OS3; o21 : RingMap R <--- R o23 : Ideal of R i24 : intersection4 = Proj(R/(IS+IS1+IS2+IS3)) o24 = intersection4 o24 : ProjectiveVariety i25 : dim intersection4 o25 = 0 i26 : rank HH^0(OO_intersection4) o26 = 2
Now let us see if we can recover the two components of the set of lines going through three lines L1, L2, L3 such that L2 and L3 both intersect L1 in different points. Recall that this set is the union of the Schubert varieties of lines through coplanar with L3, and lines through
coplanar with L2. We choose L1 to be the line of points
so that the associated Schubert variety S1 is the standard Schubert variety. With standard notations for coordinates in space, L1 is the z-axis. Choose L2 to be the x-axis
and L3 to be the y-axis shifted at z=1 :
. We define matrices M and N taking L1 to L2 and L3.
i1 : S1 = Schubert(1,3,{1,3}, CoefficientRing => QQ); o1 : Ideal of QQ[p , p , p , p , p , p ] 0,1 0,2 1,2 0,3 1,3 2,3 i2 : R = ring S1; i3 : M = matrix{{0,0,1,0},{1,0,0,0},{0,1,0,0},{0,0,0,1}} o3 = | 0 0 1 0 | | 1 0 0 0 | | 0 1 0 0 | | 0 0 0 1 | 4 4 o3 : Matrix ZZ <--- ZZ i4 : f1 = map(R,R,vars(R)*exteriorPower(2,M^-1)) o4 = map(R,R,{-p , -p , p , p , p , p }) 0,2 1,2 0,1 2,3 0,3 1,3 o4 : RingMap R <--- R i5 : S2 = ann pushForward(f1,R^1/S1) o5 = ideal (p , p p - p p ) 0,3 0,2 1,3 0,1 2,3 o5 : Ideal of R i6 : N = matrix{{0,1,0,0},{0,0,1,0},{1,0,0,1},{0,0,0,1}} o6 = | 0 1 0 0 | | 0 0 1 0 | | 1 0 0 1 | | 0 0 0 1 | 4 4 o6 : Matrix ZZ <--- ZZ i7 : f2 = map(R,R,vars(R)*exteriorPower(2,N^-1)) o7 = map(R,R,{p , -p , -p , p + p , p + p , p }) 1,2 0,1 0,2 0,1 1,3 0,2 2,3 0,3 o7 : RingMap R <--- R i8 : S3 = ann pushForward(f2,R^1/S1) o8 = ideal (p + p , p p + p p - p p ) 1,2 1,3 0,2 1,3 0,3 1,3 0,1 2,3 o8 : Ideal of R
We have to show the intersection of these three varieties consists of two lines (corresponding to Schubert conditions of type ) meeting at the point representing L1.
i9 : I = S1+S2+S3 o9 = ideal (p , p p - p p , p , p p - p p , p + p , p p + p p - p p ) 2,3 1,2 0,3 0,2 1,3 0,3 0,2 1,3 0,1 2,3 1,2 1,3 0,2 1,3 0,3 1,3 0,1 2,3 o9 : Ideal of R i10 : irr = associatedPrimes I o10 = {ideal (p , p , p + p , p ), ideal (p , p , p , p )} 2,3 0,3 1,2 1,3 0,2 2,3 1,3 0,3 1,2 o10 : List i11 : gens gb (irr#0 + irr#1) o11 = | p_(2,3) p_(1,3) p_(0,3) p_(1,2) p_(0,2) | 1 5 o11 : Matrix R <--- R
Here we compute the irreducible components of the intersection using the associatedPrimes
function and use gens gb
to compute an optimal list of generators using a Gröbner basis. There are two components, which are easily seen to be lines parameterising Schubert classes of type . Their intersection defines exactly the line L1 (
except for
).
Entry filed under: algebraic geometry, commutative algebra, english, geometry, Macaulay, projective geometry. Tags: algebraic geometry, commutative algebra, Grassmannian, Macaulay, Plücker coordinates, projective space, Schubert condition, software.
Trackback this post | Subscribe to the comments via RSS Feed