|
Divisors on toric varieties work in the same way as
on any other varieties, except that within each
linear equivalence class it is possible to choose
torus invariant representatives. These invariant
divisors are composed of toric strata, and so in raw
combinatorial terms one can regard divisors as being
integer (or rational) labels on the rays of the fan.
This is a convenient way to construct divisors, but
there are many other methods.
As for other schemes on which divisor calculations
are defined in Magma, divisors on a toric variety
have a single divisor group as their parent.
Divisors can be constructed by coercing appropriate
data into this group, but this is not the only method
so it can be ignored for most purposes.
(This group is, however, the connection between
divisors and the toric variety, so it is always
alive in the background.)
The divisor group of the toric variety X. This is simply a
parent object for divisors on X, and it is not
computed as an abstract group.
The toric variety of which G is the divisor group.
Return true if and only if the divisor groups G1 and G2 are
those of the same toric variety.
Divisor(G,S) : DivTor,[FldRatElt] -> DivTorElt
The divisor on the toric variety X associated to the divisor group G
with coefficients given by the sequence S of integers or rationals
with respect to the rays of the fan of X.
The divisor on the toric variety X associated to the divisor group G
given by the vanishing of the ith coordinate of X.
D1 + D2 : DivTorElt,DivTorElt -> DivTorElt
n * D : FldRatElt,DivTorElt -> DivTorElt
- D : DivTorElt -> DivTorElt
D1 - D2 : DivTorElt,DivTorElt -> DivTorElt
D * v : DivTorElt,TorLatElt -> RngIntElt
Standard arithmetic operations for divisors D, D1, D2
on a toric variety, where n∈Q and v is a point of the
ambient toric lattice of the corresponding fan.
The Weil divisor (respectively Q-Weil divisor)
on the toric variety X
whose multiplicity on the ith coordinate divisor is
the ith element of the sequence S of integers (respectively,
rational numbers).
The divisor on the toric variety X
given by the vanishing of the ith coordinate of X.
The divisor on the toric variety X defined by the
polynomial f of the Cox ring of X.
If m is in the monomial lattice of the toric variety X, this gives the
principal divisor on X corresponding to the monomial m. If m is a form on
the ray lattice of X, then this gives the Weil divisor corresponding to m.
The zero divisor on the toric variety X.
effective: BoolElt Default: true
A divisor D on the toric variety X whose class modulo linear
equivalence equals m, an element of the divisor class group of X.
Unless the parameter effective is set to false, D will be
chosen to be effective if possible.
effective: BoolElt Default: true
A divisor D on the toric variety X whose class modulo linear
equivalence equals m, an element of the Picard lattice or
divisor class lattice of X.
Unless the parameter effective is set to false, D will be
chosen to be effective if possible.
The canonical divisor of the toric variety X.
group: MonStgElt Default: "Pic"
The class of canonical divisor of the toric variety X.
By default this is returned as an element of the Picard lattice of X
(and X must be Q-Gorenstein for this to make sense).
However, the parameter group can be changed to Cl to
return the divisor in the divisor class lattice or ClZ to
return the divisor in the divisor class group.
We compute the Kawamata blowup of 1/7(1, 2, 5). First we construct the singular cone by hand:
> L := ToricLattice(3);
> C := PositiveQuadrant(L);
> v := L![1/7,2/7,5/7];
> LL,phi := AddVectorToLattice(v);
> CC := Cone(phi(Rays(C)));
> CC;
3-dimensional simplicial cone CC with 3 minimal generators:
(1, 0, 0),
(0, 1, 0),
(4, 1, 7)
Now we compute the blowup.
> FF := Fan(CC);
> vv := phi(v);
> vv;
(3, 1, 5)
> GG := Blowup(Fan(CC),vv);
The blowup map is easy to recover:
> X := ToricVariety(Rationals(),FF);
> Y<x,y,z,t> := ToricVariety(Rationals(),GG);
> f := ToricVarietyMap(Y,X);
> f;
A map between toric varieties described by:
(t)^(2/7)*(x),
(t)^(1/7)*(y),
(t)^(5/7)*(z)
Finally we shall compute the discrepancy of this Kawamata blowup. It should be 1/7.
> KX := CanonicalDivisor(X);
> KY := CanonicalDivisor(Y);
> KY - Pullback(f,KX);
Q-Weil divisor with coefficients:
0, 0, 0, 1/7
The toric variety on which the divisor D is defined.
The divisor group of a toric variety in which the divisor D lies.
The multiplicities on rays of the fan of X that determine
the invariant divisor D, where X is the toric variety on
which D is defined.
The sequence of toric lattice elements (of the monomial lattice
of X) that determine the divisor D on the toric affine
patches of the toric variety X on which D lies.
This requires that D be Q-Cartier.
Return true if and only if some integer multiple of the divisor D
on a toric variety is Cartier.
Return true if and only if the divisor D on a toric variety is Cartier.
Return true if and only if the divisor D on a toric variety is a Weil divisor
(that is, its coefficients are integers rather than rational numbers).
Returns true if and only if the divisor D on a toric variety is ample.
Return true if and only if the divisor D on a toric variety is nef.
Return true if and only if the divisor D on a toric variety is big.
Return true if and only if the divisor D on a toric variety is effective.
The class in the Picard lattice corresponding to the Q-Cartier divisor D.
The movable part (or mobile part) of the divisor D on
a toric variety.
We compute a variety as a blowup of the projective plane.
> X := ProjectiveSpace(Rationals(),[1,1,1]);
> Y<u,v,x,y> := Blowup(X, &+Rays(Fan(X))[1..2]);
> Y;
Toric variety of dimension 2
Variables: u, v, x, y
The components of the irrelevant ideal are:
(y, x), (v, u)
The 2 gradings are:
0, 0, 1, 1,
1, 1, 1, 0
We consider a (toric coordinate) divisor on Y.
> D := Divisor(Y,4);
> MovablePart(D);
Weil divisor with coefficients:
0, 0, 0, 0
> MovablePart(D) eq ZeroDivisor(Y);
true
The movable part of this divisor is the zero divisor.
Adding a little bit of another effective divisor doesn't
yet make a mobile divisor, but it has made it stably mobile:
some multiple now has a movable part.
> E := D + (1/2)*Divisor(Y,u);
> MovablePart(E);
Weil divisor with coefficients:
0, 0, 0, 0
> MovablePart(2*E);
Weil divisor with coefficients:
1, 0, 0, 1
> MovablePart(2*E) eq (D + Divisor(Y,u));
true
The dual fan to the rational polyhedron of sections of the
divisor D on a toric variety X. If X is a complete
variety, this will give the fan of Proj of the ring of sections of
positive powers of D.
Proj (as a toric variety) of the ring of sections of the divisor D
on a toric variety. The map of underlying lattices which determines
the map Variety(D) -> Proj(D) is also returned.
The relative (sheaf) Proj of sections of the divisor D on
a toric variety. If D is Q-Cartier, then the identity will be
constructed; for non Q-Cartier divisors, a partial
Q-factorialisation will be given.
If the cone C is a codimension 1 face of the fan of the
toric variety X, return the dual toric lattice vector that
represents intersection of the toric subvariety corresponding
to C.
The sequence of forms on the Picard lattice of the toric variety X which define the intersection forms with all torus invariant curves.
The embedding map from the lattice of torus-invariant Cartier divisors to the lattice of torus-invariant Weil divisors of the toric variety X.
The embedding of the Picard group of X into the divisor class group.
The natural embedding of the Picard lattice of X into divisor class lattice.
Return true if and only if some integer multiple of
the divisor D on a toric variety is principal.
Return true if and only if the divisor D on a toric
variety is principal.
Return true if and only if the divisor D on a toric variety is
linearly equivalent to a Cartier divisor; if so, then a representative
Cartier divisor is also returned.
IsLinearlyEquivalent(D,E) : DivTorElt,DivTorElt -> BoolElt
Return true if and only if the divisors D and E are linearly equivalent.
A divisor linearly equivalent to the divisor D, with no support on the locus defined by S. S should be a sequence of variables on the variety of D. If S has more than just variables, the other polynomials will be ignored.
The monomial (if D is effective) or rational monomial defining the
divisor D on a toric variety.
The monomial in the Cox ring that corresponds to the monomial
lattice element v when regarded as a section of the
divisor D.
The Riemann--Roch space of the divisor D as a polytope in
the monomial lattice of the underlying toric variety.
A basis of the Riemann--Roch space of the divisor D on
a toric variety X: this is a sequence of rational functions on X.
The dimension of the Riemann--Roch space of the divisor D on
a toric variety.
The graded cone of sections of multiples of the divisor D
on a toric variety. In other words, the integral
points of the ith graded piece of this cone represent
sections of the divisor i * D.
The integral polyhedron whose integral points corresponds to sections of
the divisor D.
We make a simple toric variety Y by blowing up the plane.
> X := ProjectiveSpace(Rationals(),[1,1,1]);
> Y<u,v,x,y> := Blowup(X, &+Rays(Fan(X))[1..2]);
> Y;
Toric variety of dimension 2
Variables: u, v, x, y
The components of the irrelevant ideal are:
(y, x), (v, u)
The 2 gradings are:
0, 0, 1, 1,
1, 1, 1, 0
We make a non-effective divisor as a difference of fibres
of the natural map from Y to the line.
> D := 2*Divisor(Y,u) - Divisor(Y,v);
> IsEffective(D);
false
> P := Polyhedron(D);
> monos := [ LatticeElementToMonomial(D,v) : v in Points(P) ];
> monos;
[
u,
v
]
The polyhedron P is not quite the Riemann--Roch space of D,
but it is for a divisor linearly equivalent to D.
> [ AreLinearlyEquivalent(Divisor(Y,m),D) : m in monos ];
[ true, true ]
The Hilbert series of the divisor D on a toric variety X, namely
Σm≥0 dim H0(X, mD).
This assumes that the spaces of sections H0(X, D) of D
finite dimensional. This will be true if X is projective,
for example, but it holds in other cases too.
The Hilbert (quasi-)polynomial for the divisor D.
The space of sections of D must be finite dimensional.
That is, a sequence of polynomials [p0, ..., pr - 1]
of length r, the
quasi-period of the Hilbert polynomial, so that
dim H0(X, mD) is the value of ps(k)
where m=kr + s is the Euclidean division of m by r;
in other words, s is the least residue of m modulo r.
Note that since Magma indexes sequences from 1,
we have that pi = HilbertPolynomial(D)[i+1].
The first l + 1 coefficients of the Hilbert series of the
divisor D on a toric variety
(starting with 0D up to and including lD).
Thefirst ith coefficient of the Hilbert series of the
divisor D on a toric variety.
The Hilbert δ-vector (or h * -vector) for the divisor D on a toric variety.
One can recreate the Cech cohomology calculation of the
Riemann--Roch space of a divisor D on a toric variety X:
H0(X, (O)X(D)) =
∩σ (mσ + check(σ))
where the sum is taken over top-dimensional cones σ in
the fan of X, and mσ is the monomial in the
dual lattice which determines D on the affine patch Xσ;
check(σ) is the cone dual to σ.
> X<x,y,z> := ProjectiveSpace(Rationals(),[1,3,5]);
> D := Divisor(X,[2,3,1]);
> cones := Cones(Fan(X));
> RRD := &meet [ Polytope([Cartier(D)[i]]) + Dual(cones[i]) : i in [1..3]];
> IsPolytope(RRD);
true
We could compute the number of points of this cone RRD by saying
#Points(RRD). This should be regarded as a slow method to
determine the number of points---after all, it requires us to
find all the points before counting them. There is a specialised
point-counting intrinsic NumberOfPoints which does not
find the points first. The latter should be used for point counting,
although in relatively small examples the former can be a little faster.
> NumberOfPoints(RRD);
14
To compute also the number of points of integral dilations of this
polytope, we revert to using the divisor and computing its
Hilbert series (or a few coefficients if that's all we need).
> time HilbertCoefficients(D,10);
[ 1, 14, 44, 92, 156, 238, 337, 452, 585, 735, 902 ]
> h<t> := HilbertSeries(D);
> h;
(-4*t^8 - 21*t^7 - 38*t^6 - 51*t^5 - 51*t^4 - 47*t^3 - 30*t^2 - 13*t - 1)/(t^9 -
t^8 - t^6 + t^5 - t^4 + t^3 + t - 1)
> h * (1 - t) * (1 - t^3) * (1 - t^5);
4*t^8 + 21*t^7 + 38*t^6 + 51*t^5 + 51*t^4 + 47*t^3 + 30*t^2 + 13*t + 1
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|