Examples#Compute and draw walls for the Hilbert scheme of twisted cubics.
load('stability_library.sage')
var('a,b', domain = RR)
v = 3*O(2)  2*O(3) #The Chern character of an ideal sheaf of a twisted cubic in $\P^3$.
l = v.computeWalls(2)
print l
J = (b, 6, 1)
K = (a, 0, 4)
p = implicit_plot(v.hyperbola(a, b), J, K, color = 'orange')
for w in l:
p += implicit_plot(expand(v.wall(w, a, b, tilt = True)), J, K)
p += implicit_plot(v.Q(v, a, b, bridgeland = True), J, K, color = 'green') #All walls have to be outside this semicircle due to the generalized Bogomolov Gieseker inequality.
show(p)
#Compute and draw walls for the Hilbert scheme of elliptic quartics.
load('stability_library.sage')
var('a,b', domain = RR)
v = 2*O(2)  O(4) #The Chern character of an ideal sheaf of a twisted cubic in $\P^3$.
l = v.computeWalls(2)
print l
J = (b, 8, 1)
K = (a, 0, 4)
p = implicit_plot(v.hyperbola(a, b), J, K, color = 'orange')
for w in l:
p += implicit_plot(expand(v.wall(w, a, b, tilt = True)), J, K)
p += implicit_plot(v.Q(v, a, b, bridgeland = True), J, K, color = 'green') #All walls have to be outside this semicircle due to the generalized Bogomolov Gieseker inequality.
show(p)
#Let I_C be the ideal sheaf of an elliptic quartic in P^3. Assuming I_C is in <O(5), T(6), O(4), O(3)>, where T is the tangent bundle, what is the dimension vector?
load('stability_library.sage')
I = 2*O(2)  O(4) #The class of I_C.
collection = ExceptionalCollection(6)
collection.rightMutate(0)
print I.computeDimVector(collection)
Created on 05 August 2015
@author: Benjamin Schmidt
Library for various computations on stability in P^3.
Z_{a, b, s, bridgeland = True} = ch_3^b + (1/6 + s)*a^2*ch_1^b + I*(ch_2^b  a^2/2*ch_0^b)
Z_{a, b, tilt = True} = ch_2^b + a^2/2*ch_0^b + I*ch_1^b
Z_{a, b} = ch_1^b + I*ch_0^b

class stability_library.CohomologyClass(vec=(0, 0, 0, 0))¶
A cohomology class in H^*(P^3). Elements can be accessed and changed as in a list. Operators: +  * / **

Q(v, a=0, b=0, K=1, tilt=False, bridgeland=False)¶
Returns the value of the bilinear form Q_{a, b, K}(v, self) if bridgeland = True.
If tilt = True, then it returns the mixed BogomolovGieseker discriminant between v, w.

Z(a=1, b=0, s=0, tilt=False, bridgeland=False)¶
Returns the central charge of the object. If tilt = True returns the tilt stability
central charge. If bridgeland = True return the Bridgeland central charge. In all other
cases returns the central charge fo classical Mumford slopestability.

ch(l, b=0)¶
Returns the lth Chern character twisted by b.

computeDimVector(collection)¶
Returns the dimension vector that any object with this Chern character must have with respect
to the exceptional collection if the object is in the quiver category.

computeWalls(b, deg=1)¶
Returns a list of dimension vectors for all potential walls in tiltstability for fixed b.
deg = min{HK > 0: K any divisor} in case we use this on a different space than projective space.
TREAT DEG != 1 WITH CAUTION!

hyperbola(a=0, b=0)¶
Returns an expression whose zero set the hyperbola
u_{a, b}(self) = 0.

mu(a=1, b=0, s=0, tilt=False, bridgeland=False)¶
Returns the slope of the object. If tilt = True returns the nuslope. If bridgeland = True
returns the lambdaslope. In all other cases returns the classical Mumford slope.

wall(v, a=0, b=0, s=0, tilt=False, bridgeland=False)¶
Returns an expression whose zero set is the numerical wall between two objects with Chern
character v and self. If tilt = True it is computed in tilt stability. If bridgeland = True
it is computed in Bridgeland stability

class stability_library.ExceptionalCollection(n=0)¶
A full strong exceptional collection of vector bundles on P^3. Elements can be accessed as in a list.

copy()¶
Returns a copy of the collection.

dualCollection()¶
Returns the dual exceptional collection.

getArrows()¶
Returns a tuple with the numbers of arrows.

getHigherRelations()¶
Returns the number of relations between relations assuming this is the exceptional collection determining simple representations.
THE MATH BEHIND THIS FUNCTION IS PRETTY SHAKY

getRelations()¶
Returns a tuple with the numbers of relations assuming this is the exceptional collection determining simple representations.

leftMutate(i)¶
Mutates (E_i, E_{i+1}) to (L_{E_i}(E_{i+1}), E_i).

rightMutate(i)¶
Mutates (E_i, E_{i+1}) to (E_{i+1}, R_{E_{i+1}}(E_i)).

class stability_library.LeftMutation(E, F)¶
Bases: stability_library.CohomologyClass
A left mutation of two exceptional vector bundles.

class stability_library.O(n)¶
Bases: stability_library.CohomologyClass
A line bundle on P^3.

class stability_library.QuiverRep(collection, dim)¶
A representation of a quiver given by a full strong exceptional collection on P^3.

expectedDimension()¶
Computes the expected dimension of the moduli space of quiver representation with dimension vector self.dim.
TREAT 4TERM COMPLEXES WITH CAUTION

leftMutate(i)¶
Mutates (E_i, E_{i+1}) to (L_{E_i}(E_{i+1}), E_i).
Computes the new dimension vector assuming the object stays in the category.
IT IS NOT CHECKED WHETHER THE OBJECT STAYS IN THE CATEGORY.

rightMutate(i)¶
Mutates (E_i, E_{i+1}) to (E_{i+1}, R_{E_{i+1}}(E_i)).
Computes the new dimension vector assuming the object stays in the category.
IT IS NOT CHECKED WHETHER THE OBJECT STAYS IN THE CATEGORY.

class stability_library.RightMutation(E, F)¶
Bases: stability_library.CohomologyClass
A right mutation of two exceptional vector bundles.

stability_library.circleData(equation)¶
Takes the equation of a semicircle in tilt stability and puts it into some normal form.
The expression needs to be of the form x*a^2 + x*b^2 + y*b + z with variables a and b.

stability_library.hom(A, B)¶
Return the dimension of Hom(A,B). Only works if A and B are in the same full strong exceptional collection or both are line bundles.

stability_library.inLattice(v, b, deg=1)¶
Returns True if ch^(b)(v) in Z^2 oplus 1/2/d Z oplus ldots oplus 1/i! Z. False otherwise.

stability_library.isInt(n)¶
Returns True if n is an integer and False if n is not an integer.

stability_library.isList(l)¶
Returns True if l supports l[0]. Return False if not.

stability_library.mathRange(a, b, steps=1, lopen=False, ropen=False)¶
Returns a list of numbers x between a and b such that x in steps*Z
If lopen = True, then it does not include a.
If ropen = True, then it does not include b.

stability_library.productRange(a, b, stepx=1, stepy=1, lopen=False, ropen=False)¶
Returns a list of pairs (x,y) such that x*y is in in between a and b, where x
eq 0
eq y. Moreover, x in stepx*Z and y in stepy*Z. If lopen = True, then a < x*y. Otherwise, a <= x*y. If ropen = True, then x*y < b. Otherwise, x*y <= b.

stability_library.roundUp(a, steps=1)¶
Returns min{x in steps*Z : a<=x).

stability_library.chi(E, F)¶
Computes the Euler Characteristic xi(self, other) via the HirzebruchRiemanRoch Theorem.

Updating...
stability_library.sage (21k) Benjamin Schmidt, Sep 16, 2016, 6:14 PM
