## Experimental algebraic geometry I : the grassmannian

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 $\mathrm{ideal}(p_{1,2} p_{0,3} - p_{0,2} p_{1,3} + p_{0,1} p_{2,3})$ and a type: this output is an ideal of the ring $\mathbb{Z}[p_{0,1}, p_{0,2}, p_{1,2}, p_{0,3}, p_{1,3}, p_{2,3}]$. 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 $\mathbb Q$ defined by the homogeneous ideal V : here ring V denotes the ambient ring of V. We see that $V$ 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 $\mathfrak{sl}_4$ 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 $\bigoplus_i \mathcal O_X(n_i)$. 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 $\mathcal O_X(-4)$ 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 $I \subset \{0, \dots, p\}$. The convention is that Schubert(n,p,I) is the orbit of the point $p_J = \delta_{I,J}$ (representing $\mathrm{Span}(e_i, i \in I)$) under the standard Borel subgroup of upper triangular matrices. Now to study the intersection theory of classes $\sigma_1$ (which are hyperplane sections of $Gr(1,3)$) 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 $\mathbb P^3$ in the group $GL_4$ (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 $\mathbb Q$, and calculated the coordinates of the associated projective transformation of $\mathbb P^5$. These are used to define the associated endomorphism of the coordinate ring R (I am currently totally confused about whether this corresponds to $M$, $M^T$ or $M^{-1}$ or $(M^T)^{-1}$). Thus it is possible to push $\mathcal O_S$ forward (or equivalently, pull the associated $\mathcal O_{\mathbb P^5}$-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 $L_1 \cap L_2$ coplanar with L3, and lines through $L_1 \cap L_3$ coplanar with L2. We choose L1 to be the line of points ${[0:0:s:t]}$ 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 ${[s:0:0:t]}$ and L3 to be the y-axis shifted at z=1 : ${[0:s:t:t]}$. 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 $\sigma_{21}$) 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 $\sigma_{21}$. Their intersection defines exactly the line L1 ($p_{ij} = 0$ except for $\{i,j\} = \{0,1\}$).