next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Book3264Examples > Intersection Theory Section 4.2

Intersection Theory Section 4.2 -- The Chow ring of GG(1,3)

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