Subsection 4.2.2
Schubert2 identifies ${\mathbb G}(1,3)$ with its Chow ring. We can see this directly using the command intersectionRing.
i1 : G = flagBundle({2,2}) o1 = G o1 : a flag bundle with subquotient ranks {2:2} |
i2 : intersectionRing G QQ[][H ..H ] 1,1 2,2 o2 = --------------------------------------------------------------------------- (- H - H , - H - H H - H , - H H - H H , -H H ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 o2 : QuotientRing |
The generators $H_{i,j}$ of the above ring are defined by the formula $H_{i,j} = c_j(B_i)$ where $B_i$ is the i-th bundle in the list G.Bundles (numbered starting with 1) and $c_j$ is the j-th Chern class, defined in Ch. 5. The relationship with the Schubert classes on ${\mathbb G}(1,3)$ is as follows:
$H_{2,1} = \sigma_1$
$H_{2,2} = \sigma_2$
$H_{1,1} = -\sigma_1$
$H_{1,2} = \sigma_{1,1}$
The Schubert classes can also be accessed directly using the placeholderSchubertCycle command -- see Section 4.3 for details.
As an example, we can compute $(\sigma_1)^2$:
i3 : sigma_1 = H_(2,1) o3 = H 2,1 QQ[][H ..H ] 1,1 2,2 o3 : --------------------------------------------------------------------------- (- H - H , - H - H H - H , - H H - H H , -H H ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i4 : c = (sigma_1)^2 2 o4 = H 2,1 QQ[][H ..H ] 1,1 2,2 o4 : --------------------------------------------------------------------------- (- H - H , - H - H H - H , - H H - H H , -H H ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
Oops! This just gave us $H_{2,1}^2$ back! Schubert2 actually uses $\sigma_1^2$ and $\sigma_{1,1}$ as its "preferred basis" for the codimension-2 part of the Chow ring of ${\mathbb G}(1,3)$. To convert to the Schubert basis, we use the function placeholderToSchubertBasis:
i5 : placeholderToSchubertBasis(c,G) o5 = s + s {1, 1} {2, 0} o5 : QQ[][s , s , s , s , s , s ] {0, 0} {1, 0} {1, 1} {2, 0} {2, 1} {2, 2} |
We recover the formula of Theorem 4.13: $\sigma_1^2 = \sigma_2 + \sigma_{1,1}$.
Subsection 4.2.4
How many lines in ${\mathbb P}^3$ meet four general lines?
After phrasing the problem in terms of Schubert calculus, this is easy to calculate both by hand and in Schubert2:
i6 : sigma_1 = H_(2,1) o6 = H 2,1 QQ[][H ..H ] 1,1 2,2 o6 : --------------------------------------------------------------------------- (- H - H , - H - H H - H , - H H - H H , -H H ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i7 : integral (sigma_1)^4 o7 = 2 |
The command integral here returns the degree of the zero-cycle $(\sigma_1)^4$, which is the number we want (namely, 2).
Lines meeting a curve
We can easily build a function which, given the degree $d$ of a space curve $C$, returns the cycle of lines in ${\mathbb P}^3$ meeting $C$:
i8 : sigma_1 = H_(2,1) o8 = H 2,1 QQ[][H ..H ] 1,1 2,2 o8 : --------------------------------------------------------------------------- (- H - H , - H - H H - H , - H H - H H , -H H ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i9 : linesMeetingCurve = d -> d*sigma_1 o9 = linesMeetingCurve o9 : FunctionClosure |
And now we can calculate, for example, how many lines meet four general conics:
i10 : integral (linesMeetingCurve(2))^4 o10 = 32 |
But we really want to answer the question once and for all: how many lines meet four general curves of degree $d$? To do this, we use the base command, which allows us auxiliary parameters:
i11 : S = base d --Our base variety, with one "auxiliary parameter" d o11 = S o11 : an abstract variety of dimension 0 |
i12 : G' = flagBundle({2,2},S,VariableNames => K) --GG(1,3) with our extra parameter o12 = G' o12 : a flag bundle with subquotient ranks {2:2} |
i13 : intersectionRing G' --note the additional parameter d QQ[d][K ..K ] 1,1 2,2 o13 = --------------------------------------------------------------------------- (- K - K , - K - K K - K , - K K - K K , -K K ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 o13 : QuotientRing |
i14 : sigma_1 = K_(2,1) o14 = K 2,1 QQ[d][K ..K ] 1,1 2,2 o14 : --------------------------------------------------------------------------- (- K - K , - K - K K - K , - K K - K K , -K K ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i15 : linesmeetingcurve = d*sigma_1 o15 = d*K 2,1 QQ[d][K ..K ] 1,1 2,2 o15 : --------------------------------------------------------------------------- (- K - K , - K - K K - K , - K K - K K , -K K ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i16 : integral linesmeetingcurve^4 4 o16 = 2d o16 : QQ[d] |
And we get back the answer $2d^4$, solving the problem once and for all.
Chords to a Space Curve
For each $d$ and $g$ we build the cycle in ${\mathbb G}(1,3)$ of lines secant to a general curve of degree d and genus g:
i17 : S = base(g,d') --We use d' to avoid the d from the last example o17 = S o17 : an abstract variety of dimension 0 |
i18 : G'' = flagBundle({2,2},S,VariableNames => L) o18 = G'' o18 : a flag bundle with subquotient ranks {2:2} |
i19 : sigma_2 = L_(2,2) o19 = L 2,2 QQ[g, d'][L ..L ] 1,1 2,2 o19 : --------------------------------------------------------------------------- (- L - L , - L - L L - L , - L L - L L , -L L ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i20 : sigma_(1,1) = L_(1,2) 2 o20 = L - L 2,1 2,2 QQ[g, d'][L ..L ] 1,1 2,2 o20 : --------------------------------------------------------------------------- (- L - L , - L - L L - L , - L L - L L , -L L ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i21 : cycleofchords = ((d'-1)*(d'-2)/2 - g)*sigma_2 + (d'*(d'-1)/2)*sigma_(1,1) 1 2 1 2 o21 = (-d' - -d')L + (- g - d' + 1)L 2 2 2,1 2,2 QQ[g, d'][L ..L ] 1,1 2,2 o21 : --------------------------------------------------------------------------- (- L - L , - L - L L - L , - L L - L L , -L L ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
The keynote question was: how many lines are secant to two general twisted cubics? But we can do better, and answer the question: how many lines are secant to two general curves of degree $d$ and genus $d$?
i22 : chordstotwocurves = integral cycleofchords^2 1 4 2 3 2 7 2 o22 = -d' - g*d' - 2d' + g + 3g*d' + -d' - 2g - 3d' + 1 2 2 o22 : QQ[g, d'] |
Now if we want to answer our specific question, we just subsitute in the desired values for $d$ and $g$:
i23 : sub(chordstotwocurves, {d' => 3, g => 0/1}) o23 = 10 o23 : QQ |
WARNING: because of some ugly M2 design decisions, if you don't make at least one of $d'$ or $g$ a rational number, this subsitute will return the wrong answer! Hopefully this design will be changed in the future.
Exercise 4.25 (a):
If $C$ is a smooth, nondegenerate space curve and $L$ and $M$ are general lines in ${\mathbb P}^3$, how many chords to $C$ meet both $L$ and $M$? Using our work above, we immediately compute:
i24 : sigma_1 = L_(2,1) o24 = L 2,1 QQ[g, d'][L ..L ] 1,1 2,2 o24 : --------------------------------------------------------------------------- (- L - L , - L - L L - L , - L L - L L , -L L ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i25 : integral (cycleofchords*(sigma_1)^2) 2 o25 = d' - g - 2d' + 1 o25 : QQ[g, d'] |
Tangent Lines to a Surface
Exercise 4.28:
Using our Grassmannian G' with an extra base parameter $d$, we build the cycle of tangent lines to a general surface of degree $d$:
i26 : sigma_1 = K_(2,1) o26 = K 2,1 QQ[d][K ..K ] 1,1 2,2 o26 : --------------------------------------------------------------------------- (- K - K , - K - K K - K , - K K - K K , -K K ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
i27 : tangentcycle = d*(d-1)*sigma_1 2 o27 = (d - d)K 2,1 QQ[d][K ..K ] 1,1 2,2 o27 : --------------------------------------------------------------------------- (- K - K , - K - K K - K , - K K - K K , -K K ) 1,1 2,1 1,2 1,1 2,1 2,2 1,2 2,1 1,1 2,2 1,2 2,2 |
Now we can compute the number of lines tangent to four general surfaces of degree $d$:
i28 : tangentlines = integral tangentcycle^4 8 7 6 5 4 o28 = 2d - 8d + 12d - 8d + 2d o28 : QQ[d] |
In particular, we calculate the number of lines tangent to four general quadric surfaces:
i29 : sub(tangentlines, d => 2/1) o29 = 32 o29 : QQ |