next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NormalToricVarieties :: diagonalToricMap

diagonalToricMap -- make a diagonal map into a Cartesian product

Synopsis

Description

Given a positive integer m and a normal toric variety X, the diagonal morphism is the toric map from X to the m-ary Cartersion product of X such that it composes to the identity with the i-th projection map, for all i in A, and compose to the zero map with the i-th projection maps for all i not in A.

The most important example arises when m = 2. For this case, one may omit both m and A.

i1 : X = hirzebruchSurface 1;
i2 : delta = diagonalToricMap X

o2 = | 1 0 |
     | 0 1 |
     | 1 0 |
     | 0 1 |

o2 : ToricMap normalToricVariety ({{1, 0, 0, 0}, {0, 1, 0, 0}, {-1, 1, 0, 0}, {0, -1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}, {0, 0, -1, 1}, {0, 0, 0, -1}}, {{0, 1, 4, 5}, {0, 1, 4, 7}, {0, 1, 5, 6}, {0, 1, 6, 7}, {0, 3, 4, 5}, {0, 3, 4, 7}, {0, 3, 5, 6}, {0, 3, 6, 7}, {1, 2, 4, 5}, {1, 2, 4, 7}, {1, 2, 5, 6}, {1, 2, 6, 7}, {2, 3, 4, 5}, {2, 3, 4, 7}, {2, 3, 5, 6}, {2, 3, 6, 7}}) <--- X
i3 : assert (isWellDefined delta and source delta === X and target delta === X ^** 2)
i4 : S = ring target delta;
i5 : I = ideal delta

o5 = ideal (x x  - x x , x x x  - x x x , x x x  - x x x )
             2 4    0 6   3 5 6    1 2 7   3 4 5    0 1 7

o5 : Ideal of S
i6 : assert (codim I === dim X)
i7 : X2 = target delta;
i8 : assert (X2^[0] * delta == id_X and X2^[1] * delta == id_X)
i9 : assert (delta == diagonalToricMap(X,2) and delta == diagonalToricMap(X,2,[0,1]))

We may also recover the canonical inclusions.

i10 : X2 = target delta;
i11 : assert (X2_[0] == diagonalToricMap(X,2,[0]))
i12 : assert (X2_[1] == diagonalToricMap(X,2,[1]))

When there are more than to factors, a diagonal can map to any subset of the factors. By omitting A, we obtain the large diagonal.

i13 : m = 3;
i14 : largeD = diagonalToricMap(X, m)

o14 = | 1 0 |
      | 0 1 |
      | 1 0 |
      | 0 1 |
      | 1 0 |
      | 0 1 |

o14 : ToricMap normalToricVariety ({{1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {-1, 1, 0, 0, 0, 0}, {0, -1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0}, {0, 0, -1, 1, 0, 0}, {0, 0, 0, -1, 0, 0}, {0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, -1, 1}, {0, 0, 0, 0, 0, -1}}, {{0, 1, 4, 5, 8, 9}, {0, 1, 4, 5, 8, 11}, {0, 1, 4, 5, 9, 10}, {0, 1, 4, 5, 10, 11}, {0, 1, 4, 7, 8, 9}, {0, 1, 4, 7, 8, 11}, {0, 1, 4, 7, 9, 10}, {0, 1, 4, 7, 10, 11}, {0, 1, 5, 6, 8, 9}, {0, 1, 5, 6, 8, 11}, {0, 1, 5, 6, 9, 10}, {0, 1, 5, 6, 10, 11}, {0, 1, 6, 7, 8, 9}, {0, 1, 6, 7, 8, 11}, {0, 1, 6, 7, 9, 10}, {0, 1, 6, 7, 10, 11}, {0, 3, 4, 5, 8, 9}, {0, 3, 4, 5, 8, 11}, {0, 3, 4, 5, 9, 10}, {0, 3, 4, 5, 10, 11}, {0, 3, 4, 7, 8, 9}, {0, 3, 4, 7, 8, 11}, {0, 3, 4, 7, 9, 10}, {0, 3, 4, 7, 10, 11}, {0, 3, 5, 6, 8, 9}, {0, 3, 5, 6, 8, 11}, {0, 3, 5, 6, 9, 10}, {0, 3, 5, 6, 10, 11}, {0, 3, 6, 7, 8, 9}, {0, 3, 6, 7, 8, 11}, {0, 3, 6, 7, 9, 10}, {0, 3, 6, 7, 10, 11}, {1, 2, 4, 5, 8, 9}, {1, 2, 4, 5, 8, 11}, {1, 2, 4, 5, 9, 10}, {1, 2, 4, 5, 10, 11}, {1, 2, 4, 7, 8, 9}, {1, 2, 4, 7, 8, 11}, {1, 2, 4, 7, 9, 10}, {1, 2, 4, 7, 10, 11}, {1, 2, 5, 6, 8, 9}, {1, 2, 5, 6, 8, 11}, {1, 2, 5, 6, 9, 10}, {1, 2, 5, 6, 10, 11}, {1, 2, 6, 7, 8, 9}, {1, 2, 6, 7, 8, 11}, {1, 2, 6, 7, 9, 10}, {1, 2, 6, 7, 10, 11}, {2, 3, 4, 5, 8, 9}, {2, 3, 4, 5, 8, 11}, {2, 3, 4, 5, 9, 10}, {2, 3, 4, 5, 10, 11}, {2, 3, 4, 7, 8, 9}, {2, 3, 4, 7, 8, 11}, {2, 3, 4, 7, 9, 10}, {2, 3, 4, 7, 10, 11}, {2, 3, 5, 6, 8, 9}, {2, 3, 5, 6, 8, 11}, {2, 3, 5, 6, 9, 10}, {2, 3, 5, 6, 10, 11}, {2, 3, 6, 7, 8, 9}, {2, 3, 6, 7, 8, 11}, {2, 3, 6, 7, 9, 10}, {2, 3, 6, 7, 10, 11}}) <--- X
i15 : assert (isWellDefined largeD and source largeD === X and target largeD === X ^** m)
i16 : assert (codim ideal largeD === (m-1) * dim X)
i17 : assert (largeD == diagonalToricMap(X, m, [0,1,2]))

By using the array to specify a proper subset of the factors, we obtain a small diagonal.

i18 : smallD = diagonalToricMap (X, 3, [0,2])

o18 = | 1 0 |
      | 0 1 |
      | 0 0 |
      | 0 0 |
      | 1 0 |
      | 0 1 |

o18 : ToricMap normalToricVariety ({{1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {-1, 1, 0, 0, 0, 0}, {0, -1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0}, {0, 0, -1, 1, 0, 0}, {0, 0, 0, -1, 0, 0}, {0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, -1, 1}, {0, 0, 0, 0, 0, -1}}, {{0, 1, 4, 5, 8, 9}, {0, 1, 4, 5, 8, 11}, {0, 1, 4, 5, 9, 10}, {0, 1, 4, 5, 10, 11}, {0, 1, 4, 7, 8, 9}, {0, 1, 4, 7, 8, 11}, {0, 1, 4, 7, 9, 10}, {0, 1, 4, 7, 10, 11}, {0, 1, 5, 6, 8, 9}, {0, 1, 5, 6, 8, 11}, {0, 1, 5, 6, 9, 10}, {0, 1, 5, 6, 10, 11}, {0, 1, 6, 7, 8, 9}, {0, 1, 6, 7, 8, 11}, {0, 1, 6, 7, 9, 10}, {0, 1, 6, 7, 10, 11}, {0, 3, 4, 5, 8, 9}, {0, 3, 4, 5, 8, 11}, {0, 3, 4, 5, 9, 10}, {0, 3, 4, 5, 10, 11}, {0, 3, 4, 7, 8, 9}, {0, 3, 4, 7, 8, 11}, {0, 3, 4, 7, 9, 10}, {0, 3, 4, 7, 10, 11}, {0, 3, 5, 6, 8, 9}, {0, 3, 5, 6, 8, 11}, {0, 3, 5, 6, 9, 10}, {0, 3, 5, 6, 10, 11}, {0, 3, 6, 7, 8, 9}, {0, 3, 6, 7, 8, 11}, {0, 3, 6, 7, 9, 10}, {0, 3, 6, 7, 10, 11}, {1, 2, 4, 5, 8, 9}, {1, 2, 4, 5, 8, 11}, {1, 2, 4, 5, 9, 10}, {1, 2, 4, 5, 10, 11}, {1, 2, 4, 7, 8, 9}, {1, 2, 4, 7, 8, 11}, {1, 2, 4, 7, 9, 10}, {1, 2, 4, 7, 10, 11}, {1, 2, 5, 6, 8, 9}, {1, 2, 5, 6, 8, 11}, {1, 2, 5, 6, 9, 10}, {1, 2, 5, 6, 10, 11}, {1, 2, 6, 7, 8, 9}, {1, 2, 6, 7, 8, 11}, {1, 2, 6, 7, 9, 10}, {1, 2, 6, 7, 10, 11}, {2, 3, 4, 5, 8, 9}, {2, 3, 4, 5, 8, 11}, {2, 3, 4, 5, 9, 10}, {2, 3, 4, 5, 10, 11}, {2, 3, 4, 7, 8, 9}, {2, 3, 4, 7, 8, 11}, {2, 3, 4, 7, 9, 10}, {2, 3, 4, 7, 10, 11}, {2, 3, 5, 6, 8, 9}, {2, 3, 5, 6, 8, 11}, {2, 3, 5, 6, 9, 10}, {2, 3, 5, 6, 10, 11}, {2, 3, 6, 7, 8, 9}, {2, 3, 6, 7, 8, 11}, {2, 3, 6, 7, 9, 10}, {2, 3, 6, 7, 10, 11}}) <--- X
i19 : assert (isWellDefined smallD and source smallD === X and target smallD === X ^** m)
i20 : assert (codim ideal smallD === (m-1) * dim X)
i21 : X3 = target smallD;
i22 : assert (X3^[0] * smallD == id_X and X3^[1] * smallD == map(X,X,0) and
          X3^[2] * smallD == id_X)

See also

Ways to use diagonalToricMap :

For the programmer

The object diagonalToricMap is a method function.