Table of Contents

application fulton

This application deals with normal toric varieties as discussed in the famous book William Fulton: Introduction to toric varieties.

imports from:

uses:

Objects

  • CyclicQuotient:
    An affine normal toric variety given by a two-dimensional cone in two-dimensional space.

  • NormalToricVariety:
    A normal toric variety given by a fan.

  • RationalDivisorClassGroup:
    The class group Cl(X) of Weil divisors on the toric variety defined by the fan is a finitely generated abelian group of rank N_RAYS-DIM. It usually contains torsion. The rational divisor class group is the tensor product of Cl(X) with Q over Z. This group is torsion free and corresponds to the Picard group if the variety is non-singular.

  • TDivisor:
    A T-invariant divisor on a normal toric variety.

  • VersalComponent:
    A component of the versal deformation of a CyclicQuotient singularity.

Functions

Combinatorics

Combinatorial functions.


polytope_of_divisor_class

return the polytope defined by an element of the nef or effective cone first argument is the fan, second the Vector defining the divisor class


Commutative Algebra

These methods help with translating combinatorics to commutative algebra.


lower_lattice_points

Find all lattice points of a polytope P that are not reachable from some other lattice point via the tail cone.


Continued fractions

Two simple methods for switching between rational numbers and continued fractions.


cf2rational(Vector<Integer> v)

Compute the rational number corresponding to a continued fraction.

Parameters:
Returns:

rational2cf(Rational r)

Compute the continued fraction corresponding to a rational number r.

Parameters:
Returns:

Producing a normal toric variety

With these clients you can create a normal toric variety from various input data.


hirzebruch_surface(Integer r)

Takes one parameter r and returns the polyhedral fan corresponding the the Hirzebruch surface Hr.

Parameters:

Integer r: Parameter

Returns:

polarized_toric_variety(Polytope<Rational> P, String name)

Creates a toric variety from the normal fan of a polytope and adds the defining divisor of the polytope

Parameters:

Polytope<Rational> P: : the input polytope

String name: : a name for the divisor

Returns:

projective_space(Int d)

Takes one parameter d and returns the fan corresponding to the d-dimensional projective space.

Parameters:

Int d: Dimension

Returns:

weighted_projective_space(Vector<Int> a)

Takes a vector a and returns the fan corresponding to the weighted projective space associated to a.

Parameters:

Vector<Int> a: the weights

Returns:

no category

markov_basis(Set<Vector<Integer>> S)

Implementation of Project and Lift algorithm by Hemmecke and Malkin. Given a spanning set of a lattice returns a markov basis.

Parameters:
Returns:
Example:

 > $s = new Set<Vector<Integer>>([1, -2, 1], [1, 1, -1]);
 > print markov_basis($s);
 {<-2 1 0> <-1 -1 1> <0 -3 2>}
markov_basis(Matrix<Integer> M)

Implementation of Project and Lift algorithm by Hemmecke and Malkin. Given a Matrix whose rows form a spanning set of a lattice return markov basis as rows of an Integer Matrix, or if use_kernel = true, returns a markov basis of integer kernel of given Matrix as rows of an Integer Matrix.

Parameters:
Options:

Bool use_kernel: = false

Returns:
Example:
 > $M = new Matrix<Integer>([[1, 1, 2, -2], [-1, 3, -2, 1]]);
 > print markov_basis($M, {"use_kernel" => true});
 0 2 7 8
 1 1 3 4
 > $M = new Matrix<Integer>([[1, 1, 2, -2], [-1, 3, -2, 1]]);
 > print markov_basis($M);
 0 -4 0 1
 1 -7 2 0
 1 1 2 -2
markov_basis(Polytope<Rational> P)

Implementation of Project and Lift algorithm by Hemmecke and Malkin. Given a polytope return the markov basis of the lattice spanned by it's lattice points as rows of an Integer Matrix,

Parameters:
Returns:
Example:
 > $P = new Polytope(VERTICES=>[[1, 1, 0], [1, 0, 1], [1, 1, 1], [1, 0, 0]]);
 > print markov_basis($P);
 1 -1 -1 1