Subsection 4.2.2
i1 : G = flagBundle({2,2}) o1 = G o1 : a flag bundle with subquotient ranks {2:2} |
i2 : intersectionRing G QQ[][H , H , H , H ] 1,1 1,2 2,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 Hi,j of the above ring are defined by the formula Hi,j = cj(Bi) where Bi is the i-th bundle in the list G.Bundles (numbered starting with 1) and cj is the j-th Chern class, defined in Ch. 5. The relationship with the Schubert classes on G(1,3) is as follows:
H2,1 = σ1
H2,2 = σ2
H1,1 = -σ1
H1,2 = σ1,1
The Schubert classes can also be accessed directly using the placeholderSchubertCycle command -- see Section 4.3 for details.
i3 : sigma_1 = H_(2,1) o3 = H 2,1 QQ[][H , H , H , H ] 1,1 1,2 2,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 , H , H ] 1,1 1,2 2,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 |
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: σ12 = σ2 + σ1,1.
Subsection 4.2.4
How many lines in ℙ3 meet four general lines?
i6 : sigma_1 = H_(2,1) o6 = H 2,1 QQ[][H , H , H , H ] 1,1 1,2 2,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 (σ1)4, which is the number we want (namely, 2).
Lines meeting a curve
i8 : sigma_1 = H_(2,1) o8 = H 2,1 QQ[][H , H , H , H ] 1,1 1,2 2,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 |
i10 : integral (linesMeetingCurve(2))^4 o10 = 32 |
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 , K , K ] 1,1 1,2 2,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 , K , K ] 1,1 1,2 2,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 , K , K ] 1,1 1,2 2,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 2d4, solving the problem once and for all.
Chords to a Space Curve
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 , L , L ] 1,1 1,2 2,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 , L , L ] 1,1 1,2 2,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 , L , L ] 1,1 1,2 2,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 |
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'] |
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):
i24 : sigma_1 = L_(2,1) o24 = L 2,1 QQ[g, d'][L , L , L , L ] 1,1 1,2 2,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:
i26 : sigma_1 = K_(2,1) o26 = K 2,1 QQ[d][K , K , K , K ] 1,1 1,2 2,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 , K , K ] 1,1 1,2 2,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 |
i28 : tangentlines = integral tangentcycle^4 8 7 6 5 4 o28 = 2d - 8d + 12d - 8d + 2d o28 : QQ[d] |
i29 : sub(tangentlines, d => 2/1) o29 = 32 o29 : QQ |