6.4 KiB
6.4 KiB
A demo of the vector_bundle package.¶
In [2]:
from vector_bundle import * F.<x> = FunctionField(GF(101))
Constructing an indecomposable bundle on an elliptic curve¶
We construct an indecomposable vector bundle of rank 5 and degree 3 on a function field of genus 1.
This construction may be done automatically using the atiyah_bundle
function but we break it down step by step.
In [5]:
R.<y> = F[] K.<y> = F.extension(y^2 - x^3 - x) deg_1_bundle = VectorBundle(K, K.places_infinite()[0].divisor()) E = deg_1_bundle print(E.coefficient_ideals()) print(E.basis_finite()) print(E.basis_infinite())
[Ideal (1) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x] [(1)] [((x/(x^2 + 1))*y)]
In [7]:
E = E.extension_by_global_sections() print(E.coefficient_ideals()) print(E.basis_finite()) print(E.basis_infinite())
[Ideal (x^2/(x^2 + 3)) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (1) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x] [(1, 0), (0, 1)] [(1, 0), (100*x^3/(x^2 + 1), (x/(x^2 + 1))*y)]
In [8]:
E = E.tensor_product(deg_1_bundle) print(E.coefficient_ideals()) print(E.basis_finite()) print(E.basis_infinite())
[Ideal (x^2/(x^2 + 3)) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (1) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x] [(1, 0), (0, 1)] [((x/(x^2 + 1))*y, 0), ((100*x^4/(x^4 + 2*x^2 + 1))*y, x^3/(x^2 + 1))]
In [9]:
E = E.extension_by_global_sections() print(E.coefficient_ideals()) print(E.basis_finite()) print(E.basis_infinite())
[Ideal (x^2/(x^2 + 3)) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (x^2/(x^2 + 3)) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (x^2/(x^2 + 3)) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (x^2/(x^2 + 3)) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (1) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x] [(1, 0, 0, 0, 0), (0, 1, 0, 0, 0), (0, 0, 1, 0, 0), (0, 0, 0, 1, 0), (0, 0, 0, 0, 1)] [(1, 0, 0, 0, 0), (0, 1, 0, 0, 0), (0, 0, 1, 0, 0), (100*x^3/(x^2 + 1), 0, 100/x^2*y, (x/(x^2 + 1))*y, 0), (x^6/(x^4 + 2*x^2 + 1), (100*x^4/(x^4 + 2*x^2 + 1))*y, (x/(x^2 + 1))*y, (100*x^4/(x^4 + 2*x^2 + 1))*y, x^3/(x^2 + 1))]
In [10]:
print(E.rank()) print(E.degree())
5 3
We check the algebra of global endomorphisms of E to ensure that it is indecomposable.
In [11]:
E.end().h0()
Out[11]:
[ [1 0 0 0 0] [0 1 0 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1] ]
Constructing a weakly stable vector bundle following Savin's method¶
We construct a weakly stable vector bundle of rank 3 and degree 5 by successive extensions by line bundles.
See [Sav07] in the references for details.
This, again, may be achieved directly using the savin_bundle
function.
In [12]:
F = VectorBundle(K, 2*K.places_infinite()[0].divisor()) F1 = VectorBundle(K, K.places_finite()[0].divisor()) E1 = F1 E2 = F.non_trivial_extension(E1) E3 = F.non_trivial_extension(E2) print(E3.rank()) print(E3.degree()) print(E3.coefficient_ideals()) print(E3.basis_finite()) print(E3.basis_infinite())
3 5 [Ideal (1, 1/x*y) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (1) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x, Ideal (1) of Maximal order of Function field in y defined by y^2 + 100*x^3 + 100*x] [(1, 0, 0), (0, 1, 0), (0, 0, 1)] [(1, 0, 0), ((100*x/(x^2 + 1))*y, x^3/(x^2 + 1), 0), (0, (100*x^4/(x^4 + 2*x^2 + 1))*y, x^3/(x^2 + 1))]