Wall-crossing¶
This module contains algorithms related to wall-crossing.
We define the class WCS associated to a lattice with a skew-symmetric
form (or to a quiver). This class contains the quantum affine plane where all
invariants live and where wall-crossing takes place. It also contains
algorithms to jump between various types of invariants:
Stacky, Rational, Integer invariants associated to a stability parameter.
Total invariant (stacky invariant associated to the trivial stability parameter).
Stacky, Rational, Integer invariants associated to the attractor stability.
Invariant counting stable representations of a quiver for a given stability parameter.
EXAMPLES:
sage: from msinvar import *
sage: Q=KroneckerQuiver(2); Q
Kronecker quiver: Quiver with 2 vertices and 2 arrows
sage: Q.prec([2,2]) #fix precision vector
sage: Q.total().dict()
{(0, 0): 1,
(0, 1): y/(-y^2 + 1),
(0, 2): y^2/(y^6 - y^4 - y^2 + 1),
(1, 0): y/(-y^2 + 1),
(1, 1): y^4/(y^4 - 2*y^2 + 1),
(1, 2): y^7/(-y^8 + 2*y^6 - 2*y^2 + 1),
(2, 0): y^2/(y^6 - y^4 - y^2 + 1),
(2, 1): y^7/(-y^8 + 2*y^6 - 2*y^2 + 1),
(2, 2): y^12/(y^12 - 2*y^10 - y^8 + 4*y^6 - y^4 - 2*y^2 + 1)}
sage: I=Q.stacky([1,0]); I.dict()
{(0, 0): 1,
(0, 1): y/(-y^2 + 1),
(0, 2): y^2/(y^6 - y^4 - y^2 + 1),
(1, 0): y/(-y^2 + 1),
(1, 1): (y^2 + 1)/(y^2 - 1),
(1, 2): y/(-y^2 + 1),
(2, 0): y^2/(y^6 - y^4 - y^2 + 1),
(2, 1): y/(-y^2 + 1),
(2, 2): (y^6 + y^4 + 2*y^2)/(y^6 - y^4 - y^2 + 1)}
sage: I1=Q.stk2int(I); I1.dict()
{(0, 1): 1, (1, 0): 1, (1, 1): (-y^2 - 1)/y, (1, 2): 1, (2, 1): 1}
sage: I=Q.stacky([0,1]); I.dict()
{(0, 0): 1,
(0, 1): y/(-y^2 + 1),
(0, 2): y^2/(y^6 - y^4 - y^2 + 1),
(1, 0): y/(-y^2 + 1),
(2, 0): y^2/(y^6 - y^4 - y^2 + 1)}
sage: I1=Q.stk2int(I); I1.dict()
{(0, 1): 1, (1, 0): 1}
sage: Q.intAtt().dict() #integer attractor invariants
{(0, 1): 1, (1, 0): 1}
sage: Q.stable([1,0], slope=1/2).dict() #invariants of stable moduli spaces
{(1, 1): y^2 + 1}
-
class
msinvar.wall_crossing.WallCrossingStructure(rank=0, sform=None, prec=None)[source]¶ Bases:
objectWall-crossing structure.
Contains the quantum affine algebra and methods to compute and transform different types of invariants (stacky, rational, integer DT invariants corresponding to different stability parameters).
INPUT:
rank– Rank of the lattice.sform– Skew-symmetric form on the lattice (a function).prec– precision vector for the quantum affine plane.
-
total(I=None)[source]¶ Total invariant, meaning the stacky invariant for the trivial stability.
EXAMPLE:
sage: from msinvar import * sage: Q=JordanQuiver(1); Q # Quivers inherit from WCS Jordan quiver: Quiver with 1 vertices and 1 arrows sage: Q.prec([2]); # set precision vector sage: I=Q.total(); I.poly() 1 + (y^2/(y^2 - 1))*x + (y^6/(y^6 - y^4 - y^2 + 1))*x^2 sage: I.Log().poly() (y^2/(y^2 - 1))*x
-
stacky(z, I=None, algo='fast')[source]¶ Stacky invariant for the stability
z.See
total2stacky_algo1()for more details. The value ofalgocan be ‘fast’, ‘fast2’, ‘slow’. If the total invariantIis None, we considertotal().EXAMPLES:
sage: from msinvar import * sage: Q=KroneckerQuiver(2) sage: Q.prec([5,5]) sage: z=Stability([1,0]) sage: I1=Q.stacky(z,algo='fast') sage: I2=Q.stacky(z,algo='fast2') sage: I1([1,1]) (y^2 + 1)/(y^2 - 1) sage: I1.poly()-I2.poly() 0
-
Omb(*args, **kw)[source]¶ Alias for
rat_from_total().
-
Om(*args, **kw)[source]¶ Alias for
int_from_total().
-
stacky2total(I, z)[source]¶ See
stacky2total_algo1().
-
stk2stk(I, z, z1, algo='fast')[source]¶ Transform stacky invariant
Ifor stabilityzto the stacky invariant for stabilityz1.The value of
algocan be ‘fast’ or ‘slow’.
-
stk2rat(I, z=None)[source]¶ Transform stacky invariant
Ito the rational invariant. By default we assume thatzis a generic stability.
-
rat2stk(I, z=None)[source]¶ Transform rational invariant
Ito the stacky invariant. By default we assume thatzis a generic stability.
-
stk2int(I)[source]¶ Transform stacky invariant
Ito the integer invariant. We assume that the stability parameter is generic.
-
int2stk(I)[source]¶ Transform integer invariant
Ito the stacky invariant. We assume that the stability parameter is generic.
-
poly(I, z=None, slope=None)[source]¶ Transform invariant
Ito a polynomial, considering only degrees having a givenslopewith respect to a given stability parameterz.
-
stable_from_stacky(I)[source]¶ Count stable objects of a fixed slope, assuming that the stacky invariant
Icounting semistable objects of that slope is given. Based on arXiv:0708.1259.
-
stable_from_total(z, slope=0, I=None)[source]¶ Count
z-stable representations having a givenslope, assuming that the total invariantIis given. Based on arXiv:0708.1259.z– Stability parameter.slope– Slope value.I– Total invariant (if None, we considertotal()).
-
stable(*args, **kw)[source]¶ Alias for
stable_from_total().
-
simple(I=None)[source]¶ Count simple reprentations of a quiver, assuming that the total invariant
Iis given. IfIis None, we considertotal(). Based on arXiv:0708.1259.
-
stkAtt(I=None)[source]¶ Calculate stacky attractor invariant assuming that the total invariant is
I. IfIis None, we considertotal().
-
ratAtt(I=None)[source]¶ Calculate rational attractor invariant assuming that the total invariant is
I. IfIis None, we considertotal().
-
intAtt(I=None)[source]¶ Calculate integer attractor invariant assuming that the total invariant is
I. IfIis None, we considertotal().
-
OmhAtt(I=None)¶ Calculate stacky attractor invariant assuming that the total invariant is
I. IfIis None, we considertotal().
-
OmbAtt(I=None)¶ Calculate rational attractor invariant assuming that the total invariant is
I. IfIis None, we considertotal().
-
OmAtt(I=None)¶ Calculate integer attractor invariant assuming that the total invariant is
I. IfIis None, we considertotal().
-
stkAtt2total(I=None)[source]¶ Calculate total invariant, assuming that the stacky attractor invariant is
I. This is a recursive inversion ofstkAtt().
-
ratAtt2total(I=None)[source]¶ Calculate total invariant, assuming that the rational attractor invariant is
I.
-
intAtt2total(I=None)[source]¶ Calculate total invariant, assuming that the integer attractor invariant is
I.
-
msinvar.wall_crossing.WCS¶
-
msinvar.wall_crossing.total2stacky_algo1(W, I, z)[source]¶ Calculate stacky invariant for stability
z, assuming that the total invariant isI.W– Wall-crossing structure,I– Invariant,z– Stability.
Based on arXiv:math/0204059 (5.5) and implementation by Pieter Belmans. Has comparable speed to
total2stacky_algo2().
-
msinvar.wall_crossing.total2stacky_algo2(W, I, z)[source]¶ Calculate stacky invariant for stability
z, assuming that the total invariant isI.W– Wall-crossing structure,I– Invariant,z– Stability.
Has comparable speed to
total2stacky_algo1().
-
msinvar.wall_crossing.stacky2total_algo1(W, I, z)[source]¶ Calculate total invariant, assuming that the stacky invariant for stability
zisI.This algorithm is faster than
stacky2total_algo2().W– Wall-crossing structure,I– Invariant,z– Stability.
-
msinvar.wall_crossing.stacky2total_algo2(W, I, z)[source]¶ Calculate total invariant, assuming that the stacky invariant for stability
zisI.This is a recursive inversion of
total2stacky_algo1(). It is slower thanstacky2total_algo1().W– Wall-crossing structure,I– Invariant,z– Stability.