%% 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]{FPSAC2023}
\articlenumber{79}
\usepackage{etoolbox}
\usepackage{tikz}
\usepackage{mathtools}
\usepackage{multicol}
%\usepackage[left]{showlabels}
%% 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}

%%% Math operators and commands shortcuts
\DeclareMathOperator{\osp}{OSp}
\DeclareMathOperator{\wt}{wt}
\DeclareMathOperator{\AT}{\cal{A}_\textup{T}}
\renewcommand{\l}[2]{\lambda_{#1,#2}}
\newcommand{\tu}[3]{\bigtriangleup^{#1}_{#2,#3}}
\newcommand{\td}[3]{\bigtriangledown^{#1}_{#2,#3}}
\newcommand{\Tu}[0]{\bigtriangleup}
\newcommand{\Td}[0]{\bigtriangledown}
\newcommand{\inv}[0]{^{-1}}
\renewcommand{\arraystretch}{1.65}
\newcommand{\ospmatrix}[9]{
\left(\begin{array}{cc|c}
#1&#2&#3\\#4&#5& #6 
\\
\hline
#7 &#8 &#9
\end{array}
\right)
}


\newcommand{\tei}[0]{{}{Teichm\"uller}{}}
%%%

%%% Theorems
\newtheorem{thm}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{prop}{Proposition}
\newtheorem{conj}{Conjecture}
\theoremstyle{definition}
\newtheorem{rem}{Remark}
\newtheorem{ex}{Example}
\newtheorem{defn}{Definition}
\newtheorem{cor}[thm]{Corollary}
%%%%%

%\usepackage{lipsum}

\newcommand{\syl}[1]{{\color{red}#1}}

%%% TIKZ STUFF
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,intersections,decorations.markings,snakes}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usetikzlibrary{patterns}
\usetikzlibrary{arrows}
\tikzset {->-/.style={decoration={markings, mark=at position .5 with {\arrow{latex}}}, postaction={decorate}}}
\tikzset {-->-/.style={decoration={markings, mark=at position .5 with {\arrow[scale=2]{latex}}}, postaction={decorate}}}
\newcommand{\midarrow}{\tikz \draw[-triangle 90] (0,0) -- +(.1,0);}
\newcommand{\miduparrow}{\tikz \draw[-triangle 90] (0,0) -- +(.1,0);}
\newcommand{\midrevarrow}{\tikz \draw[-triangle 90] (0,0) -- +(-.1,0);}

%%% Some TIKZ stuff
\tikzstyle{node small}=[fill=none, draw=none, shape=circle, inner sep=0.2]
\tikzstyle{bullet}=[fill=black, draw=black, shape=circle, scale=0.3]
\tikzstyle{bullet small}=[fill=black, draw=black, shape=circle, scale=0.14]
\tikzstyle{bullet mid}=[fill=black, draw=black, shape=circle, scale=0.2]
\tikzstyle{0.8}=[fill=none, draw=none, scale=0.8]
\tikzstyle{0.6}=[fill=none, draw=none, scale=0.6]

% Edge styles
\tikzstyle{red 1}=[draw=red, <-]
\tikzstyle{black arrow}=[->]
\tikzstyle{dashed}=[-, draw=black, densely dotted]
\tikzstyle{Red-Thick}=[-, draw=red, thick]
\tikzstyle{spin}=[-, postaction={{decorate}}]
\tikzstyle{Blue-Thick}=[-, fill=none, draw=blue, thick]
\tikzstyle{extend-edge}=[-, dashed]
\tikzstyle{blue-double}=[-, draw=blue, thick, double]
%%%
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{arrows}
\usetikzlibrary{shapes,shapes.geometric,shapes.misc}
% this style is applied by default to any tikzpicture included via \tikzfig
%\tikzstyle{tikzfig}=[baseline=-0.25em,scale=0.5]

% these are dummy properties used by TikZiT, but ignored by LaTex
\pgfkeys{/tikz/tikzit fill/.initial=0}
\pgfkeys{/tikz/tikzit draw/.initial=0}
\pgfkeys{/tikz/tikzit shape/.initial=0}
\pgfkeys{/tikz/tikzit category/.initial=0}

% standard layers used in .tikz files
\pgfdeclarelayer{edgelayer}
\pgfdeclarelayer{nodelayer}
\pgfsetlayers{background,edgelayer,nodelayer,main}

% style for blank nodes
\tikzstyle{none}=[inner sep=0mm]

% fix strange self-loops, which are PGF/TikZ default
\tikzstyle{every loop}=[]



%% define your title in the usual way
\title{Double Dimers and Super Ptolemy Relations}

%% define your authors in the usual way
%% use \addressmark{1}, \addressmark{2} etc for the institutions, and use \thanks{} for contact details
\author[Gregg Musiker, Nick Ovenhouse, and Sylvester W. Zhang]{Gregg Musiker\thanks{\href{mailto:musiker@umn.edu}{musiker@umn.edu}. Gregg Musiker was partially supported by Grants DMS-1745638, DMS-1854162.}\addressmark{1}, Nick Ovenhouse\thanks{\href{mailto:nicholas.ovenhouse@yale.edu}{nicholas.ovenhouse@yale.edu}. Nick Ovenhouse was partially supported by Grant DMS-1745638.}\addressmark{2}, \and Sylvester W. Zhang\thanks{\href{mailto:swzhang@umn.edu}{swzhang@umn.edu}. Sylvester Zhang was partially supported by Grant DMS-1745638.}\addressmark{1}}

%% then use \addressmark to match authors to institutions here
\address{\addressmark{1}School of Mathematics, University of Minnesota, Minneapolis, MN, USA \\ \addressmark{2}Department of Mathematics, Yale University, New Haven, CT, USA}

%% 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{Ptolemy's theorem relates the lengths of the diagonals and sides of a quadrilateral inscribed in a circle, and this is the inspiration for the mutation relation in a cluster algebra associated to a triangulated surface.  A super-symmetric version of the Ptolemy relation was introduced recently by Penner and Zeitlin, involving anti-commuting variables. Previous work of the first author and Schiffler gave a formula for cluster variables in terms of perfect matchings of some planar graph.  Motivated by this, we investigate certain algebraic expressions, obtained via iterating the super Ptolemy relation, that may be given as a sum over double dimer covers of this graph.}



%\abstract{Ptolemy's theorem relates the lengths of the diagonals and sides of a quadrilateral inscribed in a circle, and this is the inspiration for the mutation relation in a cluster algebra associated to a triangulated surface. A theorem of Musiker and Schiffler gives a formula for cluster variables in terms of perfect matchings of some planar graph. A super-symmetric version of the Ptolemy relation was introduced recently by Penner and Zeitlin, involving anti-commuting variables. We generalize the theorem of Musiker and Schiffler, showing that iteration of the super Ptolemy relation gives a sum over double dimer covers of this graph.}

%% 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{cluster algebras, super algebras, snake graphs, dimer models}

%% 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]{biblatex}
\addbibresource{main.bib}
%% note the \printbibliography command at the end of the file which goes with these biblatex commands

\begin{document}

\maketitle
%% note that you DO NOT have to put your abstract here -- it is generated by \maketitle and the \abstract and \resume commands above

\section{Introduction}

Ptolemy's theorem is a well-known identity between the lengths of the diagonals and sides of a quadrilateral inscribed in a circle, as exemplified in \cref{fig:ptolemy}.

%Ptolemy's theorem is a well-known identity between the lengths of the diagonals and sides of a quadrilateral inscribed in a circle. With the labels from \cref{fig:ptolemy}, the relation is $xy = ac + bd$.

\begin {figure}[h!]
\centering
\begin {tikzpicture}[scale=0.8]
    \draw (0,0) circle (2);
    \draw (10:2) --node[above]{$d$} (120:2) --node[left]{$a$} (230:2) --node[above]{$b$} (300:2) --node[right]{$c$} cycle;
    \draw (10:2) -- (230:2);
    \draw (120:2) --node[left]{$y$} (300:2);
    \draw (1,0) node {$x$};
\end {tikzpicture}
\caption {A quadrilateral inscribed in a circle. Ptolemy's relation says $xy = ac + bd$.}
\label {fig:ptolemy}
\end {figure}

In a way, the Ptolemy relation is like a ``skein relation'', in the sense that it realizes a product of crossing edges by a sum of products of non-crossing ones. More generally, if a polygon is inscribed in a circle, then using the Ptolemy relation iteratively, one may express a product of any number of crossing diagonals as an expression involving only products of non-crossing ones. For example, consider the inscribed pentagon in \cref{fig:pentagon}, and the product of the lengths of the three diagonals shown.

\begin {figure}[h!]
\centering
\begin {tikzpicture}[scale=0.8]
    \draw (0,0) circle (2);
    \draw (90:2) -- (162:2) -- (234:2) -- (306:2) -- (18:2) -- cycle;
    \draw (234:2) -- (90:2) -- (306:2);
    \draw (162:2) -- (18:2);

    \draw (90:2) node[above] {$5$};
    \draw (162:2) node[left] {$1$};
    \draw (234:2) node[below] {$2$};
    \draw (306:2) node[below] {$3$};
    \draw (18:2) node[right] {$4$};
\end {tikzpicture}
\caption {A pentagon inscribed in a circle, and three distinguished diagonals.}
\label {fig:pentagon}
\end {figure}

Let $x_{ij}$ be the length of the diagonal between vertices labeled $i$ and $j$ (including the boundary sides $x_{i,i+1}$). Then using the Ptolemy relation twice, we can re-write the product of the three diagonals shown in \cref{fig:pentagon} as follows.
\begin {align*}
    x_{14}x_{25}x_{35} &= \left( x_{12}x_{45} + x_{15}x_{24} \right) x_{35} \\
                       &= x_{12}x_{45}x_{35} + x_{15}x_{24} x_{35} \\
                       &= x_{12}x_{45}x_{35} + x_{15} \left( x_{23}x_{45} + x_{34}x_{25} \right) \\
                       &= x_{12}x_{45}x_{35} + x_{15}x_{23}x_{45} + x_{15}x_{34}x_{25} 
\end {align*}

Note that the diagonals $(2,5)$ and $(3,5)$ give a triangulation of the pentagon. By dividing both sides of the equation above by $x_{25}x_{35}$, we obtain 
\[ x_{14} = \frac{1}{x_{25}x_{35}} \left( x_{12}x_{45}x_{35} + x_{15}x_{23}x_{45} + x_{15}x_{34}x_{25} \right) \]
In particular, this expresses $x_{14}$ as a subtraction-free expression in terms of the lengths of the edges in the triangulation.  This is an example of the following fact.

\begin {thm} \cite{schiffler_08}
    Let $T$ be a fixed triangulation of a polygon inscribed in a circle. The length of any diagonal not in $T$ is expressible as a Laurent polynomial with positive integer coefficients in terms of the lengths of the diagonals in $T$.
\end {thm}

%\textcolor{blue}{We note Fomin and Zelevinsky's identification \cite{fz_02,fz_02b} of triangulated polygons as a model for type $A_n$ cluster algebras}.

%\[ \text{\color{red}Is FZ the appropriate reference? Or is this more classical?} \]

\section {Perfect Matching Formula for Diagonal Lengths}

In \cite{ms10}, the first author and Schiffler showed that when one uses the Ptolemy relation to re-write the length of a diagonal in terms of lengths from a triangulation, the resulting Laurent polynomial expression is a sum over perfect matchings of some planar graph. We will recall this result below, after some definitions.

\begin {defn}
    A \emph{snake graph} is a planar graph consisting of a sequence of square faces, where each square is attached either above or to the right of the previous one.
\end {defn}

\begin {rem}
    In terms of the language of Young diagrams, a snake graph is the same thing as a \emph{border strip} skew Young diagram. That is, a skew Young diagram $\lambda / \mu$ which contains no $2 \times 2$ block of boxes.
\end {rem}

To each diagonal in a triangulated polygon, we will associate a particular snake graph, with some edge labeling.

\begin{defn} \label{def:snake}
Let $T$ be a triangulation of an inscribed polygon and $\gamma=(a,b)$
 an arc not in $T$.
Let $t_1,t_2,\cdots,t_k$ be the diagonals in $T$ which cross $\gamma$. For each $t_i$, let $S_{t_i}$ be the quadrilateral in $T$ containing $t_i$ as its diagonal. 
For each pair of adjacent diagonals, their corresponding tiles $S_{t_i},S_{t_{i+1}}$ share a common edge. Connect all $S_{t_1},\cdots,S_{t_k}$ by identifying the common edges, and call the resulting graph the \emph{snake graph} of $\gamma$, denoted $G_\gamma$. 

\end{defn}

\begin {rem}
    Note that in order to attach the tiles as described in \cref{def:snake},
    the even-numbered tiles (the second, fourth, etc.) must have opposite orientation
    from the corresponding quadrilateral in $T$.
\end {rem}

\begin {ex}
\cref{fig:snake} shows an example of the snake graph associated to a diagonal in an octagon. The vertices of the snake graph are labeled by the corresponding vertices in the polygon. Although edge labels are not shown in the figure, assume each edge is labeled by $x_{ij}$, the length of the corresponding diagonal.
\begin{figure}
    \centering
   \begin {center}
    \begin {tikzpicture}[scale=1.6]
        \coordinate (v7) at (1,0);
        \coordinate (v8) at ({cos(1*2*pi/8 r)}, {sin(1*2*pi/8 r)});
        \coordinate (v1) at ({cos(2*2*pi/8 r)}, {sin(2*2*pi/8 r)});
        \coordinate (v2) at ({cos(3*2*pi/8 r)}, {sin(3*2*pi/8 r)});
        \coordinate (v3) at ({cos(4*2*pi/8 r)}, {sin(4*2*pi/8 r)});
        \coordinate (v4) at ({cos(5*2*pi/8 r)}, {sin(5*2*pi/8 r)});
        \coordinate (v5) at ({cos(6*2*pi/8 r)}, {sin(6*2*pi/8 r)});
        \coordinate (v6) at ({cos(7*2*pi/8 r)}, {sin(7*2*pi/8 r)});
        
        \node  at (v1) [above]  {$1$};
        \node  at (v2) [above left]  {$2$};
        \node  at (v3) [left]  {$3$};
        \node  at (v4) [below left]  {$4$};
        \node  at (v5) [below]  {$5$};
        \node  at (v6) [below right]  {$6$};
        \node  at (v7) [right]  {$7$};
        \node  at (v8) [above right]  {$8$};

        \draw (v1) -- (v7);
        %\draw (v2) -- (v8);        
        \draw (v2) -- (v7);
        \draw (v7) -- (v3);
        \draw (v7) -- (v4);
        \draw (v4) -- (v6);
        
                \draw[dashed] (0,-1) -- (v8);
                %\draw[dashed] (0,-1) -- (0,1);        
        
        \draw (v1) -- (v2) -- (v3) -- (v4) -- (v5) -- (v6) -- (v7) -- (v8) -- cycle;

        %\draw (0,-0.85)     node {\scriptsize $\theta_1$};
        %\draw (0.45, -0.55)   node {\scriptsize $\theta_2$};
        %\draw (-0.55,-0.35)  node {\scriptsize $\theta_3$};
        %\draw (-0.5,0.35) node {\scriptsize $\theta_4$};
        %\draw (0, 0.63)    node {\scriptsize $\theta_5$};
        %\draw (0.6,0.6)    node {\scriptsize $\theta_6$};        

  

   
        \begin {scope}[shift={(2.5,-0.5)}, scale=0.6]
                \draw [thick] (0,0) node [below left] {$5$} -- (3,0) node [below right] {$7$} -- (3,1) node [below right] {$2$} -- (4,1) node [below right] {$7$} -- (4,2) node [above right] {$8$} -- (2,2) node [above left] {$7 $} -- (2,1) node [above left] {$3$} -- (0,1) node [above left] {$4$} -- cycle;
                \draw [thick](1,0) -- (1,1);
                \draw [thick](2,0) -- (2,1) -- (3,1);
                \draw [thick](3,1) -- (3,2);

                \draw (1,0) node[below] {6};
                \draw (1,1) node[above] {7};
                \draw (2,0) node[below] {4};
                \draw (3,2) node[above] {1};

        %{
        %\draw (0.2,0.2) node {\scriptsize \color{red}$\theta_1$};
        %\draw (0.8,0.8) node {\scriptsize \color{red}$\theta_2$};
        %}
        %{
        %\draw (1.2,0.2) node {\scriptsize \color{red}$\theta_2$};
        %\draw (1.8,0.8) node {\scriptsize \color{red}$\theta_3$};
        %%\draw (1.15,0.5) node {\scriptsize $y_1$};        
        %}
        %{
        %\draw (2.2,0.2) node {\scriptsize \color{red}$\theta_3$};
        %\draw (2.8,0.8) node {\scriptsize \color{red}$\theta_4$};
        %%\draw (2.15,0.5) node {\scriptsize $y_2$};                
        %}
        %{
        %\draw (2.2,1.2) node {\scriptsize \color{red}$\theta_4$};
        %\draw (2.8,1.8) node {\scriptsize \color{red}$\theta_5$};
        %%\draw (2.5,1) node[xshift=0em,yshift=0.3em] {\scriptsize $y_3$};                
        %}
        %{
        %\draw (3.2,1.2) node {\scriptsize \color{red}$\theta_5$};
        %\draw (3.8,1.8) node {\scriptsize \color{red}$\theta_6$};
        %%\draw (3,1.5) node[xshift=0.3em,yshift=0em] {\scriptsize $y_4$};                        
        %}
        \end {scope}

    \end {tikzpicture}
    \end {center}

    \caption{The snake graph $G_\gamma$ for $\gamma=(5,8)$.}
    \label{fig:snake}
\end{figure}
\end {ex}

\begin {defn}
    Let $G$ be a graph. A \emph{perfect matching} of $G$ (also called a \emph{dimer cover}) is a subset $M$ of the edges of $G$, such that each vertex is incident to exactly one edge of $M$. We will write $D(G)$ for the set of dimer covers of $G$. If $G$ has an edge-weighting, then $\mathrm{wt}(M)$ is defined as the product of the edge weights in $M$.
\end {defn}

%We can now state the result of \cite{ms10}. %Musiker and Schiffler.

\begin {thm}\textup{\cite[Theorem 3.1]{ms10}}\label{thm:dimer}
    Let $T$ be a triangulation of an inscribed polygon, and let $\gamma$ be a diagonal not in $T$. Then the length $x_\gamma$ is given by
    \[ x_\gamma = \frac{1}{x_{i_1}x_{i_2} \cdots x_{i_k}} \sum_{M \in D(G_\gamma)} \mathrm{wt}(M) \]
    where $x_{i_1}$, $x_{i_2}$, $\dots$, $x_{i_k}$ are the lengths of the diagonals which $\gamma$ crosses.
\end {thm}

\begin {ex}\label{ex:pentagon}
    Consider the triangulated pentagon shown in \cref{fig:pentagon}, with triangulation consisting of the diagonals $(2,5)$ and $(3,5)$. The snake graph of $\gamma = (1,4)$ is shown below.
\vspace{-1em}
    \begin {center}
    \begin {tikzpicture}[scale=1]
        \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
        \draw (1,0) -- (1,1);

        \draw (0,0) node[below left] {1};
        \draw (1,0) node[below] {2};
        \draw (1,1) node[above] {3};
        \draw (0,1) node[above left] {5};
        \draw (2,1) node[above right] {4};
        \draw (2,0) node[below right] {5};
    \end {tikzpicture}
    \end {center}
    This graph has three dimer covers, corresponding to the three terms in the expression given earlier:
    \[ x_{14} = \frac{1}{x_{25}x_{35}} \left( x_{12}x_{45}x_{35} + x_{15}x_{23}x_{45} + x_{15}x_{34}x_{25} \right) \]
    \begin {center}
    \begin {tikzpicture}[scale = 0.8]
        \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
        \draw (1,0) -- (1,1);

        \draw[blue, line width=2] (0,0) -- (1,0);
        \draw[blue, line width=2] (0,1) -- (1,1);
        \draw[blue, line width=2] (2,0) -- (2,1);

        \begin {scope}[shift={(4,0)}]
            \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
            \draw (1,0) -- (1,1);
    
            \draw[blue, line width=2] (0,0) -- (0,1);
            \draw[blue, line width=2] (1,0) -- (1,1);
            \draw[blue, line width=2] (2,0) -- (2,1);
        \end {scope}
        
        \begin {scope}[shift={(8,0)}]
            \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
            \draw (1,0) -- (1,1);
    
            \draw[blue, line width=2] (0,0) -- (0,1);
            \draw[blue, line width=2] (1,0) -- (2,0);
            \draw[blue, line width=2] (1,1) -- (2,1);
        \end {scope}
    \end {tikzpicture}
    \end {center}
\end {ex}

\section {The Super Ptolemy Relation}

In this section, we will review a simplified version of the setup from \cite{pz_19}. Informally, in addition to variables $x_{ij}$ representing diagonal lengths, we will also consider some extra non-commuting variables.

\begin {defn}
    A \emph{super algebra} is an associative algebra $A = A_0 \oplus A_1$ with a $\Bbb{Z}_2$-grading. That is, $A_i A_j \subseteq A_{i+j}$. 
% \end {defn}
%
% \begin {defn}
    A super algebra is called \emph{super-commutative} (or often just \emph{commutative}) if $xy = (-1)^{ij} yx$ whenever $x \in A_i$ and $y \in A_j$.
    In other words, elements of $A_0$, called \emph{even}, are central (they commute with everything),
    and elements of $A_1$, called \emph{odd}, anti-commute with each other.
\end {defn}


Given a triangulation $T$ of an inscribed polygon, and a choice of orientation of each of its edges, we define a commutative superalgebra
$A_T$ as follows. Recall that $x_{ij}$ denotes the length of diagonal $(i,j)$. If the triangulation $T$ has edges $e_1,\cdots,e_{2n-3}$, let $C^\infty(x_{e_1},\cdots,x_{e_{2n-3}})$ be the commutative algebra of all smooth functions in the $x_{e_{i}}$ variables corresponding to these lengths. Also let $E$ be the exterior algebra on the $(n-2)$-dimensional space with basis vectors $\theta_{ijk}$, corresponding to triangles in $T$ with vertices $i,j,k$. Then we define $A_T$ to be
\[ A_T := C^\infty(x_{e_1}, \dots, x_{e_{2n-3}}) \otimes E \]

By definition, the generators of $A_T$ correspond to edges and triangles from a triangulation $T$. Penner and Zeitlin defined a super Ptolemy transformation \cite{pz_19}, which can be iterated to produce new elements $x_{ij}$ and $\theta_{ijk}$ of $A_T$ corresponding to diagonals and triangles which are not in $T$. We will describe this transformation now.

When two triangulations are related by a flip, as in \Cref{fig:super_ptolemy}, one can define new elements of $A_T$ by the following ``\emph{super Ptolemy relations}'' \cite[Theorem B]{pz_19}:
\begin{equation}\label{eq:ptolemy_old}
    ef      = ac+bd + \sqrt{abcd} \, \sigma \theta \quad\;\;
    \sigma' = \frac{\sqrt{bd} \, \sigma - \sqrt{ac} \, \theta}{\sqrt{ac+bd}}  \quad\;\;
    \theta' = \frac{\sqrt{bd} \, \theta + \sqrt{ac} \, \sigma}{\sqrt{ac+bd}}
\end{equation}
%
A flip alters the orientation of one of the edges, as depicted in \Cref{fig:super_ptolemy}. In particular, the order of multiplying the odd variables $\sigma$ and $\theta$ are dictated by the orientation of the edge being flipped, as in \Cref{fig:super_ptolemy}.


\begin{figure}[h!]
\centering
\begin{tikzpicture}[scale=0.5, baseline, thick]
    \draw (0,0)--(3,0)--(60:3)--cycle;
    \draw (0,0)--(3,0)--(-60:3)--cycle;

    \draw (0,0)--node {\midarrow} (3,0);

    \draw node[above]      at (70:1.5){$a$};
    \draw node[above]      at (30:2.8){$b$};
    \draw node[below]      at (-30:2.8){$c$};
    \draw node[below=-0.1] at (-70:1.5){$d$};
    \draw node[above] at (1,-0.12){$e$};


    \draw node at (1.5,1){$\theta$};
    \draw node at (1.5,-1){$\sigma$};
\end{tikzpicture}
\begin{tikzpicture}[baseline]
    \draw[->, thick](0,0)--(1,0);
    \node[above]  at (0.5,0) {};
\end{tikzpicture}
\begin{tikzpicture}[scale=0.5, baseline, thick,every node/.style={sloped,allow upside down}]
    \draw (0,0)--(60:3)--(-60:3)--cycle;
    \draw (3,0)--(60:3)--(-60:3)--cycle;

    \draw node[above]      at (70:1.5)  {$a$};
    \draw node[above]      at (30:2.8)  {${\color{red}b}$};
    \draw node[below]      at (-30:2.8) {$c$};
    \draw node[below=-0.1] at (-70:1.5) {$d$};
    \draw node[left]       at (1.7,1)   {$f$};

    \draw (1.5,-2) --node {\midarrow} (1.5,2);


    \draw node at (0.8,0){$\theta'$};
    \draw node at (2.2,0){$\sigma'$};
\end{tikzpicture}
\caption{Super Ptolemy relation. The orientation of the edge $b$ is changed by the flip.}
\label{fig:super_ptolemy}
\end{figure}

\section{Double Dimer Covers}
Similar to the ordinary Ptolemy relation, one may iteratively apply the super Ptolemy relation to write $x_{ij}$ in terms of the original generators, corresponding to a fixed triangulation $T$. 
In \cite{moz2}, the authors showed that this can be calculated using the same snake graph, but summing over double dimer covers, which we define as follows.

\begin{defn}
    Let $G$ be a graph. A \emph{double dimer cover} is a multi-set $M$ of edges in $G$, such that every vertex of $G$ is contained in exactly two elements of $M$. In other words, a double dimer cover is the superposition of two dimer covers. Denote $DD(G)$ the set of all double dimer covers of $G$.
\end{defn}

We will now define the weight of a double dimer cover of a snake graph $G_\gamma$.
Observe that every double dimer cover consists of doubled edges and cycles. For each cycle we associate a product of two odd variables to it. Let $c$ be a cycle, with $i,j,k$ being the three vertices of on the bottom-left corner of $c$ and $p,q,r$ being the three vertices on the top-right corner of $c$, as illustrated below.
\vspace{-1em}
\begin{center}
    \begin{tikzpicture}[scale=0.6]
    \draw [thick]  (3-2,0) node [below right] {$k$} --(1,1);
    \draw [thick] (1,1)-- (3,1);
    \draw [thick](3,1) -- (4,1) node [below right] {$q$} -- (4,2) node [above right] {$r$} -- (2,2) -- (0,2)--(0,1) node [ left] {$j$};
                %\draw [thick](1,0) -- (1,1);
                %\draw [thick](2,1) -- (3,1);
                \draw[thick] (3-2,0)--(2-2,0) -- (2-2,1);
                \draw [dashed] (0,1) --(1,1) -- (1,2);
                \draw [dashed] (2,1) -- (2,2);
                \draw [dashed] (3,1) -- (3,2);
                %\draw [dotted] (3,1) -- (3,2);

                %\draw (1,0) node[below] {6};
                %\draw (1,1) node[above] {7};
                \draw (2-2,0) node[below] {$i$};
                \draw (3,2) node[above] {$p$};
    \end{tikzpicture}
\end{center}
\vspace{-1em}
Associate a product of two odd variables to $c$ by $\nu(c):=\theta_{ijk}\theta_{pqr}$, which are the odd variables corresponds to the triangles $(i,j,k)$ and $(p,q,r)$. We then define the weight of a double dimer cover $M\in DD(G_\gamma)$ to be
\begin{equation}\label{eq:dd-wt}
\wt(M)=\prod_{e\in M}\sqrt{x_e}\prod_{c\text{ a cycle in }M}\nu(c)\end{equation}
\begin{ex}
Consider the following double dimer cover of the snake graph in \cref{fig:snake}.
\vspace{-0.5em}
\begin{center}
    \begin{tikzpicture}[scale=0.8]
     \draw [] (0,0) node [below left] {$5$} -- (3,0) node [below right] {$7$} -- (3,1) node [below right] {$2$} -- (4,1) node [below right] {$7$} -- (4,2) node [above right] {$8$} -- (2,2) node [above left] {$7$} -- (2,1) node [above left] {$3$} -- (0,1) node [above left] {$4$} -- cycle;
                \draw [thick](1,0) -- (1,1);
                \draw [thick](2,0) -- (2,1) -- (3,1);
                \draw [thick](3,1) -- (3,2);

                \draw (1,0) node[below] {6};
                \draw (1,1) node[above] {7};
                \draw (2,0) node[below] {4};
                \draw (3,2) node[above] {1};
                \draw [line width = 2, color= blue, double, double distance = 0.12em](0,0) -- (0,1);
                \draw [line width = 2, color = blue] (1,0) -- (3,0) -- (3,1) -- (1,1) -- cycle;
                \draw [line width = 2, color= blue, double, double distance = 0.12em] (2,2) -- (3,2);
                \draw [line width = 2, color= blue, double, double distance = 0.12em] (4,2) -- (4,1);
    \end{tikzpicture}
\end{center}
\vspace{-0.5em}
Its weight is $ x_{45}x_{17}x_{78}\sqrt{x_{67}x_{46}x_{47}x_{27}x_{23}x_{37}} \, \theta_{467}\theta_{237}$.
\end{ex}
In \cite{moz2}, we proved the following result, generalizing \cref{thm:dimer}. 

\begin{thm}\textup{\cite[Theorem 6.1]{moz2}} \label{thm:double-dimer}  
    Let $T$ be a triangulation $T$, and let $\gamma = (i,j)$ be a diagonal not in $T$. Then $x_{ij}$ is given by
    \[ x_\gamma = x_{ij} = \frac{1}{x_{i_1}x_{i_2} \cdots x_{i_k}} \sum_{M \in DD(G_\gamma)} \pm\mathrm{wt}(M) \]
    where $x_{i_1}$, $x_{i_2}$, $\dots$, $x_{i_k}$ are the lengths of the diagonals which $\gamma$ crosses.
In particular, all $x_\gamma$'s are Laurent polynomials in $\sqrt{x_{ij}}$'s and polynomials in $\theta_{ijk}$'s.\footnote{In \cite[Theorem 6.1 part (b)]{moz2}, formulas for some odd variables are given, however, they are not Laurent polynomials.}
\end{thm}


There is a stronger version of \cref{thm:double-dimer}, which says there there is a special orientation on $T$, called the \emph{default orientation}, and a total ordering on the odd variables, called the \emph{positive order} (See Section 2.2 of \cite{moz2} for details), with the property that all terms in the sum in \cref{thm:double-dimer} have positive sign when the odd variables in $\mathrm{wt}(M)$ are multiplied in the positive order.

In \cite[Proposition 1.4]{moz1} , the authors showed that every choice of orientation is equivalent to a default orientation, after negating some of the odd $\theta_{ijk}$ variables. This allows one to explicitly determine the signs in \cref{thm:double-dimer} for an arbitrary choice of orientation.

\begin{rem}
For a snake graph $G_\gamma$, there is a special family of double dimer covers which only uses doubled edges and no cycles. The weights of these double dimer covers are exactly the same as that of the (single) dimer cover using the same set of edges (but only once). Therefore the set of double dimer covers of $G_\gamma$ naturally contains the set of (single) dimer covers as a weight-preserving subset.
\end{rem}
We now give an example of \Cref{thm:double-dimer}.
\begin{ex}
Consider the same pentagon as in \Cref{fig:pentagon} and its snake graph as in \Cref{ex:pentagon}.
\vspace{-1em}
\begin{center}\scalebox{0.65}{
\begin {tikzpicture}[scale=0.7,baseline=0]
    \draw [draw = none](0,0) circle (2);
    \draw (90:2) -- (162:2) -- (234:2) -- (306:2) -- (18:2) -- cycle;
    \draw [->-]  (90:2)--(234:2);
    \draw [->-]  (90:2)-- (306:2);
    \draw [dashed] (162:2) -- (18:2);
    \draw (90:2) node[above] {$5$};
    \draw (162:2) node[left] {$1$};
    \draw (234:2) node[below] {$2$};
    \draw (306:2) node[below] {$3$};
    \draw (18:2) node[right] {$4$};
\end {tikzpicture}\quad\quad\quad\quad
\begin {tikzpicture}[scale=1.5,baseline=1.5em]
        \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
        \draw (1,0) -- (1,1);

        \draw (0,0) node[below left] {1};
        \draw (1,0) node[below] {2};
        \draw (1,1) node[above] {3};
        \draw (0,1) node[above left] {5};
        \draw (2,1) node[above right] {4};
        \draw (2,0) node[below right] {5};
    \end {tikzpicture}
}
\end{center}
The {super-length} $x_{14}$ is given by
\begin{align*}
    x_{14} & = {1\over x_{25}x_{35}} \Big(x_{12}x_{45}x_{35} + x_{15}x_{23}x_{45} + x_{15}x_{34}x_{25}
    + x_{15} \sqrt{x_{23}x_{25}x_{45}x_{34}} \, \theta_{235}\theta_{345}  \\
    \phantom{=}& + x_{45}\sqrt{x_{15}x_{12}x_{23}x_{35}} \, \theta_{125}\theta_{235} 
    + \sqrt{x_{15}x_{12}x_{25}x_{45}x_{34}x_{35}} \, \theta_{125}\theta_{345} \Big)
\end{align*}
The terms in parentheses are exactly the weighted sum of the six double dimer covers shown below.
\begin{center}
    \begin{tabular}{ccc}
      \begin {tikzpicture}[scale=0.7]
        \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
        \draw (1,0) -- (1,1);

        \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,0) -- (1,0);
        \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,1) -- (1,1);
        \draw[line width = 2, color= blue, double, double distance = 0.12em] (2,0) -- (2,1);
        
        
        \node at (1,-0.6) {$x_{12}x_{35}x_{45}$};
        \end{tikzpicture}&  \begin{tikzpicture}[scale=0.7]
         \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
            \draw (1,0) -- (1,1);
    
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,0) -- (0,1);
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (1,0) -- (1,1);
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (2,0) -- (2,1);
            \node at (1,-0.6) {$x_{15}x_{23}x_{45}$};
        \end{tikzpicture}&
        \begin{tikzpicture}[scale=0.7]
         \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
            \draw (1,0) -- (1,1);
    
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,0) -- (0,1);
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (1,0) -- (2,0);
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (1,1) -- (2,1);
            \node at (1,-0.6) {$x_{15}x_{25}x_{34}$};
        \end{tikzpicture}\\
         \begin {tikzpicture}[scale=0.7]
        \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
        \draw (1,0) -- (1,1);
        
        \node at (1,-0.6) {$x_{15}\sqrt{x_{23}x_{25}x_{45}x_{34}}\theta_{235}\theta_{345}$};

        % \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,0) -- (1,0);
        % \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,1) -- (1,1);
        % \draw[line width = 2, color= blue, double, double distance = 0.12em] (2,0) -- (2,1);
        \draw [line width = 2, color = blue] (1,0)--(2,0)--(2,1)--(1,1) -- cycle;
        \draw[line width = 2, color= blue, double, double distance = 0.12em] (0,0) -- (0,1);\end{tikzpicture}& 
        \begin{tikzpicture}[scale=0.7]
          \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
            \draw (1,0) -- (1,1);
            \node at (1,-0.6) {$x_{45}\sqrt{x_{15}x_{12}x_{23}x_{35}}\theta_{125}\theta_{235}$};
    
            \draw [line width = 2, color = blue] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
            \draw[line width = 2, color= blue, double, double distance = 0.12em] (2,0) -- (2,1);
        \end{tikzpicture}&
        \begin{tikzpicture}[scale=0.7]
          \draw (0,0) -- (2,0) -- (2,1) -- (0,1) -- cycle;
            \draw (1,0) -- (1,1);
            \node at (1,-0.6) {$\sqrt{x_{15}x_{12}x_{25}x_{45}x_{34}x_{35}}\theta_{125}\theta_{345} $};
    

            \draw [line width = 2, color = blue] (0,0) -- (0,1) -- (2,1) -- (2,0) -- cycle;
        \end{tikzpicture}
    \end{tabular}
\end{center}


\end{ex}



\section{Partial Order on Double Dimer Covers}
In \cite{msw13}, it was noted (Theorem 5.2) that the set of dimer covers of a snake graph (and hence also the set of terms in the Laurent polynomial expression of $x_{ij}$) has a partial order making it into a distributive lattice. We will recall this partial order, and then see that the set of double dimer covers also has a natural partial order.

There are exactly two dimer covers of a snake graph which contain only boundary edges. Define the \emph{minimal dimer cover} $M_0$ of a snake graph to the dimer cover, using only boundary edges, which contains the bottom edge of the first square. An example is shown in \cref{fig:minimal_dimer}.

\begin {figure}[h!]
\centering
\begin {tikzpicture}[scale=0.7]
    \draw (0,0) -- (3,0) -- (3,1) -- (4,1) -- (4,2) -- (2,2) -- (2,1) -- (0,1) -- cycle;
    \draw (1,0) -- (1,1);
    \draw (2,0) -- (2,1) -- (3,1);
    \draw (3,1) -- (3,2);

    \draw[blue, line width = 2] (0,0) -- (1,0);
    \draw[blue, line width = 2] (0,1) -- (1,1);
    \draw[blue, line width = 2] (2,0) -- (3,0);
    \draw[blue, line width = 2] (2,1) -- (2,2);
    \draw[blue, line width = 2] (3,2) -- (4,2);
    \draw[blue, line width = 2] (3,1) -- (4,1);
\end {tikzpicture}
\caption {The minimal dimer cover of a snake graph.}
\label {fig:minimal_dimer}
\end {figure}
The partial order on the set of dimer covers is defined as follows. Number the squares of the snake graph $1,2,\dots,N$ from bottom-left to top-right. For a dimer cover $M$, consider the double dimer cover $M \cup M_0$. Define a subset $s(M) \subseteq [N]$ as the set of squares which are surrounded by cycles of $M \cup M_0$. The partial order is then defined as $M \leq M'$ if $s(M) \subseteq s(M')$. An example is shown in \cref{fig:dimer_partial_order}. Denote $P_D(G)$ the poset of dimer covers on $G$.

\begin {figure}[h!]
\centering
\scalebox{0.7}{
\begin {tikzpicture} [scale=0.7]
    \foreach \x/\y in {0/0, -3/3, 3/3, 0/6, 0/9} {
        \draw (\x+0,\y+0) -- (\x+3,\y+0) -- (\x+3,\y+1) -- (\x+0,\y+1) -- cycle;
        \draw (\x+1,\y+0) -- (\x+1,\y+1);
        \draw (\x+2,\y+0) -- (\x+2,\y+1);
    }

    \draw[blue, line width=2] (0,0) -- (1,0);
    \draw[blue, line width=2] (0,1) -- (1,1);
    \draw[blue, line width=2] (2,0) -- (3,0);
    \draw[blue, line width=2] (2,1) -- (3,1);

    \draw (0.5,1.5) -- (-0.5,2.5);
    \draw (2.5,1.5) -- (3.5,2.5);
    
    \draw (-0.5,4.5) -- (0.5,5.5);
    \draw (3.5,4.5) -- (2.5,5.5);
    
    \draw (1.5,7.5) -- (1.5,8.5);

    \begin {scope}[shift={(-3,3)}]
        \draw[blue, line width=2] (0,0) -- (0,1);
        \draw[blue, line width=2] (1,0) -- (1,1);
        \draw[blue, line width=2] (2,0) -- (3,0);
        \draw[blue, line width=2] (2,1) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(3,3)}]
        \draw[blue, line width=2] (0,0) -- (1,0);
        \draw[blue, line width=2] (0,1) -- (1,1);
        \draw[blue, line width=2] (2,0) -- (2,1);
        \draw[blue, line width=2] (3,0) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(0,6)}]
        \draw[blue, line width=2] (0,0) -- (0,1);
        \draw[blue, line width=2] (1,0) -- (1,1);
        \draw[blue, line width=2] (2,0) -- (2,1);
        \draw[blue, line width=2] (3,0) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(0,9)}]
        \draw[blue, line width=2] (0,0) -- (0,1);
        \draw[blue, line width=2] (1,0) -- (2,0);
        \draw[blue, line width=2] (1,1) -- (2,1);
        \draw[blue, line width=2] (3,0) -- (3,1);
    \end {scope}


    % second poset
    \begin {scope}[shift={(11,0)}]
        \foreach \x/\y in {0/0, -3/3, 3/3, 0/6, 0/9} {
            \draw (\x+0,\y+0) -- (\x+3,\y+0) -- (\x+3,\y+1) -- (\x+0,\y+1) -- cycle;
            \draw (\x+1,\y+0) -- (\x+1,\y+1);
            \draw (\x+2,\y+0) -- (\x+2,\y+1);
        }
    
        \draw[blue, line width=2, double, double distance=0.12em] (0,0) -- (1,0);
        \draw[blue, line width=2, double, double distance=0.12em] (0,1) -- (1,1);
        \draw[blue, line width=2, double, double distance=0.12em] (2,0) -- (3,0);
        \draw[blue, line width=2, double, double distance=0.12em] (2,1) -- (3,1);
    
        \draw (0.5,1.5) -- (-0.5,2.5);
        \draw (2.5,1.5) -- (3.5,2.5);
        
        \draw (-0.5,4.5) -- (0.5,5.5);
        \draw (3.5,4.5) -- (2.5,5.5);
        
        \draw (1.5,7.5) -- (1.5,8.5);
    
        \begin {scope}[shift={(-3,3)}]
            \draw[blue, line width=2] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
            \draw[blue, line width=2, double, double distance=0.12em] (2,0) -- (3,0);
            \draw[blue, line width=2, double, double distance=0.12em] (2,1) -- (3,1);
        \end {scope}
        
        \begin {scope}[shift={(3,3)}]
            \draw[blue, line width=2, double, double distance=0.12em] (0,0) -- (1,0);
            \draw[blue, line width=2, double, double distance=0.12em] (0,1) -- (1,1);
            \draw[blue, line width=2] (2,0) -- (2,1) -- (3,1) -- (3,0) -- cycle;
        \end {scope}
        
        \begin {scope}[shift={(0,6)}]
            \draw[blue, line width=2] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
            \draw[blue, line width=2] (2,0) -- (2,1) -- (3,1) -- (3,0) -- cycle;
        \end {scope}
        
        \begin {scope}[shift={(0,9)}]
            \draw[blue, line width=2] (0,0) -- (3,0) -- (3,1) -- (0,1) -- cycle;
        \end {scope}
    \end {scope}
    
    % 3rd poset
    \begin {scope}[shift={(22,0)}]
        \foreach \x/\y in {0/0, -3/3, 3/3, 0/6, 0/9} {

		\node [shape = circle, scale = 0.5, fill = black] (0) at (\x+0.5, \y+0.1) {};
		\node [shape = circle, scale = 0.5, fill = black] (1) at (\x+1.5, \y+1.2) {};
		\node [shape = circle, scale = 0.5, fill = black] (2) at (\x+2.5, \y+0.1) {};

		\draw (0) to (1);
		\draw (1) to (2);

            % \draw (\x+0,\y+0) -- (\x+3,\y+0) -- (\x+3,\y+1) -- (\x+0,\y+1) -- cycle;
            % \draw (\x+1,\y+0) -- (\x+1,\y+1);
            % \draw (\x+2,\y+0) -- (\x+2,\y+1);
        }
    
        
    
        \draw (0.5,1.5) -- (-0.5,2.5);
        \draw (2.5,1.5) -- (3.5,2.5);
        
        \draw (-0.5,4.5) -- (0.5,5.5);
        \draw (3.5,4.5) -- (2.5,5.5);
        
        \draw (1.5,7.5) -- (1.5,8.5);
    
        \begin {scope}[shift={(-3,3)}]
            \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (0.5,0.1) {};
        \end {scope}
        
        \begin {scope}[shift={(3,3)}]
           \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (2.5,0.1) {};
        \end {scope}
        
        \begin {scope}[shift={(0,6)}]
          \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (0.5,0.1) {};
          \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (2.5,0.1) {};
        \end {scope}
        
        \begin {scope}[shift={(0,9)}]
        \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (0.5,0.1) {};
          \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (2.5,0.1) {};
          \node [shape = circle, scale = 0.8, fill = none, draw = blue, line width = 1.5] at (1.5,1.2) {};
        \end {scope}
    \end {scope}
    
\end {tikzpicture}
}
\caption {Left: The poset of dimer covers of a snake graph. Middle: the corresponding double dimer covers, after superimposing the minimal dimer cover. Right: Lattice of order ideals of the fence poset, where a blue circle indicate elements in the order ideal.}
\label {fig:dimer_partial_order}
\end {figure}\vspace{-0.2em}

Alternatively, we can construct the $P_D(G_\gamma)$ inductively by ``flipping'' the dimer covers on tiles of the snake graph. If a tile of snake graph is covered by two dimer edges, then one can perform a flip on that tile as follows to obtain a new dimer cover.
\[
\begin{tikzpicture}[scale = 0.7,baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2] (0,0) -- ( 0,1);
\draw [blue,line width = 2] (1,0) -- ( 1,1);
\end{tikzpicture}
\Longleftrightarrow
\begin{tikzpicture}[scale = 0.7, baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2] (0,0) -- ( 1,0);
\draw [blue,line width = 2] (0,1) -- ( 1,1);
\end{tikzpicture}
\]
Let $M$ be a dimer cover of $G_\gamma$ and $M'$ is obtained from $M$ via a flip, then either $M'$ is covered by $M$ or $M$ is covered by $M'$. If we require the poset to have a unique minimum element, then the above rule and the choice of minimal element (the minimal dimer cover $M_0$) are sufficient to determine the entire poset.

Moreover, for a snake graph $G$, the poset $P_D(G)$ is a distributive lattice and can be realized as the poset of order ideals of the \emph{fence poset} associated to $G$ , denoted $F_{G}$. See the right image in \Cref{fig:dimer_partial_order}. We refer the reader to Section 9 of \cite{moz2} for more details about fence posets.

In the case of double dimer covers, there exists a similar natural partial order structure. We first define the \emph{minimal double dimer cover} $\tilde M_0$ of a snake graph $G_\gamma$ to be the super position of two identical copies of the minimal dimer covers of $G_\gamma$. In other words, the minimal double dimer cover looks exactly the same as the minimal single dimer cover but with doubled edges instead.

For a snake graph $G$, denote $P_{DD}(G)$ the poset of double dimer covers of $G$. We can then define $P_{DD}(G)$ in the same way by performing flips (of a pair of single edges) on the tiles of $G$. Note we are allowed to flip a pair of singled edges inside some doubled edges. The possible local flips are summarized as follows.
\[
\begin{tikzpicture}[scale = 0.65,baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2] (0,0) -- ( 0,1)--(1,1);
\draw [blue,line width = 2] (0,0)--(1,0) -- ( 1,1);
\end{tikzpicture}
\Longleftrightarrow
\begin{tikzpicture}[scale = 0.65, baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2,double, double distance = 0.13em] (0,0) -- ( 1,0);
\draw [blue,line width = 2,double, double distance = 0.13em] (0,1) -- ( 1,1);
\end{tikzpicture}\quad\quad
\begin{tikzpicture}[scale = 0.65,baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2] (0,0) -- ( 0,1)--(1,1);
\draw [blue,line width = 2] (0,0)--(1,0) -- ( 1,1);
\end{tikzpicture}
\Longleftrightarrow
\begin{tikzpicture}[scale = 0.65, baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2,double, double distance = 0.13em] (0,0) -- ( 0,1);
\draw [blue,line width = 2,double, double distance = 0.13em] (1,0) -- ( 1,1);
\end{tikzpicture}\quad\quad
\begin{tikzpicture}[scale = 0.65, baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
%\draw [blue,line width = 2,double, double distance = 0.13em] (0,0) -- ( 0,1);
\draw [blue,line width = 2]  ( 1,1) -- (0,1) -- (0,0) -- (1,0);
\end{tikzpicture}\Longleftrightarrow
\begin{tikzpicture}[scale = 0.65, baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2,double, double distance = 0.13em] (0,0) -- ( 0,1);
\draw [blue,line width = 2] (1,0) -- ( 1,1);
\end{tikzpicture}\quad\quad
\begin{tikzpicture}[scale = 0.65,baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
%\draw [blue,line width = 2] (0,0) -- ( 0,1)--(1,1);
\draw [blue,line width = 2] (0,1) -- (0,0)--(1,0) -- ( 1,1);
\end{tikzpicture}
\Longleftrightarrow
\begin{tikzpicture}[scale = 0.65, baseline = 0.5 em]
\draw (0,0) -- (0,1) -- ( 1,1) -- (1,0)-- cycle;
\draw [blue,line width = 2,double, double distance = 0.13em] (0,0) -- ( 1,0);
\draw [blue,line width = 2,] (0,1) -- ( 1,1);
\end{tikzpicture}
\]
Similar to the single dimer case, these flips corresponds to covering relations in the poset. Therefore starting with the minimal double dimer cover $\tilde M_0$ and applying flips inductively generates the entire partial order.\footnote{Note that we can define $P_{DD}(G)$ in a way similar to the first definition we gave for $P_D(G)$, by super imposing every double dimer cover with the minimal double dimer cover. However it is more complicated to illustrate in the case of double dimer covers, therefore we omit this definition.}
See \Cref{fig:double_dimer_poset} for example. 

Similar to the single dimer case, the poset $P_{DD}(G)$ is also a distributive lattice. In this case, it can be realized as the poset of order ideals on the \emph{doubled fence poset} that is the product of the fence poset associated to $G$ and a two element chain: $\{0,1\}\times F_G$. See \Cref{fig:double_dimer_poset} for example.
 




\begin{figure}
    \centering
    \scalebox{0.65}{
    \begin {tikzpicture} [scale=0.6]
    
    \foreach \x/\y in {0/0, -4/3, -8/6, 4/3,0/9, 8/6,-4/9,4/9,-4/12,4/12, 0/12,0/15, 0/18,0/6} {
        \draw [line width = 0.4](\x+0,\y+0) -- (\x+3,\y+0) -- (\x+3,\y+1) -- (\x+0,\y+1) -- cycle;
        \draw [line width = 0.4] (\x+1,\y+0) -- (\x+1,\y+1);
        \draw [line width = 0.4] (\x+2,\y+0) -- (\x+2,\y+1);
    }

    \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (1,0);
    \draw[blue, double, double distance = 0.15em, line width = 2] (0,1) -- (1,1);
    \draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (3,0);
    \draw[blue, double, double distance = 0.15em, line width = 2] (2,1) -- (3,1);
    
    

    \draw (0.5,1.5) -- (-1,2.5);
    \draw (0.5-4,1.5+3) -- (-1-4,2.5+3);
    \draw (0.5+4,1.5+3) -- (-1+4,2.5+3);
    \draw (0.5+8,1.5+6) -- (-1+8,2.5+6);
    \draw (0.5,1.5+6) -- (-1,2.5+6);
    \draw (0.5,1.5+9) -- (-1,2.5+9);
    \draw (0.5+4,1.5+9) -- (-1+4,2.5+9);
    \draw (0.5+4,1.5+12) -- (-1+4,2.5+12);
    
    \draw (2.5,1.5) -- (4,2.5);
    \draw (2.5+4,1.5+3) -- (4+4,2.5+3);
    \draw (2.5-4,1.5+3) -- (4-4,2.5+3);
    \draw (2.5-4,1.5+9) -- (4-4,2.5+9);
    \draw (2.5-4,1.5+12) -- (4-4,2.5+12);
    \draw (2.5-8,1.5+6) -- (4-8,2.5+6);
    \draw (2.5,1.5+6) -- (4,2.5+6);
    \draw (2.5,1.5+9) -- (4,2.5+9);
    
    \draw (1.5-4,1.5+9) -- (1.5-4,2.5+9);
    \draw (1.5+4,1.5+9) -- (1.5+4,2.5+9);
    %\draw (1.5,1.5) -- (1.5,2.5);
    \foreach \i in {6,12,15}{
    \draw (1.5,1.5+\i) -- (1.5,2.5+\i);}
    
    
     
    
    % \draw (-0.5,4.5) -- (0.5,5.5);
    % \draw (3.5,4.5) -- (2.5,5.5);
    
    % \draw (1.5,7.5) -- (1.5,8.5);

    \begin {scope}[shift={(-8,6)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (0,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (1,0) -- (1,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (3,0);
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,1) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(-4,3)}]

        \draw [blue, line width = 2] (0,0) -- (1,0) -- (1,1) -- (0,1) --cycle;
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (3,0);
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,1) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(8,6)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (1,0);
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,1) -- (1,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (2,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (3,0) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(-4,9)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (0,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (1,0) -- (1,1);
        \draw [blue, line width = 2] (2,0) -- (3,0) -- (3,1) -- (2,1) --cycle;
    \end {scope}
    
    
    
    \begin {scope}[shift={(4,9)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (3,1) -- (3,0);
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (2,1);
        \draw [blue, line width = 2] (0,0) -- (1,0) -- (1,1) -- (0,1) --cycle;
    \end {scope}
    
    \begin {scope}[shift={(4,12)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (3,1) -- (3,0);
        %\draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (2,1);
        \draw [blue, line width = 2] (0,0) -- (2,0) -- (2,1) -- (0,1) --cycle;
    \end {scope}
    
    \begin {scope}[shift={(-4,12)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,1) -- (0,0);
        %\draw[blue, double, double distance = 0.15em, line width = 2] (1,0) -- (1,1);
        \draw [blue, line width = 2] (1,0) -- (3,0) -- (3,1) -- (1,1) --cycle;
    \end {scope}
    
     \begin {scope}[shift={(4,3)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (1,0) -- (0,0);
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,1) -- (1,1);
        \draw [blue, line width = 2] (2,0) -- (3,0) -- (3,1) -- (2,1) --cycle;
    \end {scope}
    
     \begin {scope}[shift={(0,6)}]
        
        \draw [blue, line width = 2] (2,0) -- (3,0) -- (3,1) -- (2,1) --cycle;
        \draw [blue, line width = 2] (0,0) -- (1,0) -- (1,1) -- (0,1) --cycle;
    \end {scope}
    
    
    \begin {scope}[shift={(0,12)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (0,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (1,0) -- (1,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (2,0) -- (2,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (3,0) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(0,15)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (0,1);
        \draw [blue, line width = 2] (1,0)--(2,0)--(2,1)--(1,1) -- cycle;
        \draw[blue, double, double distance = 0.15em, line width = 2] (3,0) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(0,18)}]
        \draw[blue, double, double distance = 0.15em, line width = 2] (0,0) -- (0,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (1,0) -- (2,0);
        \draw[blue, double, double distance = 0.15em, line width = 2] (1,1) -- (2,1);
        \draw[blue, double, double distance = 0.15em, line width = 2] (3,0) -- (3,1);
    \end {scope}
    
    \begin {scope}[shift={(0,9)}]
            \draw[blue, line width = 2] (0,0) -- (3,0) -- (3,1) -- (0,1) -- cycle;
        \end {scope}


    % second poset
   
    
    

\end {tikzpicture}
}%
\;\;\;\;\;\;\;\;
\scalebox{0.5}{
\begin{tikzpicture}[scale=0.6]
\newcommand{\drawposet}{
        \begin {scope}[shift={(-0.5,0)}]
        \draw[fill=black] (0,0) circle (0.05);
        \draw[fill=black] (1,1) circle (0.05);
        \draw[fill=black] (2,0) circle (0.05);
        \draw[fill=black] (0,1) circle (0.05);
        \draw[fill=black] (1,2) circle (0.05);
        \draw[fill=black] (2,1) circle (0.05);

        \draw (0,0) -- (1,1) -- (2,0);
        \draw (0,1) -- (1,2) -- (2,1);
        \draw (0,0) -- (0,1);
        \draw (1,1) -- (1,2);
        \draw (2,0) -- (2,1);
        \end {scope}
    }

    %%% Rank 0 %%%

    \drawposet

    \draw (-0.5,2.5) -- (-2,4);
    \draw (1.5,2.5) -- (3,4);

    %%% Rank 1 %%%

    \begin {scope}[shift={(-4,4)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
        \draw (1.5,2.5) -- (3,4);
    \end {scope}

    \begin {scope}[shift={(4,4)}]
        \drawposet

        \draw[blue] (1.5,0) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
        \draw (1.5,2.5) -- (3,4);
    \end {scope}

    %%% Rank 2 %%%

    \begin {scope}[shift={(-8,8)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (-0.5,1) circle (0.2);

        \draw (1.5,2.5) -- (3,4);
    \end {scope}

    \begin {scope}[shift={(0,8)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
        \draw (1.5,2.5) -- (3,4);
        \draw (0.5,2.5) -- (0.5,3.5);
    \end {scope}

    \begin {scope}[shift={(8,8)}]
        \drawposet

        \draw[blue] (1.5,0) circle (0.2);
        \draw[blue] (1.5,1) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
    \end {scope}


    %%% Rank 3 %%%

    \begin {scope}[shift={(-4,12)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (-0.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (0.5,2.5) -- (0.5,3.5);
        \draw (1.5,2.5) -- (3,4);
    \end {scope}

    \begin {scope}[shift={(0,12)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (0.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
        \draw (1.5,2.5) -- (3,4);
    \end {scope}

    \begin {scope}[shift={(4,12)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (1.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
        \draw (0.5,2.5) -- (0.5,3.5);
    \end {scope}

    %%% Rank 4 %%%

    \begin {scope}[shift={(-4,16)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (-0.5,1) circle (0.2);
        \draw[blue] (0.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (1.5,2.5) -- (3,4);
    \end {scope}

    \begin {scope}[shift={(0,16)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (-0.5,1) circle (0.2);
        \draw[blue] (1.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (0.5,2.5) -- (0.5,3.5);
    \end {scope}

    \begin {scope}[shift={(4,16)}]
        \drawposet
        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (0.5,1) circle (0.2);
        \draw[blue] (1.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (-0.5,2.5) -- (-2,4);
    \end {scope}

    %%% Rank 5 %%%

    \begin {scope}[shift={(0,20)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (-0.5,1) circle (0.2);
        \draw[blue] (0.5,1) circle (0.2);
        \draw[blue] (1.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);

        \draw (0.5,2.5) -- (0.5,3.5);
    \end {scope}

    %%% Rank 6 %%%

    \begin {scope}[shift={(0,24)}]
        \drawposet

        \draw[blue] (-0.5,0) circle (0.2);
        \draw[blue] (-0.5,1) circle (0.2);
        \draw[blue] (0.5,1) circle (0.2);
        \draw[blue] (0.5,2) circle (0.2);
        \draw[blue] (1.5,1) circle (0.2);
        \draw[blue] (1.5,0) circle (0.2);
    \end {scope}
\end{tikzpicture}}


    \caption{Left: the partial order on double dimer covers of a snake graph. Right: the poset of order ideals of the corresponding doubled fence poset.}
    \label{fig:double_dimer_poset}
\end{figure}


\section{Special Cases: Zig-zag and Straight Snake Graphs}We conclude with a discussion on two special cases of snake graphs: the zig-zag and the straight snake graphs.

\paragraph{Zig-zag Snakes Graphs.}%
Zig-zag snake graphs corresponds to the longest arc in a fan triangulation, i.e. the triangulation where all triangles share a common vertex. Let $Z_n$ be the zig-zag snake graph with $n$ tiles. Then the number of double dimer covers of $Z_n$ is the binomial coefficient ${n+2\choose 2}$. Moreover, 
there is a $q$-analogue of this statement, given in the following theorem, 
a special case of a more general result from work in progress of the authors and R. Schiffler \cite{mosz}.
\begingroup



\begin{thm}\label{thm:zig-zag}

    For a double dimer cover $M \in P_{DD}(Z_n)$, let $\mathrm{rk}(M)$ denote its rank in the poset. Then we have
    \[ \sum_{M \in P_{DD}(Z_n)} q^{\mathrm{rk}(M)} = \binom{n+2}{2}_q
\]
\end{thm}

\endgroup

In fact, the poset $P_{DD}(Z_n)$ is isomorphic to the poset of lattice paths on the $2\times n$ board, whose rank generating function is well known to be the $q$-binomial coefficient. See \Cref{fig:poset_zigzag} for an illustration.
\begin{figure}[h]
    \centering
    \scalebox{0.6}{
    \begin{tikzpicture}[scale=0.6]
    
    \foreach \x/\y in {-3/0,0/3,3/6,-3/6,0/9,6/9,3/12,-3/12,0/15,-3/18} {
    \draw [line width = 0.4] (1+\x,0+\y) --(1+\x,1+\y) -- (\x+0,1+\y) -- (0+\x,0+\y) -- (2+\x,0+\y) -- (2+\x,2+\y) -- (1+\x,2+\y) -- (1+\x,1+\y) -- (2+\x,1+\y);
    }
     

     
    \begin{scope}[shift={(-3,0)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (1,0);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,1) -- (1,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (2,0) -- (2,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (2,2);
    \end{scope}
    
     \begin{scope}[shift={(-3,6)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (0,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,0) -- (1,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (2,0) -- (2,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (2,2);
    \end{scope}
    
    \begin{scope}[shift={(-3,12)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (0,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,0) -- (2,0);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (2,1) -- (1,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (2,2);
    \end{scope}
    
    \begin{scope}[shift={(-3,18)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (0,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,0) -- (2,0);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (2,1) -- (2,2);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (1,1);
    \end{scope}
    
    \begin{scope}[shift={(0,3)}]

    \draw [blue,double,double distance = 0.15 em, line width = 2] (2,0) -- (2,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (2,2);
    \draw [blue,line width = 2] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
    \end{scope}
    \begin{scope}[shift={(0,9)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (0,1);

    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (2,2);
    \draw [blue,line width = 2] (1,0) -- (2,0) -- (2,1) -- (1,1) -- cycle;
    \end{scope}
    
    \begin{scope}[shift={(0,15)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (0,1);
    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,0) -- (2,0);

    \draw [blue,line width = 2] (1,1) -- (2,1) -- (2,2) -- (1,2) -- cycle;
    \end{scope}
     \begin{scope}[shift={(3,6)}]

    \draw [blue,double,double distance = 0.15 em, line width = 2] (1,2) -- (2,2);
    \draw [blue,line width = 2] (0,0) -- (0,1) -- (2,1) -- (2,0) -- cycle;
    \end{scope}
    
    \begin{scope}[shift={(3,12)}]
    \draw [blue,double,double distance = 0.15 em, line width = 2] (0,0) -- (0,1);
    \draw [blue,line width = 2] (1,0) -- (2,0) -- (2,2) -- (1,2) -- cycle;
    \end{scope}
    
    \begin{scope}[shift={(6,9)}]
    \draw [blue,line width = 2] (0,0) -- (2,0) -- (2,2) -- (1,2) -- (1,1) -- (0,1) -- cycle;
    \end{scope}
      
     \draw (-0.5,1.5) -- (0.5,2.5);
     \draw (-0.5,5.5) -- (0.5,4.5);
     \foreach \j/\i in {0/6,0/12,3/9,3/3,6/6}{\draw (-0.5+\j,1.5+\i) -- (0.5+\j,2.5+\i);
     \draw (-0.5+\j,5.5+\i) -- (0.5+\j,4.5+\i);}
    \end{tikzpicture}
    %Second Poset
    \hspace{10em}
    \begin{tikzpicture}[scale=0.6]
    
    \foreach \x/\y in {-3/0,0/3,3/6,-3/6,0/9,6/9,3/12,-3/12,0/15,-3/18} {
    \draw [line width = 0.4] (\x+0,\y+0)--(\x+3,\y+0);
    \draw [line width = 0.4] (\x+0,\y+1)--(\x+3,\y+1);
    \draw [line width = 0.4] (\x+0,\y+2)--(\x+3,\y+2);
    \draw [line width = 0.4] (\x+0,\y+0) -- (\x+0,\y+2);
    \draw [line width = 0.4] (\x+1,\y+0) -- (\x+1,\y+2);
    \draw [line width = 0.4] (\x+2,\y+0) -- (\x+2,\y+2);
    \draw [line width = 0.4] (\x+3,\y+0) -- (\x+3,\y+2);
    }
     

     
    \begin{scope}[shift={(-3,0)}]
    \draw [ blue, line width = 2.5] (0,0) -- (3,0) -- (3,2);
    \end{scope}
    
    \begin{scope}[shift={(-3,6)}]
    \draw [ blue, line width = 2.5] (0,0) -- (2,0) -- (2,1) -- (2,2) -- (3,2);
    \end{scope}
    
    \begin{scope}[shift={(-3,12)}]
    \draw [ blue, line width = 2.5] (0,0) -- (1,0) -- (1,1) -- (1,2) -- (3,2);
    \end{scope}
    
    \begin{scope}[shift={(-3,18)}]
    \draw [blue, line width = 2.5] (0,0) -- (0,2) -- (3,2);
    \end{scope}
    
    \begin{scope}[shift={(0,3)}]
    \draw [ blue, line width = 2.5] (0,0) -- (2,0) -- (2,1) -- (3,1) -- (3,2);
    \end{scope}
    \begin{scope}[shift={(0,9)}]
    \draw [blue, line width = 2.5] (0,0) -- (1,0)--(1,1)--(2,1)--(2,2)--(3,2);
    \end{scope}
    
    \begin{scope}[shift={(0,15)}]
    
    \draw [blue,line width = 2.5] (0,0)--(0,1)--(1,1)--(1,2)--(3,2);
    \end{scope}
     \begin{scope}[shift={(3,6)}]
    \draw [blue,line width = 2.5] (0,0) -- (1,0) -- (1,1) -- (3,1) -- (3,2);
    \end{scope}
    
    \begin{scope}[shift={(3,12)}]
    \draw [blue,line width = 2.5] (0,0) -- (0,1) --(2,1) -- (2,2) -- (3,2);
    \end{scope}
    
    \begin{scope}[shift={(6,9)}]
    \draw [blue,line width = 2.5] (0,0)--(0,1) -- (3,1) -- (3,2);
    \end{scope}
      
     \draw (-0.8,2.2) -- (-0.2,2.8);
     \draw (-0.8,5.6) -- (-0.2,5);
     \foreach \j/\i in {0/6,0/12,3/9,3/3,6/6}{\draw (-0.8+\j,2.2+\i) -- (-0.2+\j,2.8+\i);
     \draw (-0.8+\j,5.6+\i) -- (-0.2+\j,5+\i);}
    \end{tikzpicture}
    }
    \caption{Left: The poset of double dimer covers on a zig-zag snake graph. Right: The poset of lattice path on $2\times n$ grid.}
    \label{fig:poset_zigzag}
\end{figure}

\vspace{-2em}
\paragraph{Straight Snakes Graphs and Super Fibonacci Numbers.}
Another interesting family of snake graphs are the straight snake graphs. Let $L_n$ denote the straight snake graph that is a horizontal row of $n$ tiles. The number of dimer covers of $L_n$ gives a nice combinatorial interpretation of Fibonacci numbers. More precisely, $|D(L_n)| = f_{n+1}$ where $f_0=f_1=1$ and $f_{n+1}=f_n+f_{n-1}$. In the case of double dimer covers, this gives rise to a generalization which we call \emph{super Fibonacci numbers}.

\begin{defn}
Consider the family of double dimer covers $\mathbb D(L_n)$ on $L_n$ such that every $M\in \mathbb D(L_n)$ has at most one cycle, and that cycle has odd length. Further, define $\mathbb D^0(L_n)$ to be the set of double dimers without cycles and $\mathbb D^1(L_n):=\mathbb D(L_n)\setminus \mathbb D^0(L_n)$. Denote $y_n=|\mathbb D^1(L_{n-1})|$ and recall that $| \mathbb D^0(L_{n-1})| = |D(L_{n-1})|=f_n$. 
Finally, define the \emph{$n$-th super Fibonacci number} 
to be
\[F_n:=|\mathbb D^0(L_{n-1})| + |\mathbb D^1(L_{n-1})|\varepsilon=f_n+y_n\varepsilon\]

where $\varepsilon^2=0$.
\end{defn}
 Super Fibonacci numbers live in the super algebra $\mathbb Z\otimes \bigwedge(\varepsilon)$ with one odd generator, i.e. the algebra of dual numbers.

\begin{rem}The reason why we forbid multiple cycles and cycles of even length is related to the hyperbolic geometry of the annulus, which we do not explain here. See Section 11 of \cite{moz2} for more details. In fact, in \cite{moz3} we showed that $F_n$'s can be interpreted as certain ``super-lengths'' on a marked annulus.
\end{rem}
The $F_n$'s satisfy several identities, generalizing those of the classical Fibonacci numbers. To better state these identities, we make a simple adjustment to the definition of super Fibonacci numbers as follows. Define
\[
%\mathcal{F}_n=f_n+\hat y_n\varepsilon:=\begin{cases}
% F_n&\text{if }n\text{ is odd.}\\
% F_n-\varepsilon = x_n+(y_n-1)\varepsilon&\text{if }n\text{ is even.}
% \end{cases}
\tilde y_n:=\begin{cases}
y_n&\text{if }n\text{ is odd.}\\
y_n-1&\text{if }n\text{ is even.}\end{cases}
\]
and $\mathcal{F}_n:=f_n+\tilde y_n\varepsilon$.
In terms of double dimer covers, $\mathcal{F}_n$ corresponds to disallowing the double dimer cover that is the longest cycle.
\begin{thm}
The `simpler' super Fibonacci numbers $\mathcal{F}_n$ satisfy the recurrence
\[\mathcal{F}_0=1-\varepsilon,\quad \mathcal{F}_1=1,\quad \mathcal{F}_{n+1}=(1+\varepsilon)\mathcal{F}_n + \mathcal{F}_{n-1},
\]and its generating function is%
\[\sum_{n}\mathcal{F}_n x^n={1-\varepsilon\over 1-(1+\varepsilon)x-x^2}\]
\end{thm}
The ratio of Fibonacci numbers 
%(``the golden ratio'') 
%{\color{red}(technically the golden ratio is only when you take the limit of the ratios of Fibonacci numbers)}
has a nice continued fraction expansion:
\[{f_n\over f_{n+1}}=[\underbrace{1,\cdots,1}_{n \text{ times}}]=1+{1\over {1+{1\over 1+\cdots}}}\]
There is a similar identity for ratios of the $\mathcal{F}_n$'s.
\begin{thm}\label{thm:golden}
\[{\mathcal{F}_n\over \mathcal{F}_{n+1}}=[\underbrace{1+\varepsilon,\cdots,1+\varepsilon}_{n \text{ times}}]=1+\varepsilon+{1\over {1+\varepsilon +{1\over 1+\varepsilon+{1\over\cdots} }}}\]
\end{thm}
In addition, by analysing the generating function, we are able to write the super Fibonacci numbers in terms of the golden ratio:
\begin{thm}
Let $\Phi_\pm={1\pm\sqrt{5}\over 2} + \left({1\pm {1\over \sqrt{5}}\over 2}\right)\varepsilon ={1\pm\sqrt{5}\over 2} \left(1\pm {1\over \sqrt{5}}\varepsilon\right) $. Then we have
\[\mathcal{F}_n ={1\over \sqrt{5}}\left(1-{6\over 5}\varepsilon\right)\left(\Phi_+^{n+1}-\Phi_-^{n+1}\right)\]
\end{thm}


\begin{rem}Note that $y_n$ is the OEIS sequence A054454 as well as the third column of the triangular array A054453. The super Fibonacci numbers also appeared in \cite{ovsienko_22} under the name of ``shadow sequences''. An analogue of \Cref{thm:golden} has also been obtained in \cite{conley2022shadows} for shadow Fibonacci numbers as an example of super continued fractions.
%{\color{red} TODO: add OEIS reference}{\color{red} TODO: reference Ovsienko}
\end{rem}
%\acknowledgements{}

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

\end{document}
