Library of toric varieties

This module provides a simple way to construct often-used toric varieties. Please see the help for the individual methods of toric_varieties for a more detailed description of which varieties can be constructed.

AUTHORS:

  • Volker Braun (2010-07-02): initial version

EXAMPLES:

sage: toric_varieties.dP6()
2-d CPR-Fano toric variety covered by 6 affine patches
>>> from sage.all import *
>>> toric_varieties.dP6()
2-d CPR-Fano toric variety covered by 6 affine patches

You can assign the homogeneous coordinates to Sage variables either with inject_variables() or immediately during assignment like this:

sage: P2.<x,y,z> = toric_varieties.P2()
sage: x^2 + y^2 + z^2
x^2 + y^2 + z^2
sage: P2.coordinate_ring()
Multivariate Polynomial Ring in x, y, z over Rational Field
>>> from sage.all import *
>>> P2 = toric_varieties.P2(names=('x', 'y', 'z',)); (x, y, z,) = P2._first_ngens(3)
>>> x**Integer(2) + y**Integer(2) + z**Integer(2)
x^2 + y^2 + z^2
>>> P2.coordinate_ring()
Multivariate Polynomial Ring in x, y, z over Rational Field
class sage.schemes.toric.library.ToricVarietyFactory[source]

Bases: SageObject

The methods of this class construct toric varieties.

Warning

You need not create instances of this class. Use the already-provided object toric_varieties instead.

A(n, names='z+', base_ring=Rational Field)[source]

Construct the n-dimensional affine space.

INPUT:

  • n – positive integer; the dimension of the affine space

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: A3 = toric_varieties.A(3); A3
3-d affine toric variety
sage: A3.fan().rays()
N(1, 0, 0),
N(0, 1, 0),
N(0, 0, 1)
in 3-d lattice N
sage: A3.gens()
(z0, z1, z2)
>>> from sage.all import *
>>> A3 = toric_varieties.A(Integer(3)); A3
3-d affine toric variety
>>> A3.fan().rays()
N(1, 0, 0),
N(0, 1, 0),
N(0, 0, 1)
in 3-d lattice N
>>> A3.gens()
(z0, z1, z2)
A1(names='z', base_ring=Rational Field)[source]

Construct the affine line \(\mathbb{A}^1\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: A1 = toric_varieties.A1(); A1
1-d affine toric variety
sage: A1.fan().rays()
N(1)
in 1-d lattice N
sage: A1.gens()
(z,)
>>> from sage.all import *
>>> A1 = toric_varieties.A1(); A1
1-d affine toric variety
>>> A1.fan().rays()
N(1)
in 1-d lattice N
>>> A1.gens()
(z,)
A2(names='x y', base_ring=Rational Field)[source]

Construct the affine plane \(\mathbb{A}^2\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: A2 = toric_varieties.A2(); A2
2-d affine toric variety
sage: A2.fan().rays()
N(1, 0),
N(0, 1)
in 2-d lattice N
sage: A2.gens()
(x, y)
>>> from sage.all import *
>>> A2 = toric_varieties.A2(); A2
2-d affine toric variety
>>> A2.fan().rays()
N(1, 0),
N(0, 1)
in 2-d lattice N
>>> A2.gens()
(x, y)
A2_Z2(names='x y', base_ring=Rational Field)[source]

Construct the orbifold \(\mathbb{A}^2 / \ZZ_2\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: A2_Z2 = toric_varieties.A2_Z2(); A2_Z2
2-d affine toric variety
sage: A2_Z2.fan().rays()
N(1, 0),
N(1, 2)
in 2-d lattice N
sage: A2_Z2.gens()
(x, y)
>>> from sage.all import *
>>> A2_Z2 = toric_varieties.A2_Z2(); A2_Z2
2-d affine toric variety
>>> A2_Z2.fan().rays()
N(1, 0),
N(1, 2)
in 2-d lattice N
>>> A2_Z2.gens()
(x, y)
BCdlOG(names='v1 v2 c1 c2 v4 v5 b e1 e2 e3 f g v6', base_ring=Rational Field)[source]

Construct the 5-dimensional toric variety studied in [BCdlOG2000], [HLY2002]

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: X = toric_varieties.BCdlOG(); X
5-d CPR-Fano toric variety covered by 54 affine patches
sage: X.fan().rays()
N(-1,  0,  0,  2,  3),          N( 0, -1,  0,  2,  3),
N( 0,  0, -1,  2,  3),          N( 0,  0, -1,  1,  2),
N( 0,  0,  0, -1,  0),          N( 0,  0,  0,  0, -1),
N( 0,  0,  0,  2,  3),          N( 0,  0,  1,  2,  3),
N( 0,  0,  2,  2,  3),          N( 0,  0,  1,  1,  1),
N( 0,  1,  2,  2,  3),          N( 0,  1,  3,  2,  3),
N( 1,  0,  4,  2,  3)
in 5-d lattice N
sage: X.gens()
(v1, v2, c1, c2, v4, v5, b, e1, e2, e3, f, g, v6)
>>> from sage.all import *
>>> X = toric_varieties.BCdlOG(); X
5-d CPR-Fano toric variety covered by 54 affine patches
>>> X.fan().rays()
N(-1,  0,  0,  2,  3),          N( 0, -1,  0,  2,  3),
N( 0,  0, -1,  2,  3),          N( 0,  0, -1,  1,  2),
N( 0,  0,  0, -1,  0),          N( 0,  0,  0,  0, -1),
N( 0,  0,  0,  2,  3),          N( 0,  0,  1,  2,  3),
N( 0,  0,  2,  2,  3),          N( 0,  0,  1,  1,  1),
N( 0,  1,  2,  2,  3),          N( 0,  1,  3,  2,  3),
N( 1,  0,  4,  2,  3)
in 5-d lattice N
>>> X.gens()
(v1, v2, c1, c2, v4, v5, b, e1, e2, e3, f, g, v6)
BCdlOG_base(names='d4 d3 r2 r1 d2 u d1', base_ring=Rational Field)[source]

Construct the base of the \(\mathbb{P}^2(1,2,3)\) fibration BCdlOG().

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: base = toric_varieties.BCdlOG_base(); base
3-d toric variety covered by 10 affine patches
sage: base.fan().rays()
N(-1,  0,  0),    N( 0, -1,  0),    N( 0,  0, -1),    N( 0,  0,  1),
N( 0,  1,  2),    N( 0,  1,  3),    N( 1,  0,  4)
in 3-d lattice N
sage: base.gens()
(d4, d3, r2, r1, d2, u, d1)
>>> from sage.all import *
>>> base = toric_varieties.BCdlOG_base(); base
3-d toric variety covered by 10 affine patches
>>> base.fan().rays()
N(-1,  0,  0),    N( 0, -1,  0),    N( 0,  0, -1),    N( 0,  0,  1),
N( 0,  1,  2),    N( 0,  1,  3),    N( 1,  0,  4)
in 3-d lattice N
>>> base.gens()
(d4, d3, r2, r1, d2, u, d1)
Conifold(names='u x y v', base_ring=Rational Field)[source]

Construct the conifold as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: Conifold = toric_varieties.Conifold(); Conifold
3-d affine toric variety
sage: Conifold.fan().rays()
N(0, 0, 1),       N(0, 1, 1),
N(1, 0, 1),       N(1, 1, 1)
in 3-d lattice N
sage: Conifold.gens()
(u, x, y, v)
>>> from sage.all import *
>>> Conifold = toric_varieties.Conifold(); Conifold
3-d affine toric variety
>>> Conifold.fan().rays()
N(0, 0, 1),       N(0, 1, 1),
N(1, 0, 1),       N(1, 1, 1)
in 3-d lattice N
>>> Conifold.gens()
(u, x, y, v)
Cube_deformation(k, names=None, base_ring=Rational Field)[source]

Construct, for each \(k\in\ZZ_{\geq 0}\), a toric variety with \(\ZZ_k\)-torsion in the Chow group.

The fans of this sequence of toric varieties all equal the face fan of a unit cube topologically, but the (1,1,1)-vertex is moved to (1,1,2k+1). This example was studied in [FS1994].

INPUT:

  • k – integer; the case k=0 is the same as Cube_face_fan()

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT:

A toric variety \(X_k\). Its Chow group is \(A_1(X_k)=\ZZ_k\).

EXAMPLES:

sage: X_2 = toric_varieties.Cube_deformation(2); X_2
3-d toric variety covered by 6 affine patches
sage: X_2.fan().rays()
N( 1,  1,  5),    N( 1, -1,  1),    N(-1,  1,  1),    N(-1, -1,  1),
N(-1, -1, -1),    N(-1,  1, -1),    N( 1, -1, -1),    N( 1,  1, -1)
in 3-d lattice N
sage: X_2.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
>>> from sage.all import *
>>> X_2 = toric_varieties.Cube_deformation(Integer(2)); X_2
3-d toric variety covered by 6 affine patches
>>> X_2.fan().rays()
N( 1,  1,  5),    N( 1, -1,  1),    N(-1,  1,  1),    N(-1, -1,  1),
N(-1, -1, -1),    N(-1,  1, -1),    N( 1, -1, -1),    N( 1,  1, -1)
in 3-d lattice N
>>> X_2.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
Cube_face_fan(names='z+', base_ring=Rational Field)[source]

Construct the toric variety given by the face fan of the 3-dimensional unit lattice cube.

This variety has 6 conifold singularities but the fan is still polyhedral.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: Cube_face_fan = toric_varieties.Cube_face_fan(); Cube_face_fan
3-d CPR-Fano toric variety covered by 6 affine patches
sage: Cube_face_fan.fan().rays()
N( 1,  1,  1),    N( 1, -1,  1),    N(-1,  1,  1),    N(-1, -1,  1),
N(-1, -1, -1),    N(-1,  1, -1),    N( 1, -1, -1),    N( 1,  1, -1)
in 3-d lattice N
sage: Cube_face_fan.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
>>> from sage.all import *
>>> Cube_face_fan = toric_varieties.Cube_face_fan(); Cube_face_fan
3-d CPR-Fano toric variety covered by 6 affine patches
>>> Cube_face_fan.fan().rays()
N( 1,  1,  1),    N( 1, -1,  1),    N(-1,  1,  1),    N(-1, -1,  1),
N(-1, -1, -1),    N(-1,  1, -1),    N( 1, -1, -1),    N( 1,  1, -1)
in 3-d lattice N
>>> Cube_face_fan.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
Cube_nonpolyhedral(names='z+', base_ring=Rational Field)[source]

Construct the toric variety defined by a fan that is not the face fan of a polyhedron.

This toric variety is defined by a fan that is topologically like the face fan of a 3-dimensional cube, but with a different N-lattice structure.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

Note

  • This is an example of a non-polyhedral fan.

  • Its Chow group has torsion: \(A_2(X)=\ZZ^5 \oplus \ZZ_2\)

EXAMPLES:

sage: Cube_nonpolyhedral = toric_varieties.Cube_nonpolyhedral()
sage: Cube_nonpolyhedral
3-d toric variety covered by 6 affine patches
sage: Cube_nonpolyhedral.fan().rays()
N( 1,  2,  3),    N( 1, -1,  1),    N(-1,  1,  1),    N(-1, -1,  1),
N(-1, -1, -1),    N(-1,  1, -1),    N( 1, -1, -1),    N( 1,  1, -1)
in 3-d lattice N
sage: Cube_nonpolyhedral.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
>>> from sage.all import *
>>> Cube_nonpolyhedral = toric_varieties.Cube_nonpolyhedral()
>>> Cube_nonpolyhedral
3-d toric variety covered by 6 affine patches
>>> Cube_nonpolyhedral.fan().rays()
N( 1,  2,  3),    N( 1, -1,  1),    N(-1,  1,  1),    N(-1, -1,  1),
N(-1, -1, -1),    N(-1,  1, -1),    N( 1, -1, -1),    N( 1,  1, -1)
in 3-d lattice N
>>> Cube_nonpolyhedral.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
Cube_sublattice(names='z+', base_ring=Rational Field)[source]

Construct the toric variety defined by a face fan over a 3-dimensional cube, but not the unit cube in the N-lattice. See p. 65 of [Ful1993].

Its Chow group is \(A_2(X)=\ZZ^5\), which distinguishes it from the face fan of the unit cube.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: Cube_sublattice = toric_varieties.Cube_sublattice(); Cube_sublattice
3-d CPR-Fano toric variety covered by 6 affine patches
sage: Cube_sublattice.fan().rays()
N( 1,  0,  0),    N( 0,  1,  0),    N( 0,  0,  1),    N(-1,  1,  1),
N(-1,  0,  0),    N( 0, -1,  0),    N( 0,  0, -1),    N( 1, -1, -1)
in 3-d lattice N
sage: Cube_sublattice.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
>>> from sage.all import *
>>> Cube_sublattice = toric_varieties.Cube_sublattice(); Cube_sublattice
3-d CPR-Fano toric variety covered by 6 affine patches
>>> Cube_sublattice.fan().rays()
N( 1,  0,  0),    N( 0,  1,  0),    N( 0,  0,  1),    N(-1,  1,  1),
N(-1,  0,  0),    N( 0, -1,  0),    N( 0,  0, -1),    N( 1, -1, -1)
in 3-d lattice N
>>> Cube_sublattice.gens()
(z0, z1, z2, z3, z4, z5, z6, z7)
P(n, names='z+', base_ring=Rational Field)[source]

Construct the n-dimensional projective space \(\mathbb{P}^n\).

INPUT:

  • n – positive integer; the dimension of the projective space

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P3 = toric_varieties.P(3); P3
3-d CPR-Fano toric variety covered by 4 affine patches
sage: P3.fan().rays()
N( 1,  0,  0),
N( 0,  1,  0),
N( 0,  0,  1),
N(-1, -1, -1)
in 3-d lattice N
sage: P3.gens()
(z0, z1, z2, z3)
>>> from sage.all import *
>>> P3 = toric_varieties.P(Integer(3)); P3
3-d CPR-Fano toric variety covered by 4 affine patches
>>> P3.fan().rays()
N( 1,  0,  0),
N( 0,  1,  0),
N( 0,  0,  1),
N(-1, -1, -1)
in 3-d lattice N
>>> P3.gens()
(z0, z1, z2, z3)
P1(names='s t', base_ring=Rational Field)[source]

Construct the projective line \(\mathbb{P}^1\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P1 = toric_varieties.P1(); P1
1-d CPR-Fano toric variety covered by 2 affine patches
sage: P1.fan().rays()
N( 1),
N(-1)
in 1-d lattice N
sage: P1.gens()
(s, t)
>>> from sage.all import *
>>> P1 = toric_varieties.P1(); P1
1-d CPR-Fano toric variety covered by 2 affine patches
>>> P1.fan().rays()
N( 1),
N(-1)
in 1-d lattice N
>>> P1.gens()
(s, t)
P1xA1(names='s t z', base_ring=Rational Field)[source]

Construct the Cartesian product \(\mathbb{P}^1 \times \mathbb{A}^1\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: P1xA1 = toric_varieties.P1xA1(); P1xA1
2-d toric variety covered by 2 affine patches
sage: P1xA1.fan().rays()
N( 1, 0),
N(-1, 0),
N( 0, 1)
in 2-d lattice N
sage: P1xA1.gens()
(s, t, z)
>>> from sage.all import *
>>> P1xA1 = toric_varieties.P1xA1(); P1xA1
2-d toric variety covered by 2 affine patches
>>> P1xA1.fan().rays()
N( 1, 0),
N(-1, 0),
N( 0, 1)
in 2-d lattice N
>>> P1xA1.gens()
(s, t, z)
P1xP1(names='s t x y', base_ring=Rational Field)[source]

Construct the del Pezzo surface \(\mathbb{P}^1 \times \mathbb{P}^1\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P1xP1 = toric_varieties.P1xP1(); P1xP1
2-d CPR-Fano toric variety covered by 4 affine patches
sage: P1xP1.fan().rays()
N( 1,  0),        N(-1,  0),
N( 0,  1),        N( 0, -1)
in 2-d lattice N
sage: P1xP1.gens()
(s, t, x, y)
>>> from sage.all import *
>>> P1xP1 = toric_varieties.P1xP1(); P1xP1
2-d CPR-Fano toric variety covered by 4 affine patches
>>> P1xP1.fan().rays()
N( 1,  0),        N(-1,  0),
N( 0,  1),        N( 0, -1)
in 2-d lattice N
>>> P1xP1.gens()
(s, t, x, y)
P1xP1_Z2(names='s t x y', base_ring=Rational Field)[source]

Construct the toric \(\ZZ_2\)-orbifold of the del Pezzo surface \(\mathbb{P}^1 \times \mathbb{P}^1\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P1xP1_Z2 = toric_varieties.P1xP1_Z2(); P1xP1_Z2
2-d CPR-Fano toric variety covered by 4 affine patches
sage: P1xP1_Z2.fan().rays()
N( 1,  1),        N(-1, -1),
N(-1,  1),        N( 1, -1)
in 2-d lattice N
sage: P1xP1_Z2.gens()
(s, t, x, y)
sage: P1xP1_Z2.Chow_group().degree(1)
C2 x Z^2
>>> from sage.all import *
>>> P1xP1_Z2 = toric_varieties.P1xP1_Z2(); P1xP1_Z2
2-d CPR-Fano toric variety covered by 4 affine patches
>>> P1xP1_Z2.fan().rays()
N( 1,  1),        N(-1, -1),
N(-1,  1),        N( 1, -1)
in 2-d lattice N
>>> P1xP1_Z2.gens()
(s, t, x, y)
>>> P1xP1_Z2.Chow_group().degree(Integer(1))
C2 x Z^2
P2(names='x y z', base_ring=Rational Field)[source]

Construct the projective plane \(\mathbb{P}^2\) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P2 = toric_varieties.P2(); P2
2-d CPR-Fano toric variety covered by 3 affine patches
sage: P2.fan().rays()
N( 1,  0),
N( 0,  1),
N(-1, -1)
in 2-d lattice N
sage: P2.gens()
(x, y, z)
>>> from sage.all import *
>>> P2 = toric_varieties.P2(); P2
2-d CPR-Fano toric variety covered by 3 affine patches
>>> P2.fan().rays()
N( 1,  0),
N( 0,  1),
N(-1, -1)
in 2-d lattice N
>>> P2.gens()
(x, y, z)
P2_112(names='z+', base_ring=Rational Field)[source]

Construct the weighted projective space \(\mathbb{P}^2(1,1,2)\).

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P2_112 = toric_varieties.P2_112(); P2_112
2-d CPR-Fano toric variety covered by 3 affine patches
sage: P2_112.fan().rays()
N( 1,  0),
N( 0,  1),
N(-1, -2)
in 2-d lattice N
sage: P2_112.gens()
(z0, z1, z2)
>>> from sage.all import *
>>> P2_112 = toric_varieties.P2_112(); P2_112
2-d CPR-Fano toric variety covered by 3 affine patches
>>> P2_112.fan().rays()
N( 1,  0),
N( 0,  1),
N(-1, -2)
in 2-d lattice N
>>> P2_112.gens()
(z0, z1, z2)
P2_123(names='z+', base_ring=Rational Field)[source]

Construct the weighted projective space \(\mathbb{P}^2(1,2,3)\).

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P2_123 = toric_varieties.P2_123(); P2_123
2-d CPR-Fano toric variety covered by 3 affine patches
sage: P2_123.fan().rays()
N( 1,  0),
N( 0,  1),
N(-2, -3)
in 2-d lattice N
sage: P2_123.gens()
(z0, z1, z2)
>>> from sage.all import *
>>> P2_123 = toric_varieties.P2_123(); P2_123
2-d CPR-Fano toric variety covered by 3 affine patches
>>> P2_123.fan().rays()
N( 1,  0),
N( 0,  1),
N(-2, -3)
in 2-d lattice N
>>> P2_123.gens()
(z0, z1, z2)
P4_11133(names='z+', base_ring=Rational Field)[source]

Construct the weighted projective space \(\mathbb{P}^4(1,1,1,3,3)\).

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P4_11133 = toric_varieties.P4_11133(); P4_11133
4-d CPR-Fano toric variety covered by 5 affine patches
sage: P4_11133.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-3, -3, -1, -1)
in 4-d lattice N
sage: P4_11133.gens()
(z0, z1, z2, z3, z4)
>>> from sage.all import *
>>> P4_11133 = toric_varieties.P4_11133(); P4_11133
4-d CPR-Fano toric variety covered by 5 affine patches
>>> P4_11133.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-3, -3, -1, -1)
in 4-d lattice N
>>> P4_11133.gens()
(z0, z1, z2, z3, z4)
P4_11133_resolved(names='z+', base_ring=Rational Field)[source]

Construct the weighted projective space \(\mathbb{P}^4(1,1,1,3,3)\).

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P4_11133_resolved = toric_varieties.P4_11133_resolved()
sage: P4_11133_resolved
4-d CPR-Fano toric variety covered by 9 affine patches
sage: P4_11133_resolved.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-3, -3, -1, -1),      N(-1, -1,  0,  0)
in 4-d lattice N
sage: P4_11133_resolved.gens()
(z0, z1, z2, z3, z4, z5)
>>> from sage.all import *
>>> P4_11133_resolved = toric_varieties.P4_11133_resolved()
>>> P4_11133_resolved
4-d CPR-Fano toric variety covered by 9 affine patches
>>> P4_11133_resolved.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-3, -3, -1, -1),      N(-1, -1,  0,  0)
in 4-d lattice N
>>> P4_11133_resolved.gens()
(z0, z1, z2, z3, z4, z5)
P4_11169(names='z+', base_ring=Rational Field)[source]

Construct the weighted projective space \(\mathbb{P}^4(1,1,1,6,9)\).

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P4_11169 = toric_varieties.P4_11169(); P4_11169
4-d CPR-Fano toric variety covered by 5 affine patches
sage: P4_11169.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-9, -6, -1, -1)
in 4-d lattice N
sage: P4_11169.gens()
(z0, z1, z2, z3, z4)
>>> from sage.all import *
>>> P4_11169 = toric_varieties.P4_11169(); P4_11169
4-d CPR-Fano toric variety covered by 5 affine patches
>>> P4_11169.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-9, -6, -1, -1)
in 4-d lattice N
>>> P4_11169.gens()
(z0, z1, z2, z3, z4)
P4_11169_resolved(names='z+', base_ring=Rational Field)[source]

Construct the blow-up of the weighted projective space \(\mathbb{P}^4(1,1,1,6,9)\) at its curve of \(\ZZ_3\) orbifold fixed points.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: P4_11169_resolved = toric_varieties.P4_11169_resolved()
sage: P4_11169_resolved
4-d CPR-Fano toric variety covered by 9 affine patches
sage: P4_11169_resolved.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-9, -6, -1, -1),      N(-3, -2,  0,  0)
in 4-d lattice N
sage: P4_11169_resolved.gens()
(z0, z1, z2, z3, z4, z5)
>>> from sage.all import *
>>> P4_11169_resolved = toric_varieties.P4_11169_resolved()
>>> P4_11169_resolved
4-d CPR-Fano toric variety covered by 9 affine patches
>>> P4_11169_resolved.fan().rays()
N( 1,  0,  0,  0),      N( 0,  1,  0,  0),      N( 0,  0,  1,  0),
N( 0,  0,  0,  1),      N(-9, -6, -1, -1),      N(-3, -2,  0,  0)
in 4-d lattice N
>>> P4_11169_resolved.gens()
(z0, z1, z2, z3, z4, z5)
WP(*q, **kw)[source]

Construct weighted projective \(n\)-space over a field.

INPUT:

  • q – a sequence of positive integers relatively prime to one another. The weights q can be given either as a list or tuple, or as positional arguments.

Two keyword arguments:

  • base_ring – a field (default: \(\QQ\))

  • names – string or list (tuple) of strings (default: 'z+'); see normalize_names() for acceptable formats.

OUTPUT:

  • A toric variety. If \(q=(q_0,\dots,q_n)\), then the output is the weighted projective space \(\mathbb{P}(q_0,\dots,q_n)\) over base_ring. names are the names of the generators of the homogeneous coordinate ring.

EXAMPLES:

A hyperelliptic curve \(C\) of genus 2 as a subscheme of the weighted projective plane \(\mathbb{P}(1,3,1)\):

sage: X = toric_varieties.WP([1,3,1], names='x y z')
sage: X.inject_variables()
Defining x, y, z
sage: g = y^2 - (x^6-z^6)
sage: C = X.subscheme([g]); C
Closed subscheme of 2-d toric variety covered by 3 affine patches defined by:
  -x^6 + z^6 + y^2
>>> from sage.all import *
>>> X = toric_varieties.WP([Integer(1),Integer(3),Integer(1)], names='x y z')
>>> X.inject_variables()
Defining x, y, z
>>> g = y**Integer(2) - (x**Integer(6)-z**Integer(6))
>>> C = X.subscheme([g]); C
Closed subscheme of 2-d toric variety covered by 3 affine patches defined by:
  -x^6 + z^6 + y^2
dP6(names='x u y v z w', base_ring=Rational Field)[source]

Construct the del Pezzo surface of degree 6 (\(\mathbb{P}^2\) blown up at 3 points) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: dP6 = toric_varieties.dP6(); dP6
2-d CPR-Fano toric variety covered by 6 affine patches
sage: dP6.fan().rays()
N( 0,  1),        N(-1,  0),        N(-1, -1),
N( 0, -1),        N( 1,  0),        N( 1,  1)
in 2-d lattice N
sage: dP6.gens()
(x, u, y, v, z, w)
>>> from sage.all import *
>>> dP6 = toric_varieties.dP6(); dP6
2-d CPR-Fano toric variety covered by 6 affine patches
>>> dP6.fan().rays()
N( 0,  1),        N(-1,  0),        N(-1, -1),
N( 0, -1),        N( 1,  0),        N( 1,  1)
in 2-d lattice N
>>> dP6.gens()
(x, u, y, v, z, w)
dP6xdP6(names='x0 x1 x2 x3 x4 x5 y0 y1 y2 y3 y4 y5', base_ring=Rational Field)[source]

Construct the product of two del Pezzo surfaces of degree 6 (\(\mathbb{P}^2\) blown up at 3 points) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: dP6xdP6 = toric_varieties.dP6xdP6(); dP6xdP6
4-d CPR-Fano toric variety covered by 36 affine patches
sage: dP6xdP6.fan().rays()
N( 0,  1,  0,  0),      N(-1,  0,  0,  0),      N(-1, -1,  0,  0),
N( 0, -1,  0,  0),      N( 1,  0,  0,  0),      N( 1,  1,  0,  0),
N( 0,  0,  0,  1),      N( 0,  0, -1,  0),      N( 0,  0, -1, -1),
N( 0,  0,  0, -1),      N( 0,  0,  1,  0),      N( 0,  0,  1,  1)
in 4-d lattice N
sage: dP6xdP6.gens()
(x0, x1, x2, x3, x4, x5, y0, y1, y2, y3, y4, y5)
>>> from sage.all import *
>>> dP6xdP6 = toric_varieties.dP6xdP6(); dP6xdP6
4-d CPR-Fano toric variety covered by 36 affine patches
>>> dP6xdP6.fan().rays()
N( 0,  1,  0,  0),      N(-1,  0,  0,  0),      N(-1, -1,  0,  0),
N( 0, -1,  0,  0),      N( 1,  0,  0,  0),      N( 1,  1,  0,  0),
N( 0,  0,  0,  1),      N( 0,  0, -1,  0),      N( 0,  0, -1, -1),
N( 0,  0,  0, -1),      N( 0,  0,  1,  0),      N( 0,  0,  1,  1)
in 4-d lattice N
>>> dP6xdP6.gens()
(x0, x1, x2, x3, x4, x5, y0, y1, y2, y3, y4, y5)
dP7(names='x u y v z', base_ring=Rational Field)[source]

Construct the del Pezzo surface of degree 7 (\(\mathbb{P}^2\) blown up at 2 points) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: dP7 = toric_varieties.dP7(); dP7
2-d CPR-Fano toric variety covered by 5 affine patches
sage: dP7.fan().rays()
N( 0,  1),        N(-1,  0),        N(-1, -1),
N( 0, -1),        N( 1,  0)
in 2-d lattice N
sage: dP7.gens()
(x, u, y, v, z)
>>> from sage.all import *
>>> dP7 = toric_varieties.dP7(); dP7
2-d CPR-Fano toric variety covered by 5 affine patches
>>> dP7.fan().rays()
N( 0,  1),        N(-1,  0),        N(-1, -1),
N( 0, -1),        N( 1,  0)
in 2-d lattice N
>>> dP7.gens()
(x, u, y, v, z)
dP8(names='t x y z', base_ring=Rational Field)[source]

Construct the del Pezzo surface of degree 8 (\(\mathbb{P}^2\) blown up at 1 point) as a toric variety.

INPUT:

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a CPR-Fano toric variety.

EXAMPLES:

sage: dP8 = toric_varieties.dP8(); dP8
2-d CPR-Fano toric variety covered by 4 affine patches
sage: dP8.fan().rays()
N( 1,  1),        N( 0,  1),
N(-1, -1),        N( 1,  0)
in 2-d lattice N
sage: dP8.gens()
(t, x, y, z)
>>> from sage.all import *
>>> dP8 = toric_varieties.dP8(); dP8
2-d CPR-Fano toric variety covered by 4 affine patches
>>> dP8.fan().rays()
N( 1,  1),        N( 0,  1),
N(-1, -1),        N( 1,  0)
in 2-d lattice N
>>> dP8.gens()
(t, x, y, z)
torus(n, names='z+', base_ring=Rational Field)[source]

Construct the n-dimensional algebraic torus \((\mathbb{F}^\times)^n\).

INPUT:

  • n – nonnegative integer. The dimension of the algebraic torus

  • names – string; names for the homogeneous coordinates. See normalize_names() for acceptable formats.

  • base_ring – a ring (default: \(\QQ\)); the base ring for the toric variety

OUTPUT: a toric variety.

EXAMPLES:

sage: T3 = toric_varieties.torus(3);  T3
3-d affine toric variety
sage: T3.fan().rays()
Empty collection
in 3-d lattice N
sage: T3.fan().virtual_rays()
N(1, 0, 0),
N(0, 1, 0),
N(0, 0, 1)
in 3-d lattice N
sage: T3.gens()
(z0, z1, z2)
sage: sorted(T3.change_ring(GF(3)).point_set().list())
[[1 : 1 : 1], [1 : 1 : 2], [1 : 2 : 1], [1 : 2 : 2],
 [2 : 1 : 1], [2 : 1 : 2], [2 : 2 : 1], [2 : 2 : 2]]
>>> from sage.all import *
>>> T3 = toric_varieties.torus(Integer(3));  T3
3-d affine toric variety
>>> T3.fan().rays()
Empty collection
in 3-d lattice N
>>> T3.fan().virtual_rays()
N(1, 0, 0),
N(0, 1, 0),
N(0, 0, 1)
in 3-d lattice N
>>> T3.gens()
(z0, z1, z2)
>>> sorted(T3.change_ring(GF(Integer(3))).point_set().list())
[[1 : 1 : 1], [1 : 1 : 2], [1 : 2 : 1], [1 : 2 : 2],
 [2 : 1 : 1], [2 : 1 : 2], [2 : 2 : 1], [2 : 2 : 2]]