A product of varieties is equipped with canonical projection maps onto it factors. Given a product of normal toric varieties and a nonempty array, this methods provides a concise way to make these toric maps.
The product of two normal toric varieties has projections onto each factor.
i1 : Y0 = toricProjectiveSpace 1; |
i2 : Y1 = hirzebruchSurface 3; |
i3 : X = Y0 ** Y1; |
i4 : X^[0] o4 = | 1 0 0 | o4 : ToricMap Y0 <--- X |
i5 : assert isWellDefined X^[0] |
i6 : assert (source X^[0] === X) |
i7 : assert (target X^[0] === Y0) |
i8 : X^[1] o8 = | 0 1 0 | | 0 0 1 | o8 : ToricMap Y1 <--- X |
i9 : assert isWellDefined X^[1] |
i10 : assert (source X^[1] === X) |
i11 : assert (target X^[1] === Y1) |
If A indexes all the factors, then we simply obtain the identity map on X.
i12 : X^[0,1] o12 = | 1 0 0 | | 0 1 0 | | 0 0 1 | o12 : ToricMap X <--- X |
i13 : assert (X^[0,1] == id_X) |
When there are more than two factors, we also obtain projections onto any subset of the factors.
i14 : Z = Y0 ^** 3; |
i15 : Z^[0] o15 = | 1 0 0 | o15 : ToricMap Y0 <--- Z |
i16 : Z^[1] o16 = | 0 1 0 | o16 : ToricMap Y0 <--- Z |
i17 : Z^[2] o17 = | 0 0 1 | o17 : ToricMap Y0 <--- Z |
i18 : assert all (3, i -> isWellDefined Z^[i] and source Z^[i] === Z and target Z^[i] === Y0) |
i19 : Z^[0,1] o19 = | 1 0 0 | | 0 1 0 | o19 : ToricMap normalToricVariety ({{-1, 0}, {1, 0}, {0, -1}, {0, 1}}, {{0, 2}, {0, 3}, {1, 2}, {1, 3}}) <--- Z |
i20 : Z^[0,2] o20 = | 1 0 0 | | 0 0 1 | o20 : ToricMap normalToricVariety ({{-1, 0}, {1, 0}, {0, -1}, {0, 1}}, {{0, 2}, {0, 3}, {1, 2}, {1, 3}}) <--- Z |
i21 : Z^[1,2] o21 = | 0 1 0 | | 0 0 1 | o21 : ToricMap normalToricVariety ({{-1, 0}, {1, 0}, {0, -1}, {0, 1}}, {{0, 2}, {0, 3}, {1, 2}, {1, 3}}) <--- Z |
i22 : assert (isWellDefined Z^[1,2] and target Z^[1,2] === Y0 ** Y0) |
i23 : Z^[0,1,2] o23 = | 1 0 0 | | 0 1 0 | | 0 0 1 | o23 : ToricMap Z <--- Z |
i24 : assert (Z^[0,1,2] == id_Z) |
When the normal toric variety is not constructed as a product, this method only reproduces the identity map.
i25 : components Y1 o25 = {Y1} o25 : List |
i26 : Y1^[0] o26 = | 1 0 | | 0 1 | o26 : ToricMap Y1 <--- Y1 |
i27 : assert (Y1^[0] == id_Y1) |
When the normal toric variety X is a blow-up and the array A is empty, one obtains the canonical projection.
i28 : A = affineSpace 2; |
i29 : B = toricBlowup({0,1}, A); |
i30 : B^[] o30 = | 1 0 | | 0 1 | o30 : ToricMap A <--- B |
i31 : assert (isWellDefined B^[] and source B^[] === B and target B^[] === A) |