Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
180 views
unlisted
ubuntu2004
Kernel: SageMath 9.7

Introduction to admcycles II: Geometrically defined cycle classes

1) Introduction

In the first part of the lecture, we saw the notion of tautological classes and how we can use admcycles to multiply them, take intersection numbers and compare them. Now all we need is some interesting classes to do actual computations with!

Luckily, using the fact that Mg,n\overline{\mathcal{M}}_{g,n} is a moduli space, there are many ways to construct new 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. Below, we go through the classes that have been implemented and show how to use them (and comment on what is still to do).

2) Admissible cover cycles

Cycles associated to closed subsets

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.

Example : Hyperelliptic cycles

An important example of closed subsets of Mg,n\overline{\mathcal{M}}_{g,n} are the loci of hyperelliptic curves. Recall that a curve CC is hyperelliptic, if it admits a degree 22 cover φ:CP1. \varphi : C \to \mathbb{P}^1\,. Given such a cover (which for curves of genus g2g \geq 2 is uniquely determined by CC itself), we say that

  • a point pCp \in C is a Weierstrass point if there exists bP1b \in \mathbb{P}^1 with φ1(b)={p}\varphi^{-1}(b)=\{p\}, which is equivalent to φ\varphi having multiplicity 22 at pp,

  • a pair of distinct points q,qCq, q' \in C is hyperelliptic conjugate if there exists bP1b \in \mathbb{P}^1 with φ1(b)={q,q}\varphi^{-1}(b)=\{q, q'\}

Then we have a locus of marked hyperelliptic curves defined by 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*}

In Faber-Pandharipande 2005, the authors 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. In Schmitt-van Zelm 2018 with Jason van Zelm we give an algorithm to compute intersection numbers of the hyperelliptic cycles with tautological classes. Using these numbers, the package admcycles can compute them (in many cases) via the function Hyperell(g,n,m).

from admcycles import * H = Hyperell(2,1) Hpush = H.forgetful_pushforward([1]) Hpush.simplify()

Here we see that every curve of genus g=2g=2 is hyperelliptic, and has precisely 2g+2=62g+2=6 Weierstrass points.

Exercise
A classical computation by Harris-Mumford 82 says that [Hyp3]=9λ1δ03δ1, [\overline{\mathrm{Hyp}}_{3}] = 9 \lambda_1 - \delta_0 - 3 \delta_1\,, where δ0\delta_0 is the class of the boundary divisor of irreducible nodal curves and δ1\delta_1 is the class of the divisor where the curve generically has irreducible components of genera 1,21,2 connected at a node.

Verify this equality.

Hint: Be careful: the gluing map parameterizing δ0\delta_0 has generic degree 22 ...

Solution (click to expand)
H = Hyperell(3) H == 9*lambdaclass(1,3,0) - 1/2*irrbdiv(3,0) - 3*sepbdiv(1,(),3,0) > True

More general admissible Galois covers

Generalizing the hyperelliptic loci above, the package admcycles can compute many fundamental classes of loci of admissible Galois covers φ:CD, \varphi : C \to D\,, where we fix

  • the genus of CC,

  • the Galois group GG, which acts transitively on the fibres of φ\varphi,

  • the ramification behaviour of φ\varphi, by specifying a tuple (h1,,hb)Gb(h_1, \ldots, h_b) \in G^b of elements generating the stabilizer groups of points in CC (which become the ramification points of φ\varphi).

Computing these cycles was the original motivation for writing admcycles (hence the name). For more details see my paper Schmitt-van Zelm 2020.

Outlook

Based on work of Matthias Hippold and Zekun Ji, we hope to write functions for computing cycles of admissible covers which are not necessarily Galois, where only the degree and the ramification profiles over the branch points are specified.

Moreover, Johannes Schwab has been working on some code of even more general admissible cover cycles, as specified by Lian 2021.

Since the computations of the hyperelliptic cycles often take a long time, a worthwile goal would be to program a database of such cycles which have been computed. Talk to me if you are interested!

3) Strata of kk-differentials

Given a=(a1,,an)Zn\textbf{a}=(a_1, \ldots, a_n) \in \mathbb{Z}^n with iai=k(2g2)\sum_i a_i = k(2g-2), we consider the locus Hgk(a)={(C,p1,,pn):ωCkOC(i=1naipi)}={(C,p1,,pn):η meromorphic k-differential on C with div(η)=i=1naipi}Mg,n.\begin{align*} \mathcal{H}_g^k(\textbf{a}) &= \left \{(C,p_1, \ldots, p_n) : \omega_C^{\otimes k} \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 $k$-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 Hgk(a)\mathcal{H}_g^k(\textbf{a}) is a closed algebraic subset of Mg,n\mathcal{M}_{g,n} and taking the fundamental class of the closure Hgk(a)\overline{\mathcal{H}}_g^k(\textbf{a}), we obtain cohomology classes [Hgk(a)]H(Mg,n).[\overline{\mathcal{H}}_g^k(\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 [Hgk(a1,,an)]+(boundary corrections)=DRg(a1+k,,an+k)[\overline{\mathcal{H}}_g^k(a_1, \ldots, a_n)] + \sum \text{(boundary corrections)} = \mathrm{DR}_g(a_1+k, \ldots, a_n+k) relating the classes of strata of meromorphic differentials to the so-called double ramification cycles (which we discuss below). These DR cycles 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 [Hgk(a1,,an)][\overline{\mathcal{H}}_g^k(a_1, \ldots, a_n)], both in the holomorphic and meromorphic case. This has been implemented in the function Strataclass(g,k,(a1, ..., an)).

H = Strataclass(2,1,(2,)) # computes closure of {(C,p) : omega_C = O_C(2p)} H2 = Hyperell(2,1) # computes closure of {(C,p) : p Weierstrass point} H == H2

Exercise
For k=1k=1 and a vector a\textbf{a} containing only nonnegative entries except for a single entry 1-1, the condition cutting out Hg1(a)\mathcal{H}_g^1(\textbf{a}) requires the existence of a meromorphic 11-differential with a single simple pole. This cannot exist on a smooth curve by the residue theorem (the sum of residues must vanish, but a single simple pole has nonzero residue).

Pick your favorite example of g,ag, \textbf{a} with these conditions and verify that indeed [Hg1(a)]=0[\overline{\mathcal{H}}_g^1(\textbf{a})]=0 (which follows from Hg1(a)=\mathcal{H}_g^1(\textbf{a}) = \emptyset).

Solution (click to expand)
H = Strataclass(2,1,(3,-1)) H == 0 > True
  • The strata Hgk(a)\overline{\mathcal{H}}_g^k(\textbf{a}) themselves were studied in a series of papers by Bainbridge, Chen, Gendron, Grushevsky, Möller (BCGGM 2018, BCGGM 2019, BCGGM 2020). In particular, the authors define for k=1k=1 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 Hg1(a)\overline{\mathcal{H}}_g^1(\textbf{a}), called the space of multiscale differentials. They describe the boundary strata of MSg(a)\mathcal{MS}_g(\textbf{a}) (and thus of Hg1(a)\overline{\mathcal{H}}_g^1(\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 Hg1(a){\mathcal{H}}_g^1(\textbf{a}) in a range of examples.

from admcycles.diffstrata import Stratum X = Stratum((2,)) X.euler_characteristic()

Using diffstrata, we can also compute more general versions of the strata of differentials, where we impose residue conditions at the marked points. The code below computes the fundamental class of the locus SM1,4\overline{S} \subseteq \overline{\mathcal{M}}_{1,4} of genus 11 curves (C,p,q1,q2,q3)(C, p, q_1, q_2, q_3) such that there exists a meromorphic differential η\eta with div(η)=6p2q12q22q3\mathrm{div}(\eta) = 6 p - 2q_1 -2 q_2 -2 q_3 such that Resqiη=0\mathrm{Res}_{q_i} \eta = 0 for i=1,2i=1,2 (and thus also i=3i=3 by the residue theorem).

S = Strataclass(1,1,[6,-2,-2,-2],res_cond=[2,3],method='diffstrata') (S.forgetful_pushforward([2,3,4])-42*fundclass(1,1)).is_zero()

Exercise
In Theorem 1.3 of Castorena-Gendron 2020 the authors claim that for the forgetful map π:M1,4M1,1\pi: \overline{\mathcal{M}}_{1,4} \to \overline{\mathcal{M}}_{1,1} forgetting the points q1,q2,q3q_1, q_2, q_3, the induced map π:SM1,1\pi : S \to \overline{\mathcal{M}}_{1,1} is a cover of degree 4242. Can you check the corresponding cohomological statement?

Solution (click to expand)
T = S.forgetful_pushforward([2,3,4]) T.simplify() > Graph : [1] [[1]] [] Polynomial : 42 T.fund_evaluate() > 42

Outlook

Johannes Schwab is going to tell us more about diffstrata and some developments for extending the computations in that package from k=1k=1 to arbitrary k1k \geq 1.

On the other hand, for k=1k=1 and when all entries of a\textbf{a} are even, the space Hg1(a){\mathcal{H}}_g^1(\textbf{a}) decomposes into connected components (according to the parity of some spin structure). Yiu Man Wong is developing some code to compute the fundamental classes of the closures of these components separately.

4) Double ramification cycles

Construction and intuition

When discussing strata of kk-differentials, we mentioned that double ramification cycles played an important role for computing them. These cycles are not as straightforward to define as the admissible cover cycles or strata of differentials, but here is a reasonably nice construction:

Construction (Bae-Holmes-Pandharipande-Schmitt-Schwarz 2020)
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). Consider the space Picg={(C,L):C prestable curve of genus g,L line bundle on C} \mathfrak{P}ic_g = \{(C, \mathcal{L}) : C \text{ prestable curve of genus }g, \mathcal{L}\text{ line bundle on }C\} It contains the locus e={(C,OC)}e = \{(C, \mathcal{O}_C)\} where L\mathcal{L} is trivial, and we denote by e\overline{e} the closure of this locus and by [e]H2g(Picg)[\overline{e}] \in H^{2g}(\mathfrak{P}ic_g) its fundamental class in cohomology. We have a map σA:Mg,nPicg,(C,p1,,pn)(C,(ωClog)k(i=1naipi))=(C,ωCk(i=1n(aik)pi)). \sigma_A : \overline{\mathcal{M}}_{g,n} \to \mathfrak{P}ic_g, (C, p_1, \ldots, p_n) \mapsto \left(C, (\omega_C^\mathrm{log})^{\otimes k}(- \sum_{i=1}^n a_i p_i) \right) = \left(C, \omega_C^{\otimes k}(- \sum_{i=1}^n (a_i-k) p_i) \right)\,. Then we define the double-ramification cycle DRg(A)=σA[e]H2g(Mg,n). \mathrm{DR}_g(A) = \sigma_A^* [\overline{e}] \in H^{2g}(\overline{\mathcal{M}}_{g,n}).

This might be heavy to swallow, but the following intuition will be enough to remember:

Intuition
The cycle DRg(A)\mathrm{DR}_g(A) describes the condition on Mg,n\overline{\mathcal{M}}_{g,n} that ωCkOC(i=1n(aik)pi)\omega_C^{\otimes k} \cong \mathcal{O}_C(\sum_{i=1}^n (a_i-k) p_i).

This intuition motivates why we should expect a connection to the strata of kk-differentials (and making this precise took the largest part of the papers Holmes-Schmitt 2021 and Bae-Holmes-Pandharipande-Schmitt-Schwarz 2020).

A formula in the tautological ring

Luckily, despite its involved construction(s), the double ramification cycle has a formula in the tautological ring, first conjectured by Pixton and proved in the subsequent years:

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 double ramification cycle in degree dd 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 cycle constructed above is then given as the degree gg part: DRg(A)=DRgg,k(A). \mathrm{DR}_g(A) = \mathrm{DR}_g^{\,g,k}(A)\,.

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).

Dr = DR_cycle(1,[2,-2],1,rpoly=True); Dr
D = DR_cycle(1,[2,-2],1); D

Note that the d is an optional parameter, so that DR_cycle(g,A) computes it for d equal to gg.

Nice properties of double ramification cycles

Below we collect some interesting results about double ramification cycles and how to check them in admcycles.

Hain's formula

Before Pixton's formula was around, the first computation of the double ramification cycle was by Hain 2011. He showed (formulated in modern notation) that for D=DRg 1,k(A)D = \mathrm{DR}_g^{\ 1,k}(A) one has DRg(A)=Dgg!H2g(Mg,nct) \mathrm{DR}_g(A) = \frac{D^g}{g!} \in H^{2g}(\mathcal{M}_{g,n}^\mathrm{ct}) as an equality on the moduli space of compact type curves.

Exercise
For g=2,n=2g=2, n=2 pick your favourite example of k,Ak, A and check that the equality above holds. Also check that it does not hold on all of Mg,n\overline{\mathcal{M}}_{g,n}.

Solution (click to expand)
diff = DR_cycle(2,(0,0)) - 1/2 * DR_cycle(2,(0,0),1)^2 diff.is_zero(moduli='ct') > True diff.is_zero() > False

Chiodo classes and an (un)expected vanishing

There is a variant of the double ramification cycle formula DRgd,k,r(A)\mathrm{DR}_g^{\,d,k,r}(A), sometimes called the Chiodo class.

Construction
Let Mg,Ar,k\overline{\mathcal{M}}_{g,A}^{r,k} be the compactification of the moduli space of rr-th roots of the line bundle (ωClog)k(i=1naipi)(\omega_C^\mathrm{log})^{\otimes k}(- \sum_{i=1}^n a_i p_i). It has universal curve π:CMg,Ar,k\pi : \mathcal{C} \to \overline{\mathcal{M}}_{g,A}^{r,k} and universal rr-th root L\mathcal{L} on C\mathcal{C} and a forgetful map ϵ:Mg,Ar,kMg,n\epsilon: \overline{\mathcal{M}}_{g,A}^{r,k} \to \overline{\mathcal{M}}_{g,n}. Then the Chiodo class is given by DRgd,k,r(A)Chiodo=r2d2g+1ϵcd(RπL)H2d(Mg,n). \mathrm{DR}_g^{\,d,k,r}(A)^\mathrm{Chiodo} = r^{2d-2g+1} \epsilon_* c_d(- R^* \pi_* \mathcal{L}) \in H^{2d}(\overline{\mathcal{M}}_{g,n}).

This class has the nice property that DRgd,k,r(A)Chiodor=0=DRgd,k,r(A)r=0 \mathrm{DR}_g^{\,d,k,r}(A)^\mathrm{Chiodo}|_{r=0} = \mathrm{DR}_g^{\,d,k,r}(A) |_{r=0}\, and it can be computed using

  • DR_cycle(g,A,d,chiodo_coeff=True,r_coeff=r) to compute the above class for a concrete value of rr,

  • DR_cycle(g,A,d,chiodo_coeff=True,rpoly=True) to get the polynomial in rr which computes the above class for r0r \gg 0

This cycle appears in lots of computations related to ELSV formulas (see e.g. Borot-Do-Karev-Lewanski 2020, Do-Lewanski 2020).

Here, I want to show some interesting vanishing phenomena related to this. The first concerns the classical double ramification cycles:

Theorem (Clader-Janda 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.

We can check this in an example:

D = DR_cycle(2,(3,-3),d=3,chiodo_coeff=True,rpoly=True) D.basis_vector()

The fact that all entries are divisible by rr means that the specialization at r=0r=0, which is DR2 3,k(A)\mathrm{DR}^{\ 3,k}_2(A), vanishes as desired.

The second is more interesting, and concerns the Chiodo class from above:

Theorem (Fan-Wu-You 2019)
Let g,d,uZ0g,d,u \in \mathbb{Z}_{\geq 0} and A=(a1,,an)ZnA=(a_1, \ldots, a_n) \in \mathbb{Z}^n with iai=0\sum_i a_i = 0. Then DRgd,k(A)Chiodo[ru]\mathrm{DR}_g^{\,d,k}(A)^\mathrm{Chiodo}[r^u] vanishes in degree d>g+ud>g+u, where the notation [ru][r^u] indicates that we take the coefficient of the monomial rur^u of the cycle class with coefficients being polynomials in rr.

Here is an example for g=2,d=4,u=1g=2, d=4, u=1:

D = DR_cycle(2,(3,-3),d=4,chiodo_coeff=True,rpoly=True) D.basis_vector()

However, the experiment below suggests that the theorem remains true when we allow iai=k(2g2+n)\sum_i a_i = k(2g-2+n) for arbitrary kk:

D = DR_cycle(2,(3,1),d=4,chiodo_coeff=True,rpoly=True) D.basis_vector()

Double ramification cycles with polynomial coefficients

It turns out that there is an extra polynomiality hidden in the double ramification cycles

Fact (Pixton-Zagier 20??)
The double ramification cycle DRg d,k(A)\mathrm{DR}_g^{\ d,k}(A) is a polynomial in the entries of A=(a1,,an)A=(a_1, \ldots, a_n) of degree 2d2d.

Using multivariate interpolation, this polynomial-coefficient tautological class can be computed in admcycles:

R.<a1,a2,a3> = PolynomialRing(QQ,3) D = DR_cycle(1,(a1,a2,a3)) D

Exercise
Consider the following result:

Theorem (Rossi-Buryak 2019)
Let gZ0g \in \mathbb{Z}_{\geq 0} and a1,a2,b1,b2Za_1, a_2, b_1, b_2 \in \mathbb{Z} then Mg,3λgDR(a1,a2,a1a2)DR(b1,b2,b1b2)=(a1b2a2b1)2g23gg!(2g+1)!!.\int_{\overline{\mathcal M}_{g,3}} \lambda_g \cdot \mathrm{DR}(a_1, a_2, -a_1 -a_2) \cdot \mathrm{DR}(b_1, b_2, -b_1 -b_2) = \frac{(a_1 b_2 - a_2 b_1)^{2g}}{2^{3g} g! (2g+1)!!}.

Below I define a function computing the right-hand side of the equation. Write a similar function for the left-hand side and check that they agree for g=1g=1 and arbitrary a1,a2,b1,b3a_1, a_2, b_1, b_3.
Hint: Since SageMath does not like multiplying polynomials of different polynomial rings, you should define one polynomial ring containing all necessary variables.

# Define a function for the right-hand side of the equation def h(g,a1,a2,b1,b2): return (a1*b2-a2*b1)^(2*g)/(2^(3*g) * factorial(g) * (2*g+1).multifactorial(2))
# Define a function for the left-hand side of the equation def f(g,a1,a2,b1,b2): do_something() return something_else
Solution (click to expand)
# Define a function for the left-hand side of the equation def f(g,a1,a2,b1,b2): alpha = lambdaclass(g,g,3) * DR_cycle(g,(a1, a2, -a1-a2)) * DR_cycle(g,(b1, b2, -b1-b2)) return alpha.evaluate() R.<a1,a2,b1,b2>=PolynomialRing(QQ,4) # Create a polynomial ring in 4 variables f(1,a1,a2,b1,b2) > 1/24*a2^2*b1^2 - 1/12*a1*a2*b1*b2 + 1/24*a1^2*b2^2 h(1,a1,a2,b1,b2) > 1/24*a2^2*b1^2 - 1/12*a1*a2*b1*b2 + 1/24*a1^2*b2^2

Outlook

Recently, there has been some work by Giachetto-Kramer-Lewanski 2021 who defined a variant of the Chiodo class which is sensitive to associated spin structures on the curve. Its formula is very similar to the usual Chiodo class and Danilo has written some unpublished code. After optimizing and polishing it a bit, it would be great to integrate it in admcycles, in particular since it is related to some conjectures in Costantini-Sauvaget-Schmitt 2021 on the odd and even components of strata of kk-differentials.

Summary

We have seen that many interesting cycle classes on the moduli space of curves are already implemented in admcycles, among them:

  • admissible cover cycles

  • strata of kk-differentials

  • double ramification cycles and Chiodo classes

For some other examples of classes there already exists some code, which we can work on integrating properly in the package during the conference, such as

  • Witten's r-spin class

  • cycles from the Gromov-Witten theory of projective space, elliptic curves or K3 surfaces

And further projects (e.g. about more general classes coming from cohomological field theories) have been proposed!

I look forward to working on these in the next week!

Thanks for your attention!

Tutorials

Exercise
The paper Faber-Pandharipande 2000 shows that Mg[Hypg]λgλg1=(22g1)B2g(2g+2)!2g, \int_{\overline{\mathcal{M}}_{g}} [\overline{\mathrm{Hyp}}_{g}] \cdot \lambda_g \lambda_{g-1} = \frac{(2^{2g}-1) |B_{2g}|}{(2g+2)! 2g}\,, where B2gB_{2g} is the Bernoulli number (implemented as bernoulli in SageMath). Verify their result for g=2,3g=2,3.

Solution (click to expand)

Here is the solution for g=3g=3, which takes a few minutes already.

g = 3 H = Hyperell(g) A = (H * lambdaclass(g,g,0) * lambdaclass(g-1,g,0)).evaluate() B = (2^(2*g)-1)*abs(bernoulli(2*g))/factorial(2*g+2)/(2*g) print(A,B) > 1/161280 1/161280

Exercise
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}].

Check this for g1=1,g2=2g_1=1, g_2=2.

Solution (click to expand)
g1 = 1; g2 = 2; g = g1 + g2; bdrygraph = StableGraph([g1,g2], [[1],[2]], [(1,2)]) Dg1 = bdrygraph.boundary_pushforward(); Dg1 > Graph : [1, 2] [[1], [2]] [(1, 2)] Polynomial : 1 Hyp_g = Hyperell(g) alpha = bdrygraph.boundary_pushforward([Hyperell(g1,1), Hyperell(g2,1)]) alpha.basis_vector() > (0, 0, -1/2, 7/2, -1/2, 0, 0) (Hyp_g * Dg1).basis_vector() > (0, 0, -1/2, 7/2, -1/2, 0, 0) alpha == Hyp_g * Dg1 > True

Exercise
Consider the following property of the double ramification cycle (sometimes called multiplicativity or, more fancily, the SL2(Z)\mathrm{SL}_2(\mathbb{Z})-invariance of the double double ramification cycle):

Theorem (Holmes-Pixton-Schmitt 2017)
Let A,BA, 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(A) \cdot \mathrm{DR}_g(B) = \mathrm{DR}_g(A) \cdot \mathrm{DR}_g(A+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}.

Check this theorem in the case g=1,n=3g=1, n=3 and for arbitrary A,BA,B.

Solution (click to expand)
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))) diff.is_zero(moduli='ct') > True diff.is_zero() > False