%% if you are submitting an initial manuscript then you should have submission as an option here
%% if you are submitting a revised manuscript then you should have revision as an option here
%% otherwise options taken by the article class will be accepted
\documentclass[finalversion]{FPSAC2025}
\articlenumber{143}
%% but DO NOT pass any options (or change anything else anywhere) which alters page size / layout / font size etc

%% note that the class file already loads {amsmath, amsthm, amssymb}

\usepackage{FPSACmoduli}

\newcommand{\std}{\mathrm{std}}

\usepackage{lipsum}

\Crefname{defn}{Definition}{Definitions}

%% define your title in the usual way
\title[Fundamental groups of real Hassett spaces]{Fundamental groups of moduli spaces of real weighted stable curves} % {\color{red} JL: how about ``Weighted cactus groups"?}}

%% define your authors in the usual way
%% use \addressmark{1}, \addressmark{2} etc for the institutions, and use \thanks{} for contact details
%% for more than 3 names, use the Oxford comma: One Author, Two Author, Red Author, \and Blue Author
\author{\texorpdfstring{Jake Levinson% \thanks{\href{mailto:hello@world.c}{hello@world.c}. Longer names me was partially supported by Grant 2017.11.14.$\partial$\;supp.}
\addressmark{1}
\and Haggai Liu\addressmark{2}}{Jake Levinson% 
and Haggai Liu}}

%% then use \addressmark to match authors to institutions here
\address{\addressmark{1}D\'epartement de math\'ematiques et de statistique, Universit\'e de Montr\'eal, Canada \\ \addressmark{2}Department of Mathematics,
Simon Fraser University, Canada\\}

%% put the date of submission here
\received{\today}

%% leave this blank until submitting a revised version
%\revised{}

%% put your English abstract here, or comment this out if you don't have one yet
%% please don't use custom commands in your abstract / resume, as these will be displayed online
%% likewise for citations -- please don't use \cite, and instead write out your citation as something like (author year)

\abstract{
The ordinary and $S_n$-equivariant fundamental groups of the moduli space $\overline{M_{0,n+1}}(\R)$ of real $(n+1)$-marked stable curves of genus $0$ are known as \emph{cactus groups} $J_n$ and have applications both in geometry and the representation theory of Lie algebras.
In this paper, we compute the ordinary and $S_n$-equivariant fundamental groups of the Hassett space of weighted real stable curves $\overline{M_{0,\mathcal{A}}}(\R)$ with $S_n$-symmetric weight vector $\mathcal{A} = (1/a, \ldots, 1/a, 1)$, which we call \emph{weighted cactus groups} $J_n^a$. We show that $J_n^a$ is obtained from the usual cactus presentation by introducing braid relations, which successively simplify the group from $J_n$ to $S_n \rtimes \Z_2$ as $a$ increases.

Our proof is by decomposing $\overline{M_{0,\mathcal{A}}}(\R)$ as a polytopal complex, generalizing a similar known decomposition for $\overline{M_{0,n+1}}(\R)$. In the unweighted case, these cells are known to be cubes and are `dual' to the usual decomposition into associahedra. For $\overline{M_{0,\mathcal{A}}}(\R)$, our decomposition instead consists of products of permutahedra. The cells of the decomposition are indexed by weighted stable trees, but `dually' to the usual indexing.
}

%% put your French abstract here, or comment this out if you don't have one
% \resume{\lipsum[2]}

%% put your keywords here, or comment this out if you don't have them yet
\keywords{moduli space, cactus group, stable curve, cell decomposition, rooted tree}

%% you can include your bibliography however you want, but using an external .bib file is STRONGLY RECOMMENDED and will make the editor's life much easier
%% regardless of how you do it, please use numerical citations; i.e., [xx, yy] in the text

%% this sample uses biblatex, which (among other things) takes care of URLs in a more flexible way than bibtex
%% but you can use bibtex if you want
\usepackage[backend=bibtex, giveninits]{biblatex}
\addbibresource{references.bib}
%% note the \printbibliography command at the end of the file which goes with these biblatex commands

\begin{document}

\maketitle

\section{Introduction}\label{sec:intro}

For a locally simply connected pointed space $(X, x_0)$ with an action by a finite group $G$, its \emph{$G$-equivariant fundamental group} is
\begin{equation*}
\pi_1^G(X, x_0) = \{ (g, \gamma) : g \in G, \gamma \text{ a homotopy class of paths from $x_0$ to $gx_0$} \}
\end{equation*}
with the multiplication $(g, \gamma) \cdot (g', \gamma') = (gg', \gamma * (g \circ \gamma'))$. It relates to the ordinary fundamental group by the \SES
\begin{equation} \label{eqn:SES-G-eq-pi1}
1 \to \pi_1(X, x_0) \to \pi_1^G(X, x_0) \to G \to 1,
\end{equation}
and so serves as a substitute for $\pi_1(X/G, x_0)$ when the action of $G$ is not free.

Let $\DMumford{n+1}$ denote the moduli space of $(n+1)$-marked stable curves of genus $0$, with the $S_n$-action that permutes the first $n$ labels. The real locus $\DMumford{n+1}(\R)$ is a compact real manifold of dimension $n-2$ with a rich combinatorial structure, particularly via its homology and fundamental group \cite{devadoss2004, etingofHKR2010, ilinKLPR2023}. The $S_n$-equivariant fundamental group of $\DMumford{n+1}(\R)$ is called the \emph{cactus group} $J_n$. It has a well-known presentation \cite{davisJS2003, henriquesK2004} by generators $s_{p,q}$, $1 \leq p < q \leq n$, satisfying $s_{p,q}^2 = 1$ and the \emph{cactus relations}
\begin{itemize}
    \item[(1)] $s_{p,q} s_{r,m} = s_{r,m} s_{p,q}$ if $1 \leq p < q < r < m$,
    \item[(2)] $s_{p,q} s_{r,m} = s_{m',r'} s_{p,q}$ if $p \leq r < m \leq q$, where $m' = p+q-m$ and $r' = p+q-r$.
\end{itemize}
The element $s_{p,q}$ represents a path through $\DMumford{n+1}(\mathbb{R})$ causing the $p$-th through $q$-th points along $\mathbb{RP}^1$ to collide and reverse their order; see \Cref{fig:spq-hat-path}. Accordingly, the map $J_n \to S_n$ sends $s_{p,q}$ to $w_{p,q}\in S_n$ that reverses the interval $[p,q]$. The space $\DMumford{n+1}(\mathbb{R})$ is similar to an ordered configuration space; by analogy with (pure) braid groups,
\[PJ_n := \pi_1(\DMumford{n+1}(\R)) = \ker(J_n \onto S_n)\]
is called the \emph{pure cactus group}. Cactus groups have applications not only to the geometry of real algebraic curves, but also to the representation theory of Lie algebras~\cite{henriquesK2004, etingofHKR2010} and to tableau combinatorics, wherein $s_{p,q} \in J_n$ acts by involutions related to Sch\"utzenberger evacuation \cite{limY2023, speyer14, halachevaKRW2020, halachevaLLY2023}, and to wonderful compactifications of (real) hyperplane arrangements (see e.g. \cite{ilinKLPR2023} for \emph{virtual} and \emph{affine cactus groups}).

In this paper, we examine the weighted variant of $\DMumford{n+1}(\R)$, called a {\bf Hassett space} \cite{hassett2003}. For a vector $\mathcal{A} = (a_1, \ldots, a_{n+1}) \in (0, 1]^{n+1}$, this is the moduli space $\DMumford{\mcA}$ of so-called \emph{$\mathcal{A}$-stable} curves; loosely, marked points of an $\mathcal{A}$-stable curve are allowed to collide if their weights $a_i$ have sum at most $1$. The space $\DMumford{\mcA}$ is then a blowdown of $\DMumford{n+1}$ and is often used as a `simpler model' for moduli of curves.

We describe the ordinary and $S_n$-equivariant fundamental groups of $\DMumford{\mcA}(\R)$ when the weight vector is $S_n$-symmetric: $\mcA=\mathcal{A}(a) := (\tfrac{1}{a}, \ldots, \tfrac{1}{a}, 1)$ for $a \in [n-1]$, i.e. allowing collisions of up to $a$ points. We call them, respectively, the \emph{pure weighted cactus group} $PJ_n^a$ and the \emph{weighted cactus group} $J_n^a$. We note that taking $a \in \{1, 2\}$ does not change the moduli space or resulting groups. Our main result is the following presentation of $J_n^a$. 

\begin{thm} \label{thm:weighted-cactus}
    For $a \geq 3$, the group $J_n^a$ has generators $s_{p,q}$ for all $1 \leq p < q \leq n$ such that $q-p \geq a$ or $q-p = 1$, satisfying $s_{p,q}^2 = 1$ and the relations
    \begin{enumerate}[label=(\arabic*)]
        
        \item\label{enumitem:cactus-disjoint} $s_{p,q} s_{r,m} = s_{r,m} s_{p,q}$ if $1 \leq p < q < r < m$,
        
        
        \item\label{enumitem:cactus-nested} $s_{p,q} s_{r,m} = s_{m',r'} s_{p,q}$ if $p \leq r < m \leq q$, where $m' = p+q-m$ and $r' = p+q-r$,
        
        \item\label{enumitem:braid} (Braid relations) $s_{i, i+1} s_{i+1, i+2} s_{i, i+1} = s_{i+1, i+2} s_{i, i+1} s_{i+1, i+2}$ for all $i$.
    \end{enumerate}
\end{thm}
The relations \ref{enumitem:cactus-disjoint}, \ref{enumitem:cactus-nested} are the usual cactus relations on the restricted set of generators. The braid relations \ref{enumitem:braid} imply that the elements $s_{i, i+1}$ for $i \in [n-1]$ generate a copy of the symmetric group $S_n \subseteq J_n^a$ as soon as $a \geq 3$. For $n\ge 3$ and $a = n-1$, $\hassett{a}(\R)$ is the real projective space $\R\Pj^{n-2}$ and Equation \eqref{eqn:SES-G-eq-pi1} becomes
\begin{equation} \label{eqn:RPn-semidirect}
    1 \to \mathbb{Z}_2 \to S_n \rtimes \mathbb{Z}_2 \to S_n \to 1.
\end{equation}
The blowdown map $\DMumford{n+1} \to \hassett{a}$ is surjective on fundamental groups, so taking $a$ from $1$ to $n-1$ gives a sequence of quotients
\begin{equation}\label{eqn:sequence-quotients}
J_n = J_n^1 = J_n^2 \twoheadrightarrow J_n^3 \twoheadrightarrow \cdots \twoheadrightarrow J_n^{n-1} = S_n \rtimes \mathbb{Z}_2.
\end{equation}
Under these maps, the generators $s_{p,q}$ for $1 < q-p < a$ are sent to the permutations $w_{p,q} \in \langle s_{i, i+1} : 1 \leq i < n \rangle = S_n \subseteq J_n^a$ that reverse the interval $[p,q]$ (\Cref{lem:gen-braid-rels}).

\newcommand{\stabletrees}{ST}
\newcommand{\rootorientedtrees}{OST}\newcommand{\refinedtrees}{RST}
% I thought ST would be a better acronym than RT for "stable trees" ... (I think I was thinking "rooted" when I wrote it at first)

The proof of \Cref{thm:weighted-cactus} is via our second main result: a polytopal decomposition of $\hassett{a}(\R)$ into products of permutahedra, which is dual to the standard decomposition by the topological type of the curve. We obtain \Cref{thm:weighted-cactus} by examining the $2$-skeleton of the decomposition. Both the standard and dual decompositions are indexed by the set $\stabletrees(a; n)$ of \emph{$a$-stable trees} (\Cref{def:a-stable-trees}), which are certain trees $\tau$ with leaves labeled by nonempty subsets $A_\ell \subseteq [n]$ forming a set decomposition $\coprod_\ell A_\ell = [n]$. Let $\Pi_k\subseteq \R^{k}$ denote the $(k-1)$-dimensional permutahedron. The dual decomposition is built as follows.

\begin{defn}
    For each $(C; x_\bullet) \in \hassett{a}(\R)$, running the \emph{distance algorithm} (\Cref{def:distance-alg,def:dual-tree-algorithm,def:dual-tree-general-case}) yields an $a$-stable tree $\tau^{\mathrm{dual}}(C;x_\bullet) \in \stabletrees(a;n)$. For each $\tau \in \stabletrees(a;n)$, we define the locally closed \emph{dual cell} $W_\tau$ as the set of curves for which $\tau^{\mathrm{dual}}(C; x_\bullet) = \tau$.
\end{defn}

\begin{thm} \label{thm:dual-cell-decomposition}
    There is a polytopal decomposition $\hassett{a}(\R) = \coprod_{\tau \in \stabletrees(a; n)} W_\tau$. If $\tau$ has $d$ internal edges and leaves labeled $A_1, \ldots, A_k$, where $\coprod_{i=1}^k A_i = [n]$, the closure $\overline{W_\tau}$ has the form
    \[
    \overline{W_\tau} \cong [-1, 1]^d \times \prod_{i=1}^k \Pi_{|A_i|}.
    \]
\end{thm}

For $a=1$, the cells are all $(n-2)$-cubes, and the description is due to \cite{davisJS2003} and, in more recent language, \cite{ilinKLPR2023}. In general, our permutahedral cells $\overline{W_\tau}$ arise as projections of unions of cubes under the map $\DMumford{n+1}(\mathbb{R}) \to \hassett{a}(\mathbb{R})$; see \Cref{fig:hexagon-merger,fig:hexagon-merger-2}. We note that in $\DMumford{n+1}(\R)$, these unions of cubes are typically noncontractible.

Our results thus shed light both on the real geometry of the weighted moduli space, and on the algebraic structure of standard cactus groups $J_n$ as iterated extensions of symmetric groups. It is rather surprising that there does not appear to be a space given by $J_n$ mod the braid relations only, without also restricting the generators (see Rmk. \ref{rmk:no-intermediate-space}).

\begin{rmk}[Variants]
    The factor of $\Z_2$ in \eqref{eqn:sequence-quotients} appears because $\DMumford{n+1}$ allows 
    {\parfillskip=0pt \par} \noindent
    orientation-reversing 
    changes of coordinates on $\mathbb{P}^1$. These factors disappear when considering
    %, so the long element $w_{1n} \in S_n$ sometimes acts trivially. 
    the natural double cover $\hassettDC{a}(\R) \onto \hassett{a}(\R)$ given by orienting the curve at its $n+1$-th marked point. We discuss this and other extensions of our results, including polytopal decompositions of general $\DMumford{\mcA}(\R)$, in \Cref{subsec:variants}.
\end{rmk}

    \begin{figure}
        \centering
        $$
        \vcenter{
        \hbox{
        \scalebox{0.8}{
        \begin{tikzpicture}[scale=2.5] 
            \def\r{0.3}
            \def\Xfactor{1.25}
            
            \coordinate[] (c0) at (1,0) {};
            \coordinate[] (c1) at (1/2,{sqrt(3)/2}) {};
            \coordinate[] (c2) at (-1/2,{sqrt(3)/2}) {};
            \coordinate[] (c3) at (-1,0) {};
            \coordinate[] (c4) at (-1/2,-{sqrt(3)/2}) {};
            \coordinate[] (c5) at (1/2,-{sqrt(3)/2}) {};
        
            \draw[] (c0) -- node[midway, sloped, above]{$s_{1,2}$} (c1);
            \draw[] (c1) -- node[midway, sloped, above]{$s_{2,3}$} (c2);
            \draw[] (c2) -- node[midway, sloped, above]{$s_{1,2}$} (c3);
            \draw[] (c3) -- node[midway, sloped, below]{$s_{2,3}$} (c4);
            \draw[] (c4) -- node[midway, sloped, below]{$s_{1,2}$} (c5);
            \draw[] (c5) -- node[midway, sloped, below]{$s_{2,3}$} (c0);
        
            % dotted lines thru the exceptional divisors
            \draw[dotted,blue,thick] (c0) -- node[sloped, above]{$s_{1,3}$} ++(c3) -- node[sloped, above]{} (c3);
            \draw[dotted, orange, thick] (c1) -- node[sloped, above]{$s_{1,3}$} ++(c4) -- node[sloped, above]{} (c4);
            \draw[dotted,purple,thick] (c2) -- node[sloped, below]{$s_{1,3}$} ++(c5) -- node[sloped, above]{} (c5);
        
            % center circle
            % \node[circle,draw,text=white,fill=white, minimum size=2]  at (0,0){};
            \draw[color=black, dashed, fill=gray!20] (0,0) circle (\r);
        
            
            
        \end{tikzpicture}
        }% END scalebox
        }}
        % \overset{\pi_1(\rho)}
        {\longrightarrow}
        \vcenter{
        \hbox{
        \scalebox{0.8}{
        \begin{tikzpicture}[scale=2.5] 
            \def\r{0.3}
            \def\Xfactor{1.25}
            
            \coordinate[] (c0) at (1,0) {};
            \coordinate[] (c1) at (1/2,{sqrt(3)/2}) {};
            \coordinate[] (c2) at (-1/2,{sqrt(3)/2}) {};
            \coordinate[] (c3) at (-1,0) {};
            \coordinate[] (c4) at (-1/2,-{sqrt(3)/2}) {};
            \coordinate[] (c5) at (1/2,-{sqrt(3)/2}) {};
        
            \draw[] (c0) -- node[midway, sloped, above]{$s_{1,2}$} (c1);
            \draw[] (c1) -- node[midway, sloped, above]{$s_{2,3}$} (c2);
            \draw[] (c2) -- node[midway, sloped, above]{$s_{1,2}$} (c3);
            \draw[] (c3) -- node[midway, sloped, below]{$s_{2,3}$} (c4);
            \draw[] (c4) -- node[midway, sloped, below]{$s_{1,2}$} (c5);
            \draw[] (c5) -- node[midway, sloped, below]{$s_{2,3}$} (c0);
        \end{tikzpicture}
        } % end scalebox
        }}
        $$
        % \captionsetup{labelformat=empty}
        \caption{A local picture of the blowdown map $\DMumford{5}(\R)\onto \R\Pj^2$. Left: The central circle is an $\R\Pj^1$ with antipodal points identified, surrounded by three regions that are topological squares. Right: Merging regions and contracting the exceptional $\R\Pj^1$ gives a hexagon $\Pi_3$, in which the path $s_{1,3}$ becomes homotopic to $s_{1,2}s_{2,3}s_{1,2}$.}
        \label{fig:hexagon-merger}
    \end{figure}

\section{Background}\label{sec:background}

A \emph{composition} of $[n]$ is a sequence $A_{\bullet}=(A_1, \ldots,A_r)$ of disjoint nonempty sets such that $\coprod_i A_i=[n]$. A composition $B_{\bullet}=(B_1, \ldots, B_s)$ is a \textit{refinement} of $A_{\bullet}$ if each $A_i$ is a union of consecutive blocks $B_j$ of $B_{\bullet}$.
        
The $(n-1)$-dimensional \emph{permutahedron} $\Pi_n \subseteq \R^n$ is the convex hull of the points $(\sigma(1), \ldots, \sigma(n))$, for all $\sigma\in S_n$. The faces of $\Pi_n$ are indexed by the compositions of $[n]$, where for each $A_{\bullet}$, the face $\Pi_{A_{\bullet}}$ is combinatorially equivalent to $\Pi_{|A_1|}\times \ldots \Pi_{|A_r|}.$ Furthermore, $\Pi_{B_{\bullet}}\subseteq \Pi_{A_{\bullet}}$ if and only if $B_{\bullet}$ is a refinement of $A_{\bullet}$.


See \cite{cavalieri2016, hassett2003} for general background on stable trees, $\DMumford{n+1}$, and Hassett spaces. The trees indexing our cell decompositions are defined as follows. We consider (planar) rooted trees $\tau$ with each leaf $\ell \in \tau$ labeled by a nonempty subset $A_\ell \subseteq [n]$, where $\coprod_\ell A_\ell = [n]$. Two such trees $\tau \sim \tau'$ are equivalent if they differ by reversing the ordering of children at some or all vertices. We say $\tau$ is \emph{stable} if every internal vertex $v$ has at least two children. Finally, $\tau$ is \emph{$a$-stable} if in addition $|A_\ell| \leq a$ for every leaf $\ell \in \tau$ and for every internal vertex $v \in \tau$, the subtree of $\tau$ rooted at $v$ includes $\ge a+1$ elements of $[n]$. 
\begin{defn} \label{def:a-stable-trees}
    We denote by $\stabletrees(a; n)$ the set of of \emph{$a$-stable trees} up to equivalence.
\end{defn}
Given $a \leq b$, there is a \emph{compression map} $\stabletrees(a; n) \to \stabletrees(b; n)$ defined as follows. Let $\tau \in \stabletrees(a; n)$ be an $a$-stable tree. For each vertex $v \in \tau$, let $A_v$ be the union of the labels $A_\ell$ of leaves $\ell$ on the subtree of $\tau$ rooted at $v$. Then whenever $|A_v| \leq b$, we contract the corresponding subtree, replacing $v$ by a leaf labeled $A_v$. This gives a $b$-stable tree.

Let $C$ be a connected, possibly reducible algebraic curve of arithmetic genus $0$.  Then $C$ consists of a collection of $\mathbb{P}^1$'s joined at simple nodes in a tree structure. An \textit{$(n+1)$-pointed curve} $(C;x_{\bullet})$ is a curve $C$, together with smooth marked points $x_{\bullet}$$=$$(x_1, \ldots, x_{n+1})$. We call marked points and nodes \textit{special points}. We say $(C;x_{\bullet})$ is \textit{stable} if the marked points are distinct and each component has $\ge 3$ special points. The moduli space $\DMumford{n+1}$ is the set of stable $n+1$-pointed curves up to equivalence. 
    \begin{figure}
        \centering
        \scalebox{0.5}{
        \begin{tikzpicture}[scale=2]

        \begin{scope}[shift={(0,0)}]
            \def\cx{0}
            \def\cy{0}
            % component #1
            \node [circle, draw, minimum size=4cm] (c1) at (\cx,\cy) {};
            \def\labelpos{90}
            \markedpoint{c1}{\labelpos}{0}{4};
            \def\labelpos{0}
            \markedpoint{c1}{\labelpos}{1}{10};
            \def\labelpos{225}
            \markedpoint{c1}{\labelpos}{$\infty$}{$11$};
            
        
        
            
            
            % component #2
            \def\cx{sqrt(2)}
            \def\cy{sqrt(2)}
            \node [circle, draw, minimum size=4cm] (c2) at ({\cx}, {\cy}) {};
            \def\labelpos{90}
            \markedpoint{c2}{\labelpos}{0}{5};
            \def\labelpos{330}
            \markedpoint{c2}{\labelpos}{1}{9};
            
        
            % Node C1 -- C2
            \def\labelpos{45}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=0.5mm, % set the size
                 rectangle, 
                 label={ \labelpos+180 : 0.5 }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c1.\labelpos) % position it on the edge of the main circle
                  {};
            
        
            
            % component #3    
            \def\cx{2*sqrt(2)}
            \def\cy{2*sqrt(2)}
            \node [circle, draw, minimum size=4cm] (c3) at ({\cx}, {\cy}) {};
            \def\labelpos{90}
            \markedpoint{c3}{\labelpos}{0}{6};
            \def\lpa{330}
            \def\lpb{300}
            \def\avglp{(\lpa+\lpb)/2}
            \def\labelpos{\lpa}
            \markedpoint{c3}{\labelpos}{1}{7};
            
            \def\labelpos{\lpb}
            \markedpoint{c3}{\labelpos}{$\pi/3$}{8};
            

            
            
        
            % Node C2 -- C3
            \def\labelpos{45}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=0.5mm, % set the size
                 %square, 
                 label={ \labelpos+180 : 0.25 }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c2.\labelpos) % position it on the edge of the main circle
                  {};
           
        
            
            
            
            % component #4
            \def\cx{-sqrt(2)}
            \def\cy{sqrt(2)}
            \def\lpa{180}
            \def\lpb{150}
            \def\avglp{(\lpa+\lpb)/2}
            \node [circle, draw, minimum size=4cm] (c4) at ({\cx}, {\cy}) {};
            \def\labelpos{\lpa}
            \markedpoint{c4}{\labelpos}{$-1$}{1};
            
            \def\labelpos{\lpb}
            \markedpoint{c4}{\labelpos}{0}{2};
            
            \def\labelpos{90}
            \markedpoint{c4}{\labelpos}{2}{3};
            
        
            % Node C1 -- C4
            \def\labelpos{135}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=0.01mm, % set the size
                 %square, 
                 label={ \labelpos+180 : $-0.5$ }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c1.\labelpos) % position it on the edge of the main circle
                  {};
        \end{scope}

        \draw [arrows = {-Latex[width=4pt 10, length=10pt]}] (4.5, 1.5) -- (5.5, 1.5);

        % reduction picture
        \begin{scope}[shift={(9,0)}]
            \def\cx{0}
            \def\cy{0}
            % component #1
            \node [circle, draw, minimum size=4cm] (c1) at (\cx,\cy) {};
            \def\labelpos{90}
            \markedpoint{c1}{\labelpos}{0}{4};
            \def\labelpos{0}
            \markedpoint{c1}{\labelpos}{1}{10};
            \def\labelpos{225}
            \markedpoint{c1}{\labelpos}{$\infty$}{$11$};
            
        
        
            
            
            % component #2
            \def\cx{sqrt(2)}
            \def\cy{sqrt(2)}
            \node [circle, draw, minimum size=4cm] (c2) at ({\cx}, {\cy}) {};
            \def\labelpos{90}
            \markedpoint{c2}{\labelpos}{0}{5};
            \def\labelpos{330}
            \markedpoint{c2}{\labelpos}{1}{9};
            \def\labelpos{45}
            \markedpoint{c2}{\labelpos}{0.25}{678};
            
        
            % Node C1 -- C2
            \def\labelpos{45}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=0.5mm, % set the size
                 rectangle, 
                 label={ \labelpos+180 : 0.5 }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c1.\labelpos) % position it on the edge of the main circle
                  {};
            
            % component #4
            \def\cx{-sqrt(2)}
            \def\cy{sqrt(2)}
            \def\lpa{180}
            \def\lpb{150}
            \def\avglp{(\lpa+\lpb)/2}
            \node [circle, draw, minimum size=4cm] (c4) at ({\cx}, {\cy}) {};
            \def\labelpos{\lpa}
            \markedpoint{c4}{\labelpos}{$-1$}{1};
            
            \def\labelpos{\lpb}
            \markedpoint{c4}{\labelpos}{0}{2};
            
            \def\labelpos{90}
            \markedpoint{c4}{\labelpos}{2}{3};
            
        
            % Node C1 -- C4
            \def\labelpos{135}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=0.01mm, % set the size
                 %square, 
                 label={ \labelpos+180 : $-0.5$ }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c1.\labelpos) % position it on the edge of the main circle
                  {};
        \end{scope}
            
        
             
        \end{tikzpicture}
        }
        \caption{Left: A stable $11$-pointed curve $(C;x_{\bullet})\in\DMumford{11}(\R)$. On the component containing $x_5$, we have $x_5=0,\ x_9=1$ and there are nodes at $0.25$ and $\infty$. Right: The reduction of $(C;x_\bullet)$ in $\DMumford{\mcA}(\R)$ if $x_6, x_7, x_8$ are given weight $\tfrac{1}{3}$. }
        \label{fig:stable-curve-illus}
    \end{figure}

    Hassett~\cite{hassett2003} constructed a variant of this space where the marked point $x_i$ is assigned a weight $a_i\in (0,1]$, where 
    $\mcA=(a_1, \hdots,a_n, a_{n+1}=1) \in (0,1]^{n+1}$
    is a \emph{weight vector} such that $\sum a_i>2$, and nodes are considered to have weight $1$. We then weaken the condition that the marked points be distinct, as follows. We say that $(C;x_{\bullet})$ is \textit{$\mcA$-stable} if
    \begin{itemize}
        \item for each component $C' \subseteq C$, the total weight of all special points in $C'$ is $>2$; and
        \item each subset of marked points that are equal must have total weight $\le 1$.
    \end{itemize}
    The Hassett space, $\DMumford{\mcA}$, is the set of all $\mcA$-stable curves up to equivalence. There is a (blowdown) \emph{reduction map} $\DMumford{n+1} \to \DMumford{\mcA}$ given by repeatedly contracting any component $C'$ on which the total weight of all special points is $\le 2$; see \Cref{fig:stable-curve-illus}.
    
    For $a\in [n-1]$, we say a curve is \textit{$a$-stable} if it is $\mcA(a)$-stable. Finally, the real loci $\DMumford{n+1}(\R)$ and $\DMumford{\mcA}(\R)$ correspond to the stable or $\mcA$-stable curves for which, up to change of coordinates, the marked points and nodes are all real.

    Consider the $S_n$-action on $\DMumford{n+1}$ fixing the $n+1$-th marked point. For $\mcA=\mcA(a)$, the $S_n$-action on $\DMumford{n+1}$ descends to an $S_n$-action on $\hassett{a}$. The generator $s_{p,q}$ of the cactus group $J_n=\pi_1^{S_n}(\DMumford{n+1}(\R))$ corresponds to the homotopy class of a path $\hat{s}_{p,q}$ in $\DMumford{n+1}(\R)$ that reverses the $p$-th to $q$-th marked points; see \Cref{fig:spq-hat-path}. In fact, $s_{p,q}=(w_{p,q}, \hat{s}_{p,q})$.
%
    \begin{figure}
            \centering
        \def\thescale{0.7}
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{1};
            \markedpoint{c1}{120}{}{2};
            \markedpoint{c1}{90}{}{3};
            \draw[] ({1/sqrt(2)}, {1/sqrt(2)}) arc (45:90:1) node [midway, below , sloped, align=center] {$\hdots$};
            \markedpoint{c1}{30}{}{$p$};
            \markedpoint{c1}{330}{}{$q$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] (0,-1) arc (-90:-45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{$n+1$};
            \markedpoint{c1}{240}{}{$n$};
            \markedpoint{c1}{270}{}{$n-1$};
        \end{tikzpicture}
        }}$
        }
        $\to$
        \!\!\!\!\!\!\!
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{1};
            \markedpoint{c1}{120}{}{2};
            \markedpoint{c1}{90}{}{3};
            \draw[] (0,1) arc (90:0:1) node [midway, below , sloped, align=center] {$\hdots$};
            \markedpoint{c1}{10}{}{$p$};
            \markedpoint{c1}{350}{}{$q$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] (0,-1) arc (-90:0:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{$n+1$};
            \markedpoint{c1}{240}{}{$n$};
            \markedpoint{c1}{270}{}{$n-1$};
        \end{tikzpicture}
        }}$
        }
        $\to$
        \!\!\!\!\!\!\!
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{1};
            \markedpoint{c1}{120}{}{2};
            \markedpoint{c1}{90}{}{3};
            \draw[] (0,1) arc (90:0:1) node [midway, below , sloped, align=center] {$\hdots$};
            
             
             \draw[] (0,-1) arc (-90:0:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{$n+1$};
            \markedpoint{c1}{240}{}{$n$};
            \markedpoint{c1}{270}{}{$n-1$};
        
            \node [circle, draw, minimum size=2cm] (c2) at (2,0) {};
            \markedpoint{c2}{60}{}{$p$};
            \markedpoint{c2}{300}{}{$q$};
             \draw[] ({2+1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
        \end{tikzpicture}
        }}$
        }
        $=$
        \!\!\!\!\!\!\!
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{1};
            \markedpoint{c1}{120}{}{2};
            \markedpoint{c1}{90}{}{3};
            \draw[] (0,1) arc (90:0:1) node [midway, below , sloped, align=center] {$\hdots$};
            
            
             \draw[] (0,-1) arc (-90:0:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{$n+1$};
            \markedpoint{c1}{240}{}{$n$};
            \markedpoint{c1}{270}{}{$n-1$};
        
            \node [circle, draw, minimum size=2cm] (c1) at (2,0) {};
            \markedpoint{c2}{60}{}{$q$};
            \markedpoint{c2}{300}{}{$p$};
             \draw[] ({2+1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
        \end{tikzpicture}
        }}$
        }
        $\to$
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{1};
            \markedpoint{c1}{120}{}{2};
            \markedpoint{c1}{90}{}{3};
            \draw[] (0,1) arc (90:0:1) node [midway, below , sloped, align=center] {$\hdots$};
            \markedpoint{c1}{10}{}{$q$};
            \markedpoint{c1}{350}{}{$p$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] (0,-1) arc (-90:0:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{$n+1$};
            \markedpoint{c1}{240}{}{$n$};
            \markedpoint{c1}{270}{}{$n-1$};
        \end{tikzpicture}
        }}$
        }
        $\to$
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{1};
            \markedpoint{c1}{120}{}{2};
            \markedpoint{c1}{90}{}{3};
            \draw[] ({1/sqrt(2)}, {1/sqrt(2)}) arc (45:90:1) node [midway, below , sloped, align=center] {$\hdots$};
            \markedpoint{c1}{30}{}{$q$};
            \markedpoint{c1}{330}{}{$p$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] (0,-1) arc (-90:-45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{$n+1$};
            \markedpoint{c1}{240}{}{$n$};
            \markedpoint{c1}{270}{}{$n-1$};
        \end{tikzpicture}
        }}$
        }
        $=$
        \scalebox{\thescale}{
        $\vcenter{\hbox{
        \begin{tikzpicture}
            \node [circle, draw, minimum size=2cm] (c1) at (0,0) {};
            % or \pgfmathsetmacro
            \markedpoint{c1}{150}{}{$n+1$};
            \markedpoint{c1}{120}{}{$n$};
            \markedpoint{c1}{90}{}{$n-1$};
            \draw[] ({1/sqrt(2)}, {1/sqrt(2)}) arc (45:90:1) node [midway, below , sloped, align=center] {$\hdots$};
            \markedpoint{c1}{30}{}{$p$};
            \markedpoint{c1}{330}{}{$q$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] ({1/sqrt(2)}, {-1/sqrt(2)}) arc (-45:45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \draw[] (0,-1) arc (-90:-45:1) node [midway, above , sloped, align=center] {$\hdots$};
             \markedpoint{c1}{200}{}{1};
            \markedpoint{c1}{240}{}{2};
            \markedpoint{c1}{270}{}{3};
        \end{tikzpicture}
        }}$
        }
            \caption{The path $\hat{s}_{p,q}$ in $\DMumford{n+1}(\R)$ corresponding to $s_{p,q}\in J_n$. The marked points $p, \ldots, q$ approach one another, collide and reverse their order.}
            \label{fig:spq-hat-path}
        
        \end{figure}

It is straightforward to see that the reduction map $\overline{M_{0,n+1}}\to \overline{M_{0, \mcA(a)}}$ induces a surjection of groups
$ \displaystyle{ J_n = \pi_1^{S_n}(\overline{M_{0,n+1}}(\R))\onto J_n^a=\pi_1^{S_n}(\overline{M_{0,\mcA(a)}}(\R)),}
$
and similarly for the ordinary fundamental groups, $PJ_n \twoheadrightarrow PJ_n^a$.

\section{The distance algorithm and cell decompositions}\label{sec:dual-cell}

\subsection{The standard polytopal decomposition}

Let $(C; x_\bullet) \in \DMumford{\mcA(a)}(\R)$ be a real $a$-stable curve. The \emph{standard\footnote{In the literature, $\tau^{\mathrm{std}}(C; x_\bullet)$ is called the `dual tree' of $(C; x_\bullet)$, because its edges and leaves correspond to the special points of $C$. We instead reserve the term `dual' for the dual cell structure.} $a$-stable tree} 
{\parfillskip=0pt \par} \noindent
$\tau^{\mathrm{std}}(C; x_\bullet) \in \stabletrees(a;n)$ records the incidence structure of the components and marked points of $C$ as follows; see \Cref{fig:stable-curve-with-dual-tree-ex}. It has an internal vertex $v$ for each component $C' \subseteq C$ and its root corresponds to the $C'$ containing $x_{n+1}$. It has an edge for each node; and for each $x \in C$ marked by one or more elements of $[n]$, it has a leaf $\ell$ labeled by the corresponding set $A_\ell \subseteq [n]$. Each component $C'$ has a unique special point $q(C')$ closest to $x_{n+1}$ (either $x_{n+1}$ itself or a node). The children of the corresponding vertex $v$ correspond to the other special points of $C'$; they inherit a well-defined ordering, up to reversal, by choosing any coordinates on $C' \cong \R\Pj^1$ for which $q(C') = \infty$.
    
The \emph{standard cell} $X_\tau \subseteq \DMumford{\mcA(a)}(\R)$ is the set of curves for which $\tau^{\mathrm{std}}(C; x_\bullet) = \tau$. For $a=1$, the cell closures $\overline{X_\tau}$ are, combinatorially, products of associahedra \cite{devadoss2004}. In the Hassett space, they are (products of) generalized associahedra. We note that if $\tau$ has $d$ internal edges and has leaves labeled $A_1, \ldots, A_k$, where $\coprod_{i=1}^k A_i = [n]$, then
\begin{equation}\label{eq:dim-standard-cell}
\mathrm{codim}(\overline{X_\tau}) = d + \sum_{i=1}^k (|A_i|-1).
\end{equation}


    \begin{figure}
        \centering
        \begin{tikzpicture}[xscale=0.75, yscale= 1.25]
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 1 }] (node_0_0) at (0,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 2 }] (node_1_0) at (1,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 3 }] (node_2_0) at (2,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 4 }] (node_3_0) at (3,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 5 }] (node_4_0) at (4,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 6 }] (node_5_0) at (5,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 7 }] (node_6_0) at (6,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 8 }] (node_7_0) at (7,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 9 }] (node_8_0) at (8,0) {};
            \node [circle, draw, fill, inner sep =1pt, label = { 90: 10 }] (node_9_0) at (9,0) {};
            \node [circle, draw, fill, inner sep =1pt, ] (node_1_-1) at (1,-1) {};
            \node [circle, draw, fill, inner sep =1pt, ] (node_6_-1) at (6,-1) {};
            \node [circle, draw, fill, inner sep =1pt, ] (node_6_-2) at (5.5,-2) {};
            \node [circle, draw, red, fill, inner sep =1pt, minimum size=1.5mm] (node_4'75_-3) at (4.75,-3) {};
            \draw[blue,thick] (node_4'75_-3) -- (node_1_-1);
            \draw[] (node_4'75_-3) -- (node_3_0);
            \draw[blue,thick] (node_4'75_-3) -- (node_6_-2);
            \draw[] (node_4'75_-3) -- (node_9_0);
            \draw[] (node_1_-1) -- (node_0_0);
            \draw[] (node_1_-1) -- (node_1_0);
            \draw[] (node_1_-1) -- (node_2_0);
            \draw[] (node_6_-2) -- (node_4_0);
            \draw[blue, thick] (node_6_-2) -- (node_6_-1);
            \draw[] (node_6_-2) -- (node_8_0);
            \draw[] (node_6_-1) -- (node_5_0);
            \draw[] (node_6_-1) -- (node_6_0);
            \draw[] (node_6_-1) -- (node_7_0);
        \end{tikzpicture}
        \scalebox{0.55}{
            \begin{tikzpicture}[scale=2]
                \def\cx{0}
                \def\cy{0}
                % component #1
                \node [circle, draw, minimum size=4cm] (c1) at (\cx,\cy) {};
                    
                \def\labelpos{95}
                \markedpoint{c1}{\labelpos}{}{4};
                \draw[ultra thick] (\cx, \cy) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)}); 
                \def\labelpos{0}
                \markedpoint{c1}{\labelpos}{}{10};
                \draw[ultra thick] (\cx, \cy) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
                \def\labelpos{225}
                \markedpoint{c1}{\labelpos}{}{$n+1$};
                \draw[dotted] (\cx, \cy) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            
                \def\cxprev{0}
                \def\cyprev{0}
                
                
                \def\cx{sqrt(2)}
                \def\cy{sqrt(2)}
                % component #2
                \node [circle, draw, minimum size=4cm] (c2) at ({\cx}, {\cy}) {};
                \def\labelpos{90}
                \markedpoint{c2}{\labelpos}{}{5};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
                \def\labelpos{330}
                \markedpoint{c2}{\labelpos}{}{9};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            
                % Node C1 -- C2
                % \def\labelpos{45}
                % \node[blue, % with the color defined by the macro
                %      draw, %thick, % draw the outline
                %      fill, % fill it
                %      inner sep = 0pt, % not too big
                %      minimum size=1.5mm, % set the size
                %      rectangle, 
                %      % label={ \labelpos+180 : 0 }, % add the number on the inside
                %      label = {\labelpos : $\infty$ }  % add the number on the outside
                %      ] at (c1.\labelpos) % position it on the edge of the main circle
                %       {};
                \draw[blue, ultra thick] ({\cx},{\cy}) -- ({\cxprev}, {\cyprev});
            
                \def\cxprev{sqrt(2)}
                \def\cyprev{sqrt(2)}
                      
                \def\cx{2*sqrt(2)}
                \def\cy{2*sqrt(2)}
                % component #3
                \node [circle, draw, minimum size=4cm] (c3) at ({\cx}, {\cy}) {};
                \def\labelpos{90}
                \markedpoint{c3}{\labelpos}{}{6};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
                \def\labelpos{330}
                \markedpoint{c3}{\labelpos}{}{7};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
                \def\labelpos{300}
                \markedpoint{c3}{\labelpos}{}{8};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            
                % Node C2 -- C3
                % \def\labelpos{45}
                % \node[blue, % with the color defined by the macro
                %      draw, %thick, % draw the outline
                %      fill, % fill it
                %      inner sep = 0pt, % not too big
                %      minimum size=1.5mm, % set the size
                %      %square, 
                %      % label={ \labelpos+180 : 0 }, % add the number on the inside
                %      label = {\labelpos : $\infty$ }  % add the number on the outside
                %      ] at (c2.\labelpos) % position it on the edge of the main circle
                %       {};
                \draw[blue, ultra thick] ({\cx},{\cy}) -- ({\cxprev}, {\cyprev});
            
                
                
                \def\cxprev{0}
                \def\cyprev{0}
                
                \def\cx{-sqrt(2)}
                \def\cy{sqrt(2)}
                % component #4
                \node [circle, draw, minimum size=4cm] (c4) at ({\cx}, {\cy}) {};
                \def\labelpos{180}
                \markedpoint{c4}{\labelpos}{}{1};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
                \def\labelpos{150}
                \markedpoint{c4}{\labelpos}{}{2};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
                \def\labelpos{90}
                \markedpoint{c4}{\labelpos}{}{3};
                \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            
                % Node C1 -- C4
                % \def\labelpos{135}
                % \node[blue, % with the color defined by the macro
                %      draw, %thick, % draw the outline
                %      fill, % fill it
                %      inner sep = 0pt, % not too big
                %      minimum size=1.5mm, % set the size
                %      %square, 
                %      % label={ \labelpos+180 : 0 }, % add the number on the inside
                %      label = {\labelpos : $\infty$ }  % add the number on the outside
                %      ] at (c1.\labelpos) % position it on the edge of the main circle
                %       {};
                \draw[blue, ultra thick] ({\cx},{\cy}) -- ({\cxprev}, {\cyprev});

                % draw the root last so it appears on top
                \node[red, % with the color defined by the macro
                     draw, ultra thick, % draw the outline
                     fill, % fill it
                     inner sep = 0pt, % not too big
                     minimum size=2mm, % set the size
                     circle, 
                     % label={ \labelpos+180 : 0 }, % add the number on the inside
                     % label = {\labelpos : $\infty$ }  % add the number on the outside
                     ] at ({0}, {0}) % position it on the edge of the main circle
                      {};

            \end{tikzpicture}
        }
        \caption{($n=10$) An element of the standard cell $X_{\tau}\subseteq \overline{M_{0,11}}(\R)$ with $\tau$ overlaid. 
        % Here, $\dim X_{\tau}=(4-3)+(5-3)+(4-3)+(4-3)=5$.
        }
        \label{fig:stable-curve-with-dual-tree-ex}
    \end{figure}

\subsection{The distance algorithm and dual cells}

We now describe a cell decomposition of the Hassett space $\overline{M_{0, \mcA(a)}}(\R)$ that is `dual' to the standard decomposition. The cells are again indexed by the elements of $\stabletrees(a; n)$. For $a=1$, the description is especially simple and recovers the dual cell decomposition of $\overline{M_{0, n+1}}(\mathbb{R})$ \cite{davisJS2003,ilinKLPR2023}.

In order to associate stable curves to trees, we adapt the following \textit{distance algorithm} (cf. \cite[Lemma 9.12]{ilinKLPR2023}) that maps a vector of differences to a rooted tree: 

\begin{defn}[Distance algorithm] \label{def:distance-alg}
    Let $\sigma \in S_n$ be a permutation and $\vec{d}$$=$$ (d_1, \ldots, d_{n-1}) \in \mathbb{R}^{n-1}_{\geq 0}$; we call $\vec{d}$ the vector of differences. We construct a rooted tree $\tau$ as follows. We begin with $n$ isolated vertices labeled $\sigma(1), \ldots, \sigma(n)$ from left to right. We then join these points into subtrees by repeating the following steps.
    \begin{enumerate}
        \item Let $d := \min d_i$ be the minimum distance remaining in $\vec{d}$.
        \item For each sequence of consecutive copies of $d$: $\{d\} = \{d_i, d_{i+1}, \cdots, d_j$\}, join the $i$-th to $j+1$-th subtrees as children of a new (unlabeled) vertex; delete $d_i, \ldots, d_j$ from $\vec{d}$.
    \end{enumerate}
    We write $\tau^{\mathrm{dist}}(\sigma, \vec{d})$ for the resulting rooted tree. See \Cref{fig:tree-algorithm-on-stable-curve} (Left).
\end{defn}

Thus, vertices close to the root represent large gaps between two consecutively placed marked points. This property in fact uniquely determines $\tau:=\tau^{\mathrm{dist}}(\sigma, \vec{d})$. In addition, $\tau$ is binary if and only if every two consecutive coordinates of $\vec{d}$ are distinct (i.e. $d_i\neq d_{i+1}$). At the opposite extreme, if all the distances in $\vec{d}$ are equal, $\tau$ has one internal vertex and its leaves spell out $\sigma$ from left to right.

\begin{figure}
    \centering
    % \includegraphics[height=6cm]{imgs/tree-algorithm-local.jpeg}
    \scalebox{0.6}{
    \begin{tikzpicture}[scale=1.5]
        \draw[red] (-0.5,0) -- (7,0) node[anchor = west] {$\color{black}\R$};
        \node[circle, draw, fill, inner sep =1pt, label = { 90: $x_1=0$ }] (x1) at (0,0) {};
        \node[circle, draw, fill, inner sep =1pt, label = { 90: $x_2=1$ }] (x2) at (1,0) {};
        \node[circle, draw, fill, inner sep =1pt, label = { 90: $x_3=2$ }] (x3) at (2,0) {};
        \node[circle, draw, fill, inner sep =1pt, label = { 90: $x_4=4$ }] (x4) at (4,0) {};
        \node[circle, draw, fill, inner sep =1pt, label = { 90: $x_5=5$ }] (x5) at (5,0) {};
        \node[circle, draw, fill, inner sep =1pt, label = { 90: $x_6=6.5$ }] (x6) at (6.5,0) {};
        \node[circle, draw, fill, inner sep =1pt] (x123) at (1,-1) {};
        \node[circle, draw, fill, inner sep =1pt] (x45) at (4.5,-1) {};
        \node[circle, draw, fill, inner sep =1pt] (x456) at (5.5,-2) {};
        \node[circle, draw, fill, inner sep =1pt] (x123456) at (3.25,-4) {};

        \coordinate[label={270: $x_{n+1}$}] (xnplus1) at (3.25,-4.5) {};
    
        \draw[] (x1) -- (x123);
        \draw[] (x2) -- (x123);
        \draw[] (x3) -- (x123);
        \draw[] (x4) -- (x45);
        \draw[] (x5) -- (x45);
        \draw[] (x45) -- (x456);
        \draw[] (x6) -- (x456);
        \draw[] (x123) -- (x123456);
        \draw[] (x456) -- (x123456);
        \draw[dotted, thick] (x123456) -- (xnplus1);
    \end{tikzpicture}
    }
    % no line break here
    \scalebox{0.5}{
        \begin{tikzpicture}[scale=2]
        
            \def\cx{0}
            \def\cy{0}
            % component #1
            \node [circle, draw, minimum size=4cm] (c1) at (\cx,\cy) {};
            
            \def\labelpos{95}
            \markedpoint{c1}{\labelpos}{}{4};
            \def\temp{135} % angle of the nodal point
            \draw[ultra thick] ({\cx+cos(\temp)/2}, {\cy+sin(\temp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});

            
            \def\labelpos{5}
            \markedpoint{c1}{\labelpos}{}{10};
            \def\temp{45} % angle of the nodal point
            \draw[ultra thick] ({\cx+cos(\temp)/2}, {\cy+sin(\temp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});


            
            \def\labelpos{225}
            \markedpoint{c1}{\labelpos}{}{$n+1$};
            \draw[dotted] (\cx, \cy) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
        
        
            \def\cxprev{0}
            \def\cyprev{0}
            
            
            \def\cx{sqrt(2)}
            \def\cy{sqrt(2)}
            % component #2
            \node [circle, draw, minimum size=4cm] (c2) at ({\cx}, {\cy}) {};

            
            \def\labelpos{90}
            \markedpoint{c2}{\labelpos}{}{5};
            \def\temp{45} % angle of the nodal point
            \draw[ultra thick] ({\cx+cos(\temp)/2}, {\cy+sin(\temp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            
            \def\labelpos{330}
            \markedpoint{c2}{\labelpos}{}{9};
            \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
        
            % Node C1 -- C2
            \def\labelpos{45}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=1.5mm, % set the size
                 rectangle, 
                 % label={ \labelpos+180 : 0 }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c1.\labelpos) % position it on the edge of the main circle
                  {};
            \draw[blue, ultra thick] ({\cx},{\cy}) -- ({\cxprev+cos(\labelpos)/2}, {\cyprev+sin(\labelpos)/2});
            \draw[ultra thick] ({\cxprev},{\cyprev}) -- ({\cxprev+cos(\labelpos)/2}, {\cyprev+sin(\labelpos)/2});
        
            \def\cxprev{sqrt(2)}
            \def\cyprev{sqrt(2)}
                  
            \def\cx{2*sqrt(2)}
            \def\cy{2*sqrt(2)}
            % component #3
            \node [circle, draw, minimum size=4cm] (c3) at ({\cx}, {\cy}) {};
            \def\labelpos{90}
            \markedpoint{c3}{\labelpos}{}{6};
            \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});

            
            % entend an edge here
            \def\lpa{330}
            \def\lpb{300}
            \def\avglp{(\lpa+\lpb)/2}
            \def\labelpos{\lpa}
            \markedpoint{c3}{\labelpos}{}{7};
            \draw[ultra thick] ({\cx+cos(\avglp)/2},{\cy+sin(\avglp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            \def\labelpos{\lpb}
            \markedpoint{c3}{\labelpos}{}{8};
            \draw[ultra thick] ({\cx+cos(\avglp)/2},{\cy+sin(\avglp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});

            \draw[ultra thick] ({\cx},{\cy}) -- ({\cx+cos(\avglp)/2},{\cy+sin(\avglp)/2});
            
        
            % Node C2 -- C3
            \def\labelpos{45}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=1.5mm, % set the size
                 %square, 
                 % label={ \labelpos+180 : 0 }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c2.\labelpos) % position it on the edge of the main circle
                  {};
            \draw[blue, ultra thick] ({\cx},{\cy}) -- ({\cxprev+cos(\labelpos)/2}, {\cyprev+sin(\labelpos)/2});
            \draw[ultra thick] ({\cxprev},{\cyprev}) -- ({\cxprev+cos(\labelpos)/2}, {\cyprev+sin(\labelpos)/2});
        
            
            
            \def\cxprev{0}
            \def\cyprev{0}
            
            \def\cx{-sqrt(2)}
            \def\cy{sqrt(2)}
            % component #4

            % entend an edge here
            \def\lpa{180}
            \def\lpb{150}
            \def\avglp{(\lpa+\lpb)/2}
            \node [circle, draw, minimum size=4cm] (c4) at ({\cx}, {\cy}) {};
            \def\labelpos{\lpa}
            \markedpoint{c4}{\labelpos}{}{1};
            \draw[ultra thick] ({\cx+cos(\avglp)/2},{\cy+sin(\avglp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            \def\labelpos{\lpb}
            \markedpoint{c4}{\labelpos}{}{2};
            \draw[ultra thick] ({\cx+cos(\avglp)/2},{\cy+sin(\avglp)/2}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
            \def\labelpos{90}

            \draw[ultra thick] ({\cx},{\cy}) -- ({\cx+cos(\avglp)/2},{\cy+sin(\avglp)/2});

            
            \markedpoint{c4}{\labelpos}{}{3};
            \draw[ultra thick] ({\cx}, {\cy}) -- ({\cx+cos(\labelpos)},{\cy+sin(\labelpos)});
        
            % Node C1 -- C4
            \def\labelpos{135}
            \node[blue, % with the color defined by the macro
                 % draw, %thick, % draw the outline
                 % fill, % fill it
                 inner sep = 0pt, % not too big
                 minimum size=1.5mm, % set the size
                 %square, 
                 % label={ \labelpos+180 : 0 }, % add the number on the inside
                 label = {\labelpos : $\infty$ }  % add the number on the outside
                 ] at (c1.\labelpos) % position it on the edge of the main circle
                  {};
            \draw[blue, ultra thick] ({\cx},{\cy}) -- ({\cxprev+cos(\labelpos)/2}, {\cyprev+sin(\labelpos)/2});
            \draw[ultra thick] ({\cxprev},{\cyprev}) -- ({\cxprev+cos(\labelpos)/2}, {\cyprev+sin(\labelpos)/2});
        
             
        \end{tikzpicture}
    }
    \caption{Left: The tree $\tau^{\mathrm{dual}}(\R\Pj^1; 0, 1, 2, 5, 6, 6.5, \infty)$ obtained by the distance algorithm. Right: A stable curve $(C; x_{\bullet})$ with the tree $\tau^{\mathrm{dual}}(C; x_{\bullet})$ overlaid. For the dual cell decomposition, these trees are considered up to flips (reversals) at internal vertices. For the refined cell decomposition (Section \ref{sec:refined-cells}), only the root vertex and the children of the blue highlighted edges are `flippable'.}
    \label{fig:tree-algorithm-on-stable-curve}
\end{figure}

We define the dual cell decomposition for the weighted space $\hassett{a}(\R)$ using the distance algorithm, as follows. The unweighted case of $\DMumford{n+1}(\R)$ ($a=1,2$) reduces to the material in \cite{davisJS2003, ilinKLPR2023}. We first consider the case of smooth curves.

\begin{defn}[Dual tree, smooth case]\label{def:dual-tree-algorithm}
Let $(C; x_\bullet) \in \DMumford{\mathcal{A}(a)}(\R)$, with $C$ smooth. Choose any coordinates on $C \cong \mathbb{RP}^1$ for which the marked point $x_{n+1} = \infty$, and choose any $\sigma \in S_n$ such that the remaining marked points satisfy $x_{\sigma(1)} \leq \cdots \leq x_{\sigma(n)}.$
Consider the tree $\tau :=\tau^{\mathrm{dist}}(\sigma, \vec{d})$ %produced by \Cref{def:distance-alg} 
using $\sigma$ together with the vector of successive differences
    \[
    \vec{d} = (x_{\sigma(2)} - x_{\sigma(1)}, \ldots, x_{\sigma(n)} - x_{\sigma(n-1)}).
    \]
We consider $\tau$ as a stable tree (i.e. up to reversal of the ordering of children at each vertex); finally, we let $\tau^{\mathrm{dual}}(C; x_\bullet)$ be the compression of $\tau$ to an $a$-stable tree. The result then does not depend on the choice of coordinates or on $\sigma$.
\end{defn}

The general case is obtained by running the distance algorithm on each component $C' \subseteq C$. Recall that $q(C')$ denotes the unique special point in $C'$ closest to $x_{n+1}$.
\begin{defn}[Dual tree, general case] \label{def:dual-tree-general-case}
    Let $(C; x_\bullet) \in \DMumford{\mcA(a)}(\R)$. Then $\tau^{\mathrm{dual}}(C; x_\bullet)$ is defined as follows. For each component $C'\subseteq C$, compute $\tau^{\mathrm{dist}}(C'):=\tau^{\mathrm{dist}}(\sigma, \vec{d})$ on $C'\cong \R\Pj^1$ as in \Cref{def:dual-tree-algorithm}, using any coordinates on $C'$ for which $q = \infty$, with $\sigma$ and $\vec{d}$ according to the positions of the other special points of $C'$. Attach the trees $\tau^{\mathrm{dist}}(C')$ according to how the components $C' \subseteq C$ are attached; see \Cref{fig:tree-algorithm-on-stable-curve} right. 
    Finally, apply the compression map $\stabletrees(1;n)\to \stabletrees(a;n)$ to get $\tau^{\mathrm{dual}}(C; x_\bullet)$.
\end{defn}
We note that our definition implicitly combines the distance data with the standard tree structure $\tau^{\mathrm{std}}(C; x_\bullet)$. Loosely, $\tau^{\mathrm{dual}}(C; x_\bullet)$ is obtained by replacing each internal vertex of $\tau^{\mathrm{std}}(C; x_\bullet)$ by a tree computed by the distance algorithm.

We recall that the dual cell $W_\tau$ is by definition the set of all $(C; x_\bullet)$ with $\tau^{\mathrm{dual}}(C;x_\bullet)= \tau$. We now sketch the proof of \Cref{thm:dual-cell-decomposition}, the decomposition of $\overline{W_{\tau}}$ into a product of intervals and permutahedra.

\begin{proof}[Proof sketch of \Cref{thm:dual-cell-decomposition}] 
    We first obtain a product formula, showing that each cell closure $\overline{W_{\tau}}$ is a product of cells $\overline{W_{\tau(k)}}$ corresponding to trees of the form $\tau(k):=$\raisebox{-.3\height}{\scalebox{0.7}{$\begin{tikzpicture}[scale=0.3]
        \trivialTree{$[k{-}1]$}{$\{k\}$}
    \end{tikzpicture}
    $}}. We then construct homeomorphisms $\overline{W_{\tau(n)}}\cong \Pi_{n-1}$ inductively by dimension: we consider line segments from the center of $\Pi_{A_{\bullet}}$ to  the faces $\Pi_{B_{\bullet}}\subseteq \partial \Pi_{A_{\bullet}}$. We show that these segments align neatly with parts of the distance algorithm.
\end{proof}

\begin{proof}[Proof sketch of \Cref{thm:weighted-cactus}]
The symmetric group $S_n$ is compatible with the dual cell structure on $\DMumford{\mcA(a)}$. The key feature that distinguishes the dual cell decomposition from the standard decomposition is that $S_n$ acts transitively on the $0$-cells, the \emph{permutation points} $(C; x_\bullet)$, where $C = \Pj^1$ with $(x_1, \ldots, x_n, x_{n+1}) = (\sigma(1), \ldots, \sigma(n), \infty)$ for some $\sigma \in S_n$ (up to reversal). It follows that the equivariant fundamental group can be read off the $2$-skeleton near the point corresponding to the identity permutation.

The generators of $\pi_1^{S_n}$ are given by (conjugacy classes of) $1$-cells; these correspond to the paths $\hat{s}_{p,q}$, and are involutions essentially because the permutations $w_{p,q}$ are involutions. We note that $\pi_1^{S_n}(\DMumford{\mcA(a)}(\R))$ has fewer generators than $\pi_1^{S_n}(\DMumford{n+1}(\R))$ because some $1$-cells of $\DMumford{n+1}(\R)$ map to the interiors of cells of $\DMumford{\mcA(a)}(\R)$; see \Cref{fig:hexagon-merger,fig:hexagon-merger-2}.

The relations are then given by the $2$-cells. Since all the cells are products of permutahedra, every $2$-cell has the form
$[-1, 1]^2$, $[-1, 1] \times \Pi_2$, $\Pi_2^2$, or $\Pi_3.$ The (four-term) cactus relations come from the first three types, which are squares; the (six-term) braid relations come from the hexagon $\Pi_3$. We note that $\DMumford{n+1}(\R)$ has no hexagons.
\end{proof}

\begin{rmk}[Duality] \label{rmk:duality}
    The duality between the two polytopal decompositions of {\parfillskip=0pt \par}
    \noindent $\hassett{a}(\R)$ can be summarized as follows: for $\tau, \tau' \in \stabletrees(a;n)$, we have $X_\tau \subseteq \overline{X_{\tau'}}$ if and only if $W_{\tau'} \subseteq \overline{W_\tau}$, and $X_\tau \cap W_\tau$ is the unique point $(C; x_\bullet)$ with component structure $\tau$ and evenly-spaced special points on each component. (Note that $X_\tau$ and $W_\tau$ have complementary dimensions.) We describe $X_\tau \cap W_{\tau'}$ in general in \Cref{sec:refined-cells}.
\end{rmk}

    \begin{figure}
        \centering
        $$
        \vcenter{
        \hbox{
        \scalebox{0.8}{

\begin{tikzpicture}
    \def \radius {3.5}
    \begin{scope}[shift={(0, 0)}, scale=0.7]

    % left hexagon
    \def \smallradius {1}
    \draw[dashed] (\smallradius, 0)
    	-- (60:\smallradius)
	-- (120:\smallradius)
	-- (180:\smallradius)
	-- (240:\smallradius)
	-- (300:\smallradius)
	-- (360:\smallradius);
     \fill[cyan!20] (0:\radius) -- (0:\smallradius) -- (60:\smallradius) -- (60:\radius) -- cycle;
     \fill[yellow!50] (60:\radius) -- (60:\smallradius) -- (120:\smallradius) -- (120:\radius) -- cycle;
     \fill[magenta!20] (120:\radius) -- (120:\smallradius) -- (180:\smallradius) -- (180:\radius) -- cycle;
     \fill[cyan!20] (180:\radius) -- (180:\smallradius) -- (240:\smallradius) -- (240:\radius) -- cycle;
     \fill[yellow!50] (240:\radius) -- (240:\smallradius) -- (300:\smallradius) -- (300:\radius) -- cycle;
     \fill[magenta!20] (300:\radius) -- (300:\smallradius) -- (360:\smallradius) -- (360:\radius) -- cycle;

    \draw (\radius, 0) node {$\bullet$}
    	-- (60:\radius) node {$\bullet$}
	-- (120:\radius) node {$\bullet$}
	-- (180:\radius) node {$\bullet$}
	-- (240:\radius) node {$\bullet$}
	-- (300:\radius) node {$\bullet$}
	-- (360:\radius) node {$\bullet$};

    \foreach \a in {0, 60, 120, 180, 240, 300}
        \draw (\a:\radius) -- (\a:\smallradius);
        
    % yellow region tree
   \begin{scope}[shift={(271:\radius*0.79)}]
   \draw (0, 0) -- (-0.3, 0.2);
   \draw (-0.3, 0.2) -- (-0.6, 0.5) node[above] {$23$};
   \draw (-0.3, 0.2) -- (0, 0.5) node[above] {$1$};
   \draw (0, 0) -- (0.6, 0.5) node[above] {$4$};
   \end{scope}

   % cyan region tree
   \begin{scope}[shift={(221:\radius*0.7)}]
   \draw (0, 0) -- (-0.3, 0.2);
   \draw (-0.3, 0.2) -- (-0.6, 0.5) node[above] {$2$};
   \draw (-0.3, 0.2) -- (0, 0.5) node[above] {$13$};
   \draw (0, 0) -- (0.6, 0.5) node[above] {$4$};
   \end{scope}

   % magenta region tree
   \begin{scope}[shift={(319:\radius*0.7)}]
   \draw (0, 0) -- (-0.3, 0.2);
   \draw (-0.3, 0.2) -- (-0.6, 0.5) node[above] {$3$};
   \draw (-0.3, 0.2) -- (0, 0.5) node[above] {$12$};
   \draw (0, 0) -- (0.6, 0.5) node[above] {$4$};
   \end{scope}   
   \end{scope}

   % arrow
   \draw (3.5, 0) node {$\longrightarrow$};

    % right hexagon
    \begin{scope}[shift={(8, 0)}, scale=0.7]
    
    \draw (\radius, 0) node {$\bullet$}
    	-- (60:\radius) node {$\bullet$}
	-- (120:\radius) node {$\bullet$}
	-- (180:\radius) node {$\bullet$}
	-- (240:\radius) node {$\bullet$}
	-- (300:\radius) node {$\bullet$}
	-- (360:\radius) node {$\bullet$};

    % central tree
    \draw (0, 0) -- (-0.5, 0.5) node[above] {$123$};
    \draw (0, 0) -- (0.5, 0.5) node[above] {$4$};

    % 1234 permutation tree (top left)
   \begin{scope}[shift={(135:\radius*1.1)}]
   \foreach \x/\i in {-0.6/1, -0.2/2, 0.2/3, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
    % top right (apply s23 ~> 1324)
   \begin{scope}[shift={(45:\radius*1.1)}]
   \foreach \x/\i in {-0.6/1, -0.2/3, 0.2/2, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
    % mid left (apply s12 ~> 2134)
   \begin{scope}[shift={(180:\radius*1.25)}]
   \foreach \x/\i in {-0.6/2, -0.2/1, 0.2/3, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
   % mid right (apply s12 to top right ~> 3124)
   \begin{scope}[shift={(0:\radius*1.25)}]
   \foreach \x/\i in {-0.6/3, -0.2/1, 0.2/2, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
    % lower left (apply s23 to mid left ~> 2314)
   \begin{scope}[shift={(230:\radius*1.4)}]
   \foreach \x/\i in {-0.6/2, -0.2/3, 0.2/1, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
   % lower right (apply s12 to lower left ~> 3214)
   \begin{scope}[shift={(310:\radius*1.4)}]
   \foreach \x/\i in {-0.6/3, -0.2/2, 0.2/1, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
   % lower edge tree 23-1-4
   \begin{scope}[shift={(270:\radius*1.25)}]
   \foreach \x/\i in {-0.6/23, 0/1, 0.6/4}
    	\draw (0, 0) -- (\x, 0.5) node[above] {$\i$};
   \end{scope}
   \end{scope}
\end{tikzpicture}


        } % end scalebox
        }}
        $$
        % \captionsetup{labelformat=empty}
        \caption{
        We revisit \Cref{fig:hexagon-merger}, showing how the dual trees change. Left: three square regions indexed by $2$-stable trees (on the inner hexagon, antipodal points are identified). Right: the inner hexagon contracts to a point and the three cells merge into a copy of $\Pi_3$ in $\hassett{3}(\R)$. On the right, we also show vertex labels and one illustrative edge label (which do not change). The interior edges on the left are labeled by $2$-stable trees that compress to the tree labeling the entire $\Pi_3$: {\protect\begin{tikzpicture}[scale=0.7]
        \protect\draw (0, 0) -- (-0.3, 0.2);
        \protect\draw (-0.3, 0.2) -- (-0.6, 0.5) node[above] {$1$};
        \protect\draw (-0.3, 0.2) -- (-0.3, 0.5) node[above] {$2$};
        \protect\draw (-0.3, 0.2) -- (0, 0.5) node[above] {$3$};
        \protect\draw (0, 0) -- (0.6, 0.5) node[above] {$4$};
        \protect\end{tikzpicture}
        }
        , 
        {
        \protect
        \begin{tikzpicture}[scale=0.7]
        \protect\draw (0, 0) -- (-0.3, 0.2);
        \protect\draw (-0.3, 0.2) -- (-0.6, 0.5) node[above] {$1$};
        \protect\draw (-0.3, 0.2) -- (-0.3, 0.5) node[above] {$3$};
        \protect\draw (-0.3, 0.2) -- (0, 0.5) node[above] {$2$};
        \protect\draw (0, 0) -- (0.6, 0.5) node[above] {$4$};
        \protect\end{tikzpicture}
        }, 
        {\protect
        \begin{tikzpicture}[scale=0.7]
        \protect\draw (0, 0) -- (-0.3, 0.2);
        \protect\draw (-0.3, 0.2) -- (-0.6, 0.5) node[above] {$2$};
        \protect\draw (-0.3, 0.2) -- (-0.3, 0.5) node[above] {$1$};
        \protect\draw (-0.3, 0.2) -- (0, 0.5) node[above] {$3$};
        \protect\draw (0, 0) -- (0.6, 0.5) node[above] {$4$};
        \protect\end{tikzpicture}
        }.
        }
        \label{fig:hexagon-merger-2}
    \end{figure}
\subsection{Variants} \label{subsec:variants}

\subsubsection{Double covers} \label{subsubsec:double-covers}

There is a double cover $\hassettDC{a}(\R) \onto \DMumford{\mcA(a)}(\R)$ given by choosing an orientation of $(C; x_\bullet)$ at the marked point $x_{n+1}$. An element of $\hassettDC{a}(\R)$ can be depicted by decorating $C$ with one of the two possible unit tangent vectors at $x_{n+1}$.

Effectively, the double cover disallows changes of coordinates on the component $C' \subseteq C$ containing $x_{n+1}$ that reverse its orientation.  Thus, to define dual cells on $\hassettDC{a}(\R)$, we alter the distance algorithm on the $C'$ component (only), requiring coordinates such that $x_{n+1} = \infty$ and such that the given orientation is preserved.

We define \emph{root-oriented $a$-stable trees} $\rootorientedtrees(a; n)$ analogously to $\stabletrees(a; n)$, except that we no longer allow flips at the root vertex. For $\widetilde \tau \in \rootorientedtrees(a; n)$, we write $W_{\widetilde \tau}$ for the corresponding cell. We note that $S_n$ acts freely on the $0$-cells of the double cover, which correspond bijectively to permutations. Our results generalize to $\hassettDC{a}(\R)$, showing:

\begin{cor}\label{cor:double-cover}
    The double cover has a cell decomposition $X:=\hassettDC{a}(\R) = \coprod_{\widetilde\tau \in \rootorientedtrees(a; n)} \overline{W_{\widetilde \tau}}$, which covers the decomposition of $\hassett{a}(\R)$. The index 2 subgroups $\pi_1(X)=:P\tilde{J}_n^a \subseteq PJ_n^a$ and $\pi_1^{S_n}(X)=:\tilde{J}_n^a \subseteq J_n^a$ are given by omitting the generator $s_{1,n}$.  We have a sequence of quotients
    \[
    \tilde{J}_n = \tilde{J}_n^1 = \tilde{J}_n^2 \onto \tilde{J}_n^3 \onto \cdots \onto \tilde{J}_n^{n-1} = S_n.
    \]
\end{cor}

\subsubsection{Refined cell structure}\label{sec:refined-cells}

As part of our analysis of the dual cells $W_\tau$ for $\tau \in \stabletrees(a; n)$, we in fact characterize the common refinement of the standard and dual cell structures on $\hassett{a}(\R)$. We call the resulting cells \emph{refined cells}. We define \emph{refined $a$-stable trees} $\refinedtrees(a;n)$ similarly to $\stabletrees(a; n)$, except that a refined stable tree $\tau$ has the data of a subset $F\subseteq V(\tau)$ of vertices designated `flippable', and we identify $\tau \sim \tau'$ only if they differ by reversing the orderings of children at flippable vertices. Let $r\in \tau$ be the root. For $\hassett{a}(\R)$, we require $r\in F$; for the double cover $\hassettDC{a}(\R)$, we require $r\notin F$.

For the refined decomposition, we run the distance algorithm on $(C; x_\bullet)$ according to \Cref{def:dual-tree-general-case}, except we only mark edges coming from nodes of $C$ as flippable; edges produced by the distance algorithm are `unflippable'. (See \Cref{fig:tree-algorithm-on-stable-curve} Right).

Let $\tau \in \refinedtrees(a;n)$ and let $R_\tau$ be the corresponding refined cell. Let $\mathrm{std}(\tau) \in \stabletrees(a;n)$ be given by contracting every edge whose child vertex is non-flippable, and let $\mathrm{dual}(\tau) \in RT(a;n)$ be given by making all vertices of $\tau$ flippable. Then $R_\tau = X_{\mathrm{std}(\tau)} \cap W_{\mathrm{dual}(\tau)}$.

\subsubsection{Non-symmetric Hassett weights}

For an arbitrary vector of weights $\mcA = (a_1, \ldots, a_n, a_{n+1} = 1)$, there is an analogous procedure for compressing rooted trees to render them $\mcA$-stable and an analogous weighted distance algorithm. Our results for the symmetric case $\mcA=\mcA(a)$ then carry through to show that $\mcA$-stable trees index a dual cell decomposition of $\overline{M_{0, \mcA}}(\R)$ by products of permutahedra and intervals;  we can also describe the analogs of refined cells. However, the resulting dual decomposition is typically not $S_n$-symmetric, so we do not know a useful way to extract a description of $\pi_1(\overline{M_{0, \mcA}}(\R))$ in general.

\section{Weighted cactus groups}\label{sec:group-weighted-cactus}

    We briefly discuss the algebraic structure of the weighted cactus groups $J_n^a$ and $PJ_n^a$. First, we describe the kernel of the quotient map $J_n\onto J_n^a$; we call its generators \emph{generalized braid relations}. Below, we write $\sigma_i := s_{i,i+1}$.
    
    \begin{prop}\label{lem:gen-braid-rels}
    For $a\ge 3$ and $(q-p+1)\le a$, we have the \emph{generalized braid relations}:  
    $$\alpha:=s_{p,q}s_{p, q-1}\sigma_{q-1}\hdots\sigma_p\mapsto 1\in J_n^a;\ \beta:=s_{p,q}\sigma_{q-1}\hdots\sigma_ps_{p+1,q}\mapsto1\in J_n^a$$
    under the quotient map $J_n\onto J_n^a$. %, where each $\sigma_i=s_{i,i+1}$ and $s_{i,i}=1$.
    \end{prop}
            
    \begin{proof}[Proof sketch]
    The words $\alpha, \beta$ both map to the identity permutation, so they correspond to loops in $\hassett{a}(\R)$. There is an embedding $\A^{q-p}(\R)\into \hassett{a}(\R)$ whose image contains the loops $\alpha$ and $\beta$, which shows that these loops are contractible.
    \end{proof}

    \begin{cor}\label{cor:subgroup-iso-Sn}
    For $a\ge 3$, the subgroup $\gen{\sigma_i:i\in [n-1]}\subseteq J_n^a$ is isomorphic to $S_n$.
    \end{cor}
            
    \begin{proof}
    The $\sigma_i$ satisfy the braid relations. Hence, they generate a quotient of $S_n$. The map $J_n^a \to S_n$ sends $\sigma_i\mapsto w_{i,i+1}\in S_n$, so its restriction to this subgroup is surjective.
    \end{proof}

    From \Cref{lem:gen-braid-rels} and \Cref{cor:subgroup-iso-Sn} it is straightforward to verify that, for $q-p<a$, the element $s_{p,q} \in J_n$ is sent to the element $w_{p,q} \in S_n \subseteq J_n^a$.


\begin{rmk}[Equivariant fundamental groups of double covers]
    We have a semidirect product decomposition $J_n^a=\tilde{J}_n^a \rtimes \gen{s_{1,n}}\cong \tilde{J}_n^a\rtimes \Z_2$. It follows that $P\tilde{J}_n^a= PJ_n^a\cap \tilde{J}_n^a$.
\end{rmk}


\begin{rmk}[A ``missing'' intermediate space]\label{rmk:no-intermediate-space}
    When $a = 3$, the braid relations 
    {\parfillskip=0pt \par} \noindent
    $(s_{1,2}s_{2,3})^3=1$ appear simultaneously with the absorption of $s_{1,3}$ into the subgroup $\gen{s_{1,2}, s_{2,3}}\subseteq J_n^a$, and similarly for the other generators $s_{p,p+2}$. (See \Cref{fig:hexagon-merger}.) It is curious that there does not appear to be a moduli space corresponding to the quotient of $J_n$ by the braid relations on the $\sigma_i$ \emph{only}, without further relations on any other generators.
\end{rmk}

% \nocite{*}

\acknowledgements{
We thank Joel Kamnitzer for introducing us to equivariant fundamental groups.
}

%% if you use biblatex then this generates the bibliography
%% if you use some other method then remove this and do it your own way
\printbibliography



\end{document}
