\begin{document}

\numberwithin{figure}{section}
\title{Non-cooperatively assembling large structures: \a $2D$ pumping lemma cannot be as powerful as its $1D$ counterpart.
	hanks{
Research supported by European Research Council (ERC) under the European Union's Horizon 2020 
research and innovation programme (grant agreement No 772766, Active-DNA project), and Science 
Foundation Ireland (SFI) under Grant number 18/ERCS/5746.
}

\begin{abstract}
We show the first asymptotically efficient constructions in the so-called "noncooperative planar tile assembly" model.

Algorithmic self-assembly is the study of the local, distributed, asynchronous algorithms ran by molecules to self-organise, in particular during crystal growth. The general \emph{cooperative} model, also called \emph{"temperature 2"}, uses \emph{synchronisation} to simulate Turing machines, build shapes using the smallest possible amount of tile types, and other algorithmic tasks.
However, in the non-cooperative ("temperature 1") model, the growth process is entirely asynchronous, and mostly relies on geometry. Even though the model looks like a generalisation of finite automata to two dimensions, its 3D generalisation is capable of performing arbitrary (Turing) computation [SODA 2011], and of universal simulations [SODA 2014], whereby a single 3D non-cooperative tileset can simulate the dynamics of all possible 3D non-cooperative systems, up to a constant scaling factor.

However, we showed in [STOC 2017] that the original 2D non-cooperative model is not capable of universal simulations, and the question of its computational power is still widely open. Here, we show an unexpected result, namely that this model can reliably grow assemblies of size $\Omega(n \log n)$ with only $n$ tile types, which is the first asymptotically efficient positive construction.

\end{abstract}

\section{Introduction}

Our ability to understand and control matter at the scale of molecules conjures a future where we can engineer our own materials, interact with biological networks to cure their malfunctions, and build molecular computers and nanoscale factories.
The field of molecular computing and molecular self-assembly studies the algorithms run by molecules to exchange information, to self-organise in space, to grow and replicate. Our goal is to build a theory of how they compute, and of how we can program them.

One of the most successful models of algorithmic self assembly is the \emph{abstract tile assembly model}, imagined by Winfree~\cite{Winf98}. In that model, we start with a single seed assembly and a finite number of tile types (with an infinite supply of each type), and attach tiles, one at a time, asynchronously and nondeterministically, to the assembly, based on a condition on their borders' colours.

This model has served to bootstrap the field of molecular computing, which has since produced an impressive number of experimental realisations, from DNA motors~\cite{yurke2000dna} to arbitrary hard-coded shapes at the nanoscale~\cite{RothOrigami}, and cargo-sorting robots~\cite{thubagere2017cargo}.

\newcommand\turinginothermodels{\cite{RotWin00,SolWin07,Versus,OneTile,Cook-2011,Roth01,Patitz-2011,Signals,Hendricks-2014,Fekete2014,gilbert2015continuous,Winf98,Winfree98simulationsof}}

On the theoretical side, the abstract tile assembly model has been used to explore different features of self-organisation in space, especially in an asynchronous fashion. In many variants of the model, tile assembly is capable of simulating Turing machines~\turinginothermodels. More surprisingly, in its original form, the model is \emph{intrinsically universal}~\cite{IUSA}, meaning that there is a single ``universal'' tileset capable of simulating the behaviour of any other tileset (that behaviour is encoded only in the seed of the universal tileset).

In the usual form of the model, a part of the assembly can ``wait'' for another to grow long enough to cooperate. In the non-cooperative model, however, any tile can attach to any location, as long as at least one side matches the colour of that location. Therefore, ``synchronising'' different parts of the assembly is impossible, and the main question becomes, \emph{what kind of computation can we do in a completely asynchronous way?} The answer seems to depend crucially on the space in which the assemblies grow: in one dimension, non-cooperative tile assembly is equivalent to finite automata\footnote{Actually, deterministic tile assembly systems map directly to deterministic finite automata.}, and are therefore not too powerful. In three dimensions though, this model is capable of simulating Turing machines~\cite{Cook-2011}, and even of simulating itself \emph{intrinsically}~\cite{Meunier-2014}. If instead of square tiles, we use tiles that do \emph{not} tile the plane, the situation becomes even more puzzling: tiles whose shape are regular polygons can perform arbitrary computation, but only if they have at least seven sides~\cite{DBLP:conf/soda/GilbertHPR16}. In a similar way, polyomino tiles can also simulate Turing machines, provided that at least one of their dimensions is at least two~\cite{DBLP:conf/soda/FeketeHPRS15}.

However, in two dimensions with regular square tiles, the capabilities of this model remain largely mysterious. All we know is that it cannot simulate the general (cooperative) model up to rescaling~\cite{Meunier-2014}, and cannot simulate itself either~\cite{STOC2017}, but we know very little about its actual computational power. A number of related questions and simpler models have been studied to try and approach this model: a probabilistic assembly schedule~\cite{Cook-2011}, negative glues~\cite{SingleNegative}, no mismatches~\cite{Doty-2011,Manuch-2010}, and different tile shapes~\cite{DBLP:conf/soda/GilbertHPR16,DBLP:conf/soda/FeketeHPRS15}.

Due to the proximity with finite automata, a first intuition is that we can try to ``pump'' parts of an assembly between two tiles of equal type, resulting in infinite, periodic paths, as shown in Figure~\ref{fig:pump}. However, this is not always possible, as shown in Figure~\ref{fig:notpump}, where an attempt to pump would result in a glue mismatch, which would block the growth.

\begin{figure}
\caption{Example of ``pumping'' a path. The seed is the white tile, and the two tiles highlighted in red are of the same type. We can try to repeat the part between them infinitely many times.}
\label{fig:pump}
\end{figure}

\begin{figure}
\caption{An example path which, unlike the one in Figure~\ref{fig:pump}
\label{fig:notpump}
\end{figure}

Before this paper, a single \emph{positive} construction was known, in which for all $\varepsilon$, a tileset $T_\varepsilon$ could build multiple assemblies, all of Manhattan diameter $(2-\varepsilon)|T_\varepsilon|$ (this means in particular that $T_\varepsilon$ cannot build any infinite assembly).
Even though that result was the first example of an \emph{algorithmic} construction, the term ``algorithm'' in that case is to be taken in an extremely weak sense of a program whose running time is larger than its size.
Indeed, the resulting assemblies were only a constant factor bigger than the program size, like in a program where we call the same function twice.

Here, we show a way to build an assembly of width $\Omega(n\log n)$ with only $n$ different tile types, using the two dimensions to build a \emph{``controlled loop''}:

\newcommand\positivethm{
  For all $t\geq 0$, there is a tile assembly system $\mathcal T_t=(T_t,\sigma_t,1)$, where $|\sigma_t|=1$, $|T_t|=t$, and all assemblies $\alpha_t \in \termasm{\mathcal T_t}$ are of width $w_t \in ({t\log_3 t})/5 + O(t)$ and height less than $t$, and contain the same path $P_t$ 

  of width $w_t$.
}
\begin{theorem}
  \label{thm:positive}
  \positivethm
\end{theorem}

However, there are strong reasons to believe that 2D noncooperative tile assembly is not capable of performing Turing computation, since it is in particular not capable of simulating Turing machines inside a rectangle~\cite{STOC2017}, which is the only known form of Turing computation in tile assembly.

This result is therefore not meant as a first step towards ``full-featured algorithm'', but will be useful as a benchmark against which strategies to characterise the computational power of this model can be evaluated.

\section{Definitions and preliminaries}\label{sec:defs}
\label{definitions}

These definitions are for a large part taken from~\cite{STOC2017}. 

\subsection{Abstract tile assembly model}\label{sec:atam}

The abstract tile assembly model was introduced by Winfree~\cite{Winf98}. In this paper we study a restriction of this model called the temperature 1 abstract tile assembly model, or noncooperative abstract tile assembly model. For a mode detailed definition of the full model, as well as intuitive explanations, see for example~\cite{RotWin00,Roth01}.

A \emph{tile type} is a unit square with four sides, each consisting of a glue \emph{type} and a nonnegative integer \emph{strength}. Let  $T$  be a a finite set of tile types.
The sides of a tile type are respectively called  north, east, south, and west, as shown  in the following picture:
\begin{center}

\begin{tikzpicture}[scale=0.8]
\draw(0,0)rectangle(1,1);
\draw(0,0.5)node[anchor=east]{West};
\draw(1,0.5)node[anchor=west]{East};
\draw(0.5,0)node[anchor=north]{South};
\draw(0.5,1)node[anchor=south]{North};
\end{tikzpicture}

\end{center}

An \emph{assembly} is a partial function $\alpha:\mathbb{Z}^2\dashrightarrow T$ where $T$ is a set of tile types and the domain of $\alpha$ (denoted $\dom{\alpha}$) is connected.

We let $\mathcal{A}^T$ denote the set of all assemblies over the set of tile types $T$. 
In this paper, two tile types in an assembly are said to  {\em bind} (or \emph{interact}, or are
\emph{stably attached}), if the glue types on their abutting sides are
equal, and have strength $\geq 1$.  An assembly $\alpha$ induces a
weighted \emph{binding graph} $G_\alpha=(V,E)$, where $V=\dom{\alpha}$, and
there is an edge $\{ a,b \} \in E$ if and only if the tiles at positions $a$ and $b$ interact, and
this edge is weighted by the glue strength of that interaction.  The
assembly is said to be $\tau$-stable if every cut of $G_\alpha$ has weight at
least $\tau$. A \emph{tile assembly system} is a triple $\mathcal{T}=(T,\sigma,\tau)$,
where $T$ is a finite set of tile types, $\sigma$ is a $\tau$-stable assembly called the \emph{seed}, and
$\tau \in \mathbb{N}$ is the \emph{temperature}.

Given two $\tau$-stable assemblies $\alpha$ and $\beta$, we say that $\alpha$ is a
\emph{subassembly} of $\beta$, and write $\alpha\sqsubseteq\beta$, if
$\dom{\alpha}\subseteq \dom{\beta}$ and for all $p\in \dom{\alpha}$,
$\alpha(p)=\beta(p)$.
We also write
$\alpha\rightarrow_1^{\mathcal{T}}\beta$ if we can obtain $\beta$ from
$\alpha$ by the binding of a single tile type, that is:  $\alpha\sqsubseteq \beta$, $|\dom{\beta}\setminus\dom{\alpha}|=1$ and the tile type at the position $\dom{\beta}\setminus\dom{\alpha}$ stably binds to $\alpha$ at that position.  We say that $\gamma$ is
\emph{producible} from $\alpha$, and write
$\alpha\rightarrow^{\mathcal{T}}\gamma$ if there is a (possibly empty)
sequence $\alpha_1,\alpha_2,\ldots,\alpha_n$ where $n \in \mathbb{N} \cup \{ \infty \} $, $\alpha= \alpha_1$ and $\alpha_n =\gamma$, such that
$\alpha_1\rightarrow_1^{\mathcal{T}}\alpha_2\rightarrow_1^{\mathcal{T}}\ldots\rightarrow_1^{\mathcal{T}}\alpha_n$. 
A sequence of $n\in\mathbb{Z}^+ \cup \{\infty\}$ assemblies
$\alpha_0,\alpha_1,\ldots$ over $\mathcal{A}^T$ is a
\emph{$\mathcal{T}$-assembly sequence} if, for all $1 \leq i < n$,
$\alpha_{i-1} \to_1^\mathcal{T} \alpha_{i}$.

The set of \emph{productions}, or \emph{producible assemblies}, of a tile assembly system $\mathcal{T}=(T,\sigma,\tau)$ is the set of all assemblies producible
from the seed assembly $\sigma$ and is written~$\prodasm{\mathcal{T}}$. An assembly $\alpha$ is called \emph{terminal} if there is no $\beta$ such that $\alpha\rightarrow_1^{\mathcal{T}}\beta$. The set of all terminal assemblies of $\mathcal{T}$ is denoted~$\termasm{\mathcal{T}}$.  

In this paper, we consider that $\tau=1$.  Thus, we make the simplifying assumption that all glue types have strength 0 or 1: it is not difficult to see that this assumption does not change the behavior of the model (if a glue type $g$ has strength $s_g \geq 1$, in the $\tau =1$ model then a tile with glue type $g$ binds to a matching glue type on an assembly border irrespective of the exact value of $s_g$). Consider a assembly $\alpha$ which is producible by a tile assembly system at temperature $1$, since only one glue of strenght $1$ is needed to stably bind a tile type to an assembly then any path of the binding graph of $\alpha$ can grow if it is bind to the seed. Thus at temperature $1$, it is more pertinent to consider path instead of assembly. Now, we introduce definitions which are useful to study temperature $1$.

\subsection{Paths and non-cooperative self-assembly}\label{sec:defs-paths}

Let $T$ be a set of tile types. A {\em tile} is a  pair $((x,y),t)  \in \mathbb{Z}^2 \times T$ where $(x,y)$ is a {\em position} and $t$ is a tile type. Intuitively, a path is a finite or one-way-infinite simple (non-self-intersecting) sequence of tiles placed on points of $\mathbb{Z}^2$ so that each tile in the sequence interacts with the previous one, or more precisely:

\begin{definition}[Path]\label{def:path}
  A {\em path} is a (finite or infinite) sequence  $P = P_0 P_1 P_2 \ldots$  of tiles   $P_i = ((x_i,y_i),t_i) \in \mathbb{Z}^2 \times T$, such that:
\begin{itemize}
\item for all $P_j$ and $P_{j+1}$ defined on $P$ it is the case that~$t_{j}$ and~$t_{j+1}$ interact, and
\item for all $P_j,P_k$ such that $j\neq k$ it is the case that $ (x_j,y_j) \neq (x_k,y_k)$.
\end{itemize}
\end{definition}

Whenever $P$ is finite, i.e. $P = P_0P_1P_2\ldots P_{n-1}$ for some $n$, $n$ is termed the {\em length} of $P$.
Note that by definition, paths are simple (or self-avoiding). 

Although a path is not an assembly, we know that each adjacent pair of tiles in the path sequence interact implying that the set of path positions forms a connected set in $\mathbb{Z}^2$ and hence every path uniquely represents an assembly containing exactly the tiles of the path. More formally, since an assembly is a function of $TODO$ then it can also interpreted as a subset of tiles and then for a path $P = P_0 P_1 P_2 \ldots$ we define the assembly  $Pssembly{P} = \{ P_0, P_1, P_2, \ldots\}$ which we observe is  an assembly\footnote{or vice-versa, $Pssembly{P}$ can be interpreted as a partial function from $\mathbb{Z}^2$ to tile types that is defined on a connected set.} and  we call $Pssembly{P}$ a {\em path assembly}. 
A {\em path $P$ is said to be producible} by some tile assembly system $\mathcal{T} = (T,\sigma,1)$ if the assembly $(\asm{P} \cup \sigma ) \in \prodasm{\mathcal{T}}$ is producible, and we call such a $P$ a {\em producible path}. 
We define $$\prodpaths{\mathcal{T}} = \{ P  \mid P \textrm{ is a path and } (\asm{P}\cup\sigma) \in \prodasm{\mathcal{T}} \} $$  to be the set of producible paths of $\mathcal{T}$.\footnote{Intuitively, although  producible paths  are not assemblies, any  producible path $P$ has the nice property that it encodes an unambiguous description of how to grow $\asm{P}$ from the seed $\sigma$, in ($P$) path  order, to produce  the assembly $\sigma \cup \asm{P}$.} 

For any path $P = P_0 P_1 P_2, \ldots$ and integer $i\geq 0$, we write $\pos{P_i} \in \mathbb{Z}^2$, or  $(x_{P_i},y_{P_i}) \in \mathbb{Z}^2$, for the position of $P_i$ and $Ope{P_i}$ for the tile type of $P_i$. Hence if  $P_i = ((x_i,y_i),t_i) $ then $\pos{P_i} =  (x_{P_i},y_{P_i}) = (x_i,y_i) $ and $Ope{P_i} = t_i$.

Note that, since the domain of a producible assembly is a connected set in $\mathbb{Z}^2$, and since in an assembly sequence of some tile assembly system $\mathcal{T} = (T,\sigma,1)$ each tile binding event $\beta_i \rightarrow_1^\mathcal{T} \beta_{i+1} $ adds a single node $v$ to the binding graph $G_{\beta_{i}}$ of $\beta_i$  to give a new binding graph $G_{\beta_{i+1}}$, and adds at least one  weight-1 edge joining $v$ to the subgraph $G_{\beta_i} \in G_{\beta_{i+1}}$, then for any tile $((x,y),t) \in \alpha$  in a producible assembly $\alpha \in \prodasm{\mathcal{T}}$, there is a edge-path (sequence of edges) in the binding graph of $\alpha$ from $\sigma$ to $((x,y),t)$. From there, the following important fact about temperature 1 tile  assembly is straightforward to see.

\begin{observation}
Let $\mathcal{T} = (T,\sigma,1)$ be a tile assembly system and let $\alpha \in \prodasm{\mathcal{T}}$. 
For any tile $((x,y),t) \in \alpha$ there is a producible path $P \in \prodpaths{\mathcal{T}}$ that for some $i \in \mathbb{N}$ contains $P_i = ((x,y),t)$.
\end{observation}

When referring to the relative placements of positions in the grid graph of $\mathbb{Z}^2$, we say that a position $(x, y)$ is \emph{east of} (respectively\xspace, \emph{west of}, \emph{north}, \emph{south}) of another position $(x', y')$ if $x \geq x'$ (respectively\xspace $x \leq x'$, $y\geq y'$, $y\leq y'$).

If two paths, or two assemblies, or a path and an assembly, share a common position we say they {\em intersect} at that position. Furthermore, we say that two paths, or two assemblies, or a path and an assembly,  {\em agree} on a position if they both place the same tile type at that position and {\em conflict} if they place a different tile type at that position. We sometimes say that a path $P$ is {\em blockable} to mean that there is another path $P'$ (producible  by the same tile assembly system as produced $P$) that conflicts with $P$. 

The translation of a tile $((x,y),t)$ by a vector $\protect\overrightarrow{v}=(x',y')$ of $\mathbb{Z}^2$ is $((x+x',y+y'),t)$ (the type of the tile is not modified while its position is translated by $\protect\overrightarrow{u})$. The translation of a path $P$ by $\protect\overrightarrow{v}$, written $P+\protect\overrightarrow{v}$, is the path $Q$ where
and for all indices $i$ of $P$,  $Q_i=P_i+\protect\overrightarrow{v }$. As a convenient notation, for a path $PQ$ composed of subpaths $P$ and $Q$,  when we write $PQ +\protect\overrightarrow{v} $ we mean $(PQ)+\protect\overrightarrow{v}$ (i.e.\ the translation of all of $PQ$ by $+\protect\overrightarrow{v}$).
The translation of a path $P$ by a vector $\protect\overrightarrow{v} \in \mathbb{Z}^2$, written $P+\protect\overrightarrow{v}$, is  the path $Q$ where
and for all indices $i$ of $P$,  

The \emph{width} of an assembly $\alpha$ is the number of columns on which $\alpha$ has at least one tile, and the \emph{height} of $\alpha$ is the number of rows on which $\alpha$ has at least one tile.

\section{The tile assembly system.}

\subsection{Definition of the tile assembly system.}
\label{long:sec:def}

Our construction relies on two parameters $k, n \in \mathbb{N}$. Also, we define the series $(h_i)_{i\geq 0}$ as: $$h_0 = 2, h_1=4 \text{ and for } i\geq 2, h_i = 3h_{i-1}-h_{i-2}.$$ 
In this paper, we work on a zone of the $2D$ plane delimited as follow: we will only consider positions $(x,y) \in \mathbb{N}$ such that $0\leq x \leq (i+1)k-1$ and $0 \leq y \leq h_k-1$. The seed will be made of only one tile at position $(0,0)$ and any assembly will have a height bounded by $h_k-1$ and a width bounded by $(k+1)n-1$. 

The aim of this section is to define a the tile assembly system $T^{(\para,\parb)}r{k}=(\mathcal{T}^{(\para,\parb)},\sigma,1)$. The path of Figure \ref{fig:def} illustrates the definition of the set of tile types $\mathcal{T}^{(\para,\parb)}$: each tile type is used exactly one time in this assembly. This path is made of five parts: one is the seed $\sigma$ and the four others are represented in green, orange, blue and red. The set of tile types $\mathcal{T}^{(\para,\parb)}$ is defined as the union of these five kinds of tile types $\mathcal{T}^{(\para,\parb)}s,\mathcal{T}^{(\para,\parb)}g,\mathcal{T}^{(\para,\parb)}y,\mathcal{T}^{(\para,\parb)}b$ and $\mathcal{T}^{(\para,\parb)}p$. 

\noindent \emph{The seed.}

Consider the tile type $s$ with only one glue called $\mathsf{g}_0$ on its east side. We define $\mathcal{T}^{(\para,\parb)}s=\{s\}$ and the seed $\sigma$ is defined as the assembly made of only the tile $((0,0), s)$. From now on, $\sigma$ will always be the seed of our tile assembly system. 

\newcommand\gluesize{0.3}
\begin{center}
  \begin{tikzpicture}[scale=0.8]
    \draw(0,0)rectangle(2,2);
    \draw(1,1)node{$s$};
    \draw[very thick](2,1)--(2+\gluesize,1);
    \draw(2, 1)node[anchor=south,rotate=90]{$\mathsf{g}_0$};
  \end{tikzpicture}
\end{center}

\noindent \emph{The green tile types.}

The second kind of tile types $\mathcal{T}^{(\para,\parb)}g$ is made of $n+2$ tile types called $g_0,g_1, \ldots, g_{n+1}$ defined as follow:

\begin{itemize}
\item for all $0\leq i \leq n-2$ the tile type $g_i$ is made of the glue $\mathsf{g}_i$ on its west side and the glue $\mathsf{g}_{i+1}$ on its east side; moreover the tile $G_i$ is defined as $((1+i,0),g_i)$.
\item the tile type $g_{n-1}$ is made of the glue $\mathsf{g}_{n-1}$ on its west side and the glue $\mathsf{g}_{n}$ on its north side; moreover the tile $G_{n-1}$ is defined as $((n,0),g_{n-1})$.
\item the tile type $g_{n}$ is made of the glue $\mathsf{g}_{n}$ on its south side and the glue $\mathsf{g}_{n+1}$ on its west side; moreover the tile $G_{n}$ is defined as $((n,1),g_{n})$.
\item the tile type $g_{n+1}$ is made of the glue $\mathsf{g}_{n+1}$ on its east side and the glue $\mathsf{o}_{0}$ on its north side; moreover the tile $G_{n+1}$ is defined as $((n-1,1),g_{n+1})$.
\end{itemize}
This set of tile types is used to hardcode the path $G=G_0G_1 \ldots G_{n+1}$. 

\begin{center}
  \begin{tikzpicture}[scale=1]
    \draw[fill=xgreen!50!white](0,0)rectangle(2,2);
    \draw[very thick,xgreen](0,1)--(-\gluesize,1);
    \draw[very thick,xgreen](2,1)--(2+\gluesize,1);
    \draw(1,1)node{$g_0$};
    \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{g}_0$};
    \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{g}_1$};
    \begin{scope}[shift={(3,0)}]
      \draw[fill=xgreen!50!white](0,0)rectangle(2,2);
      \draw[very thick,xgreen](0,1)--(-\gluesize,1);
      \draw[very thick,xgreen](2,1)--(2+\gluesize,1);
      \draw(1,1)node{$g_1$};
      \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{g}_1$};
      \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{g}_2$};
      \draw(3,1)node{$\ldots$};
      \begin{scope}[shift={(4,0)}]
        \draw[fill=xgreen!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$g_{n-2}$};
        \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{g}_{n-2}$};
        \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{g}_{n-1}$};
        \draw[very thick,xgreen](0,1)--(-\gluesize,1);
        \draw[very thick,xgreen](2,1)--(2+\gluesize,1);
        \begin{scope}[shift={(3,0)}]
          \draw[fill=xgreen!50!white](0,0)rectangle(2,2);
          \draw(1,1)node{$g_{n-1}$};
          \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{g}_{n-1}$};
          \draw(1,2)node[anchor=north]{$\mathsf{g}_{n}$};
          \draw[very thick,xgreen](1,2)--(1, 2+\gluesize);
          \draw[very thick,xgreen](0,1)--(-\gluesize,1);
        \end{scope}
        \begin{scope}[shift={(3,3)}]
          \draw[fill=xgreen!50!white](0,0)rectangle(2,2);
          \draw(1,1)node{$g_{n}$};
          \draw(1,0)node[anchor=south]{$\mathsf{g}_n$};
          \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{g}_{n+1}$};
          \draw[very thick,xgreen](1,0)--(1, -\gluesize);
          \draw[very thick,xgreen](0,1)--(-\gluesize,1);
        \end{scope}
        \begin{scope}[shift={(0,3)}]
          \draw[fill=xgreen!50!white](0,0)rectangle(2,2);
          \draw(1,1)node{$g_{n+1}$};
          \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{g}_{n+1}$};
          \draw(1,2)node[anchor=north]{$\mathsf{o}_0$};
          \draw[very thick,xgreen](1,2)--(1, 2+\gluesize);
          \draw[very thick,xgreen](2,1)--(2+\gluesize,1);
        \end{scope}
      \end{scope}
    \end{scope}
  \end{tikzpicture}
 \end{center}

\noindent \emph{The orange tile types.}

The third kind of tile types $\mathcal{T}^{(\para,\parb)}y$ is made of $h_k-2$ tile types called $o_0,o_1, \ldots, o_{h_k-3}$ defined as follow. For all $0\leq i \leq h_k-3$ the tile type $o_i$ is made of:
\begin{itemize}
\item the glue $\mathsf{o}_i$ on its south side;
\item the glue $\mathsf{o}_{i+1}$ on its north side if and only if $i < h_k-3$;
\item the glue $\mathsf{b}_0$ on its east side if and only if there exists $1\leq i \leq k$ such that $i = h_i-3$.
\end{itemize}
For all $0\leq i \leq h_k-3$, the tile $O_i$ is defined as $((n-1,2+i),o_i)$. This set of tile types is used to hardcode the paths $\pathy{i} = O_0 O_1 \ldots O_{h_i-3}$ for $1 \leq i \leq k$. Note that, for all $1\leq i \leq k-1$, the path $\pathy{i}$ is a prefix of the path $\pathy{{i+1}}$.  To summarize, for all $i\in\{0,1,\ldots,h_k-3\}$:

\begin{itemize}
  \item if $i=h_{k-3}$ then $o_{i}$ is the following tile type:
    \begin{center}
      \begin{tikzpicture}[scale=1]
        \draw[fill=xorange!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$o_{i}$};
        \draw(1,0)node[anchor=south]{$\mathsf{o}_{i}$};
        \draw(2,1)node[anchor=south, rotate=90]{$\mathsf{b}_0$};
        \draw[very thick,xorange](1,0)--(1, -\gluesize);
        \draw[very thick,xorange](2,1)--(2+\gluesize,1);
      \end{tikzpicture}
    \end{center}

  \item if $i = h_j-3$ for some integer $1\leq j < k$, then $o_i$ is the following tile type:
    \begin{center}
      \begin{tikzpicture}[scale=1]
        \draw[fill=xorange!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$o_{i}$};
        \draw(1,0)node[anchor=south]{$\mathsf{o}_{i}$};
        \draw(1,2)node[anchor=north]{$\mathsf{o}_{i+1}$};
        \draw(2,1)node[anchor=south, rotate=90]{$\mathsf{b}_0$};
        \draw[very thick,xorange](1,2)--(1, 2+\gluesize);
        \draw[very thick,xorange](1,0)--(1, -\gluesize);
        \draw[very thick,xorange](2,1)--(2+\gluesize,1);
      \end{tikzpicture}
    \end{center}

  \item otherwise, $o_i$ is the following tile type:
    \begin{center}
      \begin{tikzpicture}[scale=1]
        \draw[fill=xorange!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$o_{i}$};
        \draw(1,0)node[anchor=south]{$\mathsf{o}_i$};
        \draw(1,2)node[anchor=north]{$\mathsf{o}_{i+1}$};
        \draw[very thick,xorange](1,2)--(1, 2+\gluesize);
        \draw[very thick,xorange](1,0)--(1, -\gluesize);
      \end{tikzpicture}
    \end{center}
\end{itemize}

\noindent \emph{The blue tile types.}

The fourth kind of tile types $\mathcal{T}^{(\para,\parb)}b$ is made of $2n$ tile types called $b_0,b_1, \ldots, b_{2n-1}$ defined as follow:

\begin{itemize}
\item for all $0\leq i \leq n-2$ the tile type $b_i$ is made of the glue $\mathsf{b}_i$ on its west side and the glue $\mathsf{b}_{i+1}$ on its east side; moreover the tile $B_i$ is defined as $((n+i,3),b_i)$;
\item the tile type $b_{n-1}$ is made of the glue $\mathsf{b}_{n-1}$ on its west side and the glue $\mathsf{b}_{n}$ on its south side; moreover the tile $B_{n-1}$ is defined as $((2n-1,3),b_{n-1})$;
\item the tile type $b_{n}$ is made of the glue $\mathsf{b}_{n}$ on its north side and the glue $\mathsf{b}_{n+1}$ on its west side; moreover the tile $B_{n}$ is defined as $((2n-1,2),b_{n})$;
\item for all $n+1\leq i \leq 2n-2$, the tile type $b_{i}$ is made of the glue $\mathsf{b}_{i}$ on its east side and the glue $\mathsf{b}_{i+1}$ on its west side; moreover the tile $B_{i}$ is defined as $((3n-1-i,2),b_{i})$;
\item the tile type $b_{2n-1}$ is made of the glue $\mathsf{b}_{2n-1}$ on its east side and the glue $\mathsf{r}_{0}$ on its south side; moreover the tile $B_{2n-1}$ is defined as $((n,2),b_{2n-1})$.
\end{itemize}
This set of tile types is used to hardcode the path $\pathb{1}=B_0 B_1 \ldots B_{2n-1}$. For all $2\leq i \leq k$, we define the path $\pathb{i}$ as $\pathb{1}$ translated by $(0,h_{i}-4)$. 

  \begin{center}
    \begin{tikzpicture}[scale=1]
      \draw[fill=xblue!50!white](0,0)rectangle(2,2);
      \draw(1,1)node{$b_{0}$};
      \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_0$};
      \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{b}_1$};
      \draw[very thick,xblue](0,1)--(-\gluesize,1);
      \draw[very thick,xblue](2,1)--(2+\gluesize,1);
      \begin{scope}[shift={(3,0)}]
        \draw[fill=xblue!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$b_{1}$};
        \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_1$};
        \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{b}_2$};
        \draw[very thick,xblue](0,1)--(-\gluesize,1);
        \draw[very thick,xblue](2,1)--(2+\gluesize,1);
      \end{scope}
      \draw(6,1)node{$\ldots$};
      \begin{scope}[shift={(7,0)}]
        \draw[fill=xblue!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$b_{n-2}$};
        \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_{n-2}$};
        \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{b}_{n-1}$};
        \draw[very thick,xblue](0,1)--(-\gluesize,1);
        \draw[very thick,xblue](2,1)--(2+\gluesize,1);
      \end{scope}
      \begin{scope}[shift={(10,0)}]
        \draw[fill=xblue!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$b_{n-1}$};
        \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_{n-1}$};
        \draw(1,0)node[anchor=south]{$\mathsf{b}_{n}$};
        \draw[very thick,xblue](0,1)--(-\gluesize,1);
        \draw[very thick,xblue](1,0)--(1, -\gluesize);
      \end{scope}
      \begin{scope}[shift={(10,-3)}]
        \draw[fill=xblue!50!white](0,0)rectangle(2,2);
        \draw(1,1)node{$b_{n}$};
        \draw(1,2)node[anchor=north]{$\mathsf{b}_n$};
        \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_{n+1}$};
        \draw[very thick,xblue](0,1)--(-\gluesize,1);
        \draw[very thick,xblue](1,2)--(1,2+\gluesize);
      \end{scope}

      \begin{scope}[shift={(0,-3)}]
        \draw[fill=xblue!50!white](0,0)rectangle(2,2);
        \draw(1,0)node[anchor=south]{$\mathsf{r}_0$};
        \draw(1,1)node{$b_{2n-1}$};
        \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{b}_{2n-1}$};
        \draw[very thick,xblue](1,0)--(1,-\gluesize);
        \draw[very thick,xblue](2,1)--(2+\gluesize,1);
        \begin{scope}[shift={(3,0)}]
          \draw[fill=xblue!50!white](0,0)rectangle(2,2);
          \draw(1,1)node{$b_{2n-2}$};
          \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_{2n-2}$};
          \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{b}_{2n-3}$};
          \draw[very thick,xblue](0,1)--(-\gluesize,1);
          \draw[very thick,xblue](2,1)--(2+\gluesize,1);
        \end{scope}
        \draw(6,1)node{$\ldots$};
        \begin{scope}[shift={(7,0)}]
          \draw[fill=xblue!50!white](0,0)rectangle(2,2);
          \draw(1,1)node{$b_{n+1}$};
          \draw(0,1)node[anchor=north,rotate=90]{$\mathsf{b}_{n+2}$};
          \draw(2,1)node[anchor=south,rotate=90]{$\mathsf{b}_{n+1}$};
          \draw[very thick,xblue](0,1)--(-\gluesize,1);
          \draw[very thick,xblue](2,1)--(2+\gluesize,1);
        \end{scope}
      \end{scope}
    \end{tikzpicture}
  \end{center}

\noindent \emph{The red tile types.}

The fifth kind of tile types $\mathcal{T}^{(\para,\parb)}p$ is made of $h_k-h_{k-1}-2$ tile types called $r_0,r_1, \ldots, r_{h_k-h_{k-1}-3}$ defined as follow. For all $0\leq i \leq h_k-h_{k-1}-3$, the tile type $r_i$ is made of:
\begin{itemize}
\item the glue $\mathsf{r}_i$ on its north side;
\item the glue $\mathsf{r}_{i+1}$ on its south side if and only if $i < h_k-h_{k-1}-3$;
\item the glue $\mathsf{g}_0$ on its east side if and only if there exists $2\leq i \leq k$ such that $i=h_{i}-h_{i-1}-3$.
\end{itemize}
For all $0\leq i \leq h_k-h_{k-1}-3$, the tile $R_i$ is defined as $((n,1-i),r_i)$. This set of tile types is used to hardcode the path $R$ defined as $R_0 R_1 \ldots R_{h_k-h_{k-1}-3}$. For all $2\leq i \leq k$ and  $1\leq j \leq k$, we define the path $\pathpp{j}{i}$ as the prefix of $R$ of length $h_{j}-h_{j-1}-2$ translated by $(0,h_{i}-4)$. Note that, for all $1\leq j' \leq j$, the path $\pathpp{j'}{i}$ is a prefix of $\pathpp{j}{i}$ and that for all $1\leq i \leq k$, $\pathpp{1}{i}$ is $\epsilon$: the empty path of length $0$. To summarize, for all $i\in\{0,1,\ldots,h_k-h_{k-1}-3\}$:

\begin{itemize}
\item if $i={h_k-h_{k-1}-3}$ then $r_i$ is the following tile type:

  \begin{center}
    \begin{tikzpicture}[scale=1]
      \draw[fill=xred!50!white](0,0)rectangle(2,2);
      \draw(1,1)node{$r_{i}$};
      \draw(1,2)node[anchor=north]{$\mathsf{r}_{i}$};
      \draw(2,1)node[anchor=south, rotate=90]{$\mathsf{g}_0$};
      \draw[very thick,xred](1,2)--(1, 2+\gluesize);
      \draw[very thick,xred](2,1)--(2+\gluesize,1);
    \end{tikzpicture}
  \end{center}

\item if $i = h_j - h_{j-1}-3$ for some integer $1\leq j< k$, then $r_i$ is the following tile type:

  \begin{center}
    \begin{tikzpicture}[scale=1]
      \draw[fill=xred!50!white](0,0)rectangle(2,2);
      \draw(1,1)node{$r_{i}$};
      \draw(1,0)node[anchor=south]{$\mathsf{r}_{i+1}$};
      \draw(1,2)node[anchor=north]{$\mathsf{r}_{i}$};
      \draw(2,1)node[anchor=south, rotate=90]{$\mathsf{g}_0$};
      \draw[very thick,xred](1,2)--(1, 2+\gluesize);
      \draw[very thick,xred](1,0)--(1, -\gluesize);
      \draw[very thick,xred](2,1)--(2+\gluesize,1);
    \end{tikzpicture}
  \end{center}
\item  otherwise, $r_i$ is the following tile type:

  \begin{center}
    \begin{tikzpicture}[scale=1]
      \draw[fill=xred!50!white](0,0)rectangle(2,2);
      \draw(1,1)node{$r_{i}$};
      \draw(1,0)node[anchor=south]{$\mathsf{r}_{i+1}$};
      \draw(1,2)node[anchor=north]{$\mathsf{r}_{i}$};
      \draw[very thick,xred](1,2)--(1, 2+\gluesize);
      \draw[very thick,xred](1,0)--(1, -\gluesize);
    \end{tikzpicture}
  \end{center}
\end{itemize}
\begin{figure}
\caption{In our examples, we consider $k=4$ and $n=10$. The seed (in white) is at position $(0,0)$ and we represent the path $\paths{4}
\label{fig:def}
\end{figure}

\subsection{Basic properties.}
\label{long:sec:basic}

The aim of this section is to define a set of paths which characterized all the possible prefixes of a path producible by $T^{(\para,\parb)}$. These paths are obtained by gluing together the different paths defined in section \ref{long:sec:def}. When two of these paths are glued together, we have to verify that the result of this operation is also a path. To achieve this goal, we have to check two properties. The first one is that the last tile of the first path can be glued to the first tile of the second path. The second one is that that the two paths do not intersect. We start by a first lemma which gives the positions occupied by the paths defined in section \ref{long:sec:def}. This lemma is useful to show that a path is west or north of another one and thus that these two paths do not intersect. 

\begin{lemma}
\label{lem:position}
For any $k,n \in \mathbb{N}$, for any $1 \leq j\leq i \leq k$ and for any position $(x,y)$ occupied by:
\begin{itemize}
\item a tile of $G$, we have $1\leq x \leq n$ and $0\leq y\leq 1$;
\item a tile of $\pathy{i}$, we have $x=n-1$ and $2 \leq y \leq h_i-1$;
\item a tile of $\pathb{i}$, we have $n \leq x \leq 2n-1$ and $h_{i}-2 \leq y \leq h_{i}-1$;
\item a tile of $\pathpp{j}{i}$, we have $x=n$ and $h_{i}-h_{j}+h_{j-1} \leq y \leq h_{i}-3$ 
(for $j=i$, we have $h_{i-1} \leq y \leq h_{i}-3$).
\end{itemize}
\end{lemma}

\begin{proof}
Straightforward for the green, orange and blue paths. For any position $(x,y)$ occupied by $\pathpp{j}{i}$, we have $x=n$. Moreover, the position of $R_0+(0,h_{i}-4)$ is $(n,h_{i}+3)$ and the following tiles are all below the previous one and the length of $\pathpp{j}{i}$ is $h_{j}-h_{j-1}-2$ then the tile $R_{h_{j}-h_{j-1}-3}$ occupies the position $(n,h_{i}-h_{j}+h_{j-1})$. For the special case where $j=i$, we have $h_{i}-h_{i}+h_{i-1}=h_{i-1}$.
\end{proof}

Now, for all $1\leq j\leq i \leq k$, we defined $\paths{i}{j}$ as $G\pathy{i}\pathb{i}\pathpp{j}{i}$ and we show that these sequences of tiles are paths producible by $T^{(\para,\parb)}$ (see Figure \ref{fig:def} for an example of such a path).

\begin{lemma}
\label{lem:producible}
For any $k,n \in \mathbb{N}$ and for any $1 \leq i \leq k$, $\paths{i}{i}$ is a path producible by $T^{(\para,\parb)}$.
\end{lemma}

\begin{proof}
Consider $1\leq i \leq P$ and the paths $G$, $\pathy{i}$, $\pathb{i}$ and $\pathp{i}$. Firstly, we show that these different paths do no intersect. For the special where $i=1$, we remind that $G\pathy{1}\pathb{1}\pathp{1}=G\pathy{1}\pathb{1}$. By lemma \ref{lem:position}:
\begin{itemize}
\item the seed $\sigma$ is west of $G\pathy{i}\pathb{i}\pathp{i}$;
\item the path $G$ is south of $\pathy{i}\pathb{i}\pathp{i}$;
\item the path $\pathy{i}$ is west of $\pathb{i}\pathp{i}$;
\item the path $\pathb{i}$ is north of $\pathp{i}$.
\end{itemize}
Secondly, we show that these different paths can be glued together:
\begin{itemize}
\item the position of the seed is $(0,0)$ and there is a glue $g_0$ on its east side and the position of $G_0$ is $(1,0)$ and there is a glue $g_0$ on its west side;
\item the position of $G_{n+1}$ is $(n-1,1)$ and there is a glue $o_0$ on its north side and the position of $\pathy{i}_0$ is $(n-1,2)$ and there is a glue $o_0$ on its south side;
\item the position of $\pathy{i}_{h_{i}-3}$ is $(n-1,h_{i}-1)$ and there is a glue $b_0$ on its east side and the position of $\pathb{i}_0$ is $(n,h_{i}-1)$ and there is a glue $b_0$ on its west side;
\item the position of $\pathb{i}_{2n-1}$ is $(n,h_{i}-2)$ and there is a glue $r_0$ on its south side and the position of $\pathp{i}_0$ is $(n,h_{i}-3)$ and there is a glue $r_0$ on its north side.
\end{itemize}
Then, the path $G\pathy{i}\pathb{i}\pathp{i}$ is producible by $T^{(\para,\parb)}$. For all $1\leq i \leq i$, $\paths{i}{i}$ is a prefix of $\paths{i}{i}$ and thus it is a path producible by $T^{(\para,\parb)}$.
\end{proof}

Note that for any $1\leq i \leq k$, all prefixes of $\paths{i}{i}$ are also producible by $T^{(\para,\parb)}$. The paths $(\paths{i}{i})_{1\leq i \leq i \leq k}$ will be used to characterize all the path producible by $T^{(\para,\parb)}$. To achieve this goal, we need to know the positions of the free glues on these paths (see Figure \ref{fig:def}).

\begin{lemma}
\label{lem:freeglue}
For any $k,n \in \mathbb{N}$ and for any $1 \leq i \leq k$, the free glues of $\paths{i}{i}$ are:
\begin{itemize}
\item the north glue $\mathsf{o}_{h_i-2}$ of the tile $O_{h_i-3}$ whose position is $(n-1,h_i-1)$ if $i<k$;
\item for all $1\leq i' \leq i-1$ the east glue $\mathsf{b}_0$ of the tile $O_{h_i'-3}$ whose position is $(n-1,h_i'-1)$;
\item for all $2\leq j \leq i$ the east glue $\mathsf{g}_0$ of the tile $\pathp{i}_{h_{j}-h_{j-1}-3}$ whose position is $(n,h_{i}-h_{j}+h_{j-1})$;
\item the south glue $\mathsf{r}_{h_{i}-h_{i-1}-2}$ of the tile $\pathp{i}_{h_{i}-h_{i-1}-3}$ whose position is $(n,h_{i-1})$ if $1<i<k$.
\end{itemize}
\end{lemma}

\begin{proof}
Except for the last tile, for any tile of $\paths{i}{i}$ two of its glues are used to assemble the path $\paths{i}{i}$. Since the tile types have two or three glues on their side, we have to check the remaining glue on the tiles with three glues on their sides. First all the tile types of $\mathcal{T}^{(\para,\parb)}g$ and $\mathcal{T}^{(\para,\parb)}b$ have only two glues on their sides, thus there are no free glues on the tiles of $G$ and $\pathb{i}$. Note that for the special case where $i=1$ (see Figure \ref{fig:path11}) the last tile of $G\pathy{1}\pathb{1}\pathp{1}$ is the last tile of $\pathb{1}$. Nevertheless, the south glue of the tile $\pathb{1}_{2n-1}$ whose position is $(n,2)$ is not free because of a mismatch with the tile $G_{n}$ whose position is $(n,1)$ and which has no glue on its north side. The tile types of $\mathcal{T}^{(\para,\parb)}y$ with three glues on their side are $o_{h_i'-3}$ for all $1\leq i' < k$. For all $1\leq i'<i$, the glue on the east side of $\pathy{i}_{h_i'-3}$ are free whereas if $i<k$  the north glue of tile $\pathy{i}_{h_i-3}$ is free. Finally, the only tile types of $\mathcal{T}^{(\para,\parb)}p$ with three glues on their sides are $r_{h_{j}-h_{j-1}-3}$ for all $2 \leq j \leq k$. For $2\leq j \leq i$, the glue on the east side of $\pathp{i}_{h_{j}-h_{j-1}-3}$ is free. Moreover since $\pathp{i}_{h_{i}-h_{i-1}-3}$ is the last tile of the path then its south glue is also free (except when $i=k$ because $r_{h_{k}-h_{k-1}-3}$ has no glue on its south side).
\end{proof}

\begin{figure}
\caption{The path $\paths{1}
\label{fig:path11}
\end{figure}

A corollary of this lemma is that $\paths{1}{1}$ is a dead-end (see Figure \ref{fig:path11}). Also, for all $2\leq j \leq i \leq k$, let $\vu{i}{j}$ be the vector $(n,h_{i}-h_{j}+h_{j-1})$ and since the last tile of $\paths{i}{j}$ is $(n,h_{i}-h_{j}+h_{j-1})$ and since the type of its east east glue is $\mathsf{g}_0$ then for all $P$ producible by $T^{(\para,\parb)}$, if $\paths{i}{j}(G_0+\vu{i}{j})$ is a prefix of $P$ then $P$ can be written $\paths{i}{j}Pa$ where $Pa-\vu{i}{j}$ is a path producible by $T^{(\para,\parb)}$.

\subsection{Analyzes of the prefixes.}
\label{long:sec:prefix}

Now, remark that the only tile with a glue $\mathsf{g}_0$ on its west side is $G_0$ then any path producible by $T^{(\para,\parb)}$ begins by a tile $G_0$. In fact, this reasoning can be done for any glue and direction. Thus for any path $P$ and any $0\leq i <|P|-1 $, if we know the position and the tile type of $P_i$ and the position of $P_{i+1}$ then we can deduce the tile type of $P_{i+1}$. Thus, consider two paths $P$ and $Pa$ which are producible by $T^{(\para,\parb)}r{k}$, then they share a common prefix until they split away. They can split away only at a tile with at least three glues on its sides. From lemma \ref{lem:freeglue}, we have the following fact:

\begin{fact}
\label{lem:prefix1}
For any $k,n \in \mathbb{N}$ and for any path $P$ producible by $T^{(\para,\parb)}$, either $P$ is a prefix of $G\pathy{k}$ or there exists $1 \leq i \leq k$ such that $G\pathy{i}\pathb{i}_0$ is a prefix of $P$.
\end{fact}

There are only $k$ different prefixes for a producible path with is large enough. Now, let's look at how these different prefixes can grow. For all $1\leq i \leq k$, by attaching tiles to the end of $G\pathy{i}\pathb{i}_0$, this pall will always grow into $G\pathy{i}\pathb{i}$. For all $1\leq i \leq k$, we define $\dead{i}$ as the path obtained by attaching red tiles to $G\pathy{i}\pathb{i}$ until it is no more possible (see Figure \ref{fig:dead3}). For the special case $i=k$, we have $\dead{k}=\paths{k}{k}$ since we run out of red tiles. For the other special case $i=1$, the path $\dead{1}$ is $\paths{1}{1}$ since this path is a dead-end then it is not possible to add any red tiles (see Figure \ref{fig:path11}). For the general case $1<i<k$, $\dead{i}$ is a dead-end since its last tile is $((n,1),r_{h_{i}-4})$ and its only free glue is the south one which does a mismatch with the tile $G_{n}=((n,1),g_{n})$. In all cases, there are only $i-1$ red tiles with a free glue on their east side (see Lemma \ref{lem:freeglue}). Thus if a path producible by $T^{(\para,\parb)}$ is not a prefix of $\dead{i}$ then it has to use on these free glues. The previous remarks are summarized in the following fact.

\begin{figure}
\caption{The path $\dead{3}
\label{fig:dead3}
\end{figure}

\begin{fact}
\label{lem:prefix2}
For any $k,n \in \mathbb{N}$ and for any path $P$ producible by $T^{(\para,\parb)}$, there exists $1\leq i \leq k$ such that either:
\begin{itemize}
\item $P$ is a prefix of $\dead{i}$;
\item there exists $2 \leq j \leq i$ such that $\paths{i}{j}(G_0+\vu{i}{j})$ is a prefix of $P$.
\end{itemize}
Moreover, for all $1\leq i <k$, $\dead{i}$ is a dead-end.
\end{fact}

Now, we have obtained $k$ different prefixes which are dead-end and $(k-1)^2$ prefixes which are not. Now, let's look at how these different prefixes can grow. Consider $2\leq j\leq i \leq k$ and by attaching tiles to the end of $\paths{i}{j}(G_0+\vu{i}{j})$, this path will always grow into $\paths{i}{j}(G+\vu{i}{j})$ (this assembly is producible by $T^{(\para,\parb)}$ since $G+\vu{i}{j}$ is east of $\pathy{i}$ and $\pathpp{j}{i}$, north of $G$ and south of $\pathb{i}$ (see Lemma \ref{lem:position})). The last tile of this path is $((2n-1,h_{i}-h_{j}+h_{j-1}+1),g_{n+1})$ and this path can keep growing to the north by attaching orange tiles at its end. We define the path $\deadd{i}{j}$ as the path obtained by attaching orange tiles to $\paths{i}{j}(G+\vu{i}{j})$ until it is no more possible (see Figure \ref{fig:deadd}). The last tile of this path is $((2n-1,h_{i}-3),o_{h_{j}-h_{j-1}-5})$ since it not possible to add a orange tile because of a mismatch with the tile $\pathb{i}_{n}=((2n-1,h_{i}-2),b_{n})$. Moreover if $j>2$, this path is a dead-end because the last tile of this path has no east glue. Also, $G\pathy{j}+\vu{i}{j}$ cannot be a prefix of $Pa$ and by applying lemma \ref{lem:prefix1} to $Pa-\vu{i}{j}$ we obtain that either $P$ is a prefix of $\deadd{i}{j}$ or there exists $1\leq i' <j$ such that $\paths{i}{j}(G\pathy{i'}\pathb{i'}_0)+\vu{i}{j}$ is a prefix of $P$. These observations are summarized in the following fact.

\begin{figure}
\caption{The path $\deadd{3}
\label{fig:deadd}
\end{figure}

\begin{fact}
\label{lem:prefix3}
For any $k,n \in \mathbb{N}$ and for any path $P$ producible by $T^{(\para,\parb)}$, there exists $1 \leq i \leq k$ such that either:
\begin{itemize}
\item $P$ is a prefix of $\dead{i}$;
\item there exists $2\leq j \leq i$ such that either:
\begin{itemize}
\item $P$ is prefix of $\deadd{i}{j}$;
\item there exists $1\leq i' <j$ such that $\paths{i}{j}(G\pathy{i'}\pathb{i'}_0)+\vu{i}{j}$ is a prefix of $P$.
\end{itemize}
\end{itemize}
Moreover, for all $2< j \leq i \leq k$, $\deadd{i}{j}$ is a dead-end.
\end{fact}

\begin{figure}
\caption{This path is the concatenation of $\paths{4}
\label{fig:def}
\end{figure}

\subsection{Analysis of the tile assembly system.}
\label{long:sec:analyzes}

Consider a path $P$ producible by $T^{(\para,\parb)}$ then Fact \ref{lem:prefix3} gives us an hint to the structure of $P$. Indeed, this path is made of several paths $\paths{i_1}{j_1}$, $\paths{i_2}{j_2}$, $\paths{i_3}{j_3}$, $\ldots$ which are glued together up to some translations (see Figure \ref{}). The index $i$ (resp. $j$) represents which east glue of an orange (resp. red) tile is used. Moreover, Fact \ref{lem:prefix3} also implies that $i_1<i_2<i_3 < \ldots$ and thus eventually one the three dead-end $\paths{1}{1}$, $\dead{i}$, $\deadd{i}{j}$ (for some $2\leq j \leq i \leq k$) will grow up to some translation and the path will become a dead-end too. We use this sketch of proof to show that the width and height of any producible path is bounded.

\begin{lemma}
\label{lem:prefixbound}
For any $k,n \in \mathbb{N}$ and for any path $P$ producible by $T^{(\para,\parb)}$, if there exists $1\leq i \leq k$ such that $G\pathy{i}\pathb{i}_0$ is a prefix of $P$ then $P_0$ is its southernmost and westernmost tile and its height is $h_{i}-1$ and its width is bounded by $(i+1)n-1$.
\end{lemma}

\begin{proof}
This proof is done by recurrence on $i$. For $i=1$, if $G\pathy{1}\pathb{1}_0$ is a prefix of $P$ then by Fact~\ref{lem:prefix2}, $P$ is a prefix of $\paths{1}{1}$ and thus its height is $h_1-1=3$ and its width is bounded by $2n-1$ (see Lemma \ref{lem:position}). Then the initialization of the recurrence is true. Now, consider $1\leq i \leq k-1$ such that the hypothesis of recurrence is true for all $1\leq i' \leq i$ and consider a path $P$ producible by $T^{(\para,\parb)}$ whose prefix is $G\pathy{i+1}\pathb{i+1}_0$. If $P$ is a prefix of $\dead{i+1}$ or $\deadd{i+1}{j}$ (for some $1\leq j \leq i+1$) then its height is $h_{i+1}-1$ and its width is bounded by $2n$ (see lemma \ref{lem:position}). In this case, the hypothesis of recurrence is true for $i+1$. Otherwise by fact \ref{lem:prefix3}, there exists $1\leq i'< j \leq i+1$ such that $P$ can be written as $\paths{i+1}{j}Pa$ and where $(G\pathy{i'}\pathb{i'}_0)+\vu{i+1}{j}$ is a prefix of $Pa$ then by recurrence the height of $Pa-\vu{i+1}{j}$ is $h_{i'}-1$ and its width is bounded by $(i'+1)n-1$. Thus the height of $P$ is bounded by $h_{i+1}$ and its width is bounded by $(i+2)n-1$. The recurrence is true for $i+1$.
\end{proof}

This result and fact \ref{lem:prefix1} imply that we are working on an area of the plane delimited by $0\leq x \leq (k+1)n-1$ and $0\leq y \leq h_{n+1}$ and that for any path $P$ producible by $T^{(\para,\parb)}$, its first tile is the westernmost and southernmost one.

\begin{corollary}
\label{cor:bounded}
For any $k,n \in \mathbb{N}$ and for any terminal assembly $\alpha \in \termasm{T^{(\para,\parb)}}$, the height of $\alpha$ is bounded by $h_{n+1}$ and its width is bounded by $(k+1)n-1$.
\end{corollary}

Now, we aim to assemble the largest path possible. Note that, for all $1\leq i \leq k$, the last tile of the path $\paths{i}{i}$ is at distance $n$ to the east of its first tile (this property is due to the definition of the green tiles). Thus, if we manage to glue $k$ paths together, we will obtain a path whose width is $(k+1)n-1$. This is the path we are looking for. Formally, we define the path $L^1$ as $\paths{1}{1}$ and for all $2\leq i \leq k$, we define $L^{i}$ as $\paths{i}{i}(L^{i-1}+\vu{i}{i})$. We remind that $\vu{i}{i}=(n,h_{i-1})$. Now, we show that this sequence of tiles is a path producible by $T^{(\para,\parb)}$. 

\begin{figure}
\caption{In our examples, we consider $k=4$ and $n=10$. The seed (in white) is at position $(0,0)$ and we represent the path $\paths{4}
\label{fig:def}
\end{figure}

\begin{lemma}
\label{lem:longpath}
For all $1 \leq i \leq k$, $L^i$ is a path producible by $T^{(\para,\parb)}$ of width $(i+1)n-1$.
\end{lemma}

\begin{proof}
This proof is done by recurrence on $i$. By lemma \ref{lem:producible}, $\paths{1}{1}$ is producible by $T^{(\para,\parb)}$ and the position of the tile $\pathb{1}_{n-1}$ is $(2n-1,3)$ Thus the initialization of the recurrence is true. Now, consider $1 \leq i < k$ such that the recurrence is true for $i$. By definition, $G\pathy{i}\pathb{i}_0$ is a prefix of~$L^{i}$. Then by lemma \ref{lem:prefixbound}, for any position $(x,y) \in \mathbb{N}$ occupied by a tile of $L^{i}+\vu{i+1}{i+1}$, we have $n+1\leq x \leq (i+2)n-1$ and $h_i \leq y \leq 2h_{i}-1$. By lemma \ref{lem:position}, $L^{i}+\vu{i+1}{i+1}$ is west of $\pathy{i+1}$ and $\pathp{i+1}$, north of $G$ and south of $\pathb{i+1}$ and thus $L^{i}+\vu{i}{i}$ neither intersects $\paths{i+1}{i+1}$ nor the seed. By recurrence $L^{i}$ is a path producible by $T^{(\para,\parb)}$ and thus $\paths{i+1}{i+1}(L^{i}+\vu{i}{i})$ is also a path producible by $T^{(\para,\parb)}$. Finally, the width of $\paths{i}{i}$ is $(i+1)n-1$ by recurrence and then the width of $L^{i+1}$ is $(i+2)n-1$.
\end{proof}

\begin{lemma}
\label{lem:alwayshere}
For any $k,n \in \mathbb{N}$ and for any terminal assembly $\alpha \in \termasm{T^{(\para,\parb)}}$, $L^{k}$ is a subassembly of $\alpha$.
\end{lemma}

\begin{proof}
Consider the following hypothesis of recurrence for $1\leq i \leq k$: "Consider a path $P$ producible by $T^{(\para,\parb)}$, if there exists  $1\leq i' \leq i$ such that  $G\pathy{i'}\pathb{i'}_0$ is prefix a $P$ then there is no conflict between $L^{i}$ and $P$". By fact \ref{lem:prefix2}, if $G\pathy{1}\pathb{1}_0$ is a prefix of $P$ then $P$ is a prefix of $\paths{1}{1}=L^{1}$ and the recurrence is true for $i=1$. Now suppose that the recurrence is true for $1\leq i < k$. 
By definition, $G\pathy{i}\pathb{i}_0$ is a prefix of~$L^{i}$. Then by lemma \ref{lem:prefixbound}, for any position $(x,y) \in \mathbb{N}$ occupied by a tile of $L^{i}+\vu{i+1}{i+1}$, we have $h_i \leq y \leq 2h_{i}-1$. Consider a path $P$ producible by $T^{(\para,\parb)}$ such that $G\pathy{i'}\pathb{i'}_0$ is prefix of $P$ for some $1\leq i' \leq i$. To prove the recurrence for $i+1$, we have to study five cases which are illustrated in Figure \ref{}. Firstly, if $i'<i$ then by lemma \ref{lem:prefixbound}, $P$ is south of $L^{i}+\vu{i+1}{i+1}$. Also, $P$ is south of the suffix of $\paths{i+1}{i+1}$ obtained by removing the prefix $G\pathy{i'}$ to $\paths{i+1}{i+1}$. Thus, there is no conflict between $P$ and $L^{i+1}$ in this case. Secondly, suppose that $P$ is a prefix of $\dead{i+1}$ then $\paths{i+1}{i+1}$ is a prefix of both $L^{i+1}$ and $\dead{i+1}$. Also, $L^{i}+\vu{i+1}{i+1}$ is north of the suffix of $\dead{i+1}$ obtained by removing the prefix $\paths{i+1}{i+1}$ to $\dead{i+1}$. Thus, there is no conflict between $P$ and $L^{i+1}$ in this case. 
Thirdly, if there exists $1\leq j < i+1$ such that $\paths{i}{j}(G_0+\vu{i}{j})$ is a prefix of $P$. Then, $\paths{i+1}{j}$ is a prefix of both $L^{i+1}$ and $P$. Moreover, $P$ can be written as $\paths{i+1}{j}Pa$ where $Pa-\vu{i}{j}$ is producible by $T^{(\para,\parb)}$. Thus by lemma \ref{lem:prefixbound}, $Pa_0$ is the southernmost tile of $Pa$. Then for any position $(x,y) \in \mathbb{N}^2$ occupied by a tile of $Pa$, we have $y\geq h_{i+1}-h_{j}+h_{j-1} \geq h_{i+1}-h_{i}+h_{i-1}\geq 2h_i$. Then $Pa$ is north of $L^{i}+\vu{i+1}{i+1}$. Also, $Pa$ is north of the suffix of $\paths{i+1}{i+1}$ obtained by removing the prefix $\paths{i+1}{j}$ to $\paths{i+1}{i+1}$. Thus, there is no conflict between $P$ and $L^{i+1}$ in this case.
Fourthly, suppose that $P$ is prefix of $\deadd{i+1}{i+1}$ then $\paths{i+1}{i+1}(G\pathy{i})+\vu{i+1}{i+1}$ is a prefix of both $\deadd{i+1}{i+1}$ and $L^{i+1}$. Also, $L^{i}+\vu{i+1}{i+1}$ is south of the suffix of $\deadd{i+1}{i+1}$ obtained by removing the prefix $\paths{i+1}{i+1}(G\pathy{i})+\vu{i+1}{i+1}$ to $\deadd{i+1}{i+1}$. Thus, there is no conflict between $P$ and $L^{i+1}$ in this case. Fifthly, if $P$ does no match the previous cases, then by fact \ref{lem:prefix3}, there exists $1\leq i' <i+1$ such that $P$ can be written as $\paths{i+1}{i+1}Pa$ where $(G\pathy{i'})+\vu{i+1}{i+1}$ is a prefix of $Pa$. Since $i<i+1$ then by recurrence, there is no conflict between $Pa-\vu{i+1}{i+1}$ and $L^{i}$. Since $\paths{i+1}{i+1}$ is prefix of $P$ and $L^{i+1}$ then there is no conflict between $P$ and $L^{i+1}$ in this final case. Thus the recurrence is true and for any path $P$ producible by $T^{(\para,\parb)}$, if there exists  $1\leq i \leq k$ such that  $G\pathy{i}\pathb{i}_0$ is prefix a $P$ then there is no conflict between $L^{k}$ and $P$. Since $G\pathy{k}$ is a prefix of $L^{k}$ then by fact \ref{lem:prefix1}, the lemma is true. 
\end{proof}

\begin{figure}
\caption{Graphical representation of the step of recurrence of the proof of Lemma \ref{lem:alwayshere}
\label{fig:proof:stable}
\end{figure}

\subsection{Conclusion of the proof}
\label{sec:conc}

Now, we obtain our main result by setting the parameters $k$ and $n$ correctly and by combining the main results of the previous section (corollary \ref{cor:bounded} and lemmas \ref{lem:longpath} and \ref{lem:alwayshere}).

\begin{lemma}
\label{lem:pathlog}
For all $k \in \mathbb{N}$, there exists a path $P$ producible by a tile assembly system $(\mathcal{T},\sigma,1)$ such that:
\begin{itemize}
\item the size of $\mathcal{T}$ is $8h_k-h_{k-1}-1$;
\item the width of $P$ is $\Theta(|\mathcal{T}| \log_3 (|\mathcal{T}|))$;
\item for any terminal assembly $\alpha \in \termasm{\mathcal T}$, the width and height of $\alpha$ are bounded by $\Theta(|\mathcal{T}| \log_3 (|\mathcal{T}|))$ and $\asm{P}$ is a subassembly of $\alpha$.
\end{itemize} 
\end{lemma}

\begin{proof}
Consider $k,n \in \mathbb{N}$ and the tile assembly system $T^{(\para,\parb)}$, its set of tile types is made of:
\begin{itemize}
\item $1$ tiles types for the seed;
\item $n+2$ green tiles types;
\item $h_k-2$ orange tile types;
\item $2n$ blue tile types;
\item $h_k-h_{k-1}-2$ red tile types.
\end{itemize}
Thus, we have $|\mathcal{T}^{(\para,\parb)}|=3n+2h_k-h_{k-1}-1$. By setting $n=2h_k$, we obtain that $|\mathcal{T}^{(\para,\parb)}| = 8h_k-h_{k-1}-1 \leq 4n$. Moreover, a simple induction shows that for any $k \geq 3$, we have $h_{k}\leq 3^k$. Thus, if $k\geq 3$ then $k \geq \log (n)-1$. Now, this theorem is a corollary of corollary \ref{cor:bounded}, lemma \ref{lem:longpath} and lemma \ref{lem:alwayshere}.
\end{proof}

\section{Conclusion, perpectives and open questions.}

We have shown that there exists no $2D$ pumping lemma with a linear bound according the size of the tile set for tile assembly system at temperature $1$. This result hints that this model is more complex model than initially thought. In \cite{pumpability}, the authors show a $2D$ pumping lemma with a non linear bound. Finding the exact bound is an open question. Also, we conjecture that tile assembly systems are not able to do computation at temperature $1$. Remark that these two conjectures are different. Deducing that automaton are not able to simulate Turing machine is a direct corollary of the classical pumping lemma. This is not the case for tile assembly system at temperature $1$. Indeed, some tiles may be attached to a periodic infinite path and start doing some computation. In \cite{Doty-2011}, the authors have shown that the existence of a $2D$ pumping lemma implies that directed tile assembly system (such tile assembly system have only one terminal assembly) are not able to do computation at temperature $1$. This result requires several pages and no generalization of this result is currently known. An other improvement of our result would be to modify the tile set of this paper in order to get a directed tile assembly system. Also remark that combining \cite{pumpability} and \cite{Doty-2011} means that directed tile assembly system cannot do computation at temperature $1$.

\begin{figure}
\caption{A terminal assembly of $T^{(\para,\parb)}
\label{fig:terminal}
\end{figure}

\section*{Acknowledgments}

We would like to thank Damien Woods for invaluable discussions, comments, and suggestions.

\end{document}