Macaulay2 » Documentation
Packages » GKMVarieties :: orbitClosure
next | previous | forward | backward | up | index | toc

orbitClosure -- computes the equivariant K-class of a torus orbit closure of a point in a generalized flag variety

Synopsis

Description

Let $X$ be a generalized flag variety parameterizing flags of linear subspaces of dimensions $\{r_1, ... , r_k\}$ in $\mathbb C^n$ with $1 <= r_1 < \cdots < r_k$. Then a point $p$ of $X$ can be identified with a matrix $M$ of size $r_k \times n$ such that the first $r_i$ rows of $M$ spans a subspace of dimension $r_i$. Given $X$ and such a matrix $M$ representing the point $p$, this method computes the equivariant K-class of the closure of the torus orbit of $p$.

The following example computes the torus orbit closure of a point in the standard Grassmannian $Gr(2,4)$ and in the Lagrangian Grassmannian $SpGr(2,4)$.

i1 : M = matrix(QQ,{{1,0,1,2},{0,1,2,1}})

o1 = | 1 0 1 2 |
     | 0 1 2 1 |

              2       4
o1 : Matrix QQ  <-- QQ
i2 : X1 = generalizedFlagVariety("A",3,{2})

o2 = a "GKM variety" with an action of a 4-dimensional torus

o2 : GKMVariety
i3 : X2 = generalizedFlagVariety("C",2,{2})

o3 = a "GKM variety" with an action of a 2-dimensional torus

o3 : GKMVariety
i4 : C1 = orbitClosure(X1,M)

o4 = an "equivariant K-class" on a GKM variety 

o4 : KClass
i5 : C2 = orbitClosure(X2,M)

o5 = an "equivariant K-class" on a GKM variety 

o5 : KClass
i6 : peek C1

o6 = KClass{variety => a "GKM variety" with an action of a 4-dimensional torus}
                                                           -1 -1
            KPolynomials => HashTable{{set {0, 1}} => 1 - T  T  T T   }
                                                           0  1  2 3
                                                           -1   -1
                                      {set {0, 2}} => 1 - T  T T  T
                                                           0  1 2  3
                                                           -1     -1
                                      {set {0, 3}} => 1 - T  T T T
                                                           0  1 2 3
                                                           -1 -1
                                      {set {1, 2}} => - T T  T  T  + 1
                                                         0 1  2  3
                                                           -1   -1
                                      {set {1, 3}} => - T T  T T   + 1
                                                         0 1  2 3
                                                             -1 -1
                                      {set {2, 3}} => - T T T  T   + 1
                                                         0 1 2  3
i7 : peek C2

o7 = KClass{variety => a "GKM variety" with an action of a 2-dimensional torus}
                                                            -2 2
            KPolynomials => HashTable{{set {0, 1*}} => 1 - T  T   }
                                                            0  1
                                                           -2 -2
                                      {set {0, 1}} => 1 - T  T
                                                           0  1
                                                           2 2
                                      {set {1*, 0*}} => - T T  + 1
                                                           0 1
                                                          2 -2
                                      {set {1, 0*}} => - T T   + 1
                                                          0 1

In type "A", the equivariant K-class of the orbit closure of a point coincides with that of its flag matroid.

i8 : X = generalizedFlagVariety("A",3,{1,2})

o8 = a "GKM variety" with an action of a 4-dimensional torus

o8 : GKMVariety
i9 : Mat = random(QQ^2,QQ^4)

o9 = | 9/2 9/4 1   3/2 |
     | 1/2 1/2 3/4 3/4 |

              2       4
o9 : Matrix QQ  <-- QQ
i10 : C = orbitClosure(X,Mat)

o10 = an "equivariant K-class" on a GKM variety 

o10 : KClass
i11 : FM = flagMatroid(Mat,{1,2})

o11 = a "flag matroid" with rank sequence {1, 2} on 4 elements 

o11 : FlagMatroid
i12 : C' = makeKClass(X,FM)

o12 = an "equivariant K-class" on a GKM variety 

o12 : KClass
i13 : C === C'

o13 = true

In type "D", the orthogonal Grassmannian $SOGr(n,2n)$ has two connected components. To compute the torus orbit closure of a point $p$ it suffices to restrict to either $SOGr(n,n;2n)$ or $SOGr(n-1,n-1;2n)$, depending on which component $p$ is located in; see the last example in Example: generalized flag varieties for more details. Here is an example with $n=4$:

i14 : R = makeCharacterRing 4

o14 = R

o14 : PolynomialRing
i15 : X1 = generalizedFlagVariety("D",4,{4,4},R)

o15 = a "GKM variety" with an action of a 4-dimensional torus

o15 : GKMVariety
i16 : X2 = generalizedFlagVariety("D",4,{3,3},R)

o16 = a "GKM variety" with an action of a 4-dimensional torus

o16 : GKMVariety
i17 : A = matrix{{1,3,-2,-1/4},{-1,-1,19,-61/4},{0,1,19,-73/4},{2,0,22,-89/4}};

               4       4
o17 : Matrix QQ  <-- QQ
i18 : B = matrix(QQ,{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}});

               4       4
o18 : Matrix QQ  <-- QQ
i19 : M = A | B

o19 = | 1  3  -2 -1/4  1  2  3  4  |
      | -1 -1 19 -61/4 5  6  7  8  |
      | 0  1  19 -73/4 9  10 11 12 |
      | 2  0  22 -89/4 13 14 15 16 |

               4       8
o19 : Matrix QQ  <-- QQ
i20 : assert(A* transpose(B)  + B *transpose(A) == 0) -- verifying that M is isotropic
i21 : C1 = orbitClosure(X1,M)

o21 = an "equivariant K-class" on a GKM variety 

o21 : KClass
i22 : C2 = orbitClosure(X2,M)

o22 = an "equivariant K-class" on a GKM variety 

o22 : KClass
i23 : peek C1

o23 = KClass{variety => a "GKM variety" with an action of a 4-dimensional torus                       }
                                                                    -1   -1      -1 -1    -2   -2
             KPolynomials => HashTable{{set {0, 1*, 2, 3*}} => 1 - T  T T  T  - T  T   + T  T T  T   }
                                                                    0  1 2  3    0  2     0  1 2  3
                                                                   -1 -1 -1 -1    -2 -2 -2 -2
                                       {set {0, 1, 2, 3}} => 1 - 2T  T  T  T   + T  T  T  T
                                                                   0  1  2  3     0  1  2  3
                                                                    -1     -1    -1 -1    -2     -2
                                       {set {0, 2*, 1*, 3}} => 1 - T  T T T   - T  T   + T  T T T
                                                                    0  1 2 3     0  3     0  1 2 3
                                                                    -1 -1        -1 -1    -2 -2
                                       {set {0, 2*, 1, 3*}} => 1 - T  T  T T  - T  T   + T  T  T T
                                                                    0  1  2 3    0  1     0  1  2 3
                                                                      -1 -1            -2 -2    -1 -1
                                       {set {1*, 0*, 2, 3}} => - T T T  T   + 1 + T T T  T   - T  T
                                                                  0 1 2  3         0 1 2  3     2  3
                                                                    -1 -1            -2 -2      -1 -1
                                       {set {1, 0*, 2, 3*}} => - T T  T  T  + 1 + T T  T  T  - T  T
                                                                  0 1  2  3        0 1  2  3    1  2
                                       {set {2*, 1*, 0*, 3*}} => 0
                                                                    -1   -1          -2   -2    -1 -1
                                       {set {2*, 1, 0*, 3}} => - T T  T T   + 1 + T T  T T   - T  T
                                                                  0 1  2 3         0 1  2 3     1  3
i24 : peek C2 -- since the point corresponding to M lies in X1, C2 is just the empty class i.e. 0

o24 = KClass{KPolynomials => HashTable{{set {0, 1*, 2, 3}} => 0  }             }
                                       {set {0, 1, 2, 3*}} => 0
                                       {set {0, 2*, 1*, 3*}} => 0
                                       {set {0, 2*, 1, 3}} => 0
                                       {set {1*, 0*, 2, 3*}} => 0
                                       {set {1, 0*, 2, 3}} => 0
                                       {set {2*, 1*, 0*, 3}} => 0
                                       {set {2*, 1, 0*, 3*}} => 0
             variety => a "GKM variety" with an action of a 4-dimensional torus

By default the option RREFMethod is set to false. In this case the method produces the torus orbit closure by only computing the minors of the matrix. If the option RREFMethod is set to true, the method row reduces the matrix instead of computing its minors.

i25 : X = generalizedFlagVariety("A",3,{1,2,3})

o25 = a "GKM variety" with an action of a 4-dimensional torus

o25 : GKMVariety
i26 : Mat = random(QQ^3,QQ^4)

o26 = | 7/4  1/2  7   6/7 |
      | 7/9  7/10 3/7 2/3 |
      | 7/10 7/3  5/2 1   |

               3       4
o26 : Matrix QQ  <-- QQ
i27 : time C = orbitClosure(X,Mat)
 -- used 1.14922s (cpu); 0.731902s (thread); 0s (gc)

o27 = an "equivariant K-class" on a GKM variety 

o27 : KClass
i28 : time C = orbitClosure(X,Mat, RREFMethod => true)
 -- used 2.81501s (cpu); 1.54212s (thread); 0s (gc)

o28 = an "equivariant K-class" on a GKM variety 

o28 : KClass

See also

Ways to use orbitClosure :

For the programmer

The object orbitClosure is a method function with options.