|
|
A resolution of singularities of the toric variety X
together with the natural morphism from the resolution to X.
The resolution is not necessarily minimal.
A Q-factorialisation of X together with the natural morphism.
A Q-factorial terminal blowup of the toric variety X and the natural morphism.
A Q-factorial canonical blowup of the toric variety X and the natural morphism.
The toric variety Y whose fan lives in the same lattice as the fan of
the toric variety X on which the divisor D is defined,
such that Y resolves the map given by the linear system of D.
The Mori Cone of toric variety X (as an abstract cone), that is,
the cone generated by numerical classes of torus invariant
curves on X.
The nef Cone of toric variety X (as an abstract cone).
ExtremalRayContractions(X) : TorVar,RngIntElt -> SeqEnum
The images of extremal contractions of rays in the nef-cone of
the toric variety X.
The toric variety that is the image of the ith extremal contraction
of the toric variety X; the contraction morphism is returned
as a second value.
The toric divisor that gives the ith extremal contraction of
the toric variety X (that is, the divisor is the pullback
of an ample divisor on the image).
TypesOfContractions(X) : TorVar -> MonStgElt
A string describing the ith extremal contraction of
the toric variety X (or all together in a sequence if i
is not specified).
True iff the contraction of the ith extremal ray of the toric variety X is a divisorial contraction.
Return true if and only if the ith extremal ray of the toric variety X
gives an extremal contraction to a variety of lower dimension than X.
Return true if and only if the ith extremal ray of the toric variety X
gives a small contraction of X; in this case the intrinsic
Flip(X,i) provides the flipped toric variety.
The flipped variety of the ith extremal contraction of the toric
variety X, assuming that this extremal contraction is of flipping type.
The (generalised) flip of the morphism given by the Q-Cartier divisor,
assuming that this morphism is small.
The weights of a Gm action whose variation would give the
flip of the ith extremal contraction of the toric variety X,
assuming that this extremal contraction is of flipping type.
> F0 := FanOfWPS([1,1,1,1]);
> L3 := Ambient(F0);
> F := Blowup(F0,L3 ! [2,-5,3]);
> X := ToricVariety(Rationals(),F);
> ExtremalRays(X);
[
(0, -1),
(1, 56)
]
> TypeOfContraction(X,1);
divisorial (K.C<0)
> TypeOfContraction(X,2);
flip
> WeightsOfFlip(X,2);
[
[ 3, 2, -5, -1 ]
]
We build a (nonsingular) variety X that is the projectivisation of
the direct sum of line bundles (O)(0, 0, 0, 1, 1, 1, 1, 2) on
the projective line P 1.
> X<[x]> := RationalScroll(Rationals(),1,[0,0,0,1,1,1,1,2]);
> X;
Toric variety of dimension 8
Variables: x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10]
The components of the irrelevant ideal are:
(x[10], x[9], x[8], x[7], x[6], x[5], x[4], x[3]), (x[2], x[1])
The 2 gradings are:
1, 1, 0, 0, 0, -1, -1, -1, -1, -2,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1
We compute its nef cone simply to initiate all its
Mori theoretic data.
> _ := NefCone(X);
We can consider various extreme rays of the Mori cone of X.
(Our choice of parameters mean we consider rays [C] for
which DC≤0, where D is the zero divisor: that is, we
consider all rays.)
> IsFlipping(X,1: divisor:=ZeroDivisor(X), inequality:="weak");
false
> IsFlipping(X,2: divisor:=ZeroDivisor(X), inequality:="weak");
true
One of the rays corresponds to the fibration of X onto P 1.
The other is a ray of (anti-)flipping type.
We can make the antiflip.
> Y<[y]> := Flip(X,2: divisor:=ZeroDivisor(X), inequality:="weak");
> Y;
Toric variety of dimension 8
Variables: y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8], y[9], y[10]
The components of the irrelevant ideal are:
(y[10], y[9], y[8], y[7], y[6]), (y[5], y[4], y[3], y[2], y[1])
The 2 gradings are:
0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 2, 1, 1, 1, 1, 0
> IsNonsingular(Y);
false
> IsTerminal(Y);
true
This antiflip can be regarded as coming from a change in the
linearisation of a geometric invariant theory quotient: from
a linearisation like (1, 1) (between variables 2 and 3 in the
given order) to one like (2, 3) (between variables 5 and 6).
To understand the antiflip better, sometimes it helps
to consider its weights (the relation between vertices on
the star of the flipping locus, or, in geometric invariant
theory terms, the weights of the local G m action that
determine the flip).
> WeightsOfFlip(X,2: divisor:=ZeroDivisor(X), inequality:="weak");
[
[ 1, 1, 0, 0, 0, -1, -1, -1, -1, -2 ],
[ 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 ]
]
Here we see that a P 1 has been antiflipped in favour of a
weighted P 4(1, 1, 1, 1, 2), which is the source of the singularity on Y.
type: MonStgElt Default: "terminal"
A sequence of toric varieties that are all the varieties
visited by making any sequence of extremal contractions
from the toric variety X (and, if necessary, making the
corresponding flip). A second sequence records the
maps, in each case first by a sequence of the indices of
the domain and codomain, and second by a string that describes
the map.
The parameter type indicates which extremal rays
are considered. It can be terminal, canonical
or all. In each case, only toric varieties having
these singularities will be allowed as images of the maps.
(In particular, if the default value terminal is chosen,
then only true KX-negative extremal contractions will
be followed.)
First make a toric variety X, in this case some blowup of P 3.
> F := FanOfWPS([1,1,1,1]);
> G := Blowup(F, Ambient(F) ! [1,-1,1]);
> X := ToricVariety(Rationals(),G);
We compute all minimal model programs from X. There are two
outputs: first a sequence containing those toric varieties
encountered during these processes, and second a sequence
containing all the maps encountered.
> models,mmp := MMP(X);
> #models;
3
> mmp;
[ [*
[ 1, 2 ],
divisorial (K.C<0)
*], [*
[ 2, 3 ],
map to point
*] ]
In this case there are three varieties. We could check that
they are: (1) X itself, (2) P 3, and (3) a point.
We also see two maps: the first, labelled [1, 2], is
the contraction of X back down to P 3, and the
second is the extremal contraction of P 3 to a point.
The intrinsic call MMP(X) has a parameter, and the
default is to search only for true absolute minimal model programs:
those which proceed only by contracting extremal rays that are
negative against the canonical class (and flipping them if
necessary).
To allow contractions of other extremal rays (and the possibility
of requiring antiflips), we can set the parameter to
type:="all".
> models,mmp := MMP(X : type:="all");
> models;
[
Toric variety of dimension 3
Variables: $.1, $.2, $.3, $.4, $.5
The components of the irrelevant ideal are:
($.5, $.4), ($.3, $.2, $.1)
The 2 gradings are:
1, 0, 0, 2, 1,
1, 1, 1, 1, 0,
Toric variety of dimension 3
Variables: $.1, $.2, $.3, $.4
The irrelevant ideal is:
($.4, $.3, $.2, $.1)
The grading is:
1, 1, 1, 1,
Toric variety of dimension 3
Variables: $.1, $.2, $.3, $.4, $.5
The components of the irrelevant ideal are:
($.3, $.2), ($.5, $.4, $.1)
The 2 gradings are:
1, 0, 0, 2, 1,
1, 1, 1, 1, 0,
Toric variety of dimension 0,
Toric variety of dimension 1
Variables: $.1, $.2
The irrelevant ideal is:
($.2, $.1)
The grading is:
1, 1
]
> mmp;
[ [*
[ 1, 2 ],
divisorial (K.C<0)
*], [*
[ 1, 3 ],
flop
*], [*
[ 2, 4 ],
map to point
*], [*
[ 3, 1 ],
flop
*], [*
[ 3, 5 ],
fibration (K.C<0)
*] ]
Now we also see a flop from X to a new toric variety Y
(model number 3), and then Y admits Mori fibration to P 1
(which we could check is model number 5).
The title of this section is that of a well-known paper of Reid [Rei83].
It applies Mori theory to toric varieties relatively over a base
to compute a relative minimal model and the relative canonical
model of a toric variety.
Rather than wrap this up in intrinsics, we show how to apply
the various components of this package to realise Reid's result.
We will compute a relative minimal model and a relative canonical
model of the weighted projective space P 3(1, 2, 5, 6), a 3-fold
that does not have canonical (nor terminal) singularities.
> A := ProjectiveSpace(Rationals(),[1,2,5,6]);
> IsCanonical(A);
false
We find the relative models by running a minimal model program
on a resolution of A relative to A itself (that is, we
only allow morphisms V -> W if they factor the
given morphism V -> A).
So we start by constructing a resolution.
> V0,f0 := Resolution(A);
> V0;
Toric variety of dimension 3
Variables: $.1, $.2, $.3, $.4, $.5, $.6, $.7, $.8, $.9, $.10, $.11, $.12
The irrelevant ideal is:
[... omitted... ]
The 9 gradings are:
0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 2, 3, 0, 0, 0, 0, 0, 1, 0, 0,
0, 1, 2, 3, 0, 0, 1, 0, 0, 0, 0, 0,
0, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1,
0, 1, 3, 4, 1, 0, 0, 0, 0, 0, 0, 0,
0, 1, 4, 5, 0, 1, 0, 0, 0, 0, 0, 0,
1, 2, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0
We see that the resolution made 8=9 - 1 blowups.
To compute everything, we would keep track of the morphisms
(as we have started with f 0 above); for brevity, we forego that.
We build a function which detects which of the extremal contractions
from a given V (starting with V0) that factor V -> A.
This code also reports whether the contraction is divisorial
or of flipping type so that we can make the next step accordingly.
> raysOverA := func< W |
> [ <i,TypeOfContraction(W,i)> :
> i in [1..#ExtremalRays(W)] |
> IsRegular(ToricVarietyMap(ExtremalRayContraction(W,i),A)) ] >;
And so we look for extremal rays over A that we can contract.
> raysOverA(V0);
[ <1, "divisorial (K.C<0)">, <2, "divisorial (K.C<0)">,
<3, "divisorial (K.C<0)"> ]
In other words, the extremal rays 1, 2 and 3 all determine
extremal divisorial contractions. (If we were writing a faster routine,
we would probably stop as soon as we'd found that ray 1 worked.)
We can pick any of these: we choose ray 1 and repeat the process.
> V1 := ExtremalRayContraction(V0,1);
> raysOverA(V1);
[ <1, "divisorial (K.C<0)">, <2, "divisorial (K.C<0)">, <4, "divisorial
(K.C<0)"> ]
This time rays 1, 2, and 4 work; again these lead to divisorial
contractions. We follow ray 1.
> V2 := ExtremalRayContraction(V1,1);
> raysOverA(V2);
[ <2, "divisorial (K.C<0)">, <3, "divisorial (K.C<0)"> ]
> V3 := ExtremalRayContraction(V2,2);
> raysOverA(V3);
[ <2, "divisorial (K.C<0)"> ]
> V4 := ExtremalRayContraction(V3,2);
> raysOverA(V4);
[ <2, "divisorial (K.C<0)"> ]
> V5<[w]> := ExtremalRayContraction(V4,2);
> assert #raysOverA(V5) eq 0;
There are no extremal rays over A to contract.
We have reached a relatively minimal model, V 5; we check
its singularities, although there is no need.
> V5;
Toric variety of dimension 3
Variables: w[1], w[2], w[3], w[4], w[5], w[6]
The components of the irrelevant ideal are:
(w[6], w[5]), (w[6], w[3]), (w[5], w[4], w[2]), (w[3], w[1]), (w[4], w[2],
w[1])
The 3 gradings are:
0, 0, 1, 1, 0, 1,
0, 1, 2, 3, 1, 0,
1, 2, 5, 6, 0, 0
> IsTerminal(V5);
true
To continue on to a relatively canonical model we must consider
rays that are trivial against the canonical class, not negative
as we have so far. We need to modify the relative rays function;
we simply weaken the inequality used when evaluating against
the canonical class.
> weakraysOverA := func< W |
> [ <i,TypeOfContraction(W,i : inequality:="weak")> :
> i in [1..#ExtremalRays(W:inequality:="weak")] |
> IsRegular(ToricVarietyMap(ExtremalRayContraction(W,i:inequality:="weak"),A))]>;
And so we continue.
> weakraysOverA(V5);
[ <2, "divisorial (K.C=0)"> ]
> V6<[u]> := ExtremalRayContraction(V5,2 : inequality:="weak");
> assert #weakraysOverA(V6) eq 0;
After one canonically-trivial divisorial contraction there
are no rays left to contract.
We have reached the relative canonical model.
> V6;
Toric variety of dimension 3
Variables: u[1], u[2], u[3], u[4], u[5]
The components of the irrelevant ideal are:
(u[5], u[3]), (u[4], u[2], u[1])
The 2 gradings are:
0, 0, 1, 1, 1,
1, 2, 5, 6, 0
> IsTerminal(V6);
false
> IsCanonical(V6);
true
Of course, in this toric setting, it would have been simpler
to find the single short vector in the fan of A that was
causing all the trouble and blow that up.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|
|