Construct sheaves on toric varieties#

A toric vector bundle (on a toric variety) is a vector bundle that is equivariant with respect to the algebraic torus action.

sage.schemes.toric.sheaf.constructor.CotangentBundle(X)#

Construct the cotangent bundle of a toric variety.

INPUT:

  • X – a toric variety. The base space of the bundle.

OUTPUT:

The cotangent bundle as a Klyachko bundle.

EXAMPLES:

sage: dP7 = toric_varieties.dP7()
sage: from sage.schemes.toric.sheaf.constructor import CotangentBundle
sage: CotangentBundle(dP7)
Rank 2 bundle on 2-d CPR-Fano toric variety covered by 5 affine patches.
sage.schemes.toric.sheaf.constructor.LineBundle(X, D)#

Construct the rank-1 bundle \(O(D)\).

INPUT:

  • X – a toric variety. The base space of the bundle.

  • D – a toric divisor.

OUTPUT:

The line bundle \(O(D)\) as a Klyachko bundle of rank 1.

EXAMPLES:

sage: X = toric_varieties.dP8()
sage: D = X.divisor(0)
sage: from sage.schemes.toric.sheaf.constructor import LineBundle
sage: O_D = LineBundle(X, D)
sage: O_D.cohomology(dim=True, weight=(0,0))
(1, 0, 0)
class sage.schemes.toric.sheaf.constructor.SheafLibrary(toric_variety)#

Bases: object

Utility object to construct sheaves on toric varieties.

Warning

You should never construct instances manually. Can be accessed from a toric variety via the sage.schemes.toric.variety.ToricVariety_field.sheaves attribute.

EXAMPLES:

sage: type(toric_varieties.P2().sheaves)
<class 'sage.schemes.toric.sheaf.constructor.SheafLibrary'>
Klyachko(multi_filtration)#

Construct a Klyachko bundle (sheaf) from filtration data.

INPUT:

  • multi_filtration – a multi-filtered vectors space with multiple filtrations being indexed by the rays of the fan. Either an instance of MultiFilteredVectorSpace() or something (like a dictionary of ordinary filtered vector spaces).

OUTPUT:

The Klyachko bundle defined by the filtrations, one for each ray, of a vector space.

EXAMPLES:

sage: P1 = toric_varieties.P1()
sage: v1, v2, v3 = [(1,0,0), (0,1,0), (0,0,1)]
sage: F1 = FilteredVectorSpace({1: [v1, v2, v3], 3: [v1]})
sage: F2 = FilteredVectorSpace({0: [v1, v2, v3], 2: [v2, v3]})
sage: P1 = toric_varieties.P1()
sage: r1, r2 = P1.fan().rays()
sage: F = MultiFilteredVectorSpace({r1:F1, r2:F2});  F
Filtrations
    N(-1): QQ^3 >= QQ^2 >= QQ^2 >=  0   >= 0
     N(1): QQ^3 >= QQ^3 >= QQ^1 >= QQ^1 >= 0
sage: P1.sheaves.Klyachko(F)
Rank 3 bundle on 1-d CPR-Fano toric variety covered by 2 affine patches.
cotangent_bundle()#

Return the cotangent bundle of the toric variety.

OUTPUT:

The cotangent bundle as a Klyachko bundle.

EXAMPLES:

sage: dP6 = toric_varieties.dP6()
sage: TX = dP6.sheaves.tangent_bundle()
sage: TXdual = dP6.sheaves.cotangent_bundle()
sage: TXdual == TX.dual()
True
divisor(*args, **kwds)#

Return a toric divisor.

INPUT:

This is just an alias for sage.schemes.toric.variety.ToricVariety_field.divisor(), see there for details.

By abuse of notation, you can usually use the divisor \(D\) interchangeably with the line bundle \(O(D)\).

OUTPUT:

A toric divisor.

EXAMPLES:

sage: dP6 = toric_varieties.dP6()
sage: dP6.inject_variables()
Defining x, u, y, v, z, w
sage: D = dP6.sheaves.divisor(x*u^3);  D
V(x) + 3*V(u)
sage: D == dP6.divisor(x*u^3)
True
line_bundle(divisor)#

Construct the rank-1 bundle \(O(D)\).

INPUT:

  • divisor – a toric divisor.

OUTPUT:

The line bundle \(O(D)\) for the given divisor as a Klyachko bundle of rank 1.

EXAMPLES:

sage: X = toric_varieties.dP8()
sage: D = X.divisor(0)
sage: O_D = X.sheaves.line_bundle(D)
sage: O_D.cohomology(dim=True, weight=(0,0))
(1, 0, 0)
tangent_bundle()#

Return the tangent bundle of the toric variety.

OUTPUT:

The tangent bundle as a Klyachko bundle.

EXAMPLES:

sage: toric_varieties.dP6().sheaves.tangent_bundle()
Rank 2 bundle on 2-d CPR-Fano toric variety covered by 6 affine patches.
trivial_bundle(rank=1)#

Return the trivial bundle of rank r.

INPUT:

  • rank – integer (optional; default: \(1\)). The rank of the bundle.

OUTPUT:

The trivial bundle as a Klyachko bundle.

EXAMPLES:

sage: P2 = toric_varieties.P2()
sage: I3 = P2.sheaves.trivial_bundle(3);  I3
Rank 3 bundle on 2-d CPR-Fano toric variety covered by 3 affine patches.
sage: I3.cohomology(weight=(0,0), dim=True)
(3, 0, 0)
sage.schemes.toric.sheaf.constructor.TangentBundle(X)#

Construct the tangent bundle of a toric variety.

INPUT:

  • X – a toric variety. The base space of the bundle.

OUTPUT:

The tangent bundle as a Klyachko bundle.

EXAMPLES:

sage: dP7 = toric_varieties.dP7()
sage: from sage.schemes.toric.sheaf.constructor import TangentBundle
sage: TangentBundle(dP7)
Rank 2 bundle on 2-d CPR-Fano toric variety covered by 5 affine patches.
sage.schemes.toric.sheaf.constructor.TrivialBundle(X, rank=1)#

Return the trivial bundle of rank r.

INPUT:

  • X – a toric variety. The base space of the bundle.

  • rank – the rank of the bundle.

OUTPUT:

The trivial bundle as a Klyachko bundle.

EXAMPLES:

sage: P2 = toric_varieties.P2()
sage: from sage.schemes.toric.sheaf.constructor import TrivialBundle
sage: I3 = TrivialBundle(P2, 3);  I3
Rank 3 bundle on 2-d CPR-Fano toric variety covered by 3 affine patches.
sage: I3.cohomology(weight=(0,0), dim=True)
(3, 0, 0)