Square CoCalc Logo
FeaturesSoftwarePricingInfoPoliciesShareSupport Try Sign InSign Up
Project: admcycles
Views: 681
Visibility: Unlisted (only visible to those who know the link)
Image: ubuntu2004
| Embed | Download | Raw
Kernel: SageMath 9.1

admcycles - a Sage package for computations in the tautological ring of the moduli space of stable curves


Based on earlier implementation by Aaron Pixton

  • Johannes Schmitt

  • Jason van Zelm

  • Vincent Delecroix

How to get access

Website : https://gitlab.com/jo314schmitt/admcycles
Online tool : https://cocalc.com - currently slightly older version
User manual : https://arxiv.org/abs/2002.01709

The moduli space of stable curves

Definition/Theorem (Deligne, Mumford - 1969)
Let g,n0g,n \geq 0 be integers (with 2g2+n>02g-2+n>0). $$\overline{\mathcal{M}}_{g,n} = \left\{(C,p_1, \ldots, p_n) \colon \begin{array}{l} {C \text{ compact complex algebraic}\\ \text{curve of }\color{red}{\text{arithmetic}}\text{ genus }g \\ \text{with at worst }\color{red}{\text{nodal singularities}}}\\ {p_1, \ldots, p_n \in C \text{ distinct $\color{red}{\text{smooth}}ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 8: points}̲}\\ {\colo…$ Then we have

  • Mg,n\overline{\mathcal{M}}_{g,n} is a smooth, irreducible, compact complex orbifold of dimension dimCMg,n=3g3+n\dim_\mathbb{C} \overline{\mathcal{M}}_{g,n} = 3g-3+n.

  • The subset Mg,n\mathcal{M}_{g,n} where the curve CC is smooth is dense and open and the complement Mg,n\partial \overline{\mathcal{M}}_{g,n} is a normal-crossing divisor.

Below we illustrate the space M3,2\overline{\mathcal{M}}_{3,2}.

Recursive boundary structure

To (C,p1,,pn)Mg,n(C,p_1, \ldots, p_n) \in \overline{\mathcal{M}}_{g,n} we can associate a stable graph Γ(C,p1,,pn)\Gamma_{(C,p_1, \ldots,p_n)}

Conversely, given a stable graph Γ\Gamma we have a gluing map ξΓ:vV(Γ)Mg(v),n(v)=M1,3×M2,1M3,2\xi_\Gamma : \prod_{v \in V(\Gamma)} \overline{\mathcal{M}}_{g(v),n(v)} = \overline{\mathcal{M}}_{1,3} \times \overline{\mathcal{M}}_{2,1}\to \overline{\mathcal{M}}_{3,2}

The map ξΓ\xi_\Gamma is finite with image equal to the closure MΓ\overline{\mathcal{M}}^\Gamma of MΓ={(C,p1,,pn):Γ(C,p1,,pn)=Γ}\mathcal{M}^\Gamma = \{(C,p_1, \ldots, p_n) : \Gamma_{(C,p_1, \ldots, p_n)} = \Gamma\}

In [0]:
from admcycles import * # list_strata(g,n,e) returns the list of stable graphs in Mbar_g,n with e edges L = list_strata(3,2,1) L


Execute the cell above (which says from admcycles import * ...) by clicking the grey box and then pressing Shift + Enter to start the computation.

Then, use the cell below to compute the number of stable graphs in M3,2\overline{\mathcal{M}}_{3,2} with precisely 2 edges.

(Hint: given a list L you can compute its length using len(L))

In [0]:

The cohomology H(Mg,n)H^*(\overline{\mathcal{M}}_{g,n}) of Mg,n\overline{\mathcal{M}}_{g,n}

Mg,n\overline{\mathcal{M}}_{g,n} compact space     \implies the singular cohomology H(Mg,n)H^*(\overline{\mathcal{M}}_{g,n}) is a finite-dimensional Q\mathbb{Q}-algebra

Definition (ψ\psi-classes)
LiMg,n\mathbb{L}_i \to \overline{\mathcal{M}}_{g,n} complex line bundle, Li(C,p1,,pn)=TpiC\mathbb{L}_i|_{(C,p_1, \ldots, p_n)} = T_{p_i}^* C ψi=c1(Li)H2(Mg,n).\psi_i = c_1(\mathbb{L}_i) \in H^2(\overline{\mathcal{M}}_{g,n}).

Definition (κ\kappa-classes)
Forgetful morphism F:Mg,n+1Mg,n,(C,p1,,pn,pn+1)(C,p1,,pn)F: \overline{\mathcal{M}}_{g,n+1} \to \overline{\mathcal{M}}_{g,n}, (C,p_1, \ldots, p_n, p_{n+1}) \mapsto (C,p_1, \ldots, p_n) [CC smooth] κa=F((ψn+1)a+1)H2a(Mg,n).\kappa_a = F_* \left( (\psi_{n+1})^{a+1}\right) \in H^{2a}(\overline{\mathcal{M}}_{g,n}).

Definition (The tautological ring)
The tautological ring RH(Mg,n)H(Mg,n)RH^*(\overline{\mathcal{M}}_{g,n}) \subset H^*(\overline{\mathcal{M}}_{g,n}) is spanned as a Q\mathbb{Q}-vector subspace by elements [Γ,α]=(ξΓ)(product of κ,ψ-classesα on vV(Γ)Mg(v),n(v)),[\Gamma,\alpha]=(\xi_\Gamma)_* \left(\underbrace{\text{product of }\kappa,\psi\text{-classes}}_{\alpha}\text{ on }\prod_{v \in V(\Gamma)} \overline{\mathcal{M}}_{g(v),n(v)} \right), called decorated strata classes.

Let's start playing around with tautological classes. We can display a list of all generators [Γ,α]RH2d(Mg,n)[\Gamma, \alpha] \in RH^{2d}(\overline{\mathcal{M}}_{g,n}) using the function list_tautgens(g,n,d) and get access to this list using tautgens(g,n,d).

In [0]:
list_tautgens(3,2,1) T = tautgens(3,2,1)

Theorem (Graber, Pandharipande - 2003)
The set of tautological classes RH(Mg,n)RH^*(\overline{\mathcal{M}}_{g,n}) is closed under the intersection/cup product, and there exists an explicit formula [Γ,α][Γ,α]=μi[Γi,αi][\Gamma,\alpha] \cdot [\Gamma',\alpha'] = \sum \mu_i [\Gamma_i, \alpha_i] with Γi\Gamma_i running over graphs which are simultaneous specializations of Γ\Gamma and Γ\Gamma'.

We can look at some examples involving the generators above.

In [0]:
T[3]*T[7] # classes of two boundary divisors, intersecting transversally
In [0]:
T[7]^2 # self-intersection formula of boundary divisor

We can also compute actual intersection numbers. For this, given a tautological class t contained in RH2(3g3+n)(Mg,n)RH^{2(3g-3+n)}(\overline{\mathcal{M}}_{g,n}), we can compute its degree Mg,nt=deg(t[Mg,n])\int_{\overline{\mathcal{M}}_{g,n}} \mathrm{t} = \mathrm{deg}(\mathrm{t} \frown [\overline{\mathcal{M}}_{g,n}]) using t.evaluate(). This is based on [Witten - 1991; Kontsevich - 1992].


Use the cell below to compute the integral [M3,2]ψ16ψ22.\int_{[\overline{\mathcal{M}}_{3,2}]} \psi_1^6 \psi_2^2. Hint: You can get access to the classes ψi\psi_i either from the list T above, or using the function psiclass(i,g,n).

In [0]:

An important aspect of the tautological ring is that the generators [Γ,α][\Gamma, \alpha] are not necessarily linearly independent. A linear relation between them is called a tautological relation. A lot of work has gone into studying such relations (Faber, Zagier - 2000; Pandharipande, Pixton - 2010; Pixton - 2012; Pandharipande, Pixton, Zvonkine - 2013), finally leading to a conjectural description of all tautological relations, originally proposed by Pixton.

These so-called generalized Faber-Zagier relations RFZR^{\text{FZ}} have been implemented by Pixton in the predecessor of admcycles and are accessible in admcycles in two ways: given a tautological class t in RH2d(Mg,n)RH^{2d}(\overline{\mathcal{M}}_{g,n}) you can

  • check if it is contained in the system RFZR^{\text{FZ}} (and thus zero) by calling t.is_zero(),

  • express it in a basis of the vector space span([Γ,α]:Γ,α)/RFZ,\mathrm{span}([\Gamma, \alpha] : \Gamma, \alpha) / R^{\text{FZ}}, which is conjecturally isomorphic to RH2d(Mg,n)RH^{2d}(\overline{\mathcal{M}}_{g,n}), by calling t.toTautbasis().


Verify one of the most important tautological relations, called the WDVV-relation on the space M0,4\overline{\mathcal{M}}_{0,4}:

In [0]:
In [0]:

Natural cycle classes on the moduli space of stable curves

Using the fact that Mg,n\overline{\mathcal{M}}_{g,n} is a moduli space, there are many ways to construct interesting cohomology classes on it. Many (though not all) of them actually result in tautological classes, and again many (though not all) of these have been implemented in admcycles.

A) Lambda classes (and generalizations)

On Mg,n\overline{\mathcal{M}}_{g,n} there exists a vector bundle Eg\mathbb{E}_g, called the Hodge bundle, with fibres Eg(C,p1,,pn)=H0(C,ωC).\mathbb{E}_g|_{(C,p_1, \ldots, p_n)} = H^0(C, \omega_C). The Chern classes λi=ci(Eg)H2i(Mg,n)\lambda_i = c_i(\mathbb{E}_g) \in H^{2i}(\overline{\mathcal{M}}_{g,n}) are called the λ\lambda-classes. They are tautological, with an explicit formula first computed by Mumford, and can be computed in terms of generators [Γ,α][\Gamma, \alpha] using lambdaclass(i,g,n).


A special case of the main result of [Faber, Pandharipande - 1998] is that the generating series F(t)=1+g0t2gMg,1ψ12g2λgF(t) = 1 + \sum_{g \geq 0} t^{2g} \int_{\overline{\mathcal{M}}_{g,1}} \psi_1^{2g-2} \lambda_g is given by F(t)=t/2sin(t/2).F(t) = \frac{t/2}{\sin(t/2)}. Check their result for g=2g=2.

Hint: To get you started, I compute the expansion of FF at t=0t=0 below.

In [0]:
R.<t> = PowerSeriesRing(QQ) F = (t/2)/sin(t/2); F
In [0]:

Note that for the universal curve π:Cg,nMg,n\pi : \overline{\mathcal{C}}_{g,n} \to \overline{\mathcal{M}}_{g,n} and the relative dualizing line bundle ωπ\omega_\pi of this morphism, we have Eg=R0πωπ.\mathbb{E}_g = R^0 \pi_* \omega_\pi. The paper [Pagani, Ricolfi, van Zelm - 2019] generalizes the λ\lambda-classes and computes, for an arbitrary line bundle L\mathcal{L} on Cg,n\overline{\mathcal{C}}_{g,n} the Chern classes ci(RπL)c_i(R^\bullet \pi_* \mathcal{L}) of the derived pushforward of L\mathcal{L} by π\pi. In fact, admcycles had a hand in this: the original version [Pagani, Ricolfi - 2018] of the paper missed some terms in the computation, which was discovered by van Zelm using admcycles.

B) Admissible cover cycles

For SMg,nS \subset \overline{\mathcal{M}}_{g,n} a closed, algebraic subset of C\mathbb{C}-codimension dd, there exists a fundamental class [S]Hdim2d(Mg,n)Hdim2d(Mg,n)PDH2d(Mg,n),[S] \in H_{\dim - 2d}(\overline{\mathcal{M}}_{g,n}) \cong H^{\dim - 2d}(\overline{\mathcal{M}}_{g,n})^\vee \underset{\mathrm{PD}}{\cong} H^{2d}(\overline{\mathcal{M}}_{g,n}), where PD\mathrm{PD} is the isomorphism from Poincaré duality.

In joint work with Jason van Zelm, we studied admissible cover cycles - fundamental classes of loci of curves (C,p1,,pr)(C,p_1, \ldots, p_r) in Mg,r\overline{\mathcal{M}}_{g,r} admitting finite covers CDC \to D to some curve DD of genus ggg'\leq g such that p1,,prp_1, \ldots, p_r are ramification points of the cover.

An important special case are the loci of hyperelliptic curves

Hypg,n,2m={(C,p1,,pn,q1,q1,,qm,qm):C hyperelliptic,pi Weierstrass points,qj,qj hyperelliptic conjugate}Mg,n+2m\begin{equation*} \mathrm{Hyp}_{g,n,2m} = \left\{(C,p_1,\ldots, p_n, q_1, q_1', \ldots, q_m, q_m') : \begin{array}{c} C \text{ hyperelliptic},\\p_i\text{ Weierstrass points},\\ q_j, q_j' \text{ hyperelliptic conjugate}\end{array} \right\} \subset \mathcal{M}_{g,n+2m} \end{equation*}

Then, [Faber, Pandharipande - 2013] showed that the fundamental classes of the closures

[Hypg,n,2m]H(Mg,n+2m),\begin{align*} [\overline{\mathrm{Hyp}}_{g,n,2m}] \in H^*(\overline{\mathcal{M}}_{g,n+2m}), \end{align*}

are always tautological, and in many cases, the package admcycles can compute them via the function Hyperell(g,n,m).

C) Strata of differentials

Given a=(a1,,an)Zn\textbf{a}=(a_1, \ldots, a_n) \in \mathbb{Z}^n with iai=2g2\sum_i a_i = 2g-2, we consider the locus Hg(a)={(C,p1,,pn):ωCOC(i=1naipi)}={(C,p1,,pn):η meromorphic differential on C with div(η)=i=1naipi}Mg,n.\begin{align*} \mathcal{H}_g(\textbf{a}) &= \left \{(C,p_1, \ldots, p_n) : \omega_C \cong \mathcal{O}_C \left( \sum_{i=1}^n a_i p_i \right) \right \} \\ &=\left \{(C,p_1, \ldots, p_n) : \begin{array}{c} \exists\, \eta \text{ meromorphic differential on $C$}\\\text{ with }\mathrm{div}(\eta) =\sum_{i=1}^n a_i p_i \end{array} \right \}\subseteq \mathcal{M}_{g,n}. \end{align*} Then Hg(a)\mathcal{H}_g(\textbf{a}) is a closed algebraic subset of Mg,n\mathcal{M}_{g,n} with codimCHg(a)={g1 for a1,,an0, (strata of holomorphic differentials)g otherwise. (strata of meromorphic differentials) \mathrm{codim}_\mathbb{C} \mathcal{H}_g(\textbf{a}) = \begin{cases} g-1 & \text{ for }a_1, \ldots, a_n \geq 0,&\text{ (strata of holomorphic differentials)}\\ g & \text{ otherwise.}&\text{ (strata of meromorphic differentials)} \end{cases} Taking the fundamental class of the closure Hg(a)\overline{\mathcal{H}}_g(\textbf{a}), we obtain cohomology classes [Hg(a)]H(Mg,n).[\overline{\mathcal{H}}_g(\textbf{a})] \in H^*(\overline{\mathcal{M}}_{g,n}).

These classes have been studied intensely in the last couple of years. Some highlights:

  • In the appendix of the paper [Farkas, Pandharipande - 2015], Janda, Pandharipande, Pixton and Zvonkine wrote down a conjectural formula [Hg(a1,,an)]+(boundary corrections)=DRg(a1+1,,an+1)[\overline{\mathcal{H}}_g(a_1, \ldots, a_n)] + \sum \text{(boundary corrections)} = \mathrm{DR}_g(a_1+1, \ldots, a_n+1) relating the classes of strata of meromorphic differentials to the double ramification cycles. These DR cycles (discussed below) are computed by an explicit formula in the tautological ring proposed by Pixton. This conjecture was recently proven by combining the results of papers [Holmes, Schmitt - 2019], [Bae, Holmes, Pandharipande, Schmitt, Schwarz - 2020]. The above formula can be used to recursively compute all cycles [Hg(a1,,an)][\overline{\mathcal{H}}_g(a_1, \ldots, a_n)], both in the holomorphic and meromorphic case. This has been implemented in the function Strataclass(g,1,(a1, ..., an)), and for the purpose of this presentation, we'll treat it as a black box.

In [0]:
H = Strataclass(2,1,(2,)) # computes closure of {(C,p) : omega_C = O_C(2p)} Hpush = H.forgetful_pushforward([1]) # computes pushforward under pi : Mbar_{2,1} -> Mbar_2 Hpush.simplify()
  • The strata Hg(a)\overline{\mathcal{H}}_g(\textbf{a}) themselves were studied in a series of papers [Bainbridge, Chen, Gendron, Grushevsky, Möller]. In particular, the authors define a smooth compact moduli space MSg(a)Hg(a), \mathcal{MS}_g(\textbf{a}) \to \overline{\mathcal{H}}_g(\textbf{a}), sitting proper, birationally over Hg(a)\overline{\mathcal{H}}_g(\textbf{a}), called the space of multiscale differentials. In particular, they describe the boundary strata of MSg(a)\mathcal{MS}_g(\textbf{a}) (and thus of Hg(a)\overline{\mathcal{H}}_g(\textbf{a})) in terms of certain enhanced level graphs.

  • The intersection theory and tautological ring of MSg(a)\mathcal{MS}_g(\textbf{a}) have been implemented by [Costantini, Möller, Zachhuber - 2020] in an extension/sub-package of admcycles called diffstrata. They use this in a second paper [Costantini, Möller, Zachhuber - 2020] to compute the (orbifold) Euler characteristics of the open strata Hg(a){\mathcal{H}}_g(\textbf{a}) in a range of examples.

In [0]:
from admcycles.diffstrata import Stratum X = Stratum((2,)) X.euler_characteristic()

We'll come back to some ongoing investigations about strata of differentials and some open questions in a later section.

D) Double ramification cycles

When discussing strata of differentials, we saw that double ramification cycles played an important role for computing them. Again, we'll mostly treat them as a black box, but we'll open the box a little bit to be able to show some cool conjecture.

Construction (Pixton - 2014)
Let g,k,dZ0g,k,d \in \mathbb{Z}_{\geq 0} and A=(a1,,an)ZnA=(a_1, \ldots, a_n) \in \mathbb{Z}^n with iai=k(2g2+n)\sum_i a_i = k(2g-2+n). Then for any integer r1r \geq 1 Pixton gave an explicit formula $$\mathrm{DR}_g^{\,d,k,r}(A) = \sum_{\Gamma,w} \left[\Gamma, \text{(polynomial in $\kappa,\psiclassesdependingon-classes depending on wParseError: KaTeX parse error: Expected 'EOF', got '}' at position 2: )}̲ \right]\in RH^…wherethesumrunsoverstablegraphs where the sum runs over stable graphs \Gammaandadmissibleweightings and *admissible weightings wmod mod ron* on \Gamma(someadditionalcombinatorialgadget).Thecoefficientofeachindividualterm (some additional combinatorial gadget). The coefficient of each individual term [\Gamma, \alpha]aboveexpressionturnsouttobeapolynomialin above expression turns out to be a polynomial in rfor for r \gg 0$ and we define the DR cycle as the value DRgd,k(A)=DRgd,k,r(A)r=0RH2d(Mg,n)\mathrm{DR}_g^{\,d,k}(A) = \mathrm{DR}_g^{\,d,k,r}(A)|_{r=0} \in RH^{2d}(\overline{\mathcal{M}}_{g,n}) of this polynomial at r=0r=0.

The tautological class DRgd,k(A)\mathrm{DR}_g^{\,d,k}(A) is accessible in admcycles by the function DR_cycle(g,A,d) and we can even compute DRgd,k,r(A)\mathrm{DR}_g^{\,d,k,r}(A) using DR_cycle(g,A,d,rpoly=True).

We can use admcycles to verify theoretical results about Double ramification cycles in special cases. Take the following result, proving a conjecture by Pixton.

Theorem (Clader, Janda - Jan 2016)
Let g,k,dZ0g,k,d \in \mathbb{Z}_{\geq 0} and A=(a1,,an)ZnA=(a_1, \ldots, a_n) \in \mathbb{Z}^n with iai=k(2g2+n)\sum_i a_i = k(2g-2+n). Then DRgd,k(A)\mathrm{DR}_g^{\,d,k}(A) vanishes in degree d>gd>g.

Let us check the above vanishing in a special case in genus g=2g=2.

In [0]:
DR=DR_cycle(2,(2,3,-5),d=2) DR.is_zero()
In [0]:
DR2=DR_cycle(2,(2,3,-5),d=3) DR2.is_zero()

The following is a conjecture told to me by Longting Wu, which would generalize the theorem above.

Conjecture (Wu)
Let g,k,dZ0g,k,d \in \mathbb{Z}_{\geq 0} and A=(a1,,an)ZnA=(a_1, \ldots, a_n) \in \mathbb{Z}^n with iai=k(2g2+n)\sum_i a_i = k(2g-2+n). Then for 0\ell \geq 0, the ll-th derivative in rr at r=0r=0 of the class DRgd,k,r(A)\mathrm{DR}_g^{\,d,k,r}(A) vanishes in degree d>g+d>g+\ell.

The theorem by Clader and Janda is the case =0\ell=0 of the conjecture above, since we defined the DR cycle as the value of DRgd,k,r(A)\mathrm{DR}_g^{\,d,k,r}(A) at r=0r=0.

Let's check Longting's conjecture in an example.

In [1]:
D = DR_cycle(1,(1,2,3,-6),3,rpoly=True) D.toTautbasis()
(-1637/288*r^4 + 31999/96*r^3 + 67225/8*r^2, -109/192*r^4 - 8869/64*r^3 - 44263/16*r^2, 835/576*r^4 + 3631/192*r^3 + 4033/16*r^2, -3287/384*r^4 + 12773/384*r^3 + 7311/16*r^2, 35/128*r^4 - 2347/384*r^3 - 963/16*r^2, -47/6*r^4 + 2175/64*r^3 + 453*r^2, 1/4*r^4 - 1423/192*r^3 - 489/8*r^2, -933/128*r^4 + 10579/384*r^3 + 6673/16*r^2, 27/128*r^4 - 783/128*r^3 - 801/16*r^2, -27/4*r^4 + 41/16*r^3 + 1745/8*r^2, 4/3*r^4 - 97/12*r^3 - 2*r^2, 3/4*r^4 - 133/24*r^3 - 6*r^2)

Relationship between strata of differentials and Witten's r-spin class

In the following, I'll discuss an ongoing project together with Q. Chen, F. Janda, R. Pandharipande, A. Pixton, Y. Ruan, A. Sauvaget and D. Zvonkine, threatening to eventually result in a paper abbreviated [CJPPRSZ].

The project concerns relationships between cycles of strata of differentials and Witten's rr-spin class WgrW_g^r. This class is a cohomological field theory studied by [Witten - 1991], [Polishchuk, Vaintrob - 2001], [Chiodo - 2006], [Mochizuki - 2006], [Fan, Jarvis, Ruan - 2013]. For our purposes, it suffices to say that given a positive integer rr, Witten's rr-spin class is a function Wgr:{0,1,,r2}nRH(Mg,n),(a1,,an)Wgr(a1,,an),\begin{align*} W_g^r : \{0,1, \ldots, r-2\}^n &\to RH^*(\overline{\mathcal{M}}_{g,n}),\\ (a_1, \ldots, a_n) &\mapsto W_g^r(a_1, \ldots, a_n), \end{align*} and the (complex) codimension of the class Wgr(a1,,an)W_g^r(a_1, \ldots, a_n) is given by degCWgr(a1,,an)=(r2)(g1)+iair. \deg_\mathbb{C} W_g^r(a_1, \ldots, a_n) = \frac{(r-2)(g-1)+ \sum_i a_i}{r}. The following conjecture is the starting point of our investigation relating Witten's class to the strata of differentials.

Conjecture (Janda, Pandharipande, Pixton, Zvonkine - Jul 2016)
Let a1,,ana_1, \ldots, a_n be nonnegative integers with iai=2g2\sum_i a_i = 2g-2, then the expression (1)grg1Wgr(a1,,an)(-1)^g r^{g-1} W_g^r(a_1, \ldots, a_n) becomes a polynomial in rr for r0r \gg 0 and we have (1)grg1Wgr(a1,,an)r=0=[Hg(a1,,an)]H2(g1)(Mg,n).\begin{equation} (-1)^g r^{g-1} W_g^r(a_1, \ldots, a_n) |_{r=0} = [\overline{\mathcal{H}}_{g}(a_1, \ldots, a_n)] \in H^{2(g-1)}(\overline{\mathcal{M}}_{g,n}).\end{equation}

When exploring this Conjecture, F. Janda implemented a formula for the Witten class in a Sage program by A. Pixton (which is the predecessor of admcycles). On the other hand, the cycles [H2(2)][\overline{\mathcal{H}}_{2}(2)] and [H2(1,1)][\overline{\mathcal{H}}_{2}(1,1)] had previously been computed in [Belorousski, Pandharipande - 2010]. Pixon's program was then able to verify the equality of the conjecture in these two cases.

Recently, Janda's implementation of Witten's class has been incorporated into admcycles as the function Wittenrspin. It follows the convention that

Wittenrspin(g,(a1, ..., an))=(1)grg1Wgr(a1,,an)r=0.\texttt{Wittenrspin(g,(a1, ..., an))} = (-1)^g r^{g-1} W_g^r(a_1, \ldots, a_n) |_{r=0}.


Check the conjecture above for for g=2g=2 and (a1,a2)=(1,1)(a_1, a_2)=(1,1).

Hint: Recall that you can express a tautological class t in a basis by t.toTautbasis().

In [0]:
In [0]:

But now that we have Witten's class implemented, we can start exploring further conjectures! To do so, we should allow more general insertions than just the (constant) positive integers aia_i. It turns out, that the right thing to try is linear insertions $$\lambda_i r + b_i\text{, for }\begin{cases}\lambda_i \in \mathbb{Q}, \text{ and $rParseError: KaTeX parse error: Expected 'EOF', got '}' at position 25: …ntly divisible,}̲\\ b_i \in \mat…Givensuch Given such \lambda_i, b_iwith with \sum_i \lambda_i = e \in \mathbb{Z},theclass, the class (1)grg1+eWgr(λ1r+b1,,λnr+bn)RH2(g1+e)(Mg,n)(-1)^g r^{g-1+e} W_g^r(\lambda_1 r + b_1, \ldots, \lambda_n r +b_n) \in RH^{2(g-1+e)}(\overline{\mathcal{M}}_{g,n})isagainpolynomialin is again polynomial in r(for (for r \gg 0$ sufficiently divisible), and the value of this polynomial at r=0r=0 is computed by Wittenrspin.

The simplest example of this is e=1e = 1, concentrated in a single insertion with λi=1\lambda_i=1, which results in a class of complex codimension gg.

In [0]:
R.<r> = PolynomialRing(QQ,1) W2 = Wittenrspin(2,(4,r-2)); W2.toTautbasis()


Make an educated guess what kind of class W2 could compute, and check it.

In [0]:

Don't scroll down if you want to avoid spoilers.

So, as we've seen a single insertion rbr-b seems to correspond to computing a stratum of differentials with a pole of order bb at the corresponding marking. However, if we want to have a stratum with two distinct poles, we run into a problem: two insertions rb1r-b_1, rb2r-b_2 raise the codimension to g+1g+1, so we cannot get a stratum of differentials this way (which is codimension gg even with two poles).

It turns out that such insertions still compute something interesting.

Theorem (S.)
Assume the conjecture about strata of holomorphic differentials above. Then for nonnegative integers aia_i and positive integers bjb_j with iaijbj=2g2\sum_i a_i - \sum_j b_j = 2g-2 the class

Wittenrspin(g,(a1, ..., an, r-b1, ..., r-bm)) computing the value at r=0r=0 of (1)grg1+mWgr(a1,,an,rb1,,rbmm)RH2(g1+m)(Mg,n)(-1)^g r^{g-1+m} W_g^r(a_1, \ldots, a_n, r-b_1, \ldots, r-b_mm) \in RH^{2(g-1+m)}(\overline{\mathcal{M}}_{g,n}) equals the fundamental class of the closure of $$\mathcal{H}_g(\textbf{a}, -\textbf{b})^{\text{res}=0} = \left \{(C,p_1, \ldots, p_n, q_1, \ldots, q_m) : \begin{array}{c} \exists\, \eta \text{ meromorphic differential on $CParseError: KaTeX parse error: Expected 'EOF', got '}' at position 1: }̲\\\text{ with }…$

Idea of proof:

Below we can check the equality using admcycles. Since the computation takes a long time, I prepared it before and just show you the output.

In [4]:
W3 = Wittenrspin(2,(6,r-2,r-2)); W3.toTautbasis() # Warning: long computation
(835660/39, -71120/13, 17780/39, -143227/78, -322693/234, 64785/13, -2975/13, 195335/39, -23275/117, 801038/117, 51562/117, 3850/13, 29680/13, -229033/117, 257740/117, -207382/39, -597128/117, -64568/13, 595756/117, 29386/13, 70112/13, -292180/13, -58114/117, -50890/117, -882140/39, -377251/78, -195349/234, 69538/39, 258146/117, 48104/13, -130116/13, 698278/39, 28693/13, 3129/13, 24878/13, -27244/13, -87836/13, 87899/39, 30821/117, 76874/39, -257936/117, -270788/39, -30023/13, 210161/39, -25137/13, 22085/39, -26929/39, -24017/39, -7749/13, 14875/39, 61558/39, 3535/39, 2135/39, 2254/13, 57190/39, 1043/39, 1526/13, 56210/39, 3808/39, -73934/39, 490/39, 980/39, -476/39, -280/39, -56/3, -28/3, 0)
In [5]:
S3 = Strataclass(2,1,(6,-2,-2),res_cond=[2],method='diffstrata'); S3.toTautbasis()
(835660/39, -71120/13, 17780/39, -143227/78, -322693/234, 64785/13, -2975/13, 195335/39, -23275/117, 801038/117, 51562/117, 3850/13, 29680/13, -229033/117, 257740/117, -207382/39, -597128/117, -64568/13, 595756/117, 29386/13, 70112/13, -292180/13, -58114/117, -50890/117, -882140/39, -377251/78, -195349/234, 69538/39, 258146/117, 48104/13, -130116/13, 698278/39, 28693/13, 3129/13, 24878/13, -27244/13, -87836/13, 87899/39, 30821/117, 76874/39, -257936/117, -270788/39, -30023/13, 210161/39, -25137/13, 22085/39, -26929/39, -24017/39, -7749/13, 14875/39, 61558/39, 3535/39, 2135/39, 2254/13, 57190/39, 1043/39, 1526/13, 56210/39, 3808/39, -73934/39, 490/39, 980/39, -476/39, -280/39, -56/3, -28/3, 0)

Note that in Strataclass we use the option res_cond=[2] to impose vanishing residue at the second marking (the residue at the third marking then vanishes automatically due to the residue theorem). With method='diffstrata' we specify that we use the package diffstrata for this computation. Indeed, on the multiscale space MS2(6,2,2)\mathcal{MS}_2(6,-2,-2) one can use tautological relations to convert the residue condition on the differential, defining a divisor class on MS2(6,2,2)\mathcal{MS}_2(6,-2,-2), into a sum of ψ\psi-classes and boundary strata, and then push forward to M2,3\overline{\mathcal{M}}_{2,3}.

One question remains: how do we get strata of meromorphic differentials with multiple poles but without extra residue conditions? The following computations (first done in June 2020) suggest that the right kind of insertions are of the form λirbi\lambda_i r - b_i for iλi=1\sum_i \lambda_i = 1.

In [0]:
W4 = Wittenrspin(2,(4, 1/2*r-1, 1/2*r-1)); W4.toTautbasis()
In [0]:
S4 = Strataclass(2,1,(4,-1,-1)); S4.toTautbasis()

Above we took λ1=λ2=1/2\lambda_1 = \lambda_2 = 1/2, but a combinatorial argument based on the formula for Witten's class shows that it gives the same answer for any rational λ1,λ2(0,1)\lambda_1, \lambda_2 \in (0,1) with λ1+λ2=1\lambda_1 + \lambda_2 = 1.

So to summarize, we have that from Witten's class, we get strata of differentials where insertions

  • a0a \geq 0 give zeros of the corresponding order,

  • λirbi\lambda_i r - b_i with iλi=1\sum_i \lambda_i = 1 give poles of order bib_i,

  • rbr-b give poles of order bb with vanishing residues.

After this conjecture was formulated based on the experiments in admcycles, it took Felix Janda about a week to announce a sketch of proof that the conjecture is true (based on the methods developed to prove the original conjecture, about which he and Dimitri Zvonkine talked in the seminar last semester).

Open questions

  • What about insertions λir±b\lambda_i r \pm b for λi>1\sum \lambda_i > 1? I have a small data point in this direction: for g=0g=0 consider the stratum H0(a,b1,,bn)\mathcal{H}_0(a,-b_1, \ldots, -b_n) in M0,n+1\overline{\mathcal{M}}_{0,n+1}. There is a well-defined map Res:H0(a,b1,,bn)V(X1++Xn)Pn1 \mathrm{Res} : \mathcal{H}_0(a,-b_1, \ldots, -b_n) \to V(X_1+ \ldots+ X_n) \subset \mathbb{P}^{n-1} sending the curve (C,q,p1,,pn)(C,q,p_1, \ldots, p_n) admitting a differential η\eta with zero at qq and poles at p1,,pnp_1, \ldots, p_n to the point Res(C,q,p1,,pn)=[Resp1η::Resp1η].\mathrm{Res}(C,q,p_1, \ldots, p_n) = [\mathrm{Res}_{p_1} \eta : \cdots : \mathrm{Res}_{p_1} \eta]. In [Gendron, Tahar - 2020] the authors compute the number of preimages of a generic point in V(X1++Xn)V(X_1+ \ldots + X_n). I checked in many nontrivial examples, that this number agrees with the degree of the zero cycle

    Wittenrspin(0,(a, (n-1)/n*r-b1, ..., (n-1)/n*r-bn))
    so it seems that insertions λirb\lambda_i r - b with iλi>1\sum_i \lambda_i > 1 could give strata of differentials with more complicated (linear) conditions on the residues.

  • If all entries of the vector a\textbf{a} are divisible by two, the strata of differentials decompose into a disjoint union [Hg(a)]=[Hg(a)odd]+[Hg(a)even],[\overline{\mathcal{H}}_{g}(\textbf{a})] = [\overline{\mathcal{H}}_{g}(\textbf{a})^{\text{odd}}] + [\overline{\mathcal{H}}_{g}(\textbf{a})^{\text{even}}], according to whether the line bundle OC(i(ai/2)pi)\mathcal{O}_C( \sum_i (a_i/2) p_i), which is a square root of ωC\omega_C, is an odd or an even theta characteristic. Can we find a way to compute both summands separately?

  • Is there a version of Witten's class that produces strata of kk-differentials?

Ongoing developments

  • Johannes Schwab (PhD student of M. Möller) - Expand diffstrata for spaces of quadratic differentials

  • Javier Sendra (Master student of G. Oberdieck and myself) - Implement algorithm for computing Gromow-Witten invariants of K3 surfaces described by [Maulik, Pandharipande, Thomas - 2010]

  • Danilo Lewanski (Postdoc, IPhT Paris), Zekun Ji (Master student of myself) - Exploring ELSV type formulas for various kinds of Hurwitz numbers (double Hurwitz numbers, r-Hurwitz numbers)

Thanks for your attention!

Appendix/Additional material

Admissible cover cycles in admcycles

In joint work with Jason van Zelm, we studied admissible cover cycles - fundamental classes of loci of curves (C,p1,,pr)(C,p_1, \ldots, p_r) in Mg,r\overline{\mathcal{M}}_{g,r} admitting finite covers CDC \to D to some curve DD of genus ggg'\leq g such that p1,,prp_1, \ldots, p_r are ramification points of the cover.

For simplicity, let's restrict ourselves to the case of degree 22 covers with g=0,1g'=0,1, then we have

Hypg,n,2m={(C,p1,,pn,q1,q1,,qm,qm):C hyperelliptic,pi ramification points,qj,qj conjugate}Mg,n+2mBg,n,2m={(C,p1,,pn,q1,q1,,qm,qm):C bielliptic,pi ramification points,qj,qj conjugate}Mg,n+2m\begin{align*} \mathrm{Hyp}_{g,n,2m} &= \{(C,p_1,\ldots, p_n, q_1, q_1', \ldots, q_m, q_m') : C \text{ hyperelliptic}, p_i\text{ ramification points}, q_j, q_j' \text{ conjugate}\} &\subset M_{g,n+2m}\\ \mathrm{B}_{g,n,2m} &= \{(C,p_1,\ldots, p_n, q_1, q_1', \ldots, q_m, q_m') : C \text{ bielliptic}, p_i\text{ ramification points}, q_j, q_j' \text{ conjugate}\} &\subset M_{g,n+2m} \end{align*}

Then, in many cases, the package admcycles can compute the fundamental classes

[Hypg,n,2m],[Bg,n,2m]H(Mg,n+2m),\begin{align*} [\overline{\mathrm{Hyp}}_{g,n,2m}], [\overline{\mathrm{B}}_{g,n,2m}] \in H^*(\overline{\mathcal{M}}_{g,n+2m}), \end{align*}

accessible via the functions Hyperell(g,n,m) and Biell(g,n,m).

The cycles are computed by using information from their pullbacks via boundary gluing morphisms. For instance, for g=g1+g2g=g_1+g_2, consider the gluing morphism

ξ:Mg1,1×Mg2,1Mg.\xi: \overline{\mathcal{M}}_{g_1,1} \times \overline{\mathcal{M}}_{g_2,1} \to \overline{\mathcal{M}}_g.

Then the pullback of the cycle [Hypg]H(Mg)[\overline{\mathrm{Hyp}}_g] \in H^*( \overline{\mathcal{M}}_g ) is given by

ξ[Hypg]=[Hypg1,1][Hypg2,1].\xi^* [\overline{\mathrm{Hyp}}_g] = [\overline{\mathrm{Hyp}}_{g_1,1}] \otimes [\overline{\mathrm{Hyp}}_{g_2,1}].

In particular, the intersection of Dg1=ξ[Mg1,1×Mg2,1]D_{g_1} = \xi_* [ \overline{\mathcal{M}}_{g_1,1} \times \overline{\mathcal{M}}_{g_2,1} ] with [Hypg][\overline{\mathrm{Hyp}}_g] is given by α=ξ[Hypg1,1][Hypg2,1]\alpha = \xi_* [\overline{\mathrm{Hyp}}_{g_1,1}] \otimes [\overline{\mathrm{Hyp}}_{g_2,1}]. This is something we can again verify in an example, showing how such boundary pushforwards can be constructed.

First we construct the stable graph associated to the boundary divisor.

In [0]:
g1 = 1; g2 = 2; g = g1 + g2; bdrygraph = StableGraph([g1,g2], [[1],[2]], [(1,2)]) Dg1 = bdrygraph.boundary_pushforward(); Dg1

The class α=ξ[Hypg1,1][Hypg2,1]\alpha = \xi_* [\overline{\mathrm{Hyp}}_{g_1,1}] \otimes [\overline{\mathrm{Hyp}}_{g_2,1}] can also be constructed using boundary_pushforward.

In [0]:
Hyp_g = Hyperell(g) alpha = bdrygraph.boundary_pushforward([Hyperell(g1,1), Hyperell(g2,1)])
In [0]:
(Hyp_g * Dg1).toTautbasis()
In [0]:

Relationship between DR-cycles and admissible cover cycles

There is a natural connection between Double ramification and admissible cover cycles. The cycle DRg(A)\mathrm{DR}_{g}(A) is defined as the pushforward of the moduli space of stable maps to rubber P1\mathbb{P}^1. The components of this rubber moduli space, where generically the curve is smooth, map exactly to the admissible cover cycle of curves CC mapping to P1\mathbb{P}^1 with marked ramification points over 0,0,\infty.

For covers of degree 22, the admissible cover cycles above are exactly the hyperelliptic cycles. The possible partitions AA are

  • (2,2)(2,-2) : two marked Weierstrass point

  • (2,1,1)(2,-1,-1) : one marked Weierstrass point, one pair of conjugate points

  • (1,1,1,1)(1,1,-1,-1) : two pairs of conjugate points

As a proof of concept, the above approach can be applied in genus g=1g=1. Here we are looking at the codimension 11 hyperelliptic cycles

Hyp1,2={(E,p,q):O(2p2q)O}M1,2,Hyp1,1,2={(E,p,q1,q2):O(2pq1q2)O}M1,3,Hyp1,0,4={(E,p1,p2,q1,q2):O(p1+p2q1q2)O}M1,4.\begin{align*} \mathrm{Hyp}_{1,2} &= \{(E,p,q) : \mathcal{O}(2p-2q)\cong \mathcal{O}\} &\subset \mathcal{M}_{1,2},\\ \mathrm{Hyp}_{1,1,2} &= \{(E,p,q_1,q_2) : \mathcal{O}(2p-q_1-q_2) \cong \mathcal{O}\} &\subset \mathcal{M}_{1,3},\\ \mathrm{Hyp}_{1,0,4} &= \{(E,p_1,p_2,q_1,q_2) : \mathcal{O}(p_1+p_2-q_1-q_2) \cong \mathcal{O}\} &\subset \mathcal{M}_{1,4}. \end{align*}

So, in the first case, we know that the cycles DR1(2,2)\mathrm{DR}_1(2,-2) and [Hyp1,2][\overline{\mathrm{Hyp}}_{1,2}] agree away from the boundary. Let's use admcycles to identify the correction - which must be a combination of the classes of boundary divisors.

In [0]:
DR = DR_cycle(1,(2,-2)) Hyp_1_2 = Hyperell(1,2) (DR-Hyp_1_2).toTautbasis()
In [0]:
bgraphs = list_strata(1,2,1); bgraphs
In [0]:
[b.boundary_pushforward().toTautbasis() for b in bgraphs]
In [0]:
D_0_2=stgraph([0,1],[[1,2,4],[5]],[(4,5)]).boundary_pushforward() # B = Boundary divisor [(g=0;1,2)-(g=1)] relation1=DR-(Hyp_1_2+D_0_2) relation1.is_zero()

By similar experiments, one concludes the following formulas:

DR1(2,2)=[Hyp1,2]+[D0,2]RH2(M1,2),DR1(2,1,1)=[Hyp1,1,2]+[D0,3]RH2(M1,3),DR1(1,1,1,1)=[Hyp1,0,4]+[D0,4]RH2(M1,4)\begin{align*} \mathrm{DR}_1(2,-2) &= [\overline{\mathrm{Hyp}}_{1,2}] + [D_{0,2}] &&\in RH^2(\overline{\mathcal{M}}_{1,2}),\\ \mathrm{DR}_1(2,-1,-1) &= [\overline{\mathrm{Hyp}}_{1,1,2}] + [D_{0,3}] &&\in RH^2(\overline{\mathcal{M}}_{1,3}),\\ \mathrm{DR}_1(1,1,-1,-1) &= [\overline{\mathrm{Hyp}}_{1,0,4}] + [D_{0,4}] &&\in RH^2(\overline{\mathcal{M}}_{1,4}) \end{align*}

On Tuesday, we started exploring the case g=2g=2 and found/verified a more complicated formula

DR2(2,2)=[Hyp2,2]+ boundary corrections.\mathrm{DR}_2(2,-2) = [\overline{\mathrm{Hyp}}_{2,2}] + \text{ boundary corrections.}

As a final example, let us verify the following result

Theorem (Holmes, Pixton, S. - Nov 2017)
Let a,b\textbf a, \textbf b be vectors of nn integers with iai=k1(2g2+n)\sum_i a_i = k_1 (2g-2+n) and ibi=k2(2g2+n)\sum_i b_i = k_2 (2g-2+n), then we have DRg(a)DRg(b)=DRg(a)DRg(a+b)H4g(Mg,nct),\mathrm{DR}_g(\textbf{a}) \cdot \mathrm{DR}_g(\textbf{b}) = \mathrm{DR}_g(\textbf{a}) \cdot \mathrm{DR}_g(\textbf{a}+\textbf{b}) \in H^{4g}({\mathcal{M}}_{g,n}^{ct}), but the same relation is not in general true on all of Mg,n\overline{\mathcal{M}}_{g,n}.

in the case g=1,n=3g=1, n=3.

In [0]:
R.<a1,a2,a3,b1,b2,b3> = PolynomialRing(QQ,6) diff = DR_cycle(1,(a1,a2,a3)) * ( DR_cycle(1,(b1,b2,b3)) - DR_cycle(1,(a1+b1,a2+b2,a3+b3)) )
In [0]:
In [0]:
In [0]: