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 spacenames
– string; names for the homogeneous coordinates. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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 casek=0
is the same asCube_face_fan()
names
– string; names for the homogeneous coordinates. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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 spacenames
– string; names for the homogeneous coordinates. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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 weightsq
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+'
); seenormalize_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)\) overbase_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. Seenormalize_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. Seenormalize_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. Seenormalize_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. Seenormalize_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 torusnames
– string; names for the homogeneous coordinates. Seenormalize_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]]