%% 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[final]{FPSAC2022}
%% 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}

\newtheorem{thm}{Theorem}
\newtheorem{lem}{Lemma}
\newtheorem{prop}{Proposition}
\newtheorem{cor}{Proposition}
\theoremstyle{definition}
\newtheorem{defn}{Definition}

%\usepackage{lipsum}
%\usepackage[numbers,square,sort&compress]{natbib}

%% define your title in the usual way
\title{Torsors From Toggling Independent Sets}


%% define your authors in the usual way
%% use \addressmark{1}, \addressmark{2} etc for the institutions, and use \thanks{} for contact details
\author[C.~Defant, M.~Joseph, M.~Macauley, and A.~McDonough]{Colin Defant\thanks{Partially supported by NSF Graduate Research Fellowship \#DGE-1656466, and a Fannie and John Hertz Foundation Fellowship.}\addressmark{1}, 
 Mike Joseph\addressmark{2},  
 Matthew  Macauley\thanks{\href{mailto:macaule@clemson.edu}{macaule@clemson.edu}. Partially supported by Simons Foundation Collaboration Grant \#358242}\addressmark{3}, \and \\
Alex McDonough\addressmark{4}}

%\author[C. Defant, M. Joseph, M. Macauley, A. McDonough]{Colin Defant, Michael Joseph, Matthew Macauley, Alex McDonough}


%% then use \addressmark to match authors to institutions here
\address{\addressmark{1}Department of Mathematics, Princeton University \\ \addressmark{2}Department of Technology and Mathematics, Dalton State College \\ \addressmark{3}School of Mathematical and Statistical Sciences, Clemson University \\ \addressmark{3}Department of Mathematics, University of California, Davis}

%% 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{In this paper, we consider the problem of toggling independent sets in cycle graphs. In each orbit, we find an infinite abelian ``snake group'' that acts simply transitively on the ``live entries''. This allows us to characterize a number of combinatorial properties of the dynamics by studying the topological covering maps between this torsor and finite quotients. We also characterize the orbits via solutions to a three-variable Diophantine equation. Preliminary work has found other toggle actions where the live entries are a torsor for a group, suggesting that this work is a special case of a more general framework, and posing the question of when this phenomenon arises and why.}

%% 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{dynamical algebraic combinatorics, Diophantine equation, group action, independent set, orbits, ouroboros, snake group, toggling, torsor}

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


%%%%%%%%%%%%%%%%%%%%%%%%%%% ADDED MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{amsmath,amssymb,url,color,tikz,colortbl,stmaryrd}
\usetikzlibrary{patterns}
\usepackage{mathdots}
\usepackage[all]{xy}
%%% For color
\usepackage{xcolor}
\definecolor{amethyst}{rgb}{0.54 0.17 0.89}

\newcommand{\ff}{\mathbb{F}}
\newcommand{\rr}{\mathbb{R}}
\newcommand{\zz}{\mathbb{Z}}
\newcommand{\qq}{\mathbb{Q}}
\newcommand{\cc}{\mathbb{C}}
\newcommand{\nn}{\mathbb{N}}
\newcommand{\pp}{\mathbb{P}}
\newcommand{\kk}{\mathbb{K}}
\newcommand{\bbs}{\mathbb{S}}
\renewcommand{\ss}{\mathfrak{S}}
\renewcommand{\aa}{\mathfrak{A}}
\newcommand{\e}{\varepsilon}
\newcommand{\tto}{\rightrightarrows}
\newcommand{\Pro}{\operatorname{Pro}}
\newcommand{\pro}{\operatorname{Pro}}
\newcommand{\rev}{\operatorname{rev}}
\newcommand{\ord}{\operatorname{ord}}
\newcommand{\lcm}{\operatorname{lcm}}
\newcommand{\comp}{\operatorname{comp}}
\newcommand{\tog}{\operatorname{Tog}}
\newcommand{\Tog}{\operatorname{Tog}}
\newcommand{\btog}{\operatorname{BTog}}
\newcommand{\BTog}{\operatorname{BTog}}
\newcommand{\ntog}{\operatorname{NTog}}
\newcommand{\NTog}{\operatorname{NTog}}
\newcommand{\row}{\operatorname{Row}}
\newcommand{\rot}{\operatorname{rot}}
\newcommand{\inj}{\operatorname{Inj}}
\newcommand{\Inj}{\operatorname{Inj}}
\newcommand{\sur}{\operatorname{Sur}}
\newcommand{\Sur}{\operatorname{Sur}}
\newcommand{\st}{\operatorname{ST}}
\newcommand{\ST}{\operatorname{ST}}
\newcommand{\fix}{\operatorname{Fix}}
\newcommand{\Fix}{\operatorname{Fix}}
\newcommand{\ch}{\operatorname{Ch}}
\newcommand{\id}{\operatorname{id}}
\newcommand{\col}{\operatorname{col}}
\newcommand{\rg}{\operatorname{RG}}
\newcommand{\RG}{\operatorname{RG}}
\newcommand{\rgnc}{\rg_\mathrm{nc}}
\newcommand{\mc}{\operatorname{MC}}
\newcommand{\park}{\operatorname{Park}}
\newcommand{\Park}{\operatorname{Park}}
\newcommand{\rank}{\operatorname{rank}}
\newcommand{\refl}{\operatorname{refl}}
\newcommand{\rk}{\operatorname{rk}}
\newcommand{\range}{\operatorname{range}}
\newcommand{\ra}{\rightarrow}
\newcommand{\dra}{\dashrightarrow}
\newcommand{\down}{\nabla}
\newcommand{\up}{\Delta}
\newcommand{\maj}{\operatorname{maj}}
\newcommand{\dyck}{\operatorname{Dyck}}
\newcommand{\Dyck}{\operatorname{Dyck}}
\newcommand{\lk}{\operatorname{LK}}
\newcommand{\LK}{\operatorname{LK}}
\newcommand{\Ant}{\operatorname{Ant}}
\newcommand{\ant}{\operatorname{Ant}}
\newcommand{\sm}{\setminus}

%Calligraphic Characters
\newcommand{\cala}{\mathcal{A}}
\newcommand{\calb}{\mathcal{B}}
\newcommand{\calc}{\mathcal{C}}
\newcommand{\cald}{\mathcal{D}}
\newcommand{\cale}{\mathcal{E}}
\newcommand{\calf}{\mathcal{F}}
\newcommand{\calg}{\mathcal{G}}
\newcommand{\calh}{\mathcal{H}}
\newcommand{\cali}{\mathcal{I}}
\newcommand{\calj}{\mathcal{J}}
\newcommand{\calk}{\mathcal{K}}
\newcommand{\call}{\mathcal{L}}
\newcommand{\calm}{\mathcal{M}}
\newcommand{\caln}{\mathcal{N}}
\newcommand{\calo}{\mathcal{O}}
\newcommand{\calp}{\mathcal{P}}
\newcommand{\calq}{\mathcal{Q}}
\newcommand{\calr}{\mathcal{R}}
\newcommand{\cals}{\mathcal{S}}
\newcommand{\calt}{\mathcal{T}}
\newcommand{\calu}{\mathcal{U}}
\newcommand{\calv}{\mathcal{V}}
\newcommand{\calw}{\mathcal{W}}
\newcommand{\calx}{\mathcal{X}}
\newcommand{\caly}{\mathcal{Y}}
\newcommand{\calz}{\mathcal{Z}}

%Lowercase Bold Letters
\newcommand{\bfa}{\mathbf{a}}
\newcommand{\bfb}{\mathbf{b}}
\newcommand{\bfc}{\mathbf{c}}
\newcommand{\bfd}{\mathbf{d}}
\newcommand{\bfe}{\mathbf{e}}
\newcommand{\bff}{\mathbf{f}}
\newcommand{\bfg}{\mathbf{g}}
\newcommand{\bfh}{\mathbf{h}}
\newcommand{\bfi}{\mathbf{i}}
\newcommand{\bfj}{\mathbf{j}}
\newcommand{\bfk}{\mathbf{k}}
\newcommand{\bfl}{\mathbf{l}}
\newcommand{\bfm}{\mathbf{m}}
\newcommand{\bfn}{\mathbf{n}}
\newcommand{\bfo}{\mathbf{o}}
\newcommand{\bfp}{\mathbf{p}}
\newcommand{\bfq}{\mathbf{q}}
\newcommand{\bfr}{\mathbf{r}}
\newcommand{\bfs}{\mathbf{s}}
\newcommand{\bft}{\mathbf{t}}
\newcommand{\bfu}{\mathbf{u}}
\newcommand{\bfv}{\mathbf{v}}
\newcommand{\bfw}{\mathbf{w}}
\newcommand{\bfx}{\mathbf{x}}
\newcommand{\bfy}{\mathbf{y}}
\newcommand{\bfz}{\mathbf{z}}

%\renewcommand{\overline}{\overline}

\newcommand{\bfF}{\mathbf{F}}
\newcommand{\bfI}{\mathbf{I}}
\newcommand{\bfW}{\mathbf{W}}
\newcommand{\orb}{\mathbf{OR}}
\newcommand{\opb}{\mathbf{OP}}

\newcommand\<{\langle}
\renewcommand\>{\rangle}
%\newcommand\<{\left<}
%\renewcommand\>{\right>}
\newcommand\longto{\longrightarrow}
\newcommand\Rho{\mathrm{P}}
\DeclareMathOperator{\Acyc}{Acyc}
\DeclareMathOperator{\Aut}{Aut}
\DeclareMathOperator{\LG}{LG}
\DeclareMathOperator{\Id}{Id}
\DeclareMathOperator{\Andd}{And}
\DeclareMathOperator{\andd}{and}
\DeclareMathOperator{\nand}{nand}
\DeclareMathOperator{\Nand}{Nand}
\DeclareMathOperator{\Nor}{Nor}
\DeclareMathOperator{\nor}{nor}
\DeclareMathOperator{\Orr}{Or}
\DeclareMathOperator{\orr}{or}
\DeclareMathOperator{\inv}{inv}
\DeclareMathOperator{\Inv}{Inv}
\DeclareMathOperator{\Per}{Per}
\DeclareMathOperator{\Shift}{\sigma}
\DeclareMathOperator{\codeg}{codeg}

%%% To get \dbend sign
\usepackage{manfnt}
\usepackage{url,color,tikz,euscript}
\usepackage{tikz-cd}
\usepackage{bbding}
\usepackage{aircraftshapes}
\usetikzlibrary{arrows,automata}
\usetikzlibrary{decorations.pathreplacing}

\usepackage{scalerel}
\usepackage{mathtools}
\newcommand{\bigsig}{{\sum}}
\DeclareMathOperator*{\sumpar}{\bigsig^{\ \mathclap{\|}\mathclap{\rule[1.3pt]{6pt}{0.4pt}}}\:}
\def\parallelsum{\:\ \mathclap{\|}\mathclap{-}\ \:}
\def\Fiber{\mathsf{Fiber}}
\def\Scale{\mathsf{Scale}}
\def\scale{\mathsf{Scale}}
\def\Scroll{\mathsf{Scroll}}
\def\Tape{\mathsf{Tape}}
\def\Table{\mathsf{Table}}
\def\Vector{\mathsf{Vector}}
\def\Snake{\mathsf{Snake}}
\def\Cosnake{\mathsf{CoSnake}}
\def\Ouroboros{\mathsf{Ouro}}
\def\Coouroboros{\mathsf{CoOuro}}
\def\Slither{\mathsf{Slither}}
\def\Coslither{\mathsf{CoSlither}}
\def\Head{\mathsf{Head}}
\def\Tail{\mathsf{Tail}}
\def\Live{\mathsf{Live}}
\def\Swallow{\mathsf{Swal}}
\def\Affsnake{\Snake^{\text\Plane}\!}
\def\Affcosnake{\Cosnake^{\text\Plane}\!}
\def\0{\color{gray}0}
\def\1{\bf 1}

\newcommand{\dfn}[1]{\textcolor{blue}{\emph{#1}}}

\newcommand\Tstrut{\rule{0pt}{2ex}}     
\newcommand\Bstrut{\rule[-.9ex]{0pt}{0pt}} 


\definecolor{Red}{rgb}{.9,0,0}
\definecolor{Blue}{rgb}{0,0,.9}
\definecolor{Green}{HTML}{006600}

%\bibliography{bibliography}

\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}

Toggling combinatorial objects has gained considerable interest over the past decade, and has elevated the subfield now known as \emph{dynamical algebraic combinatorics}. Let $\calc_n$ be the cycle graph with vertex set $v(\calc_n)=[n]=\{1,\dots,n\}$ and edges $\{i,i+1\}$ with the indices taken modulo $n$. Denote the set of \emph{independent sets} of $\calc_n$ by $\cali_n$. We will write these as cyclic binary strings $v_1,\dots,v_n$ such that no two adjacent entries\footnote{By ``cyclic string,'' we mean that $v_1$ and $v_n$ are also adjacent.} are $1$. The \emph{toggle operation} at position $k$ is the function $\tau_k\colon\cali_n\to\cali_n$ that ``attempts to flip'' the $k^{\rm th}$ bit. Specifically, if $v_k=1$, then $\tau_k$ flips it to $0$. On the other hand, if $v_k=0$, then it flips it to $1$ if doing so does not introduce consecutive $1$s; otherwise, it fixes the $k^{\rm th}$ bit. In this paper, we will consider the action of iteratively toggling the bits of our binary string in the order $\tau_1,\dots,\tau_n$, and we will denote this by the bijection $\tau=\tau_n\circ\cdots\circ\tau_1$. Given an initial cyclic binary string $x^{(0)}$, let $x^{(1)}=\tau(x^{(0)})$, $x^{(2)}=\tau(x^{(1)})$, and so on. Eventually, after some $m\geq 1$ number of steps, we will return to our original string. That is, $x^{(i+m)}=x^{(i)}$ for all $i\in\zz$. The dynamics of this action can be represented by $\zz\times\zz_n$ binary tables called \emph{scrolls}, each of which is naturally embedded on a bi-infinite cylinder. An example on $n=12$ vertices that repeats every $m=15$ rows is shown in Figure~\ref{fig:motivating-example}.

\colorlet{color1}{Red}
\colorlet{color2}{Blue}
\colorlet{color3}{orange}
\colorlet{color4}{green!95!black}
\colorlet{color5}{orange}
\colorlet{color6}{green!95!black}
\colorlet{color7}{orange}
\colorlet{color8}{green!95!black}
%%
\begin{figure}[!ht]
\centering
\scalebox{.85}{
\setlength{\tabcolsep}{2.5pt}
\renewcommand{\arraystretch}{.4}
\begin{tabular}{ccccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ & $v_{1\!2}$ \Bstrut
\\\hline
$\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & 
$\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ &
$\vdots$ \\
$x^{(0)}$ & \1 & \0 & \1 & \0 & \1 & \0 & \0 & \0 & \1 & \0 & \1 & \0 \\
$x^{(1)}$ & \0 & \0 & \0 & \0 & \0 & \1 & \0 & \0 & \0 & \0 & \0 & \1 \\
$x^{(2)}$ & \0 & \1 & \0 & \1 & \0 & \0 & \1 & \0 & \1 & \0 & \0 & \0 \\
$x^{(3)}$ & \0 & \0 & \0 & \0 & \1 & \0 & \0 & \0 & \0 & \1 & \0 & \1 \\
$x^{(4)}$ & \0 & \1 & \0 & \0 & \0 & \1 & \0 & \1 & \0 & \0 & \0 & \0 \\
$x^{(5)}$ & \0 & \0 & \1 & \0 & \0 & \0 & \0 & \0 & \1 & \0 & \1 & \0 \\
$x^{(6)}$ & \1 & \0 & \0 & \1 & \0 & \1 & \0 & \0 & \0 & \0 & \0 & \0 \\
$x^{(7)}$ & \0 & \1 & \0 & \0 & \0 & \0 & \1 & \0 & \1 & \0 & \1 & \0 \\
$x^{(8)}$ & \0 & \0 & \1 & \0 & \1 & \0 & \0 & \0 & \0 & \0 & \0 & \1 \\
$x^{(9)}$ & \0 & \0 & \0 & \0 & \0 & \1 & \0 & \1 & \0 & \1 & \0 & \0 \\
$x^{(10)}$ & \1 & \0 & \1 & \0 & \0 & \0 & \0 & \0 & \0 & \0 & \1 & \0 \\
$x^{(11)}$ & \0 & \0 & \0 & \1 & \0 & \1 & \0 & \1 & \0 & \0 & \0 & \1 \\
$x^{(12)}$ & \0 & \1 & \0 & \0 & \0 & \0 & \0 & \0 & \1 & \0 & \0 & \0 \\
$x^{(13)}$ & \0 & \0 & \1 & \0 & \1 & \0 & \1 & \0 & \0 & \1 & \0 & \1 \\
$x^{(14)}$ & \0 & \0 & \0 & \0 & \0 & \0 & \0 & \1 & \0 & \0 & \0 & \0 \vspace{-1mm} \\ 
$\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & 
$\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ &
$\vdots$\Bstrut \\ \hline \Tstrut
{\bf Sum:} & \bf{3} & \bf{4} & \bf{5} & \bf{3} & \bf{4} & \bf{5} & \bf{3} & \bf{4} & \bf{5} & \bf{3} & \bf{4} & \bf{5} 
\end{tabular}}
\caption{A single period of an orbit from toggling independent sets over $\calc_n$, for $n=12$. This bi-infinite table, naturally embedded on a cylinder, is called a  \emph{scroll}.}\label{fig:motivating-example}
\end{figure}

In this paper, we will see some simple questions that lead to surprising structural properties of the dynamics, which seem to be a special case of a more general unexplored framework. As as gentle introduction, let's pause to make a few innocuous observations about Figure~\ref{fig:motivating-example}. As we've noted, this scroll repeats every 15 rows, which we call its \emph{period}. If we view the dynamics as one reads a book --  from left to right and down the rows, this bi-infinite sequence, called the \emph{ticker tape}, has period $45$. Finally, the column sums over one period, written as a cyclic string, have period $3$. It turns out that the period of the column sums is odd in any orbit, and the relationships between these various periods can be characterized algebraically by an abelian ``\emph{snake group}'' that acts simply transitively on the set of ``\emph{live entries}'' in the scroll (the positions with a $1$). This action endows the live entries with a Cayley diagram structure, \textit{i.e.}, they are a torsor for the snake group. Specifically, some of the fundamental combinatorial properties of these scrolls, and thus of the dynamics generated by toggling independent sets, can be explained by interpreting the scroll as a covering space and using some basic algebraic topology. We can also enumerate the orbit tables for any $n$ via a Diophantine equation in three variables. Preliminary work has suggested that other toggle actions admit such a torsor structure -- not only just toggling independent sets over other graphs, but other toggle actions as well. 

%In this extended abstract, we will give an overview of the combinatorial features and summarize the main results of our forthcoming paper on this topic. 

%%=====================================================
\section{Scrolls and snakes}

There are two formats for viewing the dynamics that result from toggling independent sets of $\calc_n$: the scroll and the ticker tape, which we informally described above, and  will formalize now. Recall that for an independent set $x=x^{(0)}=(x_1,\dots,x_n)\in\cali_n$ the result of iterating $\tau$ exactly $i$ times from $x$ is denoted $x^{(i)}$. 
Since $\tau$ is bijective on $\cali_n$, we can define this for all $i\in\zz$. Formally, the \dfn{scroll} of $x$ is the bi-infinite table with $n$ columns, indexed by $j=1,\dots,n$, and rows indexed by $i\in\zz$, reading downward. We denote this by $\cals=(X_{i,j})=\Scroll(x)$, and so the $(i,j)$-entry $X_{i,j}$ is the state of vertex $v_j$ in $x^{(i)}$. Since the scroll is naturally embedded on a cylinder, with the end of one line wrapping around to the beginning of the next, we will define $X_{i,n+1}=X_{i+1,1}$. As an example, the scroll of $x=101010001010\in\ff_2^{12}$ from Figure~\ref{fig:motivating-example} is simply the infinite table with the $m=15$ rows shown repeated indefinitely, both above and below.

The \dfn{ticker tape} of $x$, denoted $\calx=(X_k)=\Tape(x)$, is a bi-infinite sequence defined by reading off the scroll as one reads from a book: across each row from left to right, and then the rows downward, starting with $X_1=X_{0,1}$, $X_2=X_{0,2}$, $X_3=X_{0,3}$, and so on.
%so $X_{in+j}=X_{i,j}$. 

In both a scroll and a ticker tape, positions that have a value of $1$ are said to be \dfn{live}. Formally, the sets of live entries, in both formats, are
\[
\Live(\cals)=\big\{(i,j)\in\zz\times\zz_n\mid X_{i,j}=1\big\},\qquad
\Live(\calx)=\big\{k\in\zz\mid X_k=1\big\}.
\]

For a second example, and henceforth our ``\emph{running example},'' a repeating portion of the scroll of $x=00001010000\in\ff_2^{11}$ is shown twice in Figure~\ref{fig:example}. The ticker tape is
\[ \small
\dots,
\underbrace{X_{-6},X_{-5},X_{-4},X_{-3},X_{-2},X_{-1},X_0}_{0,0,0,0,1,0,1},
\underbrace{X_1,X_2,X_3,X_4,X_5,X_6,X_7}_{0,0,0,0,1,0,1},\underbrace{X_8,X_9,X_{10},X_{11},X_{12},X_{13},X_{14}}_{0,0,0,0,1,0,1}\dots.
\]
Notice that in this example, the period of the scroll is $m=7$ (rows), and the period of the ticker tape is $7$ (bits). 
%The coloring in Figure~\ref{fig:example} is meant to highlight patterns that define equivalence classes, called snakes and co-snakes, that we will introduce soon. 

%The color schemes are meant to highlight the patterns among the $1s$ (the ``\emph{live entries}'') called \emph{snakes} and \emph{co-snakes}, which we will explore in the next section. There are seven rows because the $\tau$-orbit has size $m=7$.

%\newcommand\Tstrut{\rule{0pt}{2ex}}         
%\newcommand\Bstrut{\rule[-.9ex]{0pt}{0pt}} 

\colorlet{color1}{Red}
\colorlet{color2}{Blue}
\colorlet{color3}{Red}
\colorlet{color4}{Blue}
\colorlet{color5}{purple}
\colorlet{color6}{Green}
\colorlet{color7}{orange}
\colorlet{color8}{amethyst}
%%
\begin{figure}[!ht]
\centering
\scalebox{.88}{
\begin{tikzpicture}
\setlength{\tabcolsep}{2.5pt}
\renewcommand{\arraystretch}{.4}
\begin{scope}[shift={(5.5,-1.5)},scale=.4]
\tikzstyle{every node}=[font=\normalsize,anchor=south]
    \node at (1.75,4.75) {$\cdots$};
    \node at (3,4.75) {$0$}; 
    \node at (4,4.75) {$0$};
    \node at (5.5,4.75) {$\cdots$};
    \node at (.75,3.5) {$\cdots$};
    \node at (2,3.5) {$0$};
    \node at (3,3.5) {$\color{Red}\mathbf{1}$}; 
    \node at (4,3.5) {$0$};
    \node at (5,3.5) {$\color{Red}\mathbf{a}$};
    \node at (6.5,3.5) {$\cdots$};
    \node at (.75,2.25) {$\cdots$};
    \node at (2,2.25) {$0$};
    \node at (3,2.25) {$0$}; 
    \node at (4,2.25) {$\color{Red}\overline{\mathbf{a}}$};
    \node at (5,2.25) {$0$};
    \node at (6.5,2.25) {$\cdots$};
    \node at (3.5,.5) {``\emph{successor of $(i,j)$}''};
\end{scope}
%%%%%
\begin{scope}[shift={(5.5,-5.5)},scale=.4]
\tikzstyle{every node}=[font=\normalsize,anchor=south]
    \node at (1.75,4.75) {$\cdots$};
    \node at (3,4.75) {$0$}; 
    \node at (4,4.75) {$0$};
    \node at (5.5,4.75) {$\cdots$};
    %\node at (.75,4.75) {$\cdots$};
    \node at (4,3.5) {$0$};
    \node at (3,3.5) {$\color{amethyst}\mathbf{1}$}; 
    \node at (5.5,3.5) {$\cdots$};
    \node at (.75,3.5) {$\cdots$};
    \node at (3,2.25) {$0$}; 
    \node at (2,3.5) {$0$};
    \node at (2,2.25) {$0$};
    \node at (4.5,2.25) {$\cdots$};
    \node at (.75,2.25) {$\cdots$};
    \node at (-.25,1) {$\cdots$};
    \node at (2,1) {$\color{amethyst}\overline{\mathbf{b}}$};
    \node at (1,1) {$\color{amethyst}\mathbf{b}$};
    \node at (3.5,1) {$\cdots$};
    \node at (3.5,-.75) {``\emph{co-successor of $(i,j)$}''};
\end{scope}
%%%
\begin{scope}
\node at (0,0) {
\begin{tabular}{cccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ \Bstrut
\\\hline
$x^{(0)}$ & 0 & 0 & 0 & 0 & {\bf\color{color1}1} & 0 & {\bf\color{color1}1} & 0 & 0 & 0 & 0 \\
$x^{(1)}$ & {\bf\color{color2}1} & 0 & {\bf\color{color2}1} & 0 & 0 & 0 & 0 & {\bf\color{color1}1} & 0 & {\bf\color{color1}1} & 0 \\
$x^{(2)}$ & 0 & 0 & 0 & {\bf\color{color2}1} & 0 & {\bf\color{color2}1} & 0 & 0 & 0 & 0 & {\bf\color{color1}1} \\
$x^{(3)}$ & 0 & {\bf\color{color1}1} & 0 & 0 & 0 & 0 & {\bf\color{color2}1} & 0 & {\bf\color{color2}1} & 0 & 0 \\
$x^{(4)}$ & 0 & 0 & {\bf\color{color1}1} & 0 & {\bf\color{color1}1} & 0 & 0 & 0 & 0 & {\bf\color{color2}1} & 0 \\
$x^{(5)}$ & {\bf\color{color2}1} & 0 & 0 & 0 & 0 & {\bf\color{color1}1} & 0 & {\bf\color{color1}1} & 0 & 0 & 0 \\
$x^{(6)}$ & 0 & {\bf\color{color2}1} & 0 & {\bf\color{color2}1} & 0 & 0 & 0 & 0 & {\bf\color{color1}1} & 0 & {\bf\color{color1}1} \\ \vspace{-0.05 in} \\ \hline \Tstrut
\end{tabular}};
\node at (0,-4.5) {
\begin{tabular}{cccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ \Bstrut
\\\hline
$x^{(0)}$ & 0 & 0 & 0 & 0 & {\bf\color{color5}1} & 0 & {\bf\color{color6}1} & 0 & 0 & 0 & 0 \\
$x^{(1)}$ & {\bf\color{color3}1} & 0 & {\bf\color{color4}1} & 0 & 0 & 0 & 0 & {\bf\color{color7}1} & 0 & {\bf\color{color8}1} & 0 \\
$x^{(2)}$ & 0 & 0 & 0 & {\bf\color{color5}1} & 0 & {\bf\color{color6}1} & 0 & 0 & 0 & 0 & {\bf\color{color3}1} \\
$x^{(3)}$ & 0 & {\bf\color{color4}1} & 0 & 0 & 0 & 0 & {\bf\color{color7}1} & 0 & {\bf\color{color8}1} & 0 & 0 \\
$x^{(4)}$ & 0 & 0 & {\bf\color{color5}1} & 0 & {\bf\color{color6}1} & 0 & 0 & 0 & 0 & {\bf\color{color3}1} & 0 \\
$x^{(5)}$ & {\bf\color{color4}1} & 0 & 0 & 0 & 0 & {\bf\color{color7}1} & 0 & {\bf\color{color8}1} & 0 & 0 & 0 \\
$x^{(6)}$ & 0 & {\bf\color{color5}1} & 0 & {\bf\color{color6}1} & 0 & 0 & 0 & 0 & {\bf\color{color3}1} & 0 & {\bf\color{color4}1} \\ \vspace{-0.05 in} \\  \hline \Tstrut
\end{tabular}};
\end{scope}
\end{tikzpicture}}
\caption{At left: a scroll consists of the seven rows $x^{(0)},\dots,x^{(6)}$, repeated indefinitely. This is shown twice, with different color schemes, to emphasize the snakes and co-snakes separately. There are two snakes and six co-snakes. At right: a visualization of the successor and co-successor functions; the $1$ in each figure is in position $(i,j)$.}\label{fig:example}
\end{figure}


It is elementary to check that for each live entry $(i,j)$ in the scroll, exactly one of the entries $(i,j+2)$ and $(i+1,j+1)$ is live, as is exactly one of the entries $(i+2,j-2)$ and $(i+2,j-1)$. These define canonical bijections on the live entries, that we call the \emph{successor} and \emph{co-successor}, respectively. These are illustrated in Figure~\ref{fig:example}, and the formal definition follows. 

\begin{defn}\label{def:successor-shadow}
Given a scroll $\cals$, the \dfn{successor} and  \dfn{co-successor} functions are the bijections
$s,c\colon \Live(\cals)\to\Live(\cals)$ that send $(i,j)$ to the unique element of
\[
\big\{(i,j+2),(i+1,j+1)\big\}\cap \Live(\cals)\quad\text{and}\quad
\big\{(i+2,j-2),(i+2,j-1)\big\}\cap\Live(\cals),
\]
respectively. If desired, we can view these as functions $s,c\colon \Live(\calx)\to\Live(\calx)$ of ticker tapes.
%The \dfn{co-successor} is the function $c\colon\Live(\cals)\to\Live(\cals)$, sending $(i,j)$ to the unique element of
%\[
%\big\{(i+2,j-2),(i+2,j-1)\big\}\cap\Live(\cals).
%\]
\end{defn}

The successor and co-successor define equivalence classes on the live entries called \dfn{snakes} and \dfn{co-snakes}, respectively, and denoted (in scroll notation)
\[
\Snake(i,j)=\big\{s^k(i,j)\mid k\in\zz\big\},\qquad\qquad
\Cosnake(i,j)=\big\{c^k(i,j)\mid k\in\zz\big\}.
\]
These are highlighted by color in Figure~\ref{fig:example}. 
It is elementary to show that the successor and co-successor functions commute. Therefore, they define an abelian group called the \dfn{snake group}, denoted $G(\cals)$. This group acts simply transitively on the live entries. Throughout this paper, we will assume that a scroll $\cals$ has $\alpha$ snakes and $\beta$ co-snakes.

\begin{thm}
The set $\Live(\cals)$ is a torsor for the snake group, which has presentation
\[
G(\cals)=\big\<s,c\mid sc=cs,\;s^\beta=c^\alpha\big\>.
\]
\end{thm}


%Note that, unlike the game Pac-Man (which is also on a cylinder), when we get to the end of a row, we move down to the next row rather than returning to the beginning of the same row. 
%\anote{I'm not sure the Pac-Man reference adds much now that we have identified that it is ``not like pac man''. It also feels a bit awkward that we mention ``like reading a book'' twice so close to each other.}

%At times, it is convenient to ``lift up'' the cylinder to its universal cover and work with points in the plane. Here, we think of a scroll as a map $\cals\colon\zz\times\zz_n\to\ff_2$, which naturally lifts to the \dfn{universal scroll} $\widehat\cals\colon\zz\times\zz\to\ff_2$, making the following diagram commute:
%\begin{equation}\label{eqn:cd-universal}
%\xymatrix{\zz\times\zz_{\color{white}n}\ar[d]_q\ar@{-->}[rd]^{\widehat{\cals}} & \\ \zz\times\zz_n\ar[r]^\cals & \ff_2}\hspace{20mm}
%\xymatrix{(i+k,j+kn)\ar@{|->}[d]_q\ar@{|-->}[rd]^{\widehat{\cals}} & \\ (i,j)\ar@{|->}[r]^\cals & X_{i,j}}
%\end{equation}

It follows that there is a bijective correspondence between snakes and cosets of $\<s\>$, and between co-snakes and cosets of $\<c\>$. That is,
\[
\alpha=[G(\cals):\<s\>]\qquad\text{and}\qquad
\beta=[G(\cals):\<c\>]
\]
are the smallest positive integers for which $s^\beta\in\<c\>$ and $c^\alpha=\<s\>$. 

Since snakes are cosets, they have the same algebraic structure in a Cayley diagram. The live entries in a (co-)snake are also embedded in the scroll via the (co-)successor function, but it is not guaranteed that these necessarily have the same ``shape''. However, it turns out that this is indeed the case. To establish this, we need to formalize the notion of the ``shape'' of a snake.

From a fixed $(i,j)\in\Live(\cals)$, consider the next live entry reached when applying the successor or co-successor function. There are two cases for each, as was shown back in Figure~\ref{fig:example}. We will annotate a step of $s(i,j)=(i+1,j+1)$ by ``$D$'' for ``diagonal'' and a step of $s(i,j)=(i,j+2)$ by ``$2$.'' Similarly, we will annotate a step of $c(i,j)=(i+2,j-1)$ by ``$S$'' for ``short'', and $c(i,j)=(i+2,j-2)$ by ``$L$'' for ``long.'' Allowing inverses and concatenations, it is straightforward to annotate any path in the Cayley diagram of $G(\cals)$. We will call this the \dfn{shape} of a path. 
%If a path has length $1$, then we will refer to it as a \dfn{step}, and its shape as its \dfn{type}. For example, $s(i,j)$ is either a step of type $D$ or a step of type $2$. In this context, we will refer to the number ``$2$'' as a ``letter'' for convenience.

The elements of the cyclic quotient group $G(\cals)/\<c\>\cong\zz_\beta$ correspond to the co-snakes in $\cals$. Thus, starting at any live entry and iterating the successor function $\beta$ times defines an ordering of the co-snakes. The shape of this path (a length-$\beta$ word over $\{D,2\}$), up to cyclic shift, is independent of the starting live entry. We will call any such sequence a \dfn{slither} of $\Snake(i,j)$. For ease of notation, we can use exponents to write a slither. For example, $(D2)^3=D2D2D2$ is a slither of the snakes in Figure~\ref{fig:example}. Since any cyclic shift of a slither is also a slither, when we speak of ``the slither,'' we mean up to cyclic shift. 

There is a similar construction for co-snakes. The elements of the cyclic quotient group $G(\cals)/\<s\>\cong\zz_\alpha$ are the snakes in $\cals$. Starting at any live entry and iterating the co-successor function $\alpha$ times defines an ordering of the snakes. The shape of this path (a length-$\alpha$ sequence over $\{S,L\}$), up to cyclic shift, is independent of the starting live entry. We will call any such sequence a \dfn{co-slither} of $\Cosnake(i,j)$. The co-slithers of the co-snakes in  Figure~\ref{fig:example} are all $S^2=SS$. 
%Once again, when we speak of ``the co-slither,'' we mean up to cyclic shift. 

\begin{prop}\label{prop:same-slither}
In any scroll, all (co-)snakes have the same (co-)slither.
%and all co-snakes have the same co-slither. 
\end{prop} 

By Proposition~\ref{prop:same-slither}, we can define the slither and co-slither of a scroll (or ticker tape), which we will denote by $\Slither(\cals)$ and $\Coslither(\cals)$, respectively. Our next definition is meant to capture the exponent that we used when writing $(D2)^3$ and $S^2$ above. 

\begin{defn}\label{def:exponent}
The \dfn{degree} of a scroll, denoted $\deg(\cals)$, is the length of the co-slither of any co-snake divided by the period of the co-slither as a cyclic word. The \dfn{co-degree}, denoted $\codeg(\cals)$, is the length of the slither of any snake divided by the period of the slither as a cyclic word.
\end{defn}

The scroll from our initial example Figure~\ref{fig:motivating-example} has degree and co-degree $1$, because $\Slither(\cals)=22DD2D$ and $\Coslither(\cals)=SL$. In contrast, the scroll in our running example from Figure~\ref{fig:example} has degree $2$ because its co-slither is $S^2$, and co-degree $3$ because its slither is $(D2)^3$. Note that $\deg(\cals)$ must divide $\alpha$, the number of snakes, and $\codeg(\cals)$ must divide $\beta$, the number of co-snakes. 

%%=====================================================
\section{Orbit tables and ouroboroi}

Thus far, we have viewed the dynamics generated by toggling independent sets using infinite scrolls and ticker tapes. However, sometimes it is convenient to restrict our attention to a repeating sequence of rows and identify the top and bottom by a quotient map, thereby allowing snakes and co-snakes to ``wrap around'' from bottom-to-top. Inspired by the ancient symbol of a snake swallowing its tail, we will call such a finite circular snake an \emph{ouroboros}. A \emph{co-ouroboros} is defined similarly. 

\colorlet{color1}{Red}
\colorlet{color2}{Red}
\colorlet{color3}{orange}
\colorlet{color4}{Green}
\colorlet{color5}{orange}
\colorlet{color6}{Green}
\colorlet{color7}{orange}
\colorlet{color8}{Green}
%%
\begin{figure}[!ht]
\centering
\scalebox{.88}{
\begin{tikzpicture}
\begin{scope}
\setlength{\tabcolsep}{2.5pt}
\renewcommand{\arraystretch}{.4}
%\node at (-8.5,-1.85){\includegraphics[width=.45\textwidth]{ouroboros.jpeg}};
\node at (0,0) {
\begin{tabular}{cccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ \Bstrut
\\\hline
$x^{(0)}$ & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 \\
$x^{(1)}$ & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 \\
$x^{(2)}$ & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} \\
$x^{(3)}$ & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 \\
$x^{(4)}$ & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 \\
$x^{(5)}$ & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 \\
$x^{(6)}$ & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1}\Bstrut \\ \hline \Tstrut
\end{tabular}};
\node at (8.75,0) {
\begin{tabular}{ccccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ & \Bstrut
\\\hline
$x^{(0)}$ & \0 & \0 & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 \\
$x^{(1)}$ & {\bf\color{color3}1} & \0 & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 \\
$x^{(2)}$ & \0 & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} \\
$x^{(3)}$ & \0 & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 & \0 \\
$x^{(4)}$ & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} & \0 \\
$x^{(5)}$ & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 & \0 & \0 \\
$x^{(6)}$ & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} & \0 & {\bf\color{color4}1}\Bstrut \\ \hline \Tstrut
\end{tabular}};
\end{scope}
\end{tikzpicture}}
\caption{The fundamental orbit table $\calt_1$ from our running example in Figure~\ref{fig:example}. When we allow snakes and co-snakes to wrap from bottom-to-top, the two snakes merge into one ouroboros  with slither $\overline{D}\,\overline{2}$ (left), and the six co-snakes merge into two co-ouroboroi, with co-slither $\overline{S}$ (right).}\label{fig:ouroboros}
\end{figure}



%\begin{figure}[!ht]
%\includegraphics[width=.4\textwidth]{ouroboros.jpeg};
%\caption{A drawing of an ouroboros from a 1478 book on medieval alchemy, by Theodoros Pelecanos. Image from Wikipedia.}
%\label{fig:ouroboros}
%\end{figure}

Let $x\in\ff_2^n$, and consider a sequence $x=x^{(0)},\dots,x^{(m-1)},x^{(m)}=x$. Let $k$ be the \dfn{fundamental period}, which we define to be the minimum number of rows before the scroll repeats. The \dfn{frequency} is $\omega:= m/k$. Define the \dfn{$\omega$-fold orbit table} of $x$, denoted $\calt_\omega=\Table_\omega(x)$, to be the $m\times n$ table with top row $x^{(0)}$ and bottom row $x^{(m-1)}$.  We will refer to the $1$-fold orbit table as the \dfn{fundamental orbit table}. Returning to our running example, 
the fundamental orbit table appears in Figure~\ref{fig:ouroboros}, and the 2-fold orbit table in Figure~\ref{fig:2-fold-table}. These are both shown twice, with the live entries colored to highlight the (co-)ouroboroi, which will be formalized soon. 

\colorlet{color1}{Red}
\colorlet{color2}{Blue}
\colorlet{color3}{orange}
\colorlet{color4}{Green}
\colorlet{color5}{orange}
\colorlet{color6}{Green}
\colorlet{color7}{orange}
\colorlet{color8}{Green}
%%
\begin{figure}[!ht]
\centering
\scalebox{.88}{
\begin{tikzpicture}[scale=.8]
\tikzstyle{every node}=[font=\small,anchor=south]
\begin{scope}
\setlength{\tabcolsep}{2.5pt}
\renewcommand{\arraystretch}{.4}
\node at (0,0) {
\begin{tabular}{cccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ \Bstrut
\\\hline
$x^{(0)}$ & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 \\
$x^{(1)}$ & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 \\
$x^{(2)}$ & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} \\
$x^{(3)}$ & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 \\
$x^{(4)}$ & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 \\
$x^{(5)}$ & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 \\
$x^{(6)}$ & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} \\ 
$x^{(7)}$ & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 \\
$x^{(8)}$ & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 \\
$x^{(9)}$ & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} \\
$x^{(10)}$ & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 \\
$x^{(11)}$ & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 & \0 & {\bf\color{color1}1} & \0 \\
$x^{(12)}$ & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1} & \0 & \0 & \0 \\
$x^{(13)}$ & \0 & {\bf\color{color1}1} & \0 & {\bf\color{color1}1} & \0 & \0 & \0 & \0 & {\bf\color{color2}1} & \0 & {\bf\color{color2}1}\Bstrut \\ \hline \Tstrut
\end{tabular}};
\node at (10,0) {
\begin{tabular}{ccccccccccccc}
$x$ & $v_1$ & $v_2$ & $v_3$ & $v_4$ & $v_5$ & $v_6$ &
$v_7$ & $v_8$ & $v_9$ & $v_{1\!0}$ & $v_{1\!1}$ & \Bstrut
\\\hline
$x^{(0)}$ & \0 & \0 & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 \\
$x^{(1)}$ & {\bf\color{color3}1} & \0 & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 \\
$x^{(2)}$ & \0 & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} \\
$x^{(3)}$ & \0 & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 & \0 \\
$x^{(4)}$ & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} & \0 \\
$x^{(5)}$ & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 & \0 & \0 \\
$x^{(6)}$ & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} & \0 & {\bf\color{color4}1} \\
$x^{(7)}$ & \0 & \0 & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 \\
$x^{(8)}$ & {\bf\color{color3}1} & \0 & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 \\
$x^{(9)}$ & \0 & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} \\
$x^{(10)}$ & \0 & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 & \0 \\
$x^{(11)}$ & \0 & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} & \0 \\
$x^{(12)}$ & {\bf\color{color4}1} & \0 & \0 & \0 & \0 & {\bf\color{color7}1} & \0 & {\bf\color{color8}1} & \0 & \0 & \0 \\
$x^{(13)}$ & \0 & {\bf\color{color5}1} & \0 & {\bf\color{color6}1} & \0 & \0 & \0 & \0 & {\bf\color{color3}1} & \0 & {\bf\color{color4}1}\Bstrut \\ \hline \Tstrut
\end{tabular}};
\end{scope}
\end{tikzpicture}}
\caption{In the $2$-fold orbit table $\calt_2$ from our running example in Figure~\ref{fig:example}, there are two ouroboroi with slither $\overline{D}\,\overline{2}$ and two co-ouroboroi with co-slither $\overline{S}^2$.}\label{fig:2-fold-table}
\end{figure}


%\anote{should be length $\omega m n$ sequence shouldn't it? (in the next paragraph)}
%\cnote{[Colin: No, I think it's $mn$. Since $m=\omega k$. But should we get rid of the $\pi$'s in this notation since we now only consider the identity update order?]}
At times it is useful to work with a finite version of the ticker tape. If $m=\omega k$ as above, then define the \dfn{$\omega$-fold orbit vector} to be the length-$mn$ subsequence of the ticker tape that has $x$ as an initial sequence---the result of reading the $\omega$-fold orbit table across each column, downward row-by-row. We denote this as
\begin{equation}\label{eqn:tape}
\calv_\omega=\Vector_\omega(x)=\big(X_{0,1},\dots,X_{0,n},X_{1,1},\dots,X_{1,n},\dots,X_{m-1,1},\dots,X_{m-1,n}\big)\in\ff_2^{nm}.
\end{equation}
If $\calt$ is an orbit table and $\calv$ an orbit vector, we define their live entries as the sets
\[
\Live(\calt)=\big\{(i,j)\in\zz_m\times\zz_n\mid X_{i,j}=1\big\},\qquad
\Live(\calv)=\big\{k\in\zz_{mn}\mid X_k=1\big\}.
\]
Though it makes no difference either way, we will continue with the convention of numbering the columns $1,\dots,n$ and the rows $0,\dots, m-1$. As such, we will harmlessly take $\zz_n=\{1,\dots,n\}$ and $\zz_m=\{0,\dots,m-1\}$ in the orbit table and $\zz_{mn}=\{1,\dots,mn\}$ in the orbit vector.

%It will typically be more convenient to work with orbit tables rather than orbit vectors. 

The live entries in an orbit table are simply the images of the live entries in the corresponding scroll under the natural quotient map $p_\omega\colon\Live(\cals)\to\Live(\calt_\omega)$ that reduces the first coordinate of each entry modulo $m$. Under this map, the successor and co-successor functions descend to bijections on $\Live(\calt_\omega)$ that we call the \dfn{$\omega$-successor function} $\overline{s}_\omega$ and \dfn{$\omega$-co-successor function} $\overline{c}_\omega$. The relationship between the successor and  $\omega$-counterparts is illustrated by the following commutative diagrams. 
\[
\xymatrix{
\Live(\cals)\ar[d]_{p_\omega}\ar[r]^s & \Live(\cals)\ar[d]^{p_\omega} \\
\Live(\calt_\omega)\ar[r]^{\overline{s}_\omega} & \Live(\calt_\omega)}\hspace{15mm}
\xymatrix{
(i+km,j)\ar@{|->}[d]_{p_\omega}\ar@{|->}^s[r] & s(i+km,j) \ar^{p_\omega}@{|->}[d] \\
(i,j)\ar^{\overline{s}_\omega}@{|->}[r] & \overline{s}_\omega(i,j)}
\]
Naturally, there is an analogous diagram relating $c$ and $\overline{c}_\omega$. The functions $\overline{s}_\omega$ and $\overline{c}_\omega$ generate a finite abelian group $G(\calt_\omega):=\left<\overline{s}_\omega,\overline{c}_\omega\right>$ that we call the \dfn{ouroboros group} of $\calt_\omega$, or the \dfn{$\omega$-fold ouroboros group} of $\cals$. Since $p_\omega$ is a topological covering map, there is an induced homomorphism $p_\omega^*\colon G(\cals)\to G(\calt_\omega)$ sending $s\mapsto\overline{s}_\omega$ and $c\mapsto\overline{c}_\omega$. 
The ouroboros group is the quotient
\[
G(\calt_\omega)\cong G(\cals)/\ker p_\omega^*,
\]
and it acts simply transitively on $\Live(\cals)/\ker p_\omega$, which can be canonically identified with $\Live(\calt_\omega)$. We get a bijective correspondence between the orbits under $\overline{s}_\omega$ and $\overline{c}_\omega$ and the cosets of $\left<\overline{s}_\omega\right>$ and $\left<\overline{c}_\omega\right>$. These are  the images of the snakes and the co-snakes under the quotient map $p_\omega$.
%and so we will call them \emph{ouroboroi} and \emph{co-ouroboroi}, respectively. 

\begin{defn}
Given a live entry $(i,j)$ in an orbit table $\calt_\omega$, the \dfn{ouroboros} and \dfn{co-ouroboros} containing it are the sets 
\[
\Ouroboros_\omega(i,j)=\big\{\overline{s}^{k}_\omega(i,j)\mid k\in\zz\big\},\qquad\qquad 
\Coouroboros_\omega(i,j)=\big\{\overline{c}^{k}_\omega(i,j)\mid k\in\zz\big\}.
\]
\end{defn} 

Throughout the rest of this paper, we will continue to assume that a scroll $\cals$ has $\alpha$ snakes and $\beta$ co-snakes. If $\calt=\calt_\omega$ is the $\omega$-fold orbit table, then we will say that it has $\overline{\alpha}_\omega$ ouroboroi and $\overline{\beta}_\omega$ co-ouroboroi. If $\omega$ is clear from the context, which it usually will be, then we will typically drop it as a subscript. Similarly, we will often write $\overline{s}$ and $\overline{c}$ rather than $\overline{s}_\omega$ and $\overline{c}_\omega$, because there should be no ambiguity about $\omega$.
%That said, the \emph{only} time that we will omit the subscripts from the map $p$ is when $\omega=1$. In other words, $\deg(p^*)$ and $\codeg(p^*)$ will always refer to the fundamental (co-)ouroboros degree.
%when we speak of these functions.

\begin{thm}\label{thm:ouroboros-torsor}
%For any orbit table $\calt$, 
The set $\Live(\calt)$ is a torsor of the ouroboros group, which has presentation
\[
G(\calt)=\left<\overline{s},\overline{c}\;\left|\; \overline{s}\,\overline{c}=\overline{c}\,\overline{s},\; \overline{s}^\beta=\overline{c}^\alpha,\;\overline{s}^{\,\lambda/\overline{\alpha}}=\overline{c}^{\,\lambda/\overline{\beta}}=1\right.\right>
\cong \zz_{\overline\alpha}\times\zz_{\lambda/\overline\alpha}
\cong \zz_{\overline\beta}\times\zz_{\lambda/\overline\beta},
\]
where $\lambda$ is the number of live entries of the orbit table $\calt$.
\end{thm}

It follows that for each $\omega$, there are bijective correspondences between ouroboroi and cosets of $\<\overline{s}\>$, and between co-ouroboroi and cosets of $\<\overline{c}\>$. Since $G(\calt)=\<\overline{s},\overline{c}\>\cong G(\cals)/\ker p_\omega^*$ is a finite abelian group of order $\lambda$, the first two relations hold, and
\begin{equation}\label{eqn:ouroboroi-cosets}
\overline{\alpha}=[G(\calt):\<\overline{s}\>]=\lambda/\overline\beta,\qquad\text{and}\qquad
\overline{\beta}=[G(\calt):\<\overline{c}\>]=\lambda/\overline\alpha.
\end{equation}
In other words, $G(\calt)/\<\overline{s}\>\cong\zz_{\overline\alpha}$ and  $G(\calt)/\<\overline{c}\>\cong\zz_{\overline\beta}$. 

\begin{defn}
The \dfn{(co-)ouroboros degree} of an orbit table $\calt_\omega$ is the number of (co-)snakes in the $p_\omega$-preimage of each (co-)ouroboros. We denote these as 
\[
\deg(p_\omega^*):=\frac{[G(\cals):\<s\>]}{[G(\calt_\omega):\<\overline{s}_\omega\>]}=\alpha/\overline\alpha_\omega
,\qquad\quad
\codeg(p_\omega^*):=\frac{[G(\cals):\<c\>]}{[G(\calt_\omega):\<\overline{c}_\omega\>]}=\beta/\overline\beta_\omega.
\]
The case when $\omega=1$ is called the \dfn{fundamental (co-)ouroboros degree}.
\end{defn}

Returning to our running example, in the fundamental orbit table (\textit{i.e.}, $\omega=1$) the $\alpha=2$ snakes in $\cals$ merge into $\overline\alpha_1=1$ ouroboros, and the $\beta=6$ co-snakes merge into $\overline\beta_1=2$ co-ouroboroi. Thus, the fundamental ouroboros degree is $\deg(p_1^*)=2/1=2$, and the 
fundamental co-ouroboros degree is $\codeg(p_1^*)=6/2=3$. In contrast, the $2$-fold orbit table has $\overline\alpha_2=2$ ouroboroi and $\overline\beta_2=2$ co-ouroboroi. Its ouroboros degree is $\deg(p_2^*)=2/2=1$, and its co-ouroboros degree is $\codeg(p_2^*)=6/2=3$. 


%Unlike the previous notation, when we omit the subscript $\omega$ when it is either clear from the context or irrelevant, 

%Our choice of terminology and notation is motivated by the fact that the map $p_\omega$ is a topological covering map from the Cayley diagram of $G(\cals)$ to that of $G(\calt)$. Moreover, $\deg(p_\omega^*)$ is the degree of the cover restricted to a snake, and $\codeg(p_\omega^*)$ is the degree of the cover restricted to a co-snake. 
%
%\mm{I'm not confident that I said this correctly.}







%but they become shorter by a factor of $\deg_\omega(p^*)$ and $\codeg_\omega(p^*)$, respectively. 

Slithers and co-slithers naturally descend to orbit tables via the canonical quotient map $p_\omega\colon\Live(\cals)\to\Live(\calt_\omega)$. 
The slither of $\cals$ is a length-$\beta$ sequence of $D$s and $2$s, and it defines a cyclic ordering $\<c\>,s\<c\>,\dots,s^{\beta-1}\<c\>$ of co-snakes. If we apply the quotient map $p_\omega^*\colon G(\cals)\to G(\calt_\omega)$, we get a cyclic ordering of the $\overline{\beta}_\omega$ co-ouroboroi. Each co-ouroboros appears in the sequence $\<\overline{c}_\omega\>,\overline{s}_\omega\<\overline{c}_\omega\>,\dots,\overline{s}_\omega^{\beta-1}\<\overline{c}_\omega\>$ exactly $\codeg(p_\omega^*)=\beta/\overline{\beta}_\omega$ times, and this must be a divisor of $\codeg(\cals)$ (the exponent in the slither). Define the \dfn{slither} of $\calt_\omega$, or \dfn{$\omega$-slither} of $\cals$, denoted $\Slither(\calt_\omega)$, to be any length-$\overline{\beta}$ subsequence of a slither of $\cals$. 

Everything we just said above has a natural analogue for co-slithers. That is, a co-slither of $\cals$ is a length-$\alpha$ sequence of $S$s and $L$s that defines a cyclic ordering $\<s\>,c\<s\>,\dots$, $c^{\alpha-1}\<s\>$ of snakes. Via the quotient map $p_\omega^*\colon G(\cals)\to G(\calt_\omega)$, we get a cyclic ordering of the $\overline{\alpha}_\omega$ ouroboroi. Each ouroboros appears in the sequence $\<\overline{s}\>,\overline{c}\<\overline{s}\>,\dots,\overline{c}^{\alpha-1}\<\overline{s}\>$ exactly $\deg(p_\omega^*)=\alpha/\overline{\alpha}$ times, and this must be a divisor of the degree of $\cals$ (the exponent that appears in the co-slither). We define the \dfn{co-slither} of $\calt_\omega$, or the \dfn{$\omega$-co-slither} of $\cals$, as any length-$\overline{\alpha}$ subsequence of a co-slither of $\cals$, and we denote this as $\Coslither(\calt_\omega)$. The preceding two paragraphs have established the following. 

\begin{lem}\label{lem:slither(T)}
For any scroll $\cals$, we have
\[
\big(\Slither(\calt_\omega)\big)^{\codeg(p_\omega^*)}=\Slither(\cals)\qquad\text{\emph{and}}\qquad
\big(\Coslither(\calt_\omega)\big)^{\deg(p_\omega^*)}=\Coslither(\cals).
\]
\end{lem}

We will refer to the (co-)slither of the fundamental orbit table (\textit{i.e.}, $\omega=1$) as the \dfn{fundamental (co-)slither}. To emphasize that we are taking the slither in an orbit table rather than in the scroll, we will sometimes write $\overline{2}$ and $\overline{D}$ rather than $2$ and $D$, and similarly use $\overline{S}$ and $\overline{T}$ in co-slithers. 

Return to our running example, the length of the fundamental slither $\overline{D}\,\overline{2}$ is  $\overline\beta_1=\beta/\codeg(p_1^*)$, the number of co-ouroboroi, and the length of the fundamental co-slither $\overline{S}$ is $\overline\alpha_1=\alpha/\deg(p_1^*)$, the number of ouroboroi. As guaranteed by Lemma~\ref{lem:slither(T)}, the \mbox{(co-)slithers} of $\cals$ and $\calt$ are related by
\[
(D2)^{\codeg(p_1^*)}=(D2)^3\qquad\text{and}\qquad
S^{\deg(p_1^*)}=S^2.
\]

The $2$-fold orbit table of our running example, shown in Figure~\ref{fig:2-fold-table}, has two ouroboroi with slither $\overline{D}\,\overline{2}$, and two co-ouroboroi with co-slither $\overline{S}^2$. The ouroboros degree is thus $\deg(p_2^*)=2/2=1$, and the co-ouroboros degree is $\codeg(p_2^*)=6/2=3$.
As predicted by Lemma~\ref{lem:slither(T)}, we have
\[
(D2)^{\codeg(p_2^*)}=(D2)^3\qquad\text{and}\qquad
(S^2)^{\deg(p_2^*)}=S^2.
\]


%%================================================
\section{Combinatorial properties of the dynamics} 
%%================================================

%In this section, we will summarize our results relating combinatorial properties of the dynamics. 

Recall from the introduction that there are several notions of ``period'': the period of a scroll is the minimal number of rows before it repeats, and the period of a ticker tape is the length of a minimal invariant shift. 

\begin{defn}\label{def:fund periods}
The \dfn{fundamental period} of a scroll $\cals=(X_{i,j})$, denoted $T(\cals)$, is the smallest $k>0$ such that $X_{i+k,j}=X_{i,j}$ for all $i,j$. The \dfn{fundamental period} of a ticker tape $\calx=(X_k)$, denoted $T(\calx)$, is the smallest $\ell>0$ such that $X_{k+\ell}=X_k$ for all $k$.
\end{defn}

It is clear that $T(\calx)$ divides $nT(\cals)$, which is the length of the fundamental orbit vector.
In our running example, the fundamental orbit vector has length $nT(\cals)=11\cdot 7=77$, but the period of the ticker tape is just $T(\calx)=7$ because the ticker tape is generated by the subsequence $1010000$. In this section, we will derive a formula relating these two periods.



Consider the equivalence relation on $\Live(\cals)$ defined by the intersection of snakes and co-snakes. In other words, the equivalence classes, which we will call \dfn{fibers}, %{\bf \color{red}(or ``segments?'')}
\[
\<s\>\cap\<c\>=\<s^\beta\>=\<c^\alpha\>\leq G(\cals).
\]
In both notations, we will denote the fiber containing a live entry by 
\[
\Fiber(i,j)=\Snake(i,j)\cap\Cosnake(i,j),\qquad\Fiber(k)=\Snake(k)\cap\Cosnake(k).
\]
Since the fibers are the orbits under the action of a cyclic group, there is some integer $\sigma$ such that two live entries in $\calx$ are in the same fiber if and only if they differ by a multiple of $\sigma$ in the ticker tape.

\begin{defn}
The \dfn{scale} of a ticker tape $\calx$ (or scroll $\cals$) is the minimal distance $\sigma>0$ between any two live entries in the same fiber. That is, in ticker tape notation, for any $k\in\zz$,
\[
\sigma=\Scale(\cals)=\Scale(\calx)=s^\beta(k)-k=c^\alpha(k)-k.
\]
\end{defn}

From some fixed $k\in\Live(\calx)$, we can compute the scale in two ways: (i) by applying the successor function $\beta$ times, or (ii) applying the shadow function $\alpha$ times. We can compute the scale by summing the number of positions we increase at each step, and this is useful for deriving elementary properties, some of which appear below.

Henceforth, given a scroll $\cals$ with $\alpha$ snakes and $\beta$ co-snakes, let $\beta_T$ and $\beta_D$ denote the number of instances of $2$ and $D$ in $\Slither(\cals)$, respectively. Let $\alpha_S$ and $\alpha_L$ denote the number of instances of $S$ and $L$ in $\Coslither(\cals)$, respectively. Clearly, the lengths of the slither and co-slither are
\[
\big|\Slither(\cals)\big|=\beta=\beta_T+\beta_D
\qquad\text{and}\qquad
\big|\Coslither(\cals)\big|=\alpha=\alpha_S+\alpha_L.
\]
Given an orbit table $\calt_\omega$, let $\overline\beta_{\omega,T}$ and $\overline\beta_{\omega,D}$ denote the number of instances of $2$ and $D$ in $\Slither(\calt_\omega)$, respectively. Similarly, let $\overline\alpha_{\omega,S}$ and $\overline\alpha_{\omega,L}$ denote the number of instances of $S$ and $L$, respectively. The length
$\overline\beta_\omega$ (resp.\ $\overline\alpha_\omega$) of the $\omega$-slither (resp.\ $\omega$-coslither) is
%\[
%\big|\Slither(\calt_\omega)\big|:=\overline\beta_\omega=\overline\beta_{\omega,T}+\overline\beta_{\omega,D}=\frac{\beta}{\codeg(p_\omega^*)},\qquad
%\big|\Coslither(\calt_\omega)\big|:=\overline\alpha_\omega=\overline\alpha_{\omega,S}+\overline\alpha_{\omega,L}=\frac{\alpha}{\deg(p_\omega^*)}.
%\]
\[
\big|\Slither(\calt_\omega)\big|=\overline\beta_{\omega,T}+\overline\beta_{\omega,D}=\frac{\beta}{\codeg(p_\omega^*)},\quad
\big|\Coslither(\calt_\omega)\big|=\overline\alpha_{\omega,S}+\overline\alpha_{\omega,L}=\frac{\alpha}{\deg(p_\omega^*)}.
\]

\begin{lem}\label{lem:scale}
The scale of a ticker tape is
$
\sigma=2\beta_T+(n+1)\beta_D=(2n-1)\alpha_S+(2n-2)\alpha_L. 
$
\end{lem}


%\begin{lemma}\label{lem:scale}
%The scale of a ticker tape (or scroll) is
%\begin{align*}
%\sigma&=2(\text{\#2s in $\Slither(\cals)$})+
%(n+1)(\text{\#Ds in $\Slither(\cals)$}) \\
%&=(2n-1)(\text{\#S's in $\Coslither(\cals)$})+
%(2n-2)(\text{\#L's in $\Coslither(\cals)$}).
%\end{align*}
%\end{lemma}

%\begin{proof}
%In ticker tape notation, each $D$ increases the position by $n+1$, and each $2$ increases the position by $2$. Similarly, each $S$ increases the position by $2n-1$, and each $L$ by $2n-2$. 
%\end{proof}

Lemma~\ref{lem:scale} has several seemingly unrelated consequences. The first one involves a property that was pointed out in the introduction: that the column sums, as a cyclic vector, has odd period. 

\begin{cor}
If $n$ is even, then $\Scale(\cals)$ is odd. It follows that the sum vector of a scroll, and hence of any orbit table, has odd cyclic period.
\end{cor}

Lemma~\ref{lem:scale} also implies that the fundamental ouroboros and co-ouroboros degrees are relatively prime. Using this, along with the facts that $\deg(p_\omega^*)$ divides $\deg(p_1^*)$ and $\codeg(p_\omega^*)$ divides $\codeg(p_1^*)$, we can make a stronger statement.

\begin{prop}\label{prop:co-prime}
For any $\omega\geq 1$, we have
$
\gcd\big(\deg(p_\omega^*),\codeg(p_\omega^*)\big)=1.
$
\end{prop}

%Lemma~\ref{lem:co-prime} 

From here, we can characterize the number of ouroboroi and co-ouroboroi in the $\omega$-fold orbit table in terms of the number of them in the fundamental orbit table. 

\begin{prop}\label{prop:ouroboroi}
Suppose a scroll $\cals$ has $\alpha$ snakes and $\beta$ co-snakes and that its fundamental orbit table has $\overline\alpha$ ouroboroi and $\overline\beta$ co-ouroboroi. For $\omega>1$, the numbers $\overline\alpha_\omega$ 
 and $\overline\beta_\omega$ of ouroboroi and co-ouroboroi in its $\omega$-fold orbit table satisfy
\[
\overline\alpha_\omega=\overline\alpha\cdot\gcd(\deg(p_1^*),\omega)\qquad\text{and}\qquad
\overline\beta_\omega=\overline\beta\cdot\gcd(\codeg(p_1^*),\omega).
\]
\end{prop}

Putting together the prior results yields a relationship between the periods of the scroll and ticker tape, and their fundamental degree, co-degree, and scale.

\begin{thm}\label{thm:ttperiod}
The periods of the ticker tape $\calx$ and scroll $\cals$ are
\[
T(\calx)=\frac{\Scale(\calx)}{\deg(p_1^*)\codeg(p_1^*)},\qquad
T(\cals)=\frac{\Scale(\calx)}{\deg(p_1^*)\codeg(p_1^*)\gcd(T(\calx),n)},
\]
and thus are related by $T(\calx)=\gcd(T(\calx),n)\cdot T(\cals)$.
\end{thm}

A natural next question to ask is what scrolls and/or ticker tapes are possible for a given $n$, and how many are there. Suppose the slither has exactly $a$ instances of $2$, and its co-slither has exactly $b$ instances of $S$ and exactly $c$ instances of $L$. This forces the slither to have exactly $2(b+c)-1$ instances of $D$, and these quantities must satisfy
\begin{equation}\label{eqn:2a+3b+4c=n+1}
2a+3b+4c=n+1. 
\end{equation}
This is a straightforward necessary condition governing the slithers and co-slithers that can exist in a scroll for a given $n$. However, the next theorem ensures that it is also sufficient. In particular, \emph{any} solution to Equation~\eqref{eqn:2a+3b+4c=n+1} with $a,b,c \geq 0$ and $b+c > 0$ gives a set of potential slithers and co-slithers that only differ by rearrangement,\footnote{Note that if $b = c = 0$, our co-slither would be empty, which is impossible.} and every one of these slither and co-slither combinations corresponds to a valid ticker tape. 

\begin{thm}\label{thm:2a+3b+4c=n+1}
For a fixed $n$, we can construct all orbit tables that begin with a live entry through the following procedure:
\begin{enumerate}
\item Take a solution to the equation
$2a+3b+4c=n+1$, with $a,b,c\in\zz_{\geq 0}$, $b+c>0$.
\item Construct the slither by choosing any sequence of $2(b+c)-1$ instances of $D$ and $a$ instances of $2$. 
\item Construct the co-slither by choosing any sequence of $b$ instances of $S$ and $c$ instances of $L$.
\end{enumerate}
Different solutions correspond to distinct ticker tapes, up to cyclic shift of the (co-)slither. 
\end{thm}

It is important to note that though every scroll determines a unique ticker tape, and vice-versa, two ticker tapes that differ by a shift can lead to different scrolls. However, this is an artifact of that representation. Intuitively, Theorem~\ref{thm:2a+3b+4c=n+1} is a characterization of the different possible dynamics that can arise by toggling independent sets in $\cali_n$.

%%=====================================================
\section{Concluding remarks}

The original problem posed in this paper arose as a natural next step of the second author's work on toggling independent sets over a path graph~\cite{joseph2018toggling}. The torsor structure came as a surprise, and it led us down a much more interesting mathematical road than we had expected. It all works because of the commuting (co-)successor bijections that happen to act simply transitively on the live entries, and it opens up a slew of questions. This can all be framed in terms of asynchronous cellular automata~\cite{david2021toggling}, which leads to new  interesting questions in that field, such as exploring these ideas using other elementary cellular automata rules. In another direction, in ongoing work, we have found other similar torsor structures from toggling, such as over different graphs and using different toggle actions. This suggests that some of the results in this paper are special cases of an unexplored more general framework, relating algebra and topology to combinatorial dynamics in new ways. 

%%==========================
%\section{Concluding remarks}
%%==========================




%Here is a citation~\cite{greenwade93} with URL. Here is another citation~\cite{MR4}, which is the earliest-numbered Math Review with a functioning DOI: MR0000004. Finally, a reference to equation~\eqref{eqn:eq1}. And a reference to Figure~\ref{fig:plot}.

%\acknowledgements{\lipsum[20]}

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



%\bibliography{bibliography}
%\bibliographystyle{halpha}

%\bibliographystyle{halpha}


\end{document}
