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)[source]¶
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.
>>> from sage.all import * >>> dP7 = toric_varieties.dP7() >>> from sage.schemes.toric.sheaf.constructor import CotangentBundle >>> 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)[source]¶
Construct the rank-1 bundle \(O(D)\).
INPUT:
X
– a toric variety; the base space of the bundleD
– 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)
>>> from sage.all import * >>> X = toric_varieties.dP8() >>> D = X.divisor(Integer(0)) >>> from sage.schemes.toric.sheaf.constructor import LineBundle >>> O_D = LineBundle(X, D) >>> O_D.cohomology(dim=True, weight=(Integer(0),Integer(0))) (1, 0, 0)
- class sage.schemes.toric.sheaf.constructor.SheafLibrary(toric_variety)[source]¶
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'>
>>> from sage.all import * >>> type(toric_varieties.P2().sheaves) <class 'sage.schemes.toric.sheaf.constructor.SheafLibrary'>
- Klyachko(multi_filtration)[source]¶
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 ofMultiFilteredVectorSpace()
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.
>>> from sage.all import * >>> P1 = toric_varieties.P1() >>> v1, v2, v3 = [(Integer(1),Integer(0),Integer(0)), (Integer(0),Integer(1),Integer(0)), (Integer(0),Integer(0),Integer(1))] >>> F1 = FilteredVectorSpace({Integer(1): [v1, v2, v3], Integer(3): [v1]}) >>> F2 = FilteredVectorSpace({Integer(0): [v1, v2, v3], Integer(2): [v2, v3]}) >>> P1 = toric_varieties.P1() >>> r1, r2 = P1.fan().rays() >>> 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 >>> P1.sheaves.Klyachko(F) Rank 3 bundle on 1-d CPR-Fano toric variety covered by 2 affine patches.
- cotangent_bundle()[source]¶
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
>>> from sage.all import * >>> dP6 = toric_varieties.dP6() >>> TX = dP6.sheaves.tangent_bundle() >>> TXdual = dP6.sheaves.cotangent_bundle() >>> TXdual == TX.dual() True
- divisor(*args, **kwds)[source]¶
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
>>> from sage.all import * >>> dP6 = toric_varieties.dP6() >>> dP6.inject_variables() Defining x, u, y, v, z, w >>> D = dP6.sheaves.divisor(x*u**Integer(3)); D V(x) + 3*V(u) >>> D == dP6.divisor(x*u**Integer(3)) True
- line_bundle(divisor)[source]¶
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)
>>> from sage.all import * >>> X = toric_varieties.dP8() >>> D = X.divisor(Integer(0)) >>> O_D = X.sheaves.line_bundle(D) >>> O_D.cohomology(dim=True, weight=(Integer(0),Integer(0))) (1, 0, 0)
- tangent_bundle()[source]¶
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.
>>> from sage.all import * >>> 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)[source]¶
Return the trivial bundle of rank
r
.INPUT:
rank
– integer (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)
>>> from sage.all import * >>> P2 = toric_varieties.P2() >>> I3 = P2.sheaves.trivial_bundle(Integer(3)); I3 Rank 3 bundle on 2-d CPR-Fano toric variety covered by 3 affine patches. >>> I3.cohomology(weight=(Integer(0),Integer(0)), dim=True) (3, 0, 0)
- sage.schemes.toric.sheaf.constructor.TangentBundle(X)[source]¶
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.
>>> from sage.all import * >>> dP7 = toric_varieties.dP7() >>> from sage.schemes.toric.sheaf.constructor import TangentBundle >>> 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)[source]¶
Return the trivial bundle of rank
r
.INPUT:
X
– a toric variety; the base space of the bundlerank
– 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)
>>> from sage.all import * >>> P2 = toric_varieties.P2() >>> from sage.schemes.toric.sheaf.constructor import TrivialBundle >>> I3 = TrivialBundle(P2, Integer(3)); I3 Rank 3 bundle on 2-d CPR-Fano toric variety covered by 3 affine patches. >>> I3.cohomology(weight=(Integer(0),Integer(0)), dim=True) (3, 0, 0)