Reliable Cellular Automata with Self-Organization
Peter G\'acs
In a probabilistic cellular automaton in which all local transitions have positive probability, the problem of keeping a bit of information indefinitely is nontrivial, even in an infinite automaton. Still, there is a solution in 2 dimensions, and this solution can be used to construct a simple 3-dimensional discrete-time universal fault-tolerant cellular automaton. This technique does not help much to solve the following problems: remembering a bit of information in 1 dimension; computing in dimensions lower than 3; computing in any dimension with non-synchronized transitions. Our more complex technique organizes the cells in blocks that perform a reliable simulation of a second (generalized) cellular automaton. The cells of the latter automaton are also organized in blocks, simulating even more reliably a third automaton, etc. Since all this (a possibly infinite hierarchy) is organized in ``software'', it must be under repair all the time from damage caused by errors. A large part of the problem is essentially self-stabilization recovering from a mess of arbitrary size and content. The present paper constructs an asynchronous one-dimensional fault-tolerant cellular automaton, with the further feature of ``self-organization''. The latter means that unless a large amount of input information must be given, the initial configuration can be chosen homogeneous.
amp.tex
\section {Amplifiers} \label{s.amp}

  In the present section, when we talk about media without qualification we
understand robust media.

\subsection {Amplifier frames} \label{ss.frame}\index{amplifier!frame}

  The eventual goal is to find an amplifier $(M_{k},\Fg_{k})$ with a fast
decreasing sequence $\eps_{k}$ and we also want $M_{k}$ to simulate a
computation with transition function $\univ$ and damage probability bound
$\eps_{k}$.
  In this subsection, we impose some conditions on the parameters of a
sequence $(M_{k})$ of media that are sufficient for the existence of an
amplifier.
  These conditions are similar to the inequalities in the conditions
of Theorem ~\ref{t.simp-sim}.

\subsubsection{The rider fields}\label{sss.combined}\index{field!rider}
  All robust media $M_{k}$ have, by definition, the fields $\Det$ and
$\Rand$ whose behavior is governed by the computation and restoration
properties.
  Only $\Det$ will be subdivided into subfields: therefore subfields
$\eta.\Det.\F$ will be denoted simply as $\eta.\F$, without danger of
confusion.

  In the media $M^{k}$ we discuss further, there will be a shared field
called $\Rider^{k}$\glo{rider@$\Rider^{k}$} with guard field
 $\Guard^{k}$\glo{guard@$\Guard^{k}$} (see Subsection ~\ref{ss.amp.tkdn}).
  The useful computation of $M_{k}$ will be carried out on the ``active
level'' $k$, on the track $\Rider^{k}$.
  The simulations will have sufficient freedom in the rule governing
$\Rider^{k}$ on the active level to regain the universality lost by having no
``program'' for the whole simulation (as discussed in Subsection
~\ref{ss.trouble}).
  We will say that in a robust medium $M$, the transition function
$\trans$, with state set $\SS$, is
 \df{combined}\index{transition function!combined} from the rider transition
function $\var{Rd-trans}$\glo{rd-trans@$\var{Rd-trans}$} and simulation transition
function $\var{Sim-trans}$ with fields $\Rider$ and $\Guard$, if the value
$s=\trans(\br)$ is defined in the following way.
  If $\var{Sim-trans}(\br)=\Vac$ then $s=\Vac$.
  Otherwise, all fields of $s$ disjoint from $s.(\Rider\cup\Guard)$
are defined by $\var{Sim-trans}(\br)$.
  Further
 \begin{equation}\label{e.combined}
 \begin{aligned}
    s.\Rider &= \begin{cases}
  \var{Rd-trans}({\br}).\Rider          &\text{if $r_{0}.\Guard=0$,}
\\  \var{Sim-trans}({\br}).\Rider   &\text{otherwise,}
  \end{cases}
\\  s.\Guard &= \begin{cases}
  \var{Rd-trans}({\br}).\Guard          &\text{if $r_{0}.\Guard\ge 0$,}
\\  \var{Sim-trans}({\br}).\Guard   &\text{otherwise.}
  \end{cases}
 \end{aligned}
 \end{equation}
  Thus, the rider field is controlled by its own transition function only
when the simulation does not command to eliminate the cell, and when we are
on the active level according to the guard field.
  The guard field will be controlled by its own transition function in
case we are not below the active level (where the simulation
transition function will enforce the broadcast property for it).


\subsubsection{Broadcast amplifier frames}\label{sss.brc-fr}
 \index{amplifier!frame!broadcast}
  The string $\var{prog}$ will be called a
 \df{uniform program (with complexity coefficient
$c$)}\index{program!uniform} for the functions $f_{k}$ if there is some
constant $c$ such that it computes on the universal computing medium
$\univ$ the value $f_{k}({\br})$ from $k,{\br}$ with space- and
time-complexities bounded by $c(\log k + |\br|)$ where $|\br|$ is the total
number of bits in the arguments $\br$.
  If a sequence $(f_{k})$ of functions has a uniform program it is called
\df{uniform}.
  As a special case, a sequence of constants $c_{k}$ is uniform if it is
computable with space- and time complexities $c\log k$ from the index $k$.

  Here, and always from hence, when we refer to a natural number $k$
as a binary string we always mean its standard binary representation.
  We will distinguish the simpler notion of a ``broadcast amplifier
frame'' from the full-featured ``amplifier frame''.
  The simpler notion is sufficient for the basic non-ergodicity
result.
  A broadcast amplifier frame $\Frame$\glo{frame@$\Frame$} is given by
sequences%
 \glo{cap@$\cp_{k}$}%
 \glo{q.cap@$Q_{k}$}%
 \glo{u.cap@$U_{k}$}%
 \[
  \cp_{k}, Q_{k}, U_{k},
 \]
  and the constant $\rep_{0}$\glo{r.cap@$\rep_{0}$} satisfying certain
conditions.
  Here, $Q_{k}$ is the number of cells in a colony.
  For an appropriate sequence $\nu_{k}\ge 1$\glo{n.greek@$\nu_{k}$}, the number
of dwell periods in a work period will be allowed to vary between
$U_{k}/\nu_{k}$ and $U_{k}\nu_{k}$.
  Given a frame $\Frame$, let us define some additional
parameters as follows, with some arbitrary positive initial constants
$\Tu_{1}\ge \Tl_{1}$ and $\eps=\eps_{1},\eps'_{1}<1/\rep_{0}^{2}$.%
 \glo{t.cap@$\Tl,\Tu$}%
 \glo{b.cap@$B_{k}$}%
 \glo{e.greek@$\eps_{k},\eps'_{k},\eps''_{k}$}%
 \begin{equation}\label{e.addit-param}
 \begin{aligned}
     \SS_{k}     	&= \{0,1\}^{\cp_{k}},
 \\   B_{k}	&= \prod_{i<k} Q_{i},
 \\  \nu_{k}    &= 1+\rep_{0}Q_{k}/U_{k}\text{ if }\Tl_{1}\ne\Tu_{1},
 \text{ and 1 otherwise}.
 \\ \Tl_{k}	&= \Tl_{1}\prod_{i=1}^{k-1}U_{i}/\nu_{i},
 \\ \Tu_{k}	&= \Tu_{1}\prod_{i=1}^{k-1}U_{i}\nu_{i},
 \\  \eps_{k+1}	&= 25(Q_{k}U_{k}\nu_{k}\eps_{k})^{2} ,   
 \\  \eps''_{k}	&= 4Q_{k}U_{k}\nu_{k}\eps_{k}, 
 \\  \eps'_{k}  &= \eps'_{1}+\sum_{i=1}^{k-1}\eps''_{i}. %?
 \end{aligned}
 \end{equation}
 The formula for $\eps_{k+1}$ is natural in view of Lemma
~\ref{l.sim-damage}.
  The definition of $\eps'_{k+1}$ takes into account the limited
ability to simulate a coin-toss with the help of other coin-tosses.
  $\eps''_{k}$ is used for the error-correction property: it is essentially
the probability that there is any $k$-level damage at all during the work
period of a colony of $k$-cells.
  The requirements below defining an amplifier frame can be compared
to the corresponding conditions for Theorem ~\ref{t.simp-sim}.

  An object $\Frame$ given by the above ingredients is a
 \df{broadcast amplifier frame} if the conditions listed below hold.
 \begin{description}

  \item[Complexity Upper Bounds]\index{upper@Upper Bound!Complexity}
  All parameters in $\Frame$ are uniform sequences with complexity
coefficient $\rep_{0}$;

  \item[Bandwidth Lower Bound]\index{lower@Lower Bound!Bandwidth}
  We should be able to deal with numbers comparable to the size of the
colony and the work period within a cell:
  \begin{equation}\label{e.cp-lb}
  \cp_{k} \ge \rep_{0}\log U_{k};
 \end{equation}

  \item[Capacity Lower Bound]\index{lower@Lower Bound!Capacity}
  The colony must represent the state of the big cell with redundancy:
 \begin{equation}\label{e.Qbd-brc} 
  \rep_{0}\cp_{k+1} \le Q_{k}\cp_{k}.
 \end{equation}

  \item[Work Period Lower Bound]\index{lower@Lower Bound!Work Period}
  There must be enough dwell periods in a work period to perform
the necessary computations of a simulation, with some repetitions:
 \begin{equation}\label{e.Ubd-brc} 
   U_{k} \ge  \rep_{0}(\log Q_{k} + \log k) Q_{k}.
 \end{equation}
  The factor $\log Q_{k}+\log k$ is needed only for technical reasons, in
the proof of self-organization.


  \item[Error Upper Bound]\index{upper@Upper Bound!Error}
  The following upper bound on $Q_{k}U_{k}$ implies, in view of the
definition of the error probabilities, that these decrease exponentially:
 \begin{equation}\label{e.error-ub}
  \eps_{k}^{0.2} \le \rep_{0}/Q_{k}U_{k}.
 \end{equation}

 \item[Time Stability]\index{condition@Condition!Time Stability}
 \begin{equation}\label{e.lg-less-3}
  \frac{\Tu_{k}}{\Tl_{k}}\le 3.
 \end{equation}
  This inequality (which is made this strong for simplicity) can be
achieved e.g.~ with $U_{k}\ge ck^{2}Q_{k}$ for some sufficiently large
$c$.

 \end{description}
  The definition of $\eps_{k+1}$ and ~\eqref{e.lg-less-3}, implies
 \[
 \eps_{k+1}= 25(Q_{k}\Tu_{k+1}/\Tu_{k})^{2}\eps_{k}^{2}
 \le 25(2Q_{k}U_{k})^{2}\eps_{k}^{2} \le 32\eps_{k}^{1.6}/(\rep_{0})^{2}
 \le \eps_{k}^{1.5}
 \]
  hence
 \begin{equation}\label{e.exp-error}
  \eps_{k}\le\eps^{1.5^{k-1}}.
 \end{equation}
  From here, it is easy to see that $\eps''_{k}$ also converges to 0 with
similar speed.

 \begin{example}\label{x.brc-amp-fr}
  Let us choose for some $c\ge 1$
 \begin{equation}\label{e.brc-amp-fr}
 \begin{aligned}
           \Tl_{1} &= 1  ,
 \\        \Tu_{1} &= 2  ,
 \\          Q_{k} &= c^{2} k^{2} ,
 \\          U_{k} &= c^3 k^{4} ,
 \\       \cp_{k}  &= c (\log k \V 1).
 \end{aligned}
 \end{equation}
  Conditions ~\eqref{e.cp-lb} and \eqref{e.Ubd-brc} are satisfied for large
$c$.

  There is a slightly better bound on $\eps_{k}$ here than in
~\eqref{e.exp-error}.
 \begin{equation}\label{e.eps_{k}-spec-rec}
 \eps_{k+1} \le 25(2Q_{k}U_{k})^{2}\eps_{k}^{2}
    = 32 c^{10}k^{12} \eps_{k}^{2}.
 \end{equation}
  Let us prove, by induction, for small enough $\eps$,
 \begin{equation}\label{e.eps_{k}-superex}
   \eps_{k} \le \eps^{2^{k-2} + (k+1)/4}.
 \end{equation}
  For $k=1$, the statement gives $\eps\le\eps$.
  For $k>1$, using ~\eqref{e.eps_{k}-spec-rec} and the inductive
assumption,
 \[
   \eps_{k+1} \le \eps^{2^{k-1} + (k+1)/2} 32 c^{10}k^{12}
 = \eps^{2^{k-1} + (k + 2)/4} (32 \eps^{k/4} c^{10}k^{12}).
 \]
  For small enough $\eps$, the last factor is less than 1.
 \end{example}


 \subsubsection{Amplifier frames}\label{sss.amp-fr}
  The above definitions must be modified for the notion of an amplifier
frame, (not needed for the basic non-ergodicity result).
  An amplifier frame $\Frame$ is given by the same sequences as a broadcast
amplifier frame, and some additional sequences
 \[
   q_{k}, \bw_{k}, \var{Rd-trans}_{k}(), \Output^{k}, \rep_{1}(k).
 \]
  Here, $\var{Rd-trans}_{k}()$ describes a rider transition function with
bandwidth $\le\bw_{k}$, the field $\Rider^{k}$ has subfield $\Output^{k}$ on
which this function has monotonic output, and the number $\rep_{1}(k)$ is a
redundancy coefficient.
  Each cell will have space%
 \glo{b.cap@$B'_{k}$} 
 \[
    B'_{k}              = \prod_{i<k} q_{i}
 \]
  for the represented information.
  An object $\Frame$ given by the above ingredients is an
 \df{amplifier frame}\index{amplifier!frame} if the conditions listed
below hold.
 \begin{description}

  \item[Complexity Upper Bounds]\index{upper@Upper Bound!Complexity}
  The sequence $\var{Rd-trans}_{k}^{(\bw_{k})}()$ of functions (see
~\eqref{e.bandwidth}) and all other parameters in $\Frame$ are uniform
sequences with complexity coefficient $\rep_{0}$;

  \item[Bandwidth Lower Bound]\index{lower@Lower Bound!Bandwidth}
  We should be able to deal with numbers comparable to the size of the
colony and the work period within the time and space bound $\bw_{k}$:
  \begin{equation}\label{e.bw-lb}
  \bw_{k} \ge \log U_{k};
 \end{equation}

  \item[Redundancy Lower Bound]\index{lower@Lower Bound!Redundancy}
  The redundancy must help duplicate the content of at least a certain
constant number of cells:
 \begin{equation}\label{e.redun-lb}
   \rep_{1}(k) \ge \rep_{0}/Q_{k}.
 \end{equation}

  \item[Capacity Lower Bounds]\index{lower@Lower Bound!Capacity}
  The capacity $\cp_{k}$ of a cell should accomodate all the original
information $2B'_{k}$ (2 bits per primitive cell).
 \begin{equation}\label{e.cp_{k}}
  2B'_{k} \le \cp_{k}.
 \end{equation}
  The colony must represent the state of the big cell with redundancy.
  It also needs extra space for computing with a few bandwidths of
information of the big cell.
 \begin{equation}\label{e.Qbd} 
  (1+\rep_{1}(k))\cp_{k+1} + \rep_{0}\bw_{k+1} \le Q_{k}\cp_{k}.
 \end{equation}

  \item[Work Period Lower Bound]\index{lower@Lower Bound!Work Period}
  There must be enough dwell periods in a work period to perform the
necessary computations of a simulation:
 \begin{equation}\label{e.Ubd} 
   U_{k} \ge \rep_{0} Q_{k}(\frac{\cp_{k}}{\bw_{k}} + \log Q_{k} + \log k)
 \end{equation}
  It costs $Q\cp_{k}/\bw_{k}$ to perform $Q$ steps of simulated computation
of $\univ$ when each track of size $\bw_{k}$ must be worked separately.
  The other terms in the parentheses are typically of lower order and are
needed only for technical reasons, in the proof of self-organization.

  \item[Error upper bound, Time stability]
  These conditions are the same as the ones for broadcast amplifier frames.

 \end{description}
  The inequality ~\eqref{e.Qbd} has the following consequences, similar to 
~\eqref{e.no-stretch}:

 \begin{lemma}\label{e.no-stretch-2}
 \begin{align*}
   \sum_{k} \rep_{1}(k)\frac{\cp_{k+1}}{B_{k+1}} < \infty,
\\ \sum_{k} \frac{\bw_{k+1}}{B_{k+1}} <\infty.
 \end{align*}
 \end{lemma}
  Thus, as expected, if we have constant space redundancy, i.e.~
$\cp_{k+1}/B_{k+1}$ is bounded away from 0 then
$\sum_{k}\rep_{1}(k)<\infty$, i.e.~ the redundancies of each level form a
converging series.
  This will then impose, via ~\eqref{e.Ubd}, a lower bound on the time
redundancy achievable by these amplifiers.
%
 \begin{proof}
  Inequality ~\eqref{e.Qbd} can be rearranged as
 \begin{equation}\label{e.Qbd-small-bw}
  \rep_{1}(k)\frac{\cp_{k+1}}{B_{k+1}} +
  \rep_{0}\frac{\bw_{k+1}}{B_{k+1}} \le
    \frac{\cp_{k}}{B_{k}} - \frac{\cp_{k+1}}{B_{k+1}}.
 \end{equation}
 \end{proof}

  Let us remind the reader that the constructions involving the Rider and
Guard fields are not needed for the simple non-ergodicity results.
\begin{example} \label{x.amp-fr}
  Let us choose for some $c\ge 1$
 \begin{equation}\label{e.amp-fr}
 \begin{aligned}
          \Tl_{1} &= 1,
\\        \Tu_{1} &= 2,
\\          Q_{k} &= c^{2} k^{2},
\\        q_{k} &= Q_{k},
\\  \rep_{1}(k) &= c/Q_{k}=1/(ck^{2}),
\\          U_{k} &= c^{3}k^{4} = cQ_{k}/\rep_{1}(k),
\\        \bw_{k} &= \rep_{1}(k)B_{k},
\\      \cp_{k} &= 2B_{k}(1+1/k).
 \end{aligned}
 \end{equation}
  The transition function $\var{Rd-trans}_{k}$ will be the aggregated
function $\trans_{\univ}^{\bw_{k}}$ as defined in Example
~\ref{x.sim.aggreg}.
  This satisfies the required complexity bounds.
  Conditions ~\eqref{e.bw-lb} and \eqref{e.redun-lb} are satisfied with
large $c$.
  Condition ~\eqref{e.cp_{k}} is satisfied by the definition of $\cp_{k}$.
  It is easy to check that ~\eqref{e.Qbd} also holds with large $c$.
  Condition ~\eqref{e.Ubd} will be satisfied with large $c$.
  The error upper bound is satisfied just as for the broadcast
amplifier example, and we have ~\eqref{e.eps_{k}-superex} again.

  The parameters of this example are chosen for constant space redundancy,
at the price of time redundancy that comes as an extra factor of
$\cp_{k}/\bw_{k}$ at every level.

  For later reference, here is an explicit expression falling between
$\Tl_{k}$ and $\Tu_{k}$:
 \begin{equation}\label{e.Tu-expl}
   \prod_{i < k} U_{i} = c^{3(k-1)}((k-1)!)^4 = e^{4k\log k + O(k)}.
 \end{equation}
  The expression for $B_{k}$ is similar.
 \end{example}


\subsection {The existence of amplifiers} \label{ss.MainLemma}

  We give a separate, simpler track of definitions for broadcast
amplifiers.
  A \df{(uniform) broadcast amplifier}\index{amplifier!broadcast} is given
by a broadcast amplifier frame $\Frame$, uniform sequences
$(\var{Sim-trans}_{k})$,
 $(M_{k},\Fg_{k})_{k\ge 1}$\glo{f.greek.cap@$\Fg_{k}$}
 with $\Fg_{k}=(\Fg_{k}^{*},\fg_{k*})$ as defined in Subsection
~\ref{ss.gen-sim} and a uniform sequence of codes $\fg_{k**}$ with a
sequence of fields $(\F^{k})$ such that
 \begin{cjenum}

  \item
 \begin{equation}\label{e.M_{k}}
  M_{k}=\Rob(\trans_{k},B_{k},\Tl_{k},\Tu_{k},\eps_{k},\eps'_{k});
 \end{equation}

  \item $(\F^{k})$ forms a broadcast field for both $(\fg_{k*})$ and
$(\fg_{k**})$, as defined in Subsection ~\ref{ss.amp.tkdn};

  \item Simulation $\Fg_{k}$ has $\eps''_{k}$-error-correction for
$\fg_{k**}$;

  \item The damage map of the simulation $\Fg_{k}$ is defined as in
Subsection ~\ref{ss.rob.damage}.

 \end{cjenum}
  (The last condition explains the definition of $\eps_{k+1}$.)
  With Lemma ~\ref{l.sim-damage}, it will imply the Restoration Property
for the simulated trajectory.

  The following definition is not needed for the simple non-ergodicity
result: 
  A \df{(uniform) amplifier} is given by an amplifier frame $\Frame$,
uniform sequences $(\var{Sim-trans}_{k})$,
$(\Rider^{k})$\glo{rider@$\Rider^{k}$},
$(\Guard^{k})$\glo{guard@$\Guard^{k}$},
 a hierarchical code%
 \glo{ps.greek.cap@$\Psi$}%
 \begin{equation}\label{e.unif-amp}
  \Psi=(\SS_{k},Q_{k},\fg_{k*},\Rider^{k},q_{k},\gg_{k},a_{k})_{k\ge 1}
 \end{equation}
 as in ~\ref{e.shared} and an amplifier $(M_{k},\Fg_{k})_{k\ge 0}$ where
$\Fg_{k}=(\Fg_{k}^{*},\fg_{k*})$ is defined as in Subsection
~\ref{ss.gen-sim}, and a sequence of codes $\fg_{k**}$ and fields
$\Guard^{k}$ such that
  \begin{cjenum}

  \item $(\Rider^{k})$, and $(\Guard^{k})$ form a guarded shared field for
$(\fg_{k*})$, $(\fg_{k**})$, as defined in Subsection ~\ref{ss.amp.tkdn};

  \item the damage map of the simulation $\Fg_{k}$ is defined as in
Subsection ~\ref{ss.rob.damage};

  \item $\trans_{k}$ is combined from $\var{Rd-trans}_{k}$ and
$\var{Sim-trans}_{k}$, with fields $\Rider^{k}$, $\Guard^{k}$;

  \item $M_{k}$ is as in ~\eqref{e.M_{k}};

  \item $\Fg_{k}$ has $\eps''_{k}$-error-correction for $\fg_{k**}$;

 \end{cjenum}
  Most of our effort will be devoted to proving the following lemma.

\begin{lemma}[Amplifier] \label{l.amp}\index{lemma@Lemma!Amplifier}
  Every (broadcast) amplifier frame $\Frame$ with large enough $\rep_{0}$
can be completed to a uniform (broadcast) amplifier.
 \end{lemma}


\subsection{The application of amplifiers}

 \begin{proof}[Proof of Lemma~\protect\ref{l.abstr-amp}]
  We will actually prove the more general variable-period
variant of the lemma, with $T_{k}=\Tl_{k}$.

    Let us define a broadcast amplifier frame $\Frame$ e.g.~as in
Example ~\ref{x.brc-amp-fr}.
  Applying the Amplifier Lemma in the broadcast case, we obtain a
broadcast amplifier with media $M_{k}$ as in ~\eqref{e.M_{k}} with a
hierarchical code having a broadcast field $(\F^{k})$ for both
$(\fg_{k*})$ and $(\fg_{k**})$.
  Let us denote the whole system of code and the broadcast field (with the
additional mappings $\gg_{k}$) by $\Psi$ as in ~\eqref{e.primi-shared}.
  For any value $u_{1}$ of the field $\F^{1}$, we create an initial
configuration $\eta^{1}(\cdot,0)=\Gg(u_{1};\Psi)$ as in
~\eqref{e.Gg.primi}.

  Then all properties but the initial stability property of an abstract
amplifier (defined in Lemma ~\ref{l.abstr-amp}) are satisfied by
definition.
  For the initial stability property it is sufficient to note that each
medium $M_{k}$ is a robust medium, with work period lower bound $\Tl_{k}$.
  Therefore, if $\eta^{k}$ is a trajectory of $M_{k}$ and $t<\Tl_{k}$ then
for each $x$ the probability that $\eta^{k}(x,t)\ne\eta^{k}(x,0)$ is less
than the probability that damage occurs in $\{x\}\times[0,\Tl_{k}]$.
  This can be bounded by the Restoration Property.
 \end{proof}

 \begin{Proof}[Proof of Theorem ~\protect\ref{t.1dim.stor.var}]\ 
 \begin{step+}{1dim.stor.var.analog}
  This proof starts analogously to the proof of Lemma ~\ref{l.abstr-amp}.
 \end{step+}
  \begin{prooof}
  Let us define an amplifier frame $\Frame$ as in Example ~\ref{x.amp-fr},
with the rider transition function having the property
 \[
  \var{Rd-trans}_{k}(\br)=r_{0},
 \]
  i.e~leaving all fields (in particular, the rider and guard
fields) unchanged.
  Applying the Amplifier Lemma, we obtain a uniform amplifier with media
$M_{k}$ as in~\eqref{e.M_{k}} with a hierarchical code having a guarded
shared field $\Rider^{k}$ with guard field $\Guard^{k}$ as in
~\eqref{e.unif-amp}.
  Let $K$  be largest with $B_{K}\le N$.
  For any infinite configuration $\rg\in (\SS_{1}.\Rider^{1})^{\ZZ}$, we
create an initial configuration $\eta^{1}(\cdot,0)=\Gg(\rg)$ with a guarded
shared field $(\F^{k},\Guard^{k})$, with active level $K$.
  As mentioned after ~\eqref{e.Gg.shared}, if $N$ is finite then
$\Gg(\rg)=\Gg(\rg;K)$.
  Let the trajectories $\eta^{1}$, $\eta^{k}$ be defined as before.
  Then we will  have $\eta^{k}(x,0).\Guard^{k}=-1$ for all $x$, for $k<K$
and $\eta^{K}(x,0).\Guard^{K}=0$.

  Let $x_{1}=\X(y)$ for a $y$ in $\var{Visible}(K(N),N)$ (since the code
was chosen such that $|\var{Visible}(K(N),N)|=N$, this is not really a
restriction on $y$), and let $t_{1}\ge 0$.
  Remember the definition of the aggregated input configurations
$\rg^{k}$ in~\eqref{e.rg^{k}} and of $\X(y,i;k)$ in~\eqref{e.shared.X^{i}}.
  Eventually, we want to estimate the probability of
$\rg(y)=\eta^{1}(\X(y),t_{1}).\Rider^{1}$ but we will use a generalization
corresponding to~\eqref{e.X-y-i}.
  Let
 \[
  x_{k}=o_{k}+\X(y,k),\   x'_{k}=o'_{k}+\X'(y,k)
 \]
 $1\le k \le K$, then~\eqref{e.X-i-prop} shows that $x_{k+1}$ is a cell of
$\eta^{k+1}(\cdot,0)$ whose body contains $x_{k}$ with address $y'_{k}$
where $y'_{k}$ was defined before ~\eqref{e.shared.X^{i}}.
  Let $\cF_{k}$ be the event that
 \begin{equation}\label{e.stor.goal.k}
 \eta^{k}(x_{k},t).\Rider^{k}  =  \rg^{k}(x'_{k})
 \end{equation}
 and $\eta^{k}(x_{k},t).\Guard^{k} = -1$ holds for $t$ in
$[t_{1}-\Tl_{k}/3, t_{1}]$.
 \end{prooof}

  \begin{step+}{1dim.stor.var.F-k}
  We have $\Prob\setof{\cF_{k+1}\cap\neg\cF_{k}}\le\eps''_{k}$.
 \end{step+}
  \begin{pproof}
  Assume $\cF_{k+1}$.
  Then, according to the error-correction property, except for an event of
probability $\le \eps''_{k}$, for every $t$ in $[t_{1}-\Tl_{k}/3,  t_{1}]$
there is a $t'$ in $[t_{1}-\Tl_{k+1}/3,t]$ with
 \[
 \eta^{k}(x_{k}, t).\Rider^{k}\succeq
   \fg_{k**}(\eta^{k+1}(x_{k+1},t'))(y'_{k}).\Rider^{k}.
 \]
  Since $(\Rider^{i})$ is a guarded shared field and
$\eta^{k+1}(x_{k+1},t).\Guard^{k+1} =-1$ for all $t$ in
$t_{1}+[-\Tl_{k+1}/3,0]$, we can replace $\fg_{k**}$ with $\fg_{k*}$ in
the above equation.
  $\cF_{k+1}$ implies
  \[
 \eta^{k+1}(x_{k+1},t').\Rider^{k+1} = \rg^{k+1}(x'_{k+1}).
 \]
  The identification property and the aggregation property
~\eqref{e.aggreg.step} implies
 \[
 \fg_{k*}(\eta^{k+1}(x_{k+1}, t'))(y'_{k}).\Rider^{k} = \rg^{k}(x'_{k}).
 \]
  Thus, except for an event of probability $\le \eps''_{k}$, we have
$\cF_{k}$.%
\end{pproof}

  Let
 \begin{align*}
   n   &= \bigwedge\setof{k: t_{1} < \Tl_{k}/3 \text{ or } k = K},
\\ t_{2} &= t_{1}-\Tl_{n}/3.
 \end{align*}
 \begin{step+}{1dim.stor.var.infin}
  Consider the case $t_{2}<0$.
 \end{step+}
 \begin{prooof}
  By the construction and Proposition ~\ref{p.shared} the relation
~\eqref{e.stor.goal.k} holds for $k=n$, $t=0$.
  Since the duration of $[0,t_{1}]$ is less than $\Tl_{n}$ the probability
that $\eta^{n}(x_{n},t)$ undergoes any change during this interval is less
than $\eps_{n}$, proving $\Prob\setof{\neg\cF_{n}}\le\eps_{n}$.
  \end{prooof}

 \begin{step+}{1dim.store.var.fin}
  Consider the case $t_{2}\ge 0$: then $n=K < \infty$ and the space is
finite. 
 \end{step+}
 \begin{prooof}
  According to the definition of $\xi^{K}_{K}$ in ~\eqref{e.shared.xi_{k}},
and of $\eta^{1}(\cdot,0)=\xi^{K}_{1}(\cdot,0)$ in the same proof, the value
$\eta^{K}(o_{K}+yB_{K}\bmod N,0)$ is defined for $y$ in $[0,\flo{N/B_{K}}-1]$.
  Thus, at time 0 the space is filled as much as possible with
adjacent cells of $\eta^{K}$ one of which is $x_{K}$.
  The set $R=\ZZ_{N}\times[0,t_{2}]$ can be covered by at most 
 \[
  r = \cei{N/B_{K}} \cei{2 t_{2} / \Tl_{K}}.
 \]
  copies of the rectangle $V_{K}$.
  Since $\eta^{K}$ is a trajectory of the robust medium $M_{K}$, the
probability of damage on each of these rectangles is at most $\eps_{K}$.
  Therefore the probability that there is any damage in $\eta^{K}$ over
$R$ is at most $r\eps_{K}$.
  Assume that there is no damage in $\eta^{K}$ over $R$.
  Then the cling-to-life condition and the computation condition imply
that all cells of $\eta^{K}(\cdot,0)$ remain nonvacant until time $t_{2}$.
  We defined $\var{Rd-trans}_{K}()$ to leave the rider and guard fields
unchanged, and $\eta^{K}(x,0).\Guard^{K}=0$.
  Hence, by the definition of ``combined'' in Subsection
~\ref{ss.frame}, for each of these cells $z$ we have
 \[
  \eta^{K}(z,t_{2}).\Rider^{K}=\eta^{K}(z,0).\Rider^{K}
 \]
 implying ~\eqref{e.stor.goal.k} for $k=n=K$.
  Hence the total probability  upper bound is
 \[
   \sum_{k=1}^{n-1}\eps''_{k} + 3 t_{2} \eps_{K} Q_{K}
 \]
  where we used $N<B_{K+1} = B_{K} Q_{K}$.
  With the parameters of Example ~\ref{x.amp-fr}, we have
 $\eps_{k} Q_{k} \le \eps^{2^{k-2}}$ for small enough $\eps$,
and $N<B_{K+1}=e^{2K\log K + O(K)}$, hence $\eps_{K}Q_{K}$ can be written
as $\eps^{h_{2}(N)}$ with 
 \[
   h_{2}(N)= N^{c_{2}/\log\log N}
 \]
  for some constant $c_{2}$.
\end{prooof}%
\end{Proof} % 1dim.stor.var


\begin{Proof}[Proof of Theorem ~\protect\ref{t.1dim.comp.var}:]
  We proceed in analogy with the proof of Theorem
~\ref{t.1dim.stor.var} using the same notation wherever appropriate and
pointing out only what is new or different.
  We will find out by the end what choice for the functions $h_{0}(t)$
and $h_{1}(t)$ works.
  One can assume that $\trans$ is commutative in the sense of
Subsection ~\ref{ss.asynch-sim} since the methods of that subsection
can be used to translate the result for arbitrary transition
functions.
  The transition function $\var{Rd-trans}_{k}().\Rider^{k}$ on the rider track
will be defined to be the aggregated transition function
$\trans^{B'_{k}}$, as in Example ~\ref{x.sim.aggreg}, and the
$\var{Rd-trans}_{k}().\Guard^{k}$ will leave the guard field unchanged.
  With this, an amplifier frame will be obtained as in Example
~\ref{x.amp-fr}.
  The Amplifier Lemma gives a uniform amplifier with media $M_{k}$ as in
~\eqref{e.M_{k}} with a hierarchical code having a guarded shared field
$(\Rider^{k})$, $(\Guard^{k})$ as in~\eqref{e.unif-amp}.
  The parameters of that example are chosen in such a way that
$B'_{k}=B_{k}$ and therefore
 \begin{equation}\label{e.Visible-max}
   |\var{Visible}(K, N)|=N.
 \end{equation}
  Let $\zg$ be any trajectory of $\trans$ over $\ZZ$ with $\zg(\cdot,0)$ of
the form $\Init(\rg)$ (see~\eqref{e.Init}), satisfying
$2|\var{Supp}(\zg,t)|\le s$, where
 $\rg\in (\SS_{1}.\Rider^{1}.\Input)^{\ZZ}$.
  For any $s$ and $t_{1}\ge 0$, let a sufficiently large $K$ be chosen: we
will see by the end of the proof how large it must be.
  We certainly need
 \begin{equation}\label{e.faithful}
  \var{Supp}(\zg,t)\sbs\var{Visible}(K, N)
 \end{equation}
  which, in view of ~\eqref{e.Visible-max}, can be satisfied if $N\ge s/2$.
  Let $\eta^{1}(\cdot,0)=\Gg(\Init(\rg); K)$.
  The trajectories $\eta^{1}$, $\eta^{k}$ are defined as before.
  Let $x_{1}=\X(y)$ for a $y$ in $\var{Visible}(K, N)$.
  Let $\zg^{k}(x,t)$ be the trajectory of the aggregated cellular
automaton $\CA(\trans^{B'_{k}},B'_{k},B'_{k})$ with the aggregated initial
configuration $\ig_{B'_{k}*}(\zg(\cdot,0))$.
  Let
 \begin{equation}\label{e.h-t-k}
    u = |\flo{t_{2}/\Tu_{K}}-1|^{+}.
 \end{equation}
   Let $\cF_{k}$ be the event that
 \begin{equation}\label{e.comp.goal.k}
 \eta^{k}(x_{k}, t).\Rider^{k}.\Output \succeq \zg^{k}(x'_{k}, u).\Output
 \end{equation}
 and $\eta^{k}(x_{k}, t).\Guard^{k} = -1$ holds for $t$
 in $[t_{1}-\Tl_{k}/3, t_{1}]$.

  \begin{step+}{1dim.comp.var.F-k}
  We have $\Prob\setof{\cF_{k+1}\cap\neg\cF_{k}}\le\eps''_{k}$.
 \end{step+}
 \begin{pproof}
  Assume $\cF_{k+1}$.
  According to the error-correction property, except for an event of
probability $\le \eps''_{k}$, for every $t$ in $[t_{1}-\Tl_{k}/3, t_{1}]$
there is a $t'$ in $[t_{1}-\Tl_{k+1}/3,t]$ with
 \[
 \eta^{k}(x_{k},t).\Rider^{k}\succeq
   \fg_{k**}(\eta^{k+1}(x_{k+1},t'))(y'_{k}).\Rider^{k}.
 \]
  Again, we can replace $\fg_{k**}$ with $\fg_{k*}$ here.
  $\cF_{k+1}$ implies
 \[
 \eta^{k+1}(x_{k+1}, t').\Rider^{k+1}.\Output\succeq
  \zg^{k+1}(x'_{k+1}, u).\Output.
 \]
  Hence, the identification property and the aggregation property
~\eqref{e.aggreg.step} implies
 \[
 \fg_{k*}(\eta^{k+1}(x_{k+1}, t'))(y'_{k}).\Rider^{k}.\Output
  \succeq  \zg^{k}(x'_{k}, u).\Output.
 \]
  Thus, except for an event of probability $\le \eps''_{k}$, we have
 \[
 \eta^{k}(x_{k}, t).\Rider^{k}.\Output\succeq \zg^{k}(x'_{k}, u).\Output.
 \]
\end{pproof}

 \begin{step+}{1dim.comp.var.infin}
  Consider the case $t_{2}<0$.
 \end{step+}
 \begin{prooof}
  Then the statement of the theorem holds since the $\zg(\cdot,0).\Output$
is filled with $*$'s.
  \end{prooof}

 \begin{step+}{1dim.comp.var.fin}
  Consider the case $t_{2}\ge 0$: then $n=K < \infty$.
 \end{step+}
 \begin{prooof}
  According to the definition of $\eta^{1}(\cdot,0)=\xi^{K}_{1}(\cdot,0)$,
at time 0, the space is filled as much as possible with adjacent cells
of $\eta^{K}$ one of which is $x_{K}$.
  Let us define the intervals
 \begin{align*}
    I &= \bigcup\setof
  {C_{k}(y)+[0,B_{K}-1]: C'_{K}(y) \text{ is in any support of } \rg^{K}},
\\  J &= I\cap x_{1} + B_{K} (t_{2}/\Tl_{K} + 1) [-1, 1].
 \end{align*}
  The set $R=J\times[0,t_{2}]$ can be covered by at most 
 \[
   r = \cei{|J|/B_{K}}\cei{2t_{2}/\Tl_{K}} 
    < 2 (t_{2}/\Tl_{K}+2)\cei{2t_{2}/\Tl_{K}}.
 \]
  copies of the rectangle $V_{K}$.
  Since $\eta^{K}$ is a trajectory of the robust medium $M_{K}$, the
probability of damage on each of these rectangles is at most $\eps_{K}$.
  Therefore the probability that there is any damage in $\eta^{K}$ over
$R$ is at most $r\eps_{K}$.
  Assume that there is no damage in $\eta^{K}$ over $R$.
  Then the cling-to-life condition and the computation condition imply
that all cells of $\eta^{K}(\cdot,0)$ remain nonvacant until time $t_{2}$.

  We defined $\var{Rd-trans}_{k}()$ to leave $\Guard^{k}$ unchanged, and to be
the aggregated transition function $\trans^{B'_{k}}$, on $\Rider^{k}$.
  We have $\eta^{K}(x,0).\Guard^{K}=0$.
  Hence, by the definition of ``combined'' in Subsection ~\ref{ss.frame},
each cell in each of its transitions during the damage-free computation,
applies $\trans^{B'_{K}}$ to the field $\Rider^{K}$, making at least
$\flo{t_{2}/\Tu_{K}}-1$ steps.
  By ~\eqref{e.faithful}, $I$ contains the image of a support of $\rg^{K}$,
therefore the confinement to this interval does not change the result.
  Thus
 \[
 \eta^{K}(x, t_{2}).\Rider^{K}.\Output \succeq \zg^{K}(x, u).\Output,
 \]
  and thus $\cF_{K}$ holds.
  This gives a probability upper bound
 \[
   \sum_{k=1}^{\infty}
     \eps''_{k} + 2\eps_{K}(t_{2}/\Tl_{K}+2)\cei{2t_{2}/\Tl_{K}}.
 \]
  Using~\eqref{e.h-t-k} and \eqref{e.lg-less-3} (and ignoring integer parts
and the additive 1 and 2) this can be upper-bounded by
 \[
   \sum_{k=1}^{\infty} \eps''_{k} + 36\eps_{K}u^{2}.
 \]
  For small enough $\eps$, by ~\eqref{e.eps_{k}-superex}, the second term
is $\le u^{2} \eps^{2^{K-2}}$, and hence 
 \[
   K \ge h_{0}(u)=\log\log u + O(1)
 \]
  will do.
  This gives $\Tu_{K}=e^{4K\log K+O(K)} \le (\log u)^{5\log\log\log u}$
for large enough $u$ showing that
 \[
   t_{1}\ge h_{1}(u) = u(\log u)^{5\log\log\log u}   
 \]
  will do.
\end{prooof}% 
\end{Proof}% 1dim.comp.var

 \begin{remark}[Non-ergodicity without the error-correction property]
  The paper ~\cite{Gacs1dim86} mentions no explicit error-correction
property in the proof of Theorem ~\ref{t.1dim.nonerg}.
  Rather, it uses the fact that the fields $\Age$ and $\Addr$ have
a kind of automatic error-correction property.
  In this way, we indeed arrive at several different invariant
measures.
  However, one of these two measures may just be a shifted version of
the other one, allowing the medium to be ``forgetful'' in the sense of
Subsection ~\ref{ss.toom}.
 \end{remark}
 

\section{Self-organization}\label{s.sorg}

\subsection{Self-organizing amplifiers}\label{ss.amp.sorg}

  Consider a robust medium
 \begin{equation}\label{e.rob-med}
  M = \Rob(\trans^{(\bw)}, B,\Tl,\Tu,\eps,\eps',r).
 \end{equation}
  In what follows, it is convenient to speak of a distinguished value of
the field $\Color$: let it be called ``blue''\index{blue}.
  But the definitions and statements hold for every value of $\Color$.

  When a cell turns from a vacant to a non-vacant state, we can distinguish
two ways in which this can happen.
  The first one is if the cell has a time with no non-vacant neighbor
within $\Tl/2$ before the event: let us call this
 \df{spontaneous birth};\index{birth} the second one is when it
does not: let us call this \df{creation}\index{creation}.
  Under certain conditions, spontaneous births are to be prevented, since
they may give rise to the wrong kind of cell.
  One way to achieve this is to populate an area tightly with cells.

  For an interval $I$ not consisting of a point, let%
 \glo{g.greek.cap@$\Gg(I, d)$}%
 \begin{equation}\label{e.Gg-interval}
  \Gg(I, d)=\setof{x : [x - d, x + d] \cap I \ne \eset}
 \end{equation}
  We will also write $\Gg(x,d)=[x-d,x+d-]$.
  In a space-time configuration $\eta$ of $M$, a point $(x,t)$ is said to
be \df{controlled}\index{controlling} if $\Gg(x,B)\times[t-6\Tu,t]$
contains a cell.
  It is \df{blue} if all cells in this area are blue.
  A space-time set is controlled or blue if all of its points are.
  A medium has the \df{lasting control}\index{control!lasting}
property if for all of its trajectories, for all sites $x_{0}$ and times
$t_{1}<t_{2}$, with
 \[
   I=\Gg(x_{0}, ((t_{2}-t_{1})\Tu/\Tl + 4)B),
 \]
  if $I\times \{t_{1}\}$ is blue and $I\times [t_{1}-2\Tu, t_{2}]$ is
damage-free then $(x_{0},t_{2})$ is blue.
  Let $M_{1},M_{2}$ be robust media, and $\Fg$ a simulation between them. 
  We say that this simulation has \df{control delegation}
property\index{control!delegation} if the following holds for all
sites $x_{0}$ and time $t_{1}$ with
 \[
  I=\Gg(x_{0}, (8\Tu_{2}/\Tl_{2}+4)QB).
 \]
  Let $\eta$ be a trajectory of $M_{1}$.
  If $I\times \{t_{1}-8\Tu_{2}\}$ is blue in $\Fg^{*}(\eta)$ and the area
$I\times[t_{1}-16\Tu_{2}, t_{1}]$ is damage-free in $\eta$ then
$(x_{0},t_{1})$ is blue in $\eta$.

   For some parameters $D,\sg>0$, we will say that the trajectory
$(\mu,\eta)$ of medium $M$ is $(D,\sg)$-\df{blue}\index{blue!trajectory} at
time $t$ if the following holds.
  Let $I_{1},\ldots,I_{n}$ be any system of intervals of size $D$ such that
$\Gg(I_{j},D)$ are disjoint.
  Then the probability that each of the sets $I_{j}\times[t-3\Tu,t]$ is
non-blue is at most $\sg^{n}$.

  Let us be given an amplifier as in ~\eqref{e.unif-amp}, constants
$C_{1},C_{2},\kg_{1}$, and a sequence $\sg_{k}>0$ with 
 \begin{equation}\label{e.sg}
 \begin{aligned}
    \sg_{k}U_{k} &\to 0,
\\  \sg_{k+1}    &\ge
 \rep_{0}(U_{k}\eps_{k} + Q_{k}^{2}\sg_{k}^{2} + e^{-\kg_{1}U_{k}/Q_{k}}).
 \end{aligned}
 \end{equation}
  We will call this a
 \df{self-organizing amplifier}\index{amplifier!self-organizing} if the
following properties hold:
 \begin{cjenum}
  \item all media in it have the lasting control property;
  \item each of its simulations has the control delegation property;
  \item for every $k$, every time $t$, every trajectory $(\mu,\eta)$ of
$M_{k}$ that is $(C_{1}B_{k},\sg_{k})$-blue at time $t$, the trajectory
$(\mu,\Fg^{*}_{k}(\eta))$ of $M_{k+1}$ is $(C_{1}B_{k+1},\sg_{k+1})$-blue
at time $t+C_{2}\Tu_{k+1}$;
 \end{cjenum}

 \begin{example}\label{x.sorg}
  To the choices of Example ~\ref{x.amp-fr}, let us add the choice
$\sg_{k}=c^{-2}e^{-k}$.
  Let us check ~\eqref{e.sg}.
  Its right-hand side is
 \[
      c^{3}k^{4}\eps_{k} + c^{-2}k^{4}e^{-2k} + e^{-\kg_{1}ck^{2}}
 \]
  Given the bound $\eps^{1.5^{k-1}}$ on $\eps_{k}$ for $k>1$,
(see ~\eqref{e.exp-error}), this is less then $c^{-2}e^{-k}$
if $c$ is large enough and $\eps$ is small enough.
 \end{example}

  \begin{lemma}[Self-Organization]\label{l.sorg}
 \index{lemma@Lemma!Self-Organization}
  Each amplifier frame $\Frame$ with large enough $\rep_{0}$ and small
enough $\eps$ can be completed to a self-organizing amplifier with the
property that if $\var{Rd-trans}(\br).\Guard=-1$ for all $\br$ then
$\var{Sim-trans}(\br).\Guard=-1$ for all $\br$.
  \end{lemma}


\subsection{Application of self-organizing amplifiers}

\begin{Proof}[Proof of Theorem \protect\ref{t.sorg.stor}]
 \begin{step+}{sorg.stor.analog}
  This proof starts analogously to the proof of Theorem
~\ref{t.1dim.stor.var}.
 \end{step+}
  \begin{prooof}
  Let us define an amplifier frame $\Frame$ as in Example ~\ref{x.amp-fr},
with the rider transition function having the property
 \begin{align*}
    \var{Rd-trans}_{k}(\br).\Rider &= r_{0}.\Rider,
\\  \var{Rd-trans}_{k}(\br).\Guard &= -1.
 \end{align*}
  i.e.~leaving the $\Rider$ field unchanged and always setting the guard
field to $-1$.
  It will have a broadcast field $\Color$ with $m$ bits.
  Applying Lemma ~\ref{l.sorg}, we obtain a self-organizing amplifier with
media $M_{k}$ as in ~\eqref{e.M_{k}} with a hierarchical code having a
guarded shared field $\Rider^{k}$, $\Guard^{k}$.
  Also, we will have $\var{Sim-trans}(\br).\Guard=-1$ for all $\br$.
  Let
 \[
  K=\sup\setof{ k : 5B_{k} \le N}.
 \]
  For a certain value of the field $\Color$ that we call $\var{Blue}$,
we create an initial configuration $\eta^{1}(\cdot,0)$ consisting of all
blue latent cells covering the whole space, with $\Guard=-1$.
  Let the trajectories $\eta^{1}$, $\eta^{k}$ be defined as before.
   Let $(x_{1},t_{1})$ be a space-time point.
  Eventually, we want to estimate the probability of
$\var{Blue}=\eta^{1}(x_{1},t_{1}).\Color^{1}$.

  Let 
 \begin{align*}
     I_{1} &= \{x_{0}\},
\\ v_{1}   &= t_{1},
\\ v_{k+1} &= v_{k}-8\Tu_{k+1},
\\ I_{k+1} &= \Gg(I_{k}, (8\Tu_{k+1}/\Tl_{k+1}+4)B_{k+1}),
\\ u_{1}   &= 0,
\\ u_{k+1} &= u_{k}+C_{2}\Tu_{k+1}.
 \end{align*}
  If $k\le K$ then by the self-organizing property of the amplifier,
the evolution $\eta^{k}$ is $(C_{1}B_{k},\sg_{k})$-blue at time $u_{k}$ for
each $k$.
  Let $\cF_{k}$ be the event that $I_{k}\times \{v_{k}\}$ is blue in
$\eta^{k}$.
 \end{prooof}

  \begin{step+}{sorg.stor.F-k}
  There is a constant $\kg_{1}$ such that
 \[
  \Prob\setof{\cF_{k+1}\cap\neg\cF_{k}}\le \kg_{1}U_{k}Q_{k}\eps_{k}.
 \]
 \end{step+}
  \begin{pproof}
  The right-hand side is an upper bound on the probability of damage
occurring in $\eta^{k}$ in $I_{k+1}\times[v_{k+1},v_{k}]$.
  If damage does not occur there and $\cF_{k+1}$ holds then the
control delegation property implies $\cF_{k}$.
\end{pproof}

  Let
 \begin{align*}
   n   &= \bigwedge\setof{k: v_{k+1} < u_{k+1} \text{ or } k = K},
\\ t_{2} &= u_{n}.
 \end{align*}

 \begin{step+}{sorg.stor.infin}
  Consider the case $n<K$.
 \end{step+}
 \begin{prooof}
  Then we have $u_{n}<v_{n}<u_{n+1}+(C_{2}+8)\Tu_{k+1}$.
  Let
 \[
  J = \Gg(I_{n}, ((C_{2}+8)\Tu_{n+1}/\Tl_{n}+3)B_{n}).
 \]
  Let $\cB$ be the event that $J\times\{u_{n}\}$ is blue in $\eta^{n}$.
  Since $\eta^{n}$ is $(C_{1}B_{n},\sg_{n})$-blue at time $u_{n}$ for each
$n$, the probability of $\neg\cB$ is at most $\kg_{2}U_{n}\sg_{n}$ for some
constant $\kg_{2}$.

 \begin{step+}{sorg.stor.infin.B}
  There is a constant $\kg_{3}$ such that
 \[
  \Prob\setof{\cB\cap\neg\cF_{n}}\le \kg_{3}U_{n}Q_{n}\eps_{n}.
 \]
 \end{step+}
 \begin{pproof}
  The right-hand side is an upper bound on the probability of damage
occurring in $\eta^{k}$ in $J_{n}\times[u_{n},v_{n}]$.
  If damage does not occur there and $\cB$ holds then the lasting control
property implies $\cF_{n}$.
  \end{pproof}

  Thus, the probability that $(x_{1},t_{1})$ is not blue can be
upper-bounded by 
 \[
  \kg_{2}U_{n}\sg_{n} + \kg_{2}U_{n}Q_{n}\eps_{n} +
  \kg_{1}\sum_{i=1}^{n-1} U_{k}Q_{k}\eps_{k}.
 \]
\end{prooof}%{sorg.stor.infin}
  
 \begin{step+}{sorg.stor.fin}
  Consider the case $n=K$: then the space is finite.
 \end{step+}
 \begin{prooof}
  Let $\cB$ be the event that the whole space $\ZZ_{N}$ is blue in
$\eta^{n}$.
  Since $\eta^{n}$ is $(C_{1}B_{n},\sg_{n})$-blue at time $u_{n}$ for each
$n$, and $5B_{n+1}\le N$, the probability of $\neg\cB$ is at most
$\kg_{2}Q_{n}\sg_{n}$ for some constant $\kg_{2}$.

 \begin{step+}{sorg.stor.fin.B}
  There is a constant $\kg_{3}$ such that
 \[
 \Prob\setof{\cB\cap\neg\cF_{n}}\le \kg_{3}U_{n}Q_{n}t_{1}/\Tl_{n}\eps_{n}.
 \]
 \end{step+}
 \begin{pproof}
  The right-hand side is an upper bound on the probability of damage
occurring in $\eta^{k}$ in $J_{n}\times[u_{n},v_{n}]$.
  If damage does not occur there and $\cB$ holds then by the
lasting control property, $\cF_{n}$ also holds.
\end{pproof}

  Thus, the probability that $(x_{1},t_{1})$ is not blue can be
upper-bounded by 
 \[
  \kg_{2}U_{n}\sg_{n} +   \kg_{1}\sum_{i=1}^{n-1} U_{k}Q_{k}\eps_{k}
 +  \kg_{3}U_{n}Q_{n}t_{1}/\Tl_{n}\eps_{n}.
 \]
 \end{prooof}

  Thus, the probability that $(x_{1},t_{1})$ is not blue can be
upper-bounded in both cases ~\ref{sorg.stor.infin} and ~\ref{sorg.stor.fin}
(ignoring multiplicative constants) by
 \[
  U_{n}\sg_{n} +  \sum_{i=1}^{n-1} U_{k}Q_{k}\eps_{k}
 +  U_{n}Q_{n}t_{1}/\Tl_{n}\eps_{n} = A_{1}+A_{2}+A_{3}.
 \]
  With the parameters of Example ~\ref{x.sorg} we have $A_{2} = O(\eps)$
and $A_{3}$ can be written, as in the proof of Theorem
~\ref{t.1dim.stor.var} as $\eps^{h_{2}(N)}$ with
 \[
   h_{2}(N)= N^{c_{2}/\log\log N}.
 \]
  for some constant $c_{2}$.
  Also, $A_{1}<e^{-\kg_{4}n}$ for some $\kg_{4}>0$, 
  If $n=K$ then this gives $A_{1}<e^{-\kg_{4}K}$.
  Since $N=e^{2K\log K + O(K)}$ thus
 \[
  A_{1}=O(N^{-0.4}).
 \]
  If $n<K$ then $t_{1}=O(\sum_{k=1}^{n}\Tu_{k})$.
  Hence $t_{1}=e^{2n\log n +O(1)}$, giving
 \[
  A_{1}=O(t_{1}^{-0.4}).
 \]
  Both of these bounds are poor if $t_{1}$ is small.
  But in this case there is a trivial upper bound $O(t_{1}^{2}\eps)$ on the
total probability that $(x_{1},t_{1})$ is not blue: this bounds the
probability that there has been any damage since the beginning that could
influence $(x_{1},t_{1})$. 
\end{Proof} % sorg.stor





att.tex
\section{Attribution and progress}\label{s.attrib}

\subsection{Non-damage gaps are large}\label{ss.bad}

  A \df{right} (as opposed to left, not as opposed to wrong)
 \df{bad gap}\index{gap!bad} is a gap of right-age $\le 2\cns{split-t}/\Tl$
and size $>5B$.
  The Bad Gap Opening Lemma says that if a left exposed edge persists too
long (while possibly moving) then a right bad gap develops on its left.
  This lemma will be used to prove the Bad Gap Inference Lemma,
saying that, under certain conditions, a left exposed edge
automatically has a right bad gap next to it.

  Let us call two siblings \df{strong}\index{sibling!strong} if either they
have been siblings for at least $2\Tu$ hours or one cell is a parent of the
other.
  A cell is called e.g.~a \df{weak left exposed
edge}\index{edge!exposed!weak} if it has no strong left sibling and if it
would be a left exposed edge in case it had no left sibling.
  A sequence $R_{1}=(y_{0},v_{0}),\ldots, (y_{m},v_{m})$ of cell-time pairs
will be called a \df{left boundary path}\index{path!boundary} if it has
the following properties:
  \begin{cjenum}

   \item $y_{i}$ is a weak left exposed edge during $[t_{i}+,t_{i+1}-]$;

    \item cell $y_{i-1}$ dies at time $t_{i}$ and is a strong sibling of
$y_{i}=y_{i-1}+B$ at time $t_{i}-$;

  \end{cjenum}

  \begin{lemma}[Bad Gap Opening]\label{l.bad-gap-opening}
 \index{lemma@Lemma!Bad Gap Opening}
  Let $\cC$ be a colony and let
 $R_{1}=(y_{0},v_{0}),\ldots,(y_{m},v_{m})$ be a left boundary path in $\cC$.
  Assume that the damage rectangle does not intersect 
 $[\bigwedge_{i} y_{i} - B,\bigvee_{i} y_{i}+B]\times[v_{0},v_{m}]$.  %?
  Then $y_{i}$ has at most $\p_{1}+1$ switching times during
$[v_{i},v_{i+1}]$.
  If $m\ge 7$ then at time $v_{m}-$, there is a right bad gap on the
left of $R_{1}(t)$.
  The same statement holds if we interchange left and right.
  \end{lemma}
  
\begin{proof}
  Let us show that $(y_{i},t)$ is a left exposed edge for $t$ in
 $[v_{i}+2\Tu+, v_{i+1}-2\Tu-]$.

  Indeed, $y_{i}$ can be a weak left exposed edge that is not a left exposed
edge only if it has a left sibling that is not strong.
  Now, if $y_{i}$ does not have a left sibling and it gets one then it
follows from Lemma \ref{l.glue} (Glue) (and the exclusion of cut, since the
edge does not become exposed) that the only way to lose this sibling is if
the sibling dies again, which it cannot do before making at least $\p_{0}$
switches, becoming a strong sibling in the meantime.
  From this, it is easy to see that $y_{i}$ can have a left sibling
only during a time interval adjacent to either $v_{i}$ or $v_{i+1}$.
  Since the sibling stays weak these time intervals must be at most
$2\Tu$ long.%

  Due to the above observation, since $y_{i}$ is a left exposed edge after
its first complete work period following $v_{i}$, either $\Purge$ or
$\Decay$ will kill it within the following $\p_{1}$ steps.
  In 7 repetitions of this, a gap of width $7B$ will be created.
  During this time, by ~\eqref{e.p_{2}}, at most one growth step can
occur on the left, leaving still a gap of size $6B$.
  \end{proof} % Bad Gap Opening Lemma


 \begin{lemma}[Bad Gap Inference]\label{l.bad-gap-infr}
 \index{lemma@Lemma!Bad Gap Inference}
  Let $c_{0}=(x_{0},t_{0})$ be a left exposed edge,
 \begin{align*}
    D &= [x_{0}-8B, x_{0}+B],
\\  I &= [t_{0}-\cns{split-t}+\Tl, t_{0}]
 \end{align*}
 and let $z_{0}$ be the starting cell of the colony $\cC$ of $(x_{0},t_{0})$.
  Suppose that if $c_{0}$ is an outer cell then
$D\cap([z_{0}-2B,z_{0}+QB-])\times I$ is damage-free, else $D\times I$ is
damage-free.
  Then one of the following holds:
  \begin{djenum}

  \item\label{bad-gap-infr.int}
 There is a bad gap on the left of $(x_{0},t_{0})$ inside the
colony of $c_{0}$;

   \item\label{bad-gap-infr.ext}
  There is a bad gap on the left of $(x_{0},t_{0})$, and a backward path
$(x_{i},t_{i})_{0\le i\le n}$ of length $\le 7(\p_{1}+1)$ with the
property that one of the path cells, $x_{i}$, is in the left neighbor
colony.
  It is a weak left exposed edge during $[t_{i}+,t_{i-1}-]$.
  Also, either it is an expanding germ cell closer than $c_{0}$ to the
origin of expansion or it is closer than $c_{0}$ to the originating colony.

   \item\label{bad-gap-infr.exposing}
  There is a backward path of length $\le 7(\p_{1}+1)$ leading from $c_{0}$
to a cell undergoing one of the changes listed in Lemma ~\ref{l.exposing}
(Exposing);

  \item\label{bad-gap-infr.invading}
  There is a backward path of length $\le 7(\p_{1}+1)$ leading from $c_{0}$
to a protected left colony endcell, just being killed by a left neighbor
cell and exposing a right neighbor.

   \end{djenum}
  The same statement holds if we replace left with right.
  \end{lemma}
 \begin{proof}
  Let us construct a backward path $(x_{i},t_{i})$ made up of
horizontal and vertical links such that cell $x_{i}$ is a weak left
exposed edge during every nonempty time interval $[t_{i}+,t_{i-1}-]$,
and the backward path never passes into the right neighbor colony.
  Suppose that $(x_{i},t_{i})$ has already been constructed.
  \begin{djenum}

   \item
  The construction stops in any of the following cases:
  \begin{itemize}
   \item the path has reached length $7(\p_{1}+1)$;
   \item the path moved 7 steps to the left;
   \item $(x_{i},t_{i})$ belongs to the left neighbor colony;
   \item $(x_{i},t_{i}-)$ is not a weak left exposed edge;
  \end{itemize}

   \item
  If $x_{i}$ has a switching time $t'$ immediately before $t_{i}$ such
that $(x_{i},t)$ is a weak left exposed edge during $[t',t_{i}]$ then
let $(x_{i+1},t_{i+1})=(x_{i},t')$.

   \item
  Otherwise, let $t'$ be the lower bound of times $t$ such that
$(x_{i},t)$ is a weak left exposed edge.
  If $t'<t_{i}$ then let $(x_{i+1},t_{i+1})=(x_{i},t')$.

   \item
  Assume now that $t'=t_{i}$.
  Then at time $t_{i}$, cell $x_{i}$ became a weak left exposed edge without
taking an action: hence, it must have lost a strong left sibling.
  (Animation does not produce any exposed edge, see Condition
~\ref{cond.anim} (Animation).)
  According to Lemma ~\ref{l.glue} (Glue), this can only happen in one of
the ways listed there.
  It is easy to check that of these, only the killing of the strong left
sibling produces an exposed edge in $x_{i}$.
   Each of the rules $\Heal$, $\Decay$ and $\Arbitrate$ that could have
killed $x_{i}-B$ presupposes that this cell did not have a left sibling at
the observation time $t''$ of $x_{i}-B$; thus, it did not have a strong left
sibling at time $t_{i}-$.
  On the other hand, as a strong left sibling of $(x_{i},t_{i}-)$, it has
been alive for at least $2\Tu$ hours.
  Let $(x_{i+1},t_{i+1})=(x_{i}-B,t_{i})$.
  Such an $i$ will be called a \df{right jump}.

   \end{djenum}
  By the construction, each jump is surrounded by vertical links.
  For each jump $i$, cells $x_{i}$ and $x_{i+1}$ are strong siblings at
time $t_{i}-$.
  Let $(x_{i_{k}},t_{i_{k}})$ for $i_{1}<\cdots<i_{m}$ be the endpoints of
vertical links on the backward path with the property that
$(i_{k},i_{k}+1)$ is not a vertical link; let $(x_{n},t_{n})$ be the last
point of the path.
  Let us number these points forward in time:
$(y_{0},v_{0})=(x_{n},t_{n})$, $(y_{1},v_{1})=(x_{i_{m}},t_{i_{m}})$,
$(y_{2},v_{2})=(x_{i_{m-1}},t_{i_{m-1}})$, etc., creating a left boundary
path.

  If the path has moved 7 cells to the left then we are done.
  If $v_{0}\le t_{0}-7\tau_{1}$ then Lemma ~\ref{l.bad-gap-opening} (Bad
Gap Opening) is applicable, and it shows that there is a bad gap on the
left of $(x_{0},t_{0})$.
  If the path has stopped for some other reason then we have the following
cases.
  \begin{djenum}
   \item\label{bad-gap-infr.neighb-col}
 $(x_{n},t_{n})$ is a weak left exposed edge belonging to a neighbor
colony.
   \item\label{bad-gap-infr.spont-exp}
 $(x_{n},t_{n}-)$ is not a weak left exposed edge.
  \end{djenum}
  In case ~\ref{bad-gap-infr.neighb-col}, the death of $(x_{n},t_{n})$
must have created the weak left exposed cell $(x_{n-1},t_{n-1})$ that was a
left colony endcell.
  This is possible only if either $(x_{n},t_{n})$ is an expanding germ cell
closer than $c_{0}$ to the origin of expansion or it is some other kind of
cell in the originating colony of $c_{0}$.
  Continue the construction of the backward path for another $7(\p_{1}+1)$
steps (it is easy to see that now it will not be stopped earlier) and apply
the Bad Gap Opening Lemma, showing that the present lemma is true for this
case.

  In case ~\ref{bad-gap-infr.spont-exp} we have either one of the cases 
in Lemma ~\ref{l.exposing} (Exposing), or $(x_{n},t_{n}-)$ dies at time
$t_{n}$ as a left, non-exposed edge.
 \end{proof}% l.bad-gap-infr

  The following lemma shows that a colony always makes some kind of
progress in the absence of damage.

  \begin{lemma}[Small Progress]\label{l.sm-progress}
 \index{lemma@Lemma!Small Progress}
  Let $\cC$ be a colony with starting cell $z_{0}$ and  $t_{0} < t_{1}$.
  If it is covered by a domain whose originating colony it is at time $t$
then let $E(t)$ be the maximal such domain.
  Suppose that no damage rectangle intersects $[z_{0}-8B, z_{0}+(Q+7)B]$
during $[t_{0}-\cns{split-t}, t_{1}]$ and $E(t)$ exists during this time.

  Then one of the following statements holds:
 \begin{djenum}

  \item\label{l.sm-progress.age}
  The minimum value of $\Age$ in $E(t)$ increases at least
$(t_{1}-t_{0}-2\cns{split-t})/\tau_{1}-3$ steps during $[t_{0},t_{1}-]$ (the
minimum must be defined ``locally'', taking into account the possible
crossing of work period boundary).

  \item\label{l.sm-progress.rn-gap}
  an exposed edge appears in $E(t')$ at some time $t'\in[t_{0},t_{1}]$ and
moves towards decreasing $E(t)$ either until it reaches the end of $\cC$ or
at least by $B(t_{1}-t')/\tau_{1}-B$;

  \end{djenum}
  \end{lemma}
 \begin{Proof}
  If both endcells of $E(t)$ are protected during $[t_{0},t_{1}]$ then the
only thing preventing the increase of age in a protected edge, according to
Condition ~\ref{cond.addr-age} (Address and Age), is when $x$ is frozen.
  According to Condition ~\ref{cond.freeze} (Freeze), this $x$ can
become frozen only when it has a non-dying partner.
  But Lemma ~\ref{l.bad-gap-infr} (Bad Gap Inference) would be applicable
to this partner as an edge turned toward $x$ and it is easy to verify that
in the present case, this lemma implies an impossibly large gap between the
partners.
  Therefore the minimum age of $E(t)$ increases every $\tau_{1}$
steps.

  Suppose now, without loss of generality, that the right end of $E(t)$ is
exposed at some time $t'\in[t_{0},t_{1}]$.
  Lemma ~\ref{l.bad-gap-infr} (Bad Gap Inference) implies the existence of
a bad gap on the right of $E(t_{0})$ unless one of the cases
~\eqref{bad-gap-infr.exposing} or \eqref{bad-gap-infr.invading} occurs.
  If none of these cases occurs then Lemma ~\ref{l.rn-gap} (Running Gap)
will widen the gap as predicted in ~\eqref{l.sm-progress.rn-gap}.%

  \begin{step+}{sm-progress.invading}
  Suppose that case ~\eqref{bad-gap-infr.invading} of the Bad Gap Inference
Lemma occurs.
  \end{step+}
  \begin{prooof}
  Thus, there is a backward path of length $\le 7(\p_{1}+1)$ leading from
$c_{0}$ to a protected right colony endcell $x$, just being killed by a right
neighbor cell and exposing a left neighbor.
  There are only two ways this can happen.
  One: when $x$ is the endcell of a growth and is killed by the end-healing
of member cells of another colony.
  This case does not really occur.
  Indeed, let $y$ be the left exposed cell trying to do the end-healing.
  The Bad Gap Inference lemma can be applied to the $y$ and would imply
now, when none of the distracting cases applies, the existence of a large
gap between $x$ and $y$.

  The other case is when $x$ is the endcell of a germ.
  Then the exposed edge thus created will never become protected, and the
Bad Gap Opening lemma implies the creation of a bad and growing gap within
$\cns{split-t}$ hours.
  \end{prooof}

  \begin{step+}{sm-progress.exposing}
  Suppose that  case ~\eqref{bad-gap-infr.exposing} of the Bad Gap
Inference Lemma occurs.
  \end{step+}
  \begin{prooof}
  The cases in Lemma ~\ref{l.exposing} fall into two categories.
  In all cases but ~\eqref{exposing.grow-end} and 
~\eqref{exposing.germ-grow-end}, Lemma ~\ref{l.bad-gap-opening} (Bad Gap
Opening) applies to the development forward in time from this event,
showing that again, the exposed right edge moves left, creating an
unhealable gap.

  In case ~\eqref{exposing.grow-end}, a non-end growth cell at
$\Age=\cns{grow-end}$ becomes exposed.
  The edge may later disappear by healing, but only by end-healing.
  Indeed, for internal healing a close partner would be needed but the Bad
Gap Inference Lemma would show (without the distracting other cases, this
time) that the partner cannot be close.
  In order to prevent a bad gap from opening, the end-healing must succeed
within $\cns{split-t}$ hours.
  Therefore this kind of exposed edge will exist at most for a time
interval of length $\cns{split-t}$ on the right and for a similar interval
on the left.
  The same reasoning applies to case ~\eqref{exposing.germ-grow-end}.
 \end{prooof}

  We found that in three intervals outside the possibly two exception
intervals, the minimum age of $E(t)$ increases every $\tau_{1}$
steps.
 \end{Proof}%{sm-progress}


  \subsection{Attribution}\label{ss.attrib}

  \begin{lemma}[Cover]\label{l.cover}\index{lemma@Lemma!Cover}
  Let $P_{1}$ be a backward path contained in colony $\cC$, starting at time
$t_{0}$, and passing through the nonempty time interval
$I=[v_{1},t_{0}-Q\tau_{1}]$.
  There is a union $A_{1}$ of three intervals of size $\cns{split-t}$ such
that we have one of the following cases, with $c_{0}=(P_{1}(t_{0}),t_{0})$.

  \begin{djenum}

   \item At all times $v_{0}$ in $I\xcpt A_{1}$, the cell
$P_{1}(v_{0})$ is in a domain that has no exposed edges in $\cC$.

   \item\label{l.cover.leave}
  There is a time $v_{0}$ in $I\xcpt A_{1}$ at which $P_{1}$ can be redirected
using at most $2Q$ links, to reach the originating colony of $c_{0}$;

   \end{djenum}
  \end{lemma}

 \begin{proof}
  Let $A_{0}$ be the set of elements $t$ of $I$ such that a damage
rectangle intersects $\cC$ during $[t-\cns{split-t}+\Tl,t+\cns{split-t}]$.
  Then $A_{0}$ is covered by an interval of size $2\cns{split-t}$.
  At time $v_{0}$ in $I\xcpt A_{0}$, assume the domain of $P_{1}(v_{0})$
has exposed edges in $\cC$.
  If the colony is not an originating colony we can choose the edge to
look towards the originating colony.
  Indeed, if there is no exposed edge pointing in this direction then
we can redirect the path by a horizontal stretch to the originating
colony, as in case ~\eqref{l.cover.leave} of the lemma.

  Without loss of generality, assume that our edge is a left edge $y_{0}$.
  The conditions of the Lemma ~\ref{l.bad-gap-infr} (Bad Gap Inference) are
satisfied for $(y_{0},v_{0})$ as the cell $(x_{0},t_{0})$ in that lemma.
  Case ~\eqref{bad-gap-infr.int} of the conclusion of the lemma does not
happen since it would satisfy the conditions of the Running Gap Corollary
for $(y_{0},v_{0})$: hence $t_{0}-v_{0} \le Q\tau_{1}$ would follow, contrary to
the definition of $I$.
  Case ~\eqref{bad-gap-infr.ext} implies case ~\eqref{l.cover.leave} of the
present lemma and it is also easy to see that then $c_{0}$ is not a member
cell.

  As in the proof of Lemma ~\ref{l.sm-progress} (Small Progress), we can
show that case  ~\eqref{bad-gap-infr.exposing} of the Bad Gap Inference
Lemma does not occur.
  Consider case ~\eqref{bad-gap-infr.exposing} of that lemma.
  As in the proof of the Small Progress Lemma, we can conclude that cases
other than ~\eqref{exposing.grow-end} and \eqref{exposing.germ-grow-end} of
Lemma ~\ref{l.exposing} (Exposing) do not occur.
  These remaining cases result again, in at most one additional time
interval $J$ f size $\cns{split-t}$ to be excluded (not two, since the
event in question can occur at only one end of the colony $\cC$).
  Thus, let $A_{1}=A_{0}\cup J$.
\end{proof}%l.cover

   If the Cover Lemma is applied with $t_{0}-v_{1}\ge 2Q\tau_{1}$ then the set
 $I\xcpt A_{1}$ is not empty: indeed, see ~\eqref{e.Q-req-1}.

 \begin{remark}\label{r.germ-cover}
  In case $c_{0}$ is a germ cell with $\Age<\cns{germ-end}-2Q$, further $I$
is defined as $I=[v_{1},t_{0}-3Q\tau_{1}]$ and then we can conclude similarly
that there is no weak left exposed edge even outside $\cC$.
  Indeed, then the domain in question is of size $\le 5Q$ and the Lemma
\ref{l.rn-gap} (Running Gap) would erase it in $5Q\tau_{1}$ hours.
 \end{remark}

 \begin{lemma}[Cover Ancestor]\label{l.cover-ancestor}
  Suppose that $\cC\times[v_{0},v_{1}]$ is not intersected by any damage
rectangle, and at time $v_{1}$, colony $\cC$ is covered by a domain with no
exposed edges, consisting of member cells or of internal germ cells older
than $\cns{germ-grow-end}$.
  Then, defining $A_{0}$ as in the proof of Lemma ~\ref{l.cover} (Cover),
at all times $u$ in $[v_{0},v_{1}] \xcpt A_{0}$, the colony is covered by a
domain that has no exposed edges.
 \end{lemma}

 \begin{proof}
  We can follow the proof of the Cover Lemma for the special case
considered here: that the domain is only over $\cC$, consisting of member
cells or of internal germ cells.
  It is easy to verify that applicable cases of the Bad Gap Inference Lemma
remain that lead to a widening gap.
  \end{proof}

  We will say that cell $(x_{0},t_{0})$ is
\df{attributed}\index{attribution} to colony $\cC$ if there is a path
$P_{1}$ going back to time $t_{0}-5Q\tau_{1}$ and a union $E$ of at most 3
intervals of length $\cns{split-t}$ such that
 $P_{1}(t)\in \cC$ for $t$ in
 \begin{equation}\label{e.attrib.I}
  I=[t_{0}-4Q\tau_{1}, t_{0}-3Q\tau_{1}],
 \end{equation}
 and $\cC$ is covered by a domain without exposed edges for all times in
$I\xcpt E$.
  In view of ~\eqref{e.Q-req-1}, this is the majority of
times in $I$ and therefore if $(x_{0},t_{0})$ is attributed to colony $\cC_{0}$
and $(x_{1},t_{0})$ is attributed to colony $\cC_{1}$ then $\cC_{0}$ and $\cC_{1}$
either are disjoint or are the same.


  \begin{lemma}[Attribution]\label{l.attrib}
  Assume that the live cell $c_{0}=(x_{0},t_{0})$ with colony $\cC$ is not a
germ and is not in the wake of a damage rectangle.
  Then we have:
  \begin{cjenum}

  \item\label{l.attrib.member}
  It $c_{0}$ is a member cell then it can be attributed to its own colony.

  \item\label{l.attrib.expan}
  If $c_{0}$ is an outer cell then it can be attributed to its originating
colony.

  \item\label{l.attrib.no-expan}
  If $c_{0}$ is an outer cell older than $\cns{grow-end} + 2Q\lg\p_{1}$ and
not adjacent to the originating colony, then it can be attributed to its
own colony.

   \end{cjenum}
  \end{lemma}
  \begin{Proof}
  Without loss of generality, assume that $c_{0}$ is not to the left of the
center of its originating colony.

  Let us build the path $P_{1}=(c_{0},c_{1},\ldots)$ with
$c_{i}=(x_{i},t_{i})$ backward in such a way that vertical, parental and
horizontal links are chosen in this order of preference.
  Horizontal links are chosen only in the case of the application of
Lemma ~\ref{l.ancestor} (Ancestor).
  Whenever we have a choice between father and mother we choose the
parent towards the center of the originating colony of $c_{0}$ or towards
the center of the current colony, as the construction requries.

 \begin{step+}{attrib.own.stay}
   Assume that $c_{0}$ is not an outer cell younger than
$\cns{grow-end}+2Q\lg\p_{1}$ and one of the following holds:
 \begin{djenum}
  \item $P_{1}$ does not leave $\cC$ during $[t_{0} - 2Q\tau_{1},t_{0}]$;
  \item $c_{0}$ is not adjacent to its originating colony;
  \item $[t_{0}-\cns{split-t},t_{0}]$ is damage-free;
 \end{djenum}
  Then it can be attributed to its own colony.
   \end{step+}
 \begin{pproof}
  Let us direct the path always towards the center of the current colony.
If the path did not leave $\cC$ during $[t_{0}-2Q\tau_{1},t_{0}]$ one finds,
applying the Cover Lemma, some time $v_{0}$ during this period when the
colony is covered by a single domain.
  At time $v_{0}$, we can extend the path along horizontal links to the
center of the colony $\cC$ of $c_{0}$.
  Continuing backward from there by the original method, the path will
never reach the edges of the colony, since the only way for it to move away
from the center is by one horizontal link near a damage rectangle, and this
can only happen once.
  Hence an application of the Cover Lemma finishes the proof.

  If $c_{0}$ is not adjacent to its originating colony then the backward
path constructed by our method never leaves $\cC$ during
 $[t_{0}-2Q\tau_{1}, t_{0}]$.
  Indeed, there is at most one horizontal link in the path during this
time, and the parental links do not move the path away from the center.

  If neither of the above conditions holds but
$[t_{0}-\cns{split-t},t_{0}]$ is damage-free then $c_{0}$ is an endcell of
$\cC$ during this time.
  It must have a sibling in $\cC$ sometime during this interval since
otherwise it would be killed by $\Decay$.
  We can redirect the path into the sibling and continue from there.
\end{pproof} % 2

 \begin{step+}{attrib.outer.redir}
  If $c_{0}$ is an outer cell then $P_{1}$ can be redirected to the
originating colony during $[t_{0}-2Q\tau_{1}, t_{0}]$ and then continued
there without leaving it again, as above.
 \end{step+}
 \begin{pproof}
  Without loss of generality, suppose that $c_{0}$ is a right outer cell.
  The Cover Lemma implies that for $J=[t_{0}-2Q\tau_{1}, t_{0}-Q\tau_{1}]$,
at all times $v_{0}$ in $J\xcpt A_{1}$ with $A_{1}$ as defined there, the
cell $P_{1}(v_{0})$ is in a domain that has no exposed edges in $\cC$.
  At any such time $v_{0}$ the leftmost cell of $\cC$ belongs to the
domain since otherwise the left edge of the domain would be exposed.
  If it has a sibling in $\cC-QB$ then let us then direct $P_{1}$ to this
sibling.
  According to ~\ref{attrib.own.stay}, $P_{1}$ can be continued from here
without having to leave $\cC-QB$ again.

  If the left end has no left sibling then it must be already a member cell
in a new work period.
  Lemma ~\ref{l.bad-gap-infr} shows that during $J\xcpt A_{1}$ there are
no cells to the right end of the domain that could prevent the increase of
age as in Condition ~\ref{cond.addr-age} (Address and Age).
  Therefore according to Lemma ~\ref{l.sm-progress} (Small Progress), the
minimum age of cells in the domain keeps decreasing along the backward
path.
  But when it decreases by more than $Q$ the left edge of the colony is
also an outer cell and has a left sibling in $\cC-QB$ to which the path can
be redirected.
 \end{pproof} %4

 \begin{step+}{attrib.member-out}
  Assume that $c_{0}$ is a member cell, the interval
$[t_{0}-\cns{split-time}, t_{0}]$ is not damage-free and $P_{1}$ leaves $\cC$
during this time.
  Then $c_{0}$ can still be attributed to its own colony.
 \end{step+}
 \begin{pproof}
  It follows from the cases already considered in ~\ref{attrib.own.stay},
that we can assume that the path leaves $\cC$ on the left and $c_{0}$ is the
left endcell of $\cC$, that before leaving $\cC$ the path is vertical and
the cells on it do not have any right sibling.
  The path leaves $\cC$ along a horizontal link $(c_{p-1},c_p)$.
  Indeed, suppose it is a parental link.
  The rule animating $x_{p-1}$ could not be the growth rule since $c_{0}$ is
a member cell and due to ~\eqref{e.end-period}, the path is not long enough
to get the age from the expansion period to the end of the work 
 period.  % show!
  The healing rule does not act across colony boundaries.
  The horizontal link across the colony boundary is created as in the proof
of the Lemma ~\ref{l.ancestor} (Ancestor), therefore the extended damage
rectangle is near the colony boundary, near time $t_{p}$.

  If $c_{p}$ is an outer cell then ~\ref{attrib.outer.redir} implies that
the path can be redirected within the desired time to $\cC$.
  Let us show that $c_{p}$ is not member cell.
  It could be one only if $P_{1}$ crosses into $\cC-QB$ at an age when $\cC$
is a newly created colony covered with outer cells and $c_p$ is in the
originating colony.
  Let $i<p$ be such that $c_{i-1}$ is still a member cell but $c_{i}$ is
already an outer cell.
  Then the transition from $c_{i}$ to $c_{i-1}$ involves a transition from
outer to member status at the end of the work period.
  This cannnot happen, however, under our assumption that $c_{i}$ has no
right sibling.
 \end{pproof} %{attrib.member-out} %2
 \end{Proof}%{attrib} 


\subsection{Progress}\label{ss.progress}

  The lemma below says that under certain conditions, the age of a colony
increases.

\begin{lemma}[Large Progress]\label{l.lg-progress}
 \index{lemma@Lemma!Large Progress}
  Let $c_{1}=(x_{1},v_{1})$ be of colony $\cC$ with starting cell $z_{0}$,
within $B$ of the center of $\cC$ and not in the wake of any damage
rectangle.
  Assume that either $c_{1}$ is a member or it is an internal germ cell
with $\Age>\cns{germ-grow-end} + 10 Q\lg\p_{1}$.
  There is a $v_{0}$ and a forward path $P_{1}$ in $\cC\times[v_{0},v_{1}]$
such that defining
 \begin{align}\label{e.path-ends}
  x_{i} &= P_{1}(v_{i}),\ c_{i}=(x_{i},v_{i}),
\\\label{e.lg-progress.Dg}
    \Dg &= \Age(c_{1})-\Age(c_{0}),
 \end{align}
  we have $v_{1}-v_{0} \le 5Q\tau_{1}$, further either $Q \le \Dg$ or the path
crosses a  work period boundary.
  Cell $c_{0}$ is within distance $B$ of the center of $\cC$, the latter is
not in the wake of any damage rectangle, and $\cC$ is covered by a domain
at time $v_{0}$.
 \end{lemma}

 \begin{proof}
  The proof is a repeated application of Lemma ~\ref{l.sm-progress}
(Small Progress), with some case distinctions and delays due to damage.
  Let us build the path $P_{1}$ backward like in the proof of Lemma
~\ref{l.attrib} (Attribution), till
 \[
   v_{0} = v_{1} - 3Q\tau_{1}.
 \]
  This path does not leave $\cC$.
  Indeed, it could only leave if there was a number of steps in which the
path moves towards the edge of the colony.
  Each such step but one must be a parental link.
  If the animation was via healing then the healing would be an internal
correction and the parent towards the center would be chosen, so this is
excluded in all cases but one.
  The animation cannot be via growth since due to ~\eqref{e.end-period}, the
age of cells along the path $P_{1}$ cannot decrease enough for them to
become growth cells.

  Let $E(t)$ be the maximal domain containing $P_{1}(t)$, and let $m(t)$ be
the ``local'' minimum value of age in $E(t)$ (taking into account the
possible crossing of work period boundary).
  Let $I=[v_{0}, v_{1}-Q\tau_{1}]$.
  According to the Cover Lemma, there is a set $A_{1}$ coverable by 3
intervals of size $\cns{split-t}$ such that for all $t$ in $I\xcpt A_{1}$
the colony $\cC$ is covered by $E(t)$.
  If $v_{0}\in A_{1}$ then let us change $v_{0}$ to a little larger value, 
so that $v_{0}\notin A_{1}$.
  Then $P_{1}$ can be led back to the center at time $v_{0}$.
  It remains to show $\Dg>2Q$.

  Let us represent $I\xcpt A_{1}$ as a union of at most 4 disjoint closed
intervals $[s_{i},f_{i}]$  ($i=1,2,\ldots$).
  In each interval $[s_{i},f_{i}]$, according to Lemma ~\ref{l.sm-progress}
(Small Progress), $m(t)$ keeps increasing to
 \[
  (t-s_{i}-2\cns{split-t})/\tau_{1}-3
 \]
  until an exposed edge (say, a right edge) occurs at some time $t_{1}$.
  By the same lemma, for $t\in [t_{1},f_{i}]$, this edge moves at least
$(t-t_{1})/\tau_{1}-1$ cell widths till time $t$ towards $\cC$ unless it
disappears earlier by reaching $\cC$.
  The damage can stop this process and move right the end of $E(t)$ by at
most 2 cells.
  Therefore except for a union $J_{1}$ of two time intervals of a total
length of $(Q+2)\tau_{1}$ accounting for right exposed edges and another
exception set $J_{2}$ accounting for left ones, part
~\ref{l.sm-progress.age} of the Small Progress Lemma is applicable.
  
  The set $I\xcpt (A_{1}\cup J_{1}\cup J_{2})$ breaks up into a disjoint
union of at most 6 intervals $[s'_{i},f'_{i}]$.
  The domain $E(t)$ covers $\cC$ and has no exposed edges during these
intervals, so $m(t)$ increases in them as in the Small Progress Lemma, and
the total increase during $I$ is at least
 \begin{equation}\label{e.progress.grow-end}
 (v_{1}-v_{0}-(3Q+4)\tau_{1}-7\cns{split-t})/\tau_{1}-14 > Q. %?
 \end{equation}
 \end{proof}% {lg-progress}



  \section{Healing}\label{s.heal}

  \subsection{Healing a gap}

  Given a set $E$ of cells at time $t$, let us call a cell $x'$ a
\df{successor}\index{successor} of $E$ at time $t'>t$ if $(x',t')$ is
reachable by a forward path from some $(x,t)$ for some $x$ in $E$.


  \begin{lemma}[Healing]\label{l.heal}\index{lemma@Lemma!Healing}
  Let $[a_{0},a_{1}]\times[u_{0}+,u_{1}-]$ be an extended damage rectangle. 
  Let $E$ be a domain at time $u_{0}$ with the property that for each locally
maintained field $\F$ such that the age of no cell of $\cC$ is in an update
interval for $\F$ (let us call these fields ``relevant''), the latter is
constant over $\cC$ at this time.
  Let $\cC=\setof{z_{0}+iB: i=0,\ldots,Q-1}$ be a colony with which the
addresses in $E$ are aligned, with $a_{0}\in [z_{0},z_{0}+QB/2-]$.
  Then the following holds.
  \begin{cjenum}

   \item\label{l.heal.no-gap}
  At time $w_{0} = u_{0}+ 4\tau_{1}$, some multidomain in
$[a_{0}-QB/2,a_{0}+QB/2-]$ contains all successors of
 $E\cap [a_{0}-QB/4, a_{0}+QB/4-]$ from time $u_{0}$;

   \item\label{l.heal.fill}
  If $E$ covers $\cC$ at time $u_{0}$ and all cells of $\cC$ are member cells
then a domain covers $\cC$ at time $w_{0}$ and each relevant locally
maintained field is constant over $\cC$ at this time;

   \end{cjenum}
  \end{lemma}

 \begin{Proof}\
 \step{heal.no-gap}{Let us prove ~\eqref{l.heal.no-gap}.}
 \begin{prooof}
  The damage can change only a single cell $x$ of $E$.
  If this cell is at an end of $E$ then there is nothing to prove.
  Otherwise, $x-B$ and $x+B$ are also in $E$.
  Assume first that both $x-B$ and $x+B$ survive until $w_{0}$.
  Then we have a case of internal correction; let us show that this
correction succeeds.
  If an internal correction of $x-B$ is also possible before internal
correction starts in $x$ (it cannot become possible after the correction of
$x$ started because either $x$ was dead or the correction of $x$ starts
with killing $x$) then the reasoning for $x$ can be applied to $x-B$.
  Suppose therefore that internal correction of $x-B$ is not possible.
  The correction begins by killing $x$ (in case it is not mild).
  Let us show that it succeeds by reanimating it.
  If $x-B$ is not a left edge any time before $w_{0}$ then the internal
correction of $x$ will succeed since the animation, needing a neighbor that
is not isolated, can use $x-B$.
  Similarly if $x+B$ is not a right edge any time before $w_{0}$.

  Let us show that if each of these cells is an edge pointing away from $x$
then one of them dies before $w_{0}$ contrary to our assumption.
  Certainly, one of them is an exposed edge, suppose that e.g.~$x-B$ is a
left exposed edge at some time $t$ in $[u_{0},w_{0}-\tau_{1}]$.
  Lemma ~\ref{l.bad-gap-infr} (Bad Gap Inference) implies that either there
is a bad gap on the left of $x-B$ or there is a backward path of length
$\le 7(\p_{1}+1)$ leading from $(x-B,t)$ to a cell in the same colony
that changes, at age $\cns{grow-end}$, from a protected to an exposed left
edge, or undergoes a planned kill.
  If there is a bad gap of the indicated size then $x-B$ is an isolated
cell during $[t, w_{0}]$.
  It is easy to see that it is not an endcell of a near-end correction and
therefore it will be purged by the time $w_{0}$, contrary to the assumption
that it stays alive.
  Suppose now that a backward path of length $\le 7(\p_{1}+1)$ leads
from $(x-B,t)$ to a cell in the same colony that changes, at age
$\cns{grow-end}$, from a protected to an exposed left edge.
  Then it is easy to see that $x+B$ (which also is a right edge at some
time before $w_{0}$) is an exposed cell for which the Bad Gap Inference
Lemma really infers a bad gap on its right, resulting in its purge.

  Suppose now that e.g.~$x-B$ dies before $w_{0}$.
  If there will be no cells after $w_{0}$ that can be traced back to
$E$ only bey tracing them through the left or $x$, then we are done.
  If there are at any time $t>u_{0}$, then they must be connected by
parental and horizontal links to $x-B$, therefore they form a domain from
$x-B$ left.
  This domain can only be killed from the edges.
  $x-B$ cannot be the last element to be killed since then the whole domain
disappears by $w_{0}$.
  Therefore there must be moment $t'$ when $x-B$ and $x-2B$ are alive and
$x-B$ will be killed.
  The only rule accomplishing this is $\Decay$, if $x-B$ is a right exposed
edge and the gap in $x$ cannot be healed.
  Since $x+B$ is still there this could only happen if no internal
correction is possible in $x$, since otherwise this internal correction
would have succeeded already before the killing.
  The only obstacle to the internal correction is if $x+B$ has no right
sibling and is not a right protected endcell.

  It is easy to see using the Lemma \ref{l.bad-gap-infr} (Bad Gap
Inference) that there is no domain on the right of $E$ with which the
successor of $E$ could merge in the given time period.
  Also healing the gap caused by the death of $x-B$ is not possible since
(it was created due to the impossibility of healing to begin with).
  Therefore the the whole domain containing $x+B$ (and possibly containing
$x$ and even $x+2B$ if the latter arose by growth in the meantime) decays
within further $3\tau_{1}$ hours.
 \end{prooof}

 \step{heal.fill}{Let us prove ~\eqref{l.heal.fill} now.}
  \begin{prooof}
  Suppose that $E$ covers $\cC$ at time $u_{0}$ and all cells of $\cC$ are
member cells.
  Let $x$ be the cell changed by the damage.
  If it is not an endcell or next to an endcell of $\cC$ then (given
the absence of planned kill) the change caused by the damage
will clearly be corrected by the rule $\Heal$.

  Suppose that $x-B$ is a left endcell.
  Then the only obstacle to healing $x$ is if there is a competing internal
correction in $x-B$ that would create a member cell in $x-B$.
  This cell could only belong to a colony $\cC'$ different from $\cC$ since
$x-B$ is an endcell in $\cC$.
  Since there is a correction in $x-B$ the cell $x-2B$ must belong to
$\cC'$. 
  It is clearly exposed to the right at the observation time of the
correction (since the correction would create a member cell, a protected
edge is excluded).
  It must have been there as an exposed cell for a significant time. %?
  Indeed, according to Lemma ~\ref{l.cover-ancestor} (Cover Ancestor),
$\cC$ has been full for a long time, the growth could not have created
$x-2B$ during quite a long interval before $u_{0}$, and healing could not
have created it while $x-B$ was an endcell of $\cC$.
  But it could not have been there long since the Decay rule or the Purge
rule would have killed it.  %?
  
  Suppose now that $x$ is a left endcell.
  Then it is part of an end-correction.
  According to the healing rule, one possible obstacle to carrying out the
end-correction is that there is an internal correction in $x+B$.
  In this case, $x$ is the endcell of a near-end correction, therefore it
will not be purged, and the near-end correction will be carried out.
  All other possible obstacles listed in the healing rule imply that $x-B$
has been right exposed cell for such a long time before $u_{0}$ that it
would have died.

  If the healing rule tries to correct $x$ it still must be proved that it
succeeds in doing so.
  If $x$ is not latent then first $x$ will be made latent, then line
~\eqref{pg.heal.end-heal} of the rule $\Heal$ in Subsection
~\ref{ss.heal-rule} applies to cell $x+B$ to make a member cell in $x$ by
setting $\Kind_{-1}.\Heal := \Member$ and triggering thereby rule
$\Animate$ of Subsection ~\ref{ss.anim}.
  We must show that the animation of the latent $x$ succeeds.
  The only obstacle to the animation would be an end-healing of member
cells of some other colony $\cC'$ from the left.
  But this cannot happen since then the rightmost live cell of $\cC'$ must
have been exposed before the damage, and Lemma ~\ref{l.bad-gap-infr} (Bad
Gap Inference) would imply that it has a large gap on its right, excluding
right end-healing.

  If $x$ is vacant then first it must be made latent by rule $\Create$ of
Subsection ~\ref{ss.heal.crea}: for this, Lemma ~\ref{l.creation}
(Creation) can be used.
  Again, no obstacle will be posed by any opposite end-healing.

  Adding the time upper bound in the Creation Lemma to $\tg_{0}$, we get
the upper bound $4\tau_{1}$ for the healing time.
  Due to to ~\eqref{e.decay-t}, this is still smaller than the time needed
for the decay rule to kill any cell made exposed by the damage.
 \end{prooof}% {heal.fill}
 \end{Proof} %{l.heal}


bibl.tex
 \bibliographystyle{amsplain}
 \bibliography{reli}

\renewcommand{\indexname}{Notation}
\printindex{glo}
\renewcommand{\indexname}{Index}
\printindex{ind}


cmp.tex
\section{Computation and legalization}\label{s.comp}

\subsection{Coding and decoding}

\subsubsection{Main track and redundancy track}\label{sss.main-and-redun}
  Assume that the transition function $\trans_{k}$ and has bandwidth
 $\bw =\bw_{k}$ as defined in ~\ref{sss.bandwidth}, and similary the
simulated transition function $\trans_{k+1}$ has bandwidth $\bw_{k+1}$.

  The state of each small cell is partitioned using
 $\Buf=\Inbuf\cup \Outbuf$, etc.
  Also, the field $\Info$ is partitioned into subfields
 $\Info.\Main$\glo{info.main@$\Info.\Main, \Info.\Redun$} and
$\Info.\Redun$.
  Each of the fields of a small cell mentioned in the construction of the
previous sections, with the exception of $\Info.\Main$, will be part of
$\Buf$.
  Let%
\glo{p.cap@$P$}%
 \[
   P=\cp_{k+1}/\bw_{k+1}.
 \]
  Assume w.l.o.g.~ that this number is integer.
  We partition the state of the represented cell into $P$ fields called
\df{packets}\index{packet} of size $\bw_{k+1}$.
  We also break up the field $\Info.\Main$ into fields $\Info.\Main_{i}$,
$i=0,\ldots,P-1$ of equal size.
  Assume without loss of generality that
 \begin{equation}\label{e.bw-mon}
   \frac{\cp_{k}}{\bw_{k}} \le \frac{\cp_{k+1}}{\bw_{k+1}} 
   \le 2 \frac{\cp_{k}}{\bw_{k}}.
 \end{equation}
  The first inequality implies that the width of track $\Info.\Main_{i}$ is
less than the bandwidth of a small cell.
  The second inequality will be used in deriving ~\eqref{e.compute-time}.
  (In case the first inequality was violated, we could distribute a packet
over several tracks whose width is the bandwidth, and otherwise the
algorithm would be similar.
  In case the second inequality was violated, we could put several packets
onto each tracks whose width is the bandwidth, and otherwise the algorithm
would be similar.)

  Let us also break up the track $\Info.\Redun$ into locations (segments)
$\fld{-Info}.\Redun_{i}$, $i=0,1,\ldots, P-1$.
  Our error-correcting code will distinguish, similarly to Example
~\ref{x.no-stretch}, information symbols and error-check symbols.
  Each packet of the represented state will be encoded separately.
  Track $\Info.\Main_{i}$ will contain the information symbols, and
location $\fld{-Info}.\Redun_{i}$ contains the error-check bits of packet
$i$.
  Let the location
 \[
   \fld{-Info}_{i}
 \]
 denote the union of track $\Info.\Main_{i}$ and location
$\fld{-Info.Redun}_{i}$.
  These together form the error-correcting code of packet $i$.
  The first three packets represent $\Inbuf^{*}$, $\Outbuf^{*}$ and
$\Pointer^{*}$.

\begin{figure}
 \setlength{\unitlength}{0.30mm}
 \[
 \begin{picture}(480,260)(40, 0)
    \put(0, 0){\framebox(480, 260){}}

    \multiput(0,240)(0,-20){6}{\line(1,0){480}}
    \put(490, 240){\makebox(0,20)[l]{$\var{Info.Main}_{0}$}}
    \put(490, 220){\makebox(0,20)[l]{$\var{Info.Main}_{1}$}}
    \put(520, 200){\makebox(0,20)[l]{$\vdots$}}
    \put(490, 140){\makebox(0,20)[l]{$\var{Info.Main}_{P-1}$}}
    \put(0,120){\line(1,0){480}}
    \put(490, 120){\makebox(0,20)[l]{$\var{Info.Redun}$}}
    \multiput(80,120)(80,0){5}{\line(0,1){20}}
    \put(80, 120){\makebox(80,20){$\var{-Info.Redun}_{1}$}}

    \multiput(0,100)(0,-20){4}{\line(1,0){480}}
    \put(490, 100){\makebox(0,20)[l]{$\var{Hold.Main}_{0}$}}
    \put(520, 75){\makebox(0,20)[l]{$\vdots$}}
    \put(490, 40){\makebox(0,20)[l]{$\var{Hold.Main}_{3}$}}
    \put(0,20){\line(1,0){480}}
    \put(490, 20){\makebox(0,20)[l]{$\var{Hold.Redun}$}}
    \multiput(80,20)(80,0){5}{\line(0,1){20}}
    \put(160, 20){\makebox(80,20){$\var{-Hold.Redun}_{2}$}}
    \put(400, 20){\makebox(80,20){$\var{-Hold.Redun}_{n}$}}
    \put(490, 0){\makebox(0,20)[l]{$\var{Target-addr} = n$}}

    \put(2, 222){\framebox(476,16){}}
    \put(82, 122){\framebox(76,16){}}

 \end{picture}
 \]
 \caption[The $\protect\fld{Info}$ and $\protect\fld{Hold}$ tracks]{The
 $\protect\fld{Info}$ and $\protect\fld{Hold}$ tracks] subdivided into
packets, with $P = 6$ and $n = 5$.
  The location $\protect\fld{-Info}_{1}$ is the union of the framed
locations $\protect\fld{Info}.\protect\fld{Main}_{1}$ and
$\protect\fld{-Info}.\protect\fld{Redun}_{1}$.}
 \label{f.cmp}
\end{figure}

  We will work with a 12-error-correcting code%
\glo{a.greek@$\ag$}%
 \begin{equation}\label{e.err-corr-code-alpha}
  \ag
 \end{equation}
  as in Example ~\ref{x.RS-code}, with $Q_{k}$ information symbols.
  Since that code can correct errors in $t$ symbols with just $2t$
error-check symbols, so for each $i$, the location $\var{-Info}.\Redun_{i}$
is only 24 cells long.
  When $\loc$ is a location representing a string $s$ then we will use the
notation
 \[
   \ag^{*}(\loc)=\ag^{*}(s)
 \]
 for the value decoded from it.

  The computation result will be stored temporarily on the track
 $\Hold$\glo{hold@$\Hold$}.
  This has, similarly to $\Info$, also subfields $\Main$ and $\Redun$.
  This computation result corresponds to the output of
$\trans^{\bw_{k+1}}$.
  Recall that the latter consists of 5 segments of size $\bw_{k+1}$.
  The first three segments determine the new values of $\Inbuf^{*}$,
$\Outbuf^{*}$ and $\Pointer^{*}$.
  The fourth segment determines the new value of a part of the cell state
whose position is determined by the fifth segment.
  The output of the simulating computation, on the $\Hold$ track, will
correspond to the first four of these values, in four subfields.
  The fifth one will be kept in a locally maintained field called
 \[
  \fld{Target-addr}
 \]
  which is supposed to have a constant value throughout the colony.
  Track $\Hold.\Redun$ is split into locations $\fld{-Hold.Redun}_{i}$ for
$i=0,\ldots,P-1$, most of which will be unused.
  For $i=0,1,2$ we define again $\fld{-Hold}_{i}$ as the union of the track
$\Hold.\Main_{i}$ and $\fld{-Hold.Redun}_{i}$, similarly to how
$\fld{-Info}_{i}$ was defined.
  The redundancy bits for $\Hold.\Main_{3}$ will be put, however, not into
$\fld{-Hold.Redun}_{3}$ but into $\fld{-Hold.Redun}_{n}$ where
$n=\fld{Target-addr}$ (here, $n$ has the same meaning as in
~\ref{sss.bandwidth}).  
  Correspondingly, we define
 \[
  \fld{-Hold}_{3} = \Hold.\Main_{3}\cup\fld{-Hold.Redun}_{n}.
 \]
 
 \subsubsection{The code of the amplifier}\label{sss.amp-code}
  Recall ~\eqref{e.crit}.
  If $\fg^{*}(\eta)(y,t)\notin\Bad$ then let us define
 \[
 \eta^{*}(y,t)=\fg^{*}(y,t)=\Vac
 \]
 unless there is a time $v_{1}$ in
$[t-\cns{crit},t]$\glo{crit@$\cns{crit}$} such that the colony $\cC(y)$ is
covered with member cells belonging to the same work period at time $v_{1}$
and is not intersected by the extended damage rectangle at this time.
  In case there is such a time $v_{1}$ let $t^{*}$ be the last time before
$t$ with this property that is also the switching time of a small cell
(just to make sure there is such a last time).
  Let 
 \[
  s=\eta(\cC(y),t^{*}).\Info
 \]
  (the meaning of this notation should be clear).
  If $s$ contains at most 2 errors then (see ~\eqref{e.err-corr-code-alpha})
 \[
  \eta^{*}(y,t)=\ag^{*}(s),
 \]
  else it is $\Vac$.
  The look-back to an earlier time in the definition avoids some
oscillation between the different states assigned to the large cell
that could occur as the result of damage and asynchronous updating.
  
  The encoding $\fg_{*}$ takes the state of a cell, applies $\ag_{*}$ and
copies the result to $\Info$ track of a colony.
  The other parts of the colony are set in such a way as they are to be
found at the beginning of a work period.
  The encoding $\fg_{**}$ is like $\fg_{*}$ except that all tracks but
$\Info$ will be filled with the don't care symbol $*$.


\subsubsection{Coding and decoding rules}
  Let%
 \glo{vacant-str@$\var{Vacant-str}$}%
 \[
  \var{Vacant-str}
 \]
 be a string representing a vacant state in our code.
  Let %
 \glo{code-size@$\var{Code-size}$}%
 \begin{equation}\label{e.N}
    \var{Code-size}(k) = \cei{\rep_{0}/\rep_{1}(k)} %?
 \end{equation}
  where $\rep_{0}$ and $\rep_{1}(k)$ were defined in ~\ref{sss.brc-fr} and
\ref{sss.amp-fr}.
  Let $\rul{Decode-prog}$ %\glo{decode-prog@$\rul{Decode-prog}$}
  be a program
for the medium $\univ$ such that location
 $\fld{-Decode-output}$ %\glo{decode-output@$\fld{-Decode-output}$}
 on track $\Cpt.\Output$ after applying
 \[
  \univ(\rul{Decode-prog}\cc S;Q,2Q)
 \]
  contains $\ag^{*}(S)$ (see ~\eqref{e.err-corr-code-alpha}) if
$\ag_{*}(\ag^{*}(S))$ differs from $S$ in at most 12 symbols: otherwise, it
contains $\var{Vacant-str}$.
  The decoding rule takes a string from location $\loc_{1}$, decodes it and
copies the result to location $\loc_{2}$.
  The rule $\Write$ was described in Subsection ~\ref{ss.simp-sim}.%
 \glo{decode@$\Decode$}%
\begin{program}
    rule $\Decode(\loc_{1},\loc_{2})$ \0{
\\   $\Cpt.\Input := *$;
\\   $\Write(\rul{Decode-prog}, \fld{-Prog})$
\\   $\Copy(0, \loc_{1}, \fld{-Decode-arg})$;
\\   \cmt{apply the rule $\univ$ $2Q$ times to $\Cpt$}
\\   $\Copy(0,\fld{-Decode-output}, \loc_{2})$;
\\   }
 \end{program}
  (Recall the assumption made in ~\ref{sss.effic-univ} that $\univ$ is
commutative, so we do not have to worry about the order of execution in
different cells.)
  The rule%
 \glo{encode@$\rul{Encode}$}%
 \[
  \rul{Encode}(\loc_{1},\loc_{2})
 \]
 performs encoding.
  The locations $\loc_{i}$\glo{loc@$\loc_{i}$} in the encoding and decoding
rules will be allowed to be given indirectly, as explained in Remark
~\ref{r.indirect-copy}.


\subsection{Refreshing} \label{ss.refresh}

  In each rule of the present section, the operation%
 \glo{maj@$\Maj$}%
 \[
   \Maj_{i = 0}^{2}s_{j}
 \]
  when applied to strings $s_{0},s_{1},s_{2}$ is the result of taking the
bitwise majority of these three strings.

  We will have a general type of rule%
 \glo{check0@$\rul{Check}_{0}, \rul{Check}_{1}$}%
 \[
  \rul{Check}_{0}(\prg{prop},\F(I),X_{1},X_{2},\ldots)
 \]
  checking some global property of some parameters $X_{1},X_{2},\ldots$ each of
which is either an explicit string or a location.
  Here, $\var{prop}$ is some program for the universal computing medium
such that after we run the rule of that medium for $Q$ steps the bit $b$
representing the outcome of the check will be broadcast into field $\F$ of
every cell of interval $I$.
  We will also need an error-checked version of $\rul{Check}_{0}$ which uses
some fields $\Vote_{i}$\glo{vote@$\Vote_{i}$} for $i=0,2,3$:%
 \begin{program}
 rule $\rul{Check}_{1}(\prg{prop},\F(I),X_{1},X_{2},\ldots)$ \0{
\\  for $i\in\{0,1,2\}$ do \0{
\\    $\rul{Check}_{0}(\prg{prop}, \Vote_{i}(I), X_{1}, X_{2}, \ldots)$
      }
\proglb{pg.check1.middle}
\\  cond \0{
\\    ? $\Addr\in I$
\\    ! $\F := \Maj_{i=0}^{2}\Vote_{i}$ 
\\    }}
 \end{program}
  The rule%
 \glo{nearly-equal@$\prg{nearly-equal}$}%
 \[
  \rul{Check}_{0}(\prg{nearly-equal},\F(I),\loc_{1},\loc_{2}, d)
 \]
  checks whether the strings in locations $\loc_{1}$ and $\loc_{2}$ differ
in at most $d$ code symbols.
  The subrule $\Refresh$\glo{refresh@$\Refresh$} attempts to clean the
information on the $\Info$ and $\Hold$ tracks by decoding and re-encoding
it.
  It also attempts to make sure that these tracks represent at least
something, even if this is only the vacant state.

  Rule
 $\rul{Update-loc-maint}$\glo{update-loc-maint@$\rul{Update-loc-maint}$}
 updates the locally maintained fields
 \[
 \Doomed, \Growing_{j}\ (j\in\{-1,1\}).
 \]
  (It need not update the fields
 $\Control_{0.1j}$\glo{control@$\Control_{k}$} to be introduced later.)
  Rule%
 \glo{recheck-1@$\prg{recheck-1}$}%
 \begin{equation}\label{e.recheck-1}
  \rul{Check}_{0}(\prg{recheck-1}, \F(I), \G, d) 
 \end{equation}
  checks whether track $\G$ is covered with 1's with possibly $d$ cells as
exceptions.
  As usual, the argument $\F$ means $\F([0,Q-1])$.
  The rule uses some additional locations and fields:
 $\fld{-Decoded}_{0}$ %\glo{decoded@$\fld{-Decoded}_{m}$},
 $\fld{-Encoded}_{n}$\glo{encoded@$\fld{-Encoded}_{n}$} for $n=0,1,2$,
 $\fld{Ck-res}_{n}$\glo{ck-res@$\fld{Ck-res}_{n}$} for $n=0,1,2$.
 \begin{program}
    subrule $\Refresh$ \0{
\\    $\fld{Ck-res} := 1$;
\\    for $i=0$ to $P-1$ do \0{
\\      for $n=0$ to $2$ do \0{
\\        $\Decode(\fld{-Info}_{i}, \fld{-Decoded}_{0})$;
\\        $\rul{Encode}(\fld{-Decoded}_{0}, \fld{-Encoded}_{n})$;
\\        $\rul{Check}_{0}(\prg{nearly-equal}, \fld{Ck-res}_{n},
                \fld{-Encoded}_{n},\fld{-Info}_{i}, 8)$;
\\        \cmt{Idle $Q$ steps}
          }
\\      $\fld{-Encoded}:=\Maj_{n=0}^{2} \fld{-Encoded}_{n}$;
\\      $\fld{Ck-res}:=\fld{Ck-res}\wedge\Maj_{n=0}^{2}\fld{Ck-res}_{n}$;
\\      $\Copy(\fld{-Encoded}, \fld{-Info}_{i})$;
\\      \cmt{Idle $Q$ steps}
        }
\\    $\rul{Check}_{1}(\prg{recheck-1}, \fld{Ck-res}, \fld{Ck-res}, 2)$;
\proglb{pg.refresh.middle}
\\    cond \0{
\\      ? $\fld{Ck-res}=0$ 
\\      ! $\Write(\var{Vacant-str}, \fld{-Info})$
        }
\\    \cmt{Repeat the whole procedure with $\fld{-Hold}$ in place of
$\fld{-Info}$, ``mutatus mutandis''.}
\\   }
 \end{program}

  Let us say that a string $s$ of symbols that can be the argument of a
certain error-correcting decoding \df{has $d$ errors}\index{error} if,
when applying the decoding and encoding to it, the result differs from $s$
in $d$ symbols.

\begin{lemma}[Refresh]\label{l.refresh}\index{lemma@Lemma!Refresh}
  Assume that we have a full colony in which all cells have ages before the
starting point of $\Refresh$.
  Then  we have:
 \begin{cjenum}

  \item \label{refresh.valid-or-die}
  At the end of $\Refresh$, for all $i$, locations $\fld{-Info}_{i}$, have
at most 4 errors;

  \item \label{refresh.refresh}
  Suppose that at the beginning of $\Refresh$, for all $i$, locations
$\fld{-Info}_{i}$, have at most 4 errors.
  Then during the whole $\Refresh$, the value $\ag^{*}(\fld{-Info}_{i})$
does not change and $\fld{-Info}_{i}$ has at most 8 errors.

  \end{cjenum}
  The same statements hold for location $\fld{-Hold}$.
 \end{lemma}
 \begin{Proof}
  We perform the analysis only for $\fld{-Info}$.
 \begin{step+}{refresh.immed-dam}
  For any $i$, the ``immediate'' effect of the damage can affect at most
4 symbols of $\fld{-Info}_{i}$.
  \end{step+}
 \begin{pproof}
  The damage rectangle can have immediate effect in the cell where it
happens, and its healing can change possibly one more cell next to it.
  If the affected cells happens to contain the symbols from
$\fld{-Redun}_{i}$ then this can affect two information symbols and two
error-check symbols.
 \end{pproof}
 \begin{step+}{refresh.early-dam}
  Assume that the damage rectangle occurs before point
~\eqref{pg.refresh.middle} of the rule.
  \end{step+}
 \begin{prooof}
  Let us look at the damage-free operations in $\rul{Check}_{1}$ after
~\eqref{pg.refresh.middle}.
  The first such operation turns $\fld{Ck-res}$ into all 0 or all 1. 
  If $\fld{Ck-res}=0$ then the last step writes $\var{Vacant-str}$ into
$\fld{-Info}$, and thus the latter will have no errors.

  Suppose therefore that if $\fld{Ck-res}=1$.
  Then before $\rul{Check}_{1}$, we have $\fld{Ck-res}=1$ in all but two cells.
  Let us look at any cell $x$ not affected immediately by damage (the large
majority is such).
  Since the majority step computing $\fld{Ck-res}$ is correct in $x$, for
all $i$ there must have been two values of $n$ for which $\rul{Check}_{0}$
wrote the value 1 into $\fld{Ck-res}_{n}(x)$.
  For at least one of these $n$, say $n_{1}$, the computing
period\index{period!computing} $(i,n_{1})$ is damage-free.
  That period wrote an error-free string into $\fld{-Encoded}_{n_{1}}$, and
also determined that this string does not differ from $\fld{-Info}_{i}$ by
more than 8 symbols.
  There is another damage-free period\index{period!damage-free} $(i,n_{2})$.
  Its $\fld{-Info}_{i}$ could have been different at its beginning
(if damage occurred between the two periods), though according to
~\ref{refresh.immed-dam} by not more than 4 symbols.
  Therefore, since our code corrects 12 errors, we have
  $\fld{-Encoded}_{n_{1}} = \fld{-Encoded}_{n_{2}}$.
  Except for the immediate effect of new damage, this is going to be the
new value of $\fld{-Info}_{i}$, therefore there can be at most these 4 new
errors at the end of $\Refresh$.

  Suppose that at the beginning, each $\fld{-Info}_{i}$ has at most 4
errors.
  By ~\ref{refresh.immed-dam}, the damage rectangle affects at most 4 cells
of $\fld{-Info}_{i}$ immediately.
  Therefore during the whole $\Refresh$, the value
$\ag^{*}(\fld{-Info}_{i})$ does not change and $\fld{-Info}_{i}$ has at
most 8 errors.
 \end{prooof}

 \begin{step+}{refresh.middle-dam}
  Assume that the damage rectangle occurs on line
~\eqref{pg.refresh.middle}.
  \end{step+}
 \begin{prooof}
  Then the damage did not occur before and therefore the track
$\fld{Check-res}$ contains either all 0's or all 1's.

  Suppose the damage has occurred before line ~\eqref{pg.check1.middle} of
rule $\rul{Check}_{1}$, in iteration $n$ of that rule.
  Then only $\Vote_{n}(I)$ will be affected, and possibly two
more cells, the cell where the damage occurred and a cell next to it due to
healing.
  In the 2 other iterations, the track $\fld{Check-res}$ still contains
either all 0's or all 1's with these exceptions, and the result of these 2
iterations is the same as it was without the damage in the third iteration.
  The majority vote brings out the same result, except for possibly 2
immediately affected cells.
 \end{prooof}%

  If the damage occurs after line ~\eqref{pg.check1.middle}, in rule
$\rul{Check}_{1}$, i.e.~in the last step of the rule, then again only the cells
immediately affected will not have the correct result.

  If the damage occurs after line~\eqref{pg.refresh.middle} in rule
$\Refresh$ then again, this being a one-step action, only the cells
immediately affected by the damage would show up as errors.
 \end{Proof} % {refresh}


\subsection{Computation rules}\label{ss.comp}

  After retrieval from neighbor colonies (to be discussed later), the
string returned from neighbor $m$ will be in some location%
 \glo{retrieved@$\fld{-Retrieved}_{m}$}%
 \[
   \fld{-Retrieved}_{m}.
 \]
  These strings are inputs to the simulated transition function but still
in encoded form.
  After decoding, the result will appear in
$\fld{-Decoded}_{m}$ %\glo{decoded@$\fld{-Decoded}_{m}$}.

\subsubsection{Evaluation}\label{sss.eval}
  As seen in ~\eqref{e.trans-b-in}, only the field $\Buf^{*}$ of the
neighbors is found in $\fld{-Retrieved}_{m}$ for $m \ne 0$.
  For $m = 0$, the location $\fld{-Info}_{\a}$ is also needed, where $\a$
is determined by $\Pointer^{*}$, which according to
~\ref{sss.main-and-redun} is found in $\fld{-Info}_{2}$.
  Thus, first we broadcast this number $\a$ into a locally maintained field%
 \glo{source-addr@$\fld{Source-addr}$}% 
 \[
  \fld{Source-addr}
 \]
 of each cell of the colony, and then use indirect copying as in Remark
~\ref{r.indirect-copy} to copy $\fld{-Info}_{\a}$ into the appropriate part
of $\fld{-Retrieved}_{0}$.

  Then, the subrule $\Eval$\glo{eval@$\Eval$} finds the intended output of
$\trans_{k+1}^{(\bw)}$, as defined in ~\ref{sss.bandwidth}, using the
universal computation, as in $\Decode$ above.
  Here are the details.

  We are proving Lemma ~\ref{l.amp} (Amplifier), so what is given is an
amplifier frame $\Frame$, and the number $k$, and we are building the
transition function of the medium $M_{k}$.
  Assume that $\Frame$ is described in a string
 \[
   \Param_{2} = \Frame,
 \]
  the parameter $k$ is described in a string
 \[
  \Param_{1} = k,
 \]
  and the program we are just writing is $\Param_{0}$.
  First $\Eval$ computes $\trans_{k+1}^{(\bw)}$.
  It uses several new locations, some of which were introduced in
~\ref{sss.block-sim-eval}:
 $\fld{-Interpr}$\glo{interpr@$\fld{-Interpr}$},
 $\fld{-Param}_{i}$\glo{param@$\fld{-Param}_{i}$} for $\Param_{i}$, 
 $\fld{-Arg}_{m}$\glo{arg@$\fld{-Arg}_{m}$}.
  The result will be deposited in
$\fld{-Sim-output}_{i}$\glo{sim-output@$\fld{-Sim-output}_{i}$} for
$i=1,2$.
 \begin{program}
     $\Cpt.\Input := *$;
     $\Write(\rul{Interpr}, \fld{-Interpr})$;
\\   $\Write(\Param_{0}, \fld{-Param}_{0})$;
\\   $\Write(\Param_{1} + 1, \fld{-Param}_{1})$;
\\   $\Write(\Param_{2}, \fld{-Param}_{2})$;
\\   for $m\in\Nb-ind$ do \0{
\\     $Copy(0,\fld{-Decoded}_{m}, \fld{-Arg}_{m})$
       }
\\   \cmt{apply $Q$ times the rule $\univ$ to $\Cpt$}
\\   \cmt{The result is in $\fld{-Sim-output}_{1}$.}
\\   $\Copy(0,\fld{-Sim-output}_{1}, \fld{-Sim-output}_{2})$
 \end{program}
  As seen in ~\eqref{e.trans-b-legal}, in the output string of
$\trans^{(\bw)}_{{k+1}}$, only the first segment of size $\bw_{k+1}$
(corresponding to field $\Inbuf^{*}$) depends on the neighbors.
  To make sure that really this is the case, the above sequence of
operations will in fact be performed twice, with the following differences.
 \begin{itemize}

  \item The first time, for all $m \ne 0$, the string written in
$\fld{-Arg}_{m}$ will not be a copy of $\fld{-Retrieved}_{m}$ but simply
the corresponding part of $\var{Vacant-str}$.
  Thus, the result does not depend on retrieval from neighbor colonies;

  \item The second time, only field $\Inbuf^{*}$ of $\fld{-Sim-output}_{1}$
will be copied into the appropriate part of $\fld{-Sim-output}_{2}$;

 \end{itemize}
  According to ~\ref{sss.combined}, the complete transition function is
combined from $\var{Sim-trans}$ and $\var{Rd-trans}$.
  To make sure this is the case, we recompute $\var{Rd-trans}_{k+1}$ and
perform the combination.
  Thus, now the rule $\Eval$ finds out from $\fld{-Sim-output}_{2}$ whether
the new big cell is going to be vacant.
  If not then $\var{Rd-trans}_{k+1}$ is computed somewhat similarly to
$\var{Sim-trans}_{k+1}$ above.
  The main difference is in what we copy into $\Param_{0}$.
  According to the complexity upper bounds in Subsection ~\ref{ss.frame},
the sequence $\var{Rd-trans}_{i}$ of functions is uniformly simple.
  Therefore $\Frame$ contains a program $\prg{Rd-trans-prog}$ computing
$\var{Rd-trans}_{k+1}$ on the universal medium $\univ$ from $k+1$ and its
arguments in time $\rep_{0}\nm{\SS_{k+1}}$ and space
$\rep_{0}\nm{\SS_{k+1}}$.
  We will therefore copy $\prg{Rd-trans-prog}$ into $\fld{-Param}_{0}$.
  The result will be stored in $\fld{-Rd-output}_{2}$.

  Finally, we combine $\fld{-Sim-output}_{2}$ and $\fld{-Rd-output}_{2}$ as
required in ~\ref{sss.combined}, into a location $\fld{-Eval-output}$.
  In accordance with ~\eqref{e.trans-b-out}, this location can be broken up
into segments $\fld{-Eval-output}_{i}$ for $i=0,1,2,3,4$, of size
$\bw_{k+1}$.
  Locations $\fld{-Eval-output}_{i}$ for $i=0,1,2$ are supposed to be the
first three packets of the new big cell state.
  $\fld{-Eval-output}_{3}$ is also supposed to be the new value, to replace
some packet $\Info.\Main_{\n}$ of the new cell state, where
$\n = \fld{-Eval-output}_{4}$.
  To use this information, the number $\n$ will be broadcast into a field
$\fld{Target-addr}$ of each cell.

 \begin{remark}
  It seems wasteful to compute $\var{Rd-trans}_{k+1}$ twice: once as part
of $\trans_{k+1}$ and once separately.
  To avoid this, in the first computation we can replace
$\prg{Rd-trans-prog}$ with a trivial program that does not do anything.
 \end{remark}

  This ends the definition of the rule $\Eval$.


\subsubsection{The computation rule}
  In the rule $\Compute$, the evaluation process will be repeated 3 times:
in repetition $n$, we code $\fld{-Eval-output}$ onto track
$\fld{Hold-vote}_{n}$, and finally $\Hold$ will be obtained by majority
vote from $\fld{Hold-vote}_{n}$ ($n=0,1,2$).

  In the rule $\rul{Randomize}$, the $\Rand$ bit of the first cell of the
colony is taken and an $\ag_{*}$-code of it is placed into the appropriate
location on the $\Hold$ track.
  This is done only once, without any attempt of error-correction.

  Rule $\rul{Update-loc-maint}$ will be discussed below.%
 \glo{compute@$\Compute$}% 
 \begin{program}
   subrule $\Compute$ \0{ 
\\   $\Refresh$;
\\   for $n=0$ to $2$ do \0{
\\     for $m\in\Nb-ind$ do \0{
\\       $\Decode(\fld{-Retrieved}_{m}, \fld{-Decoded}_{m})$;
         }
\\     $\Eval$;
\\     for $i=0,1,2,3$ do \0{
\\       $\rul{Encode}(\fld{-Eval-output}_{i}, \fld{-Hold}_{i})$;
\\       \cmt{For $i=3$, use indirect copying with
           $\fld{Target-addr} = \fld{-Eval-output}_{4}$.}
         }
\\     $\fld{Hold-vote}_{n}=\Hold$;      
\\     $\fld{Target-addr}_{n} := \fld{Target-addr}$;
       }
\\   $\Hold := \Maj_{n=0}^{2}\fld{Hold-vote}_{n}$;
\\   $\fld{Target-addr} := \Maj_{n=1}^{3}\fld{Target-addr}_{n}$;
\\   $\rul{Randomize}$;
\\   $\Refresh$;
\\   $\rul{Update-loc-maint}$
\\   }
\end{program}


 \subsection{Finishing the work period}\label{sss.finish}

  The present subsection is devoted to achieving good upper and lower
bounds on the length of the colony work period, i.e.~ on $\Tu_{k+1}$ and
$\Tl_{k+1}$ in terms of $\Tu_{k}$ and $\Tl_{k}$.
    Though it seems likely that these bounds can be proven if each cell of
the colony simply runs until the same maximum age $U_{k} - 1$, we did not
find such a proof.
  Therefore we introduce some special rules.

  The $\rul{March}$ rule updates the age of a cell only when its neighbors
allow it, and this is what makes the time estimates difficult.
  We will therefore define a different rule,
$\rul{March}_{1}$\glo{march@$\rul{March}_{1}$}, which allows updating a
different field, $\Age_{1}$,\glo{age@$\Age_{1}$} independently of any
neighbors.
  The idea is to end the work period when a certain cell reaches
$\Age_{1}=U$, since then the (multiplicative) uncertainty in the length of
the colony work period will not be much greater than the uncertainty in the
length of the individual cell dwell period.
  We will use the $\Age_{1}$ of more than one cell, for robustness, but
then we will need to reach a consensus among these about when the end
comes.
  To leave clearly enough time for the consensus computation, and to make
sure the work period ends in a coordinated way, what will be determined by
consensus is some future value $\End$ of $\Age$ when the work period will
end.


 \subsubsection{Finding the work period end}
  We will also use the auxiliary field%
 \glo{end@$\End_{i}$}%
 \[
   \End_{0} \in [0,U-1].
 \]
  At the beginning of the work period, we start with $\Age_{1}=0$,
$\End=\End_{0}=U-1$.
  (These values are extremely large for $\End,\End_{0}$.)
  Recall the definition of
 $\cns{end-period}$\glo{end-period@$\cns{end-period}$} in
~\eqref{e.end-period}.
  The field $\End_{0}$ is required to have the property
 \begin{equation}\label{e.End_{0}}
  \End_{0}=U-1 \text{ or } \End_{0}\le\Age+\cns{end-period}
 \end{equation}
  which will be enforced by a trivial rule.
  The update rule of $\Age_{1}$ is trivial.
 \begin{program}
  rule $\rul{March}_{1}$ \0{
\\  cond \0{
\\    ? $\Age_{1} < U-1$
\\    ! $\Age_{1} :=_{\p_{0}} \Age_{1}+\p_{0}$
\\   ?! cond \0{
\\      ? $\End_{0}=U-1$
\\      ! $\End_{0} :=_{\p_{0}} (U-1)\wedge(\Age+\cns{end-period})$
\\      }}}
 \end{program}
  Thus, each cell updates its $\Age_{1}$ independently of all other cells,
and the delays are also counted in.
  When the upper bound $U-1$ of $\Age_{1}$ is reached each cell puts its
estimate of the end of the work period into $\End_{0}$.
  The subrule $\rul{Find-end}$\glo{find-end@$\rul{Find-end}$} will last at
most%
 \glo{synch-time@$\cns{synch-time}$}%
 \begin{equation}\label{e.synch-time}
   \cns{synch-time} = 16Q
 \end{equation}
  steps and will be run every $4\cns{synch-time}$ steps after
$\Age>\cns{synch-start-lb}$\glo{synch-start-lb@$\cns{synch-start-lb}$} (see
~\eqref{e.synch-start-lb-req}).
  It uses votes $\End_{i}\in[0,U-1]$ %\glo{end@$\End_{i}$}
 ($i=1,2,3,4$) to achieve consensus of the $\End_{0}$ values and to store
it in $\End$.
  The subrule%
 \glo{synch-consensus@$\prg{synch-consensus}$}%
 \glo{end-legal@$\fld{End-legal}$}%
 \[
  \rul{Check}_{0}(\prg{synch-consensus}, \fld{End-legal}, \End_{4})
 \]
  checks whether there is a $c$ such that $\End_{4}(x)=c$ for all but 3 of
the cells $x$ in the colony.
  
 \begin{program}
  subrule $\rul{Find-end}$ \0{
\\    for $i\in\{1,2,3\}$ do \0{
\\      cond \0{
\\        ? \cmt{There is a $c<U-1$ such that $\End=c$}
\proglb{pg.synch.late}
\\          \cmt{for all but 2 cells in the colony}
\\        ! $\End_{i}:=_{\p_{1}} c$
\\        ? \cmt{All but $Q/4$ cells have $\End_{0}<U-1$}
\proglb{pg.synch.early}
\\        ! $\End_{i}:=_{\p_{1}}$ \cmt{the maximum of the $Q/2$
smallest values}
\\          \cmt{of $\End_{0}$ in the colony.};
          }
        };
\\    cond \0{
\\      ? \cmt{There are two equal values among}
 $\setof{\End_{i}: i\in\{1,2,3\}}$
\\      ! $\End_{4} :=_{\p_{1}} \Maj_{i=1}^{3}\End_{i}$
        };
\\    $\rul{Check}_{1}(\prg{synch-consensus}, \fld{End-legal}, \End_{4})$
\\    cond \0{
\\      ? $\fld{End-legal}=1$
\\      ! $\End:=\End_{4}$
\\      }}
 \end{program}


 \subsubsection{Finish}
  At $\Age=\End$ for non-germ cells and
$\Age=\cns{germ-end}$\glo{germ-end@$\cns{germ-end}$} for germ cells, a
final computation takes place in the rule
$\rul{Finish}$\glo{finish@$\rul{finish}$}.
  The information from the $\Hold$ track will be copied into the
corresponding locations on the $\Info$ track.
  This is done in accordance with ~\eqref{e.trans-b-out}: 
locations $\fld{-Hold}_{i}$ for $i=0,1,2$ go to $\fld{-Info}_{i}$.
  On the other hand, location $\fld{-Hold}_{3}$ goes to $\fld{-Info}_{\n}$
where $\n  = \fld{Target-addr}$.
  Still, due to the positioning done earlier, the whole operation involves
only copying within each cell and takes therefore only a single step.
  In particular, $\Outbuf^{*}$ remains unchanged until the last step.

  In the same step, addresses of growth cells will be reduced mod $Q$.
  Outer cells and inner germ cells turn into members, outer germ cells turn
latent.
  $\End,\End_{0},\Age,\Age_{1}$ become 0.


\subsubsection{Updating the locally maintained fields}
  The rule
 \[
  \Broadcast(\loc, \F(I))
 \]
 takes the information found in location $\loc$ and writes it into the
$\F$ field of every cell in interval $I$.
  The rule
 \glo{check-vacant@$\rul{Check-vacant}$}
 $\rul{Check}_{0}(\rul{Check-vacant}, \F(I), \loc)$
 checks whether the string represented in $\loc$ is $\Vac^{*}$.
  Let $\fld{-Creating}_{j}$\glo{creating@$\fld{-Creating}_{j}$} be the
known location of the field $\Creating_{j}^{*}$ of the represented cell
inside $\fld{-Decoded}_{0}$ after decoding.
  The value in this represented field will be broadcast reliably to the
track $\Growing_{j}$\glo{growing@$\Growing_{j}$}.%
 \glo{update-loc-maint@$\rul{Update-loc-maint}$}%
 \begin{program}
  rule $\rul{Update-loc-maint}$ \0{
\\      for $n=0$ to 2 do \0{
\\        $\Decode(\fld{-Hold}, \fld{-Decoded}_{0})$;
\\        $\rul{Check}_{0}(\rul{Check-vacant}, \Vote_{n}, \fld{-Decoded}_{0})$
          }
\\      $\Doomed := \Maj_{n=0}^{2}\Vote_{n}$
\\      for $j\in\{-1,1\}$ do  \0{
\\        for $n=0$ to 2 do \0{
\\          $\Decode(\fld{-Info}, \fld{-Decoded}_{0})$;
\\          $\Broadcast(\fld{-Creating}_{j}, \Vote_{n})$;
            }               
\\        $\Growing_{j} := \Maj_{n=0}^{2}\Vote_{n}$
\\        }}
 \end{program}

 \begin{remark}
  Defining the rules this way wastes many operations since we do not
extract all information from its decoded form at once but rather decode
repeatedly.
  But it is easier to follow the analysis in this form.
 \end{remark}

 \begin{lemma}\label{l.update-loc-maint}
  Assume that we have a full colony in which all cells have ages before
a starting point of $\rul{Update-loc-maint}$.
  Then at the end of this rule we have the same conditions as at the end of
$\Refresh$, and in addition the following:
 \begin{cjenum}

  \item For all but at most 2 cells, the locally maintained fields
$\Doomed$ and $\Growing_{j}$ have constant values in the colony;

  \item We have $\Doomed=1$ almost everywhere if{f} $\fld{-Hold}$ represents
a vacant state;

  \item For $j\in\{-1,1\}$, for almost all cells in the colony,
$\Growing_{j}$ is equal to $\Creating_{j}^{*}$ of the cell state
represented by the colony;

 \end{cjenum}
  \end{lemma}
 
\begin{proof}
  The proof is similar to, only simpler than the proof of Lemma
~\ref{l.refresh}: simpler, since at the starting point of
$\rul{Update-loc-maint}$, we can already assume that the conditions asserted
by that lemma hold.
 \end{proof}

  By choosing $Q$ sufficiently large ($\rep_{0}$ times the bandwidth), the
time complexity of each of the $\univ$ computations can be bounded by some
constant times $Q$ and therefore the total number of steps taken by
$\Compute$ can be estimated as%
 \glo{compute-time@$\cns{compute-time}$}%
 \begin{equation}\label{e.compute-time}
    K_{0} Q P = K_{0} Q\frac{\cp_{k+1}}{\bw_{k+1}} 
  \le 2K_{0} Q\frac{\cp_{k}}{\bw_{k}}
 \end{equation}
 where $K_{0}$ is some absolute constant, which is consistent with
~\eqref{e.compute-time-def}.


\subsection{Legality}

  Let us prove parts ~\eqref{ax.comput.legal-comp} and
~\eqref{ax.comput.legal-birth} of Condition ~\ref{ax.comput} (Computation
Property) for big cells.

 \begin{lemma}[Legality]\label{l.legality}
  Assume that, for some rational number $a$, $\Damage^{*}$ does not
intersect $\{x\}\times[a-\Tl^{*}/2+,a+2\Tu^{*}]$.
 \begin{cjenum}
  \item\label{comp.legal-compi}
  If $\sg_{1},\sg_{2}$ is defined in the interval $[a+,a+2\Tu^{*}]$
  Then 
 \begin{equation}\label{e.legality}
   \legal_{k+1}(\eta^{*}(x, \sg_{2}-), \eta^{*}(x, \sg_{2})) = 1
 \end{equation}
  and $\Tl^{*} \le \sg_{2} - \sg_{1} \le \Tu^{*}$.
  \item\label{comp.legal-birth}
  If $\sg_{0}$ is defined then \eqref{e.legality} holds for $\sg_{0}$ in
place of $\sg_{2}$.
 \end{cjenum}
  \end{lemma}
 \begin{Proof}
  The discussion in Subsection ~\ref{ss.damage-rect} has shown that
$\eta^{*}(x,t)\not\in\Damage^{*}$ iff the damage can be covered by a single
damage rectangle in $(x,t)+V'$ where $V'$ is defined in~\eqref{e.V'}.
  The space projection of $V'$ is at least $1.5QB$ and the time projection
is at least $\Tl^{*}/2$.
  Thus, our assumption implies that during every time interval of size
$\Tl^{*}/2$ in $[a-\Tl^{*}/2, a+2\Tu^{*}]$, the interval
 $[x-0.25QB, x+1.25QB]$ is intersected by at most one damage rectangle.

  Consider a time $v_{2}$ such that $\eta^{*}(x,v_{2})\ne\Vac$.
  If $\sg_{0}$ is defined then let $v_{2}=\sg_{0}$, while if $\sg_{2}$ is
defined then let it be some time very close from below to $\sg_{2}$.

   According to ~\ref{sss.amp-code}, there is a time $v_{1}$ in
$[v_{2}-\cns{crit},v_{2}]$ such that the colony $\cC$ is covered with
member cells belonging to the same work period at time $v_{1}$ and is not
intersected by the extended damage rectangle at this time.
  Lemma ~\ref{l.lg-progress} (Large Progress) says that, by setting
$u_{1}=v_{1}$, there is a time $u_{0} \in [u_{1}-5Q\tau_{1}, u_{1}]$, and a
path $P_{1}$ in $\cC\times[u_{0},u_{1}]$ with $d_{i}=(P_{1}(u_{i}),u_{i})$
within distance $B$ of the center of $\cC$ such that $\cC\times\{u_{0}\}$
is not in the wake of a damage rectangle, is covered by a domain, and
 $Q\le \Age(d_{1})-\Age(d_{0})$.
  If $d_{0}$ is a member cell let us apply the Large Progress Lemma
(backward) repeatedly until either the path crosses a work period boundary,
or the age along the path decreases by
 \[
    L=6\cns{synch-time}+\cns{end-period}.
 \]
  Suppose the cell we arrived at is not a member cell and has
$\Age\ge\End-Q$.
  Then we perform one more repetition, but stop along the path as soon as
the age decreases below $\End-Q$.
  Lemma ~\ref{l.cover-ancestor} (Cover Ancestor) shows that we can stop at
a time when the colony is covered by a domain.
  Let us now denote by $d_{0}=(y_{0},u_{0})$ the cell at which we arrive
this way.

 \begin{step+}{legality.vacant}
  Assume that $d_{0}$ is an outer cell.
 \end{step+}
  \begin{prooof}
  Then we have 
 \begin{equation}\label{e.legality.vacant.short-time}
  \Age(d_{1}) - \Age(d_{0}) \le L + Q
 \end{equation}
  and at time $u_{0}$, the whole colony is covered by outer cells.
  Lemma ~\ref{l.attrib} (Attribution) shows that $d_{0}$ can be attributed
to its own colony and that this colony could not have been occupied by
member cells for at least $\cns{crit}$ time units before $u_{0}$.
  Therefore $\eta^{*}(x,u_{0})=\Vac$.

  In this case we have $v_{2} = \sg_{0}$.
  The outer cells at time $u_{0}$ encode a latent cell of medium
$M^{*}$.
  Therefore eventually, when all outer cells turn into member cells, the
new colony will encode a latent cell.
  Now, a vacant-to-latent transition is legal by Condition
~\ref{cond.vac-to-lat}.
  \end{prooof}%{legality.vacant}

  The reasoning is analogous in case $d_{0}$ is a germ cell.
  Assume now that $d_{0}$ is a member cell in the same work period as
$c_{1}$: then $\Age(d_{1})-\Age(d_{0}) \ge L$.
  Then we have the case when $\sg_{1},\sg_{2}$ are defined.

 \begin{step+}{legality.synch}
  The Large Progress Lemma can extend the path repeatedly until we arrive
at a cell $c_{0}=(x_{0},v_{0})$ in the same work period, with
 \begin{equation}\label{e.legality.synch}
  \begin{aligned}
           v_{0} &> \sg_{1},
\\   \Age(c_{0}) &\le 2Q,
\\  v_{1}-v_{0}  &\le U\Tu + 5\tau_{1}L.
  \end{aligned}
 \end{equation}
 \end{step+}
 \begin{pproof}
  One can find a time $t_{1}$ in $[u_{0},v_{1}]$ such that denoting
 $\e_{1}=(P_{1}(t_{1}),t_{1})$\glo{e@$\e_{1}$} we have
 \[
   \Age(\e_{1})\le \Age(d_{0})+6\cns{synch-time},
 \]
  and there is a complete damage-free execution of $\rul{Find-end}$
during $[\Age(d_{0}),\Age(\e_{1})]$.

  \begin{step+}{legality.synch.not-done}
  This execution of $\rul{Find-end}$ finds more than $Q/4$ cells in $\cC$
with $\End_{0}=U-1$.
  \end{step+}
  \begin{prooof}
  Assume that this is not true.
  Then this execution of $\rul{Find-end}$ sets the common value of
$\End$ to a value that was $\le\End_{0}(y,t)$ for one of the cells $y$ at
the time $t$ when it examined $y$.
  By ~\eqref{e.End_{0}}, then $\End\le\Age(y,t)+\cns{end-period}$.
  It is easy to see that subsequent executions of $\rul{Find-end}$ do
not change this value of $\End$ (except for the spot of damage, which will
be corrected).
  Therefore the work period will have to end at an age before
$\Age(\e_{1})+\cns{end-period}$ which is not possible given our definition
of $\e_{1}$, since we came back $L$ steps within the work period 
to $\Age(d_{0})$ and went forward at most $6\cns{synch-time}$ steps.
  \end{prooof}%{legality.synch.not-done}

  Let us continue applying the Large Progress Lemma from $d_{1}$ and
extending the path backward from $d_{0}$ until a cell $c_{0}=(x_{0},v_{0})$
with $Q < \Age(x_{0}) \le 2Q$ or $v_{0} = \sg_{1}$, whichever comes first.
  Look at the cells $y$ which were found by the above-mentioned run of
$\rul{Find-end}$ at some time $t$ to have $\End_{0}(y,t)=U-1$ and hence
$\Age_{1}(y,t)<U-1$.
  There are so many of them that some of them will be damage-free during
the whole work period.
  Take one such cell $y$.
  Rule $\rul{March}_{1}$ keeps increasing $\Age_{1}(y)$ between times
$v_{0}$ and $t$, hence $t-v_{0}\le U\Tu$, and
 \[
  v_{1}-t\le v_{1}-u_{0}\le U\Tu + 5\tau_{1}L.
 \]
  Let us show that $\Age(c_{0})>2Q$ is not possible.
  Indeed, this would mean $v_{0}=\sg_{1}$.
  Then the big cell $y$ would go through a switch of a state in $\sg_{1}$
but our backward path has never changed a colony work period.
 \end{pproof} %legality.synch

 \begin{step+}{legality.legal}
  Under the assumptions, the switch in $\sg_{2}$ is legal.
 \end{step+}
 \begin{pproof}
  Let us follow the development of the colony $\cC(x)$, starting from
the time $v_{0}$ found above.
  Since the big cell is non-vacant during this, location $\fld{-Info}$
encodes a string with at most 2 errors.
  The rule $\Compute$, begins, at age $\cns{compute-start}$, with an
application of $\Refresh$.
  As the corresponding lemma shows, at the end of this, location
$\fld{-Info}$ will still encode the same string with possibly fewer errors.
  Thereafter, the $\Info$ track will not change until the next work period,
except for the local changes caused by the damage and its corrections by
new applications of $\Refresh$.

  The following computation can be analyzed similarly to the first part of
the proof of Lemma ~\ref{l.refresh} (Refresh).
  According to the definition of rule $\Eval$, the value put into the part
corresponding to $\Memory^{*}$ of $\fld{-Hold}$ is obtained without using
the result of $\Retrieve$, so it is certainly a value legally obtainable
from $\fld{-Info}$.

  Any subsequent change of $\fld{-Info}$ or $\fld{-Hold}$ caused by a
damage rectangle will be corrected by a later $\Refresh$, and any new
inhomogeneity of $\Doomed$ will be corrected by $\Heal$.
  If $\Doomed=1$ then the whole colony dies, since the exposed right end is
impossible to heal.
  In the case $\Doomed=0$, the rule $\rul{Finish}$ installs the changes on
the track $\Info$ in one step, leaving again no place for more than 2
errors.
  In both cases, the state at time $\sg_{2}$ will be a legal consequence of
the state at time $\sg_{2}-$.
 \end{pproof}%{legality.legal}

 \begin{step+}{legality.lb}
  Let us lower-bound now the distance between the two switching times of
$\eta^{*}$ in $x$.
  (The proof of the upper bound is similar but simpler.)
 \end{step+}
 \begin{prooof}
  The usual analysis of $\rul{Find-end}$ shows that this rule changes
$\End$ either in all cells (but possibly two) or in none of them (but two).
  Suppose first that $\End=U-1$ stays that way during the whole work
period.
  Then the end would come only at $\Age=U-1$.
  Measuring the time for a cell that has never been affected by damage,
this would give a lower bound $(U-2Q)\p_{1}\Tl>\Tl^{*}$.

  Suppose now that $\End$ becomes smaller than $U-1$.
  Consider the first execution of $\rul{Find-end}$ when this happens.
  Then there must have been some damage-free cell $x$ such that by the time
$t_{1}$ this execution inspects $x$ it has $\Age_{1}(x,t_{1})=U-1$.
  Let $t_{0}$ be the time when $\Age_{1}(x,t_{0})=0$ at the beginning of
the work period: then $t_{1}-t_{0}\ge U\Tl$.
  From here, the desired lower bound follows easily.
 \end{prooof} %legality.lb
\end{Proof}% {l.legality}

  The lemma below follows easily from the above proof and from Condition
~\ref{cond.time-mark} (Time Marking).

 \begin{lemma}\label{l.dead-if-long}
  Assume that, for some rational number $a$, $\Damage^{*}$ does not
intersect $\{x\}\times[a-\Tl^{*}/2+,a+2\Tu^{*}]$.
  If $\eta^{*}$ has no switching time during $[a+,a+2\Tu^{*}]$ then
$\eta^{*}(x,a+)=\Vac$.
 \end{lemma}

  The following lemma infers about the present, not only about the past as
the Attribution Lemma.

  For an extended damage rectangle $[a_{0},a_{1}]\times [u_{0},u_{1}]$, we
call the rectangle 
 \[
 [a_{0},a_{1}]\times [u_{0}, u_{0}+4\tau_{1}]
 \]
 its \df{healing wake}\index{damage!rectangle!healing wake}.


 \begin{lemma}[Present Attribution]\label{l.pres-attrib}
 \index{lemma@Lemma!Present Attribution}
  Assume that the live cell $c_{0}=(x_{0},t_{0})$ in colony $\cC$ with base
cell $z_{0}$ is not a germ, and is to the left of the center of its
originating colony.
  Assume also that $\cC$ at time $t_{0}$ does not intersect the healing
wake of any damage rectangle.
  Then one of the following cases holds.
 \begin{djenum}

  \item\label{i.pres-attrib.center}
  $c_{0}$ is a member cell, attributed to $\cC$ which is covered by a domain
of member cells at time $t_{0}$.
  If $Q <\Age <\End-Q$ then the $\Info$ track of this colony has at most 2
errors;

  \item\label{i.pres-attrib.new}
  $c_{0}$ is a member cell from which a path of time projection at most
$Q\tau_{1}$ leads back to to a growth cell in $\cC$ and this growth cell
can be attributed to $\cC+QB$.
  At time $t_{0}$, if $\cC+QB$ does not intersect the healing wake of a
damage rectangle then $[x_{0},z_{0}+QB-]$ is covered by a domain;

  \item\label{i.pres-attrib.ext}
  $c_{0}$ is an outer cell, attributed to its originating colony.
  At time $t_{0}$, if $\cC+QB$ does not intersect the healing wake of a
damage rectangle then $[x_{0},z_{0}+QB-]$ is covered by a domain;

  \item\label{i.pres-attrib.vanish}
  $c_{0}$ is a member cell and there is in $\cC$ a backward path from
$c_{0}$, with time projection $\le 2\cns{split-t}+(Q+1)\tau_{1}$ going back
to a domain of doomed member cells covering $\cC$;

 \end{djenum}
 \end{lemma}
  \begin{Proof}\
  \begin{step+}{pres-attrib.old-member}
  Suppose that $c_{0}$ is a member cell and $\cC$ was covered by member
cells at some time in the set $I\xcpt E$ (as defined around
~\eqref{e.attrib.I}).
  \end{step+}
  \begin{prooof}
  Using the Large Progress lemma repeatedly, we can go back to a time
before age $\cns{compute-start}$ in $\cC$, just as in the proof of the
Legality Lemma above.
  Then we can follow the development of the colony forward and see that it
forms a continuous domain together with its extension.
  The $\Info$ track has at most 2 errors after the first application of
$\Refresh$, as seen by Lemma ~\ref{l.refresh} (Refresh).

  If the computation results in a nonvacant value for the represented big
cell then we have case ~\eqref{i.pres-attrib.center} of the present lemma.
  The represented field $\Creating_{j}$ of the colony will be broadcast
into the field $\Growing_{j}$ of its cells, as shown in Lemma
~\ref{l.update-loc-maint}.
  The homogeneity of this latter field will be maintained by $\Heal$.
  Thus, depending on the value of $\Creating_{j}$ of the big cell, growth
will take place and the growth forms a continuous domain with the
originating colony.

  Suppose that the computation results in a vacant value.
  Then $\Growing_{j}$ will be 0 everywhere but in the healable wake of
the damage.
  Growth cannot start accidentally by a temporary wrong value
$\Growing_{j}=1$ in an endcell since there is enough time to correct
this value during the long waiting time of
$\rul{Grow-step}$. %prove!  
  Also, all cells become doomed.
  After $\Age=1$, the doomed right end becomes exposed by definition, and
the whole colony decays within $Q\tau_{1}$ time units.
  Before that, the colony is full.
  After that, we have case ~\eqref{i.pres-attrib.vanish} of the present
lemma.
\end{prooof}%{pres-attrib.old-member}

  \begin{step+}{pres-attrib.outer}
  If $c_{0}$ is an outer cell then we have case ~\eqref{i.pres-attrib.ext}
of the present lemma.
  \end{step+}
  \begin{pproof}
  The Attribution Lemma attributes $c_{0}$ to the originating colony which is
covered by member cells during $I\xcpt E$.
  It forms a continuous domain with its extension, until the age
$\End$.
  From that age on, they form a multidomain.
  This could only change if the originating colony goes through a next work
period and kills itself; however, there is not enough time for this
due to ~\eqref{e.synch-start-lb-req}.
 \end{pproof}%{pres-attrib.outer}

  \begin{step+}{pres-attrib.young-member}
  Suppose that $c_{0}$ is a member cell but during $I\xcpt E$, the colony is
never covered by member cells.
  Then we have case ~\eqref{i.pres-attrib.new} of the present lemma.
  \end{step+}
  \begin{pproof}
  Let $c_{1}$ be a non-member cell in $\cC$ during $I\xcpt E$.
  Then it is an outer cell that can be attributed to its originating
colony and then the reasoning of ~\ref{pres-attrib.outer} above can
be repeated.
 \end{pproof}%{pres-attrib.young-member}
\end{Proof} %{l.pres-attrib}


cod.tex
  \section{Codes}\label{s.codes}

 \subsection{Colonies}\label{ss.col}

  For the moment, let us concentrate on the task of remembering a single
bit in a field called $\fld{Main-bit}$\glo{mainbit@$\fld{Main-bit}$} of a
cellular automaton.
  We mentioned in Subsection ~\ref{ss.hier-constr} that in one
dimension, even this simple task will require the construction and
maintenance of some non-local organization, since this is the only way
a large island can be eliminated.

  This organization will be based on the concept of colonies.
  Let $x$ be a site and $Q$ a positive integer.
  The set of $Q$\glo{q.cap@$Q$} sites $x+i$ for $i\in[0,Q-1]$ will be
called the $Q$-\df{colony}\index{colony} with \df{base}\index{colony!base}
$x$, and site $x+i$ will be said to have \df{address}\index{address} $i$ in
this colony.
  Let us be given a configuration $\xi$ of a cellular automaton $M$
with state set $\SS$.
  The fact that $\xi$ is ``organized into colonies''\index{organized into
colonies} will mean that one can break up the set of all sites into
non-overlapping colonies of size $Q$, using the information in the
configuration $\xi$ in a translation-invariant way.
  This will be achieved with the help of an \df{address field}
$\Addr$\glo{addr@$\Addr$} which we will always have when we speak about
colonies.
  The value $\xi(x).\Addr$ is a binary string which can be interpreted
as an integer in $[0,Q-1]$.
  Generally, we will assume that the $\Addr$ field is large enough (its
size is at least $\log Q$).
  Then we could say that a certain $Q$-colony $\cC$ is a ``real'' colony of
$\xi$ if for each element $y$ of $\cC$ with address $i$ we have
$\xi(y).\Addr=i$.
  In order to allow, temporarily, smaller address fields, let us
actually just say that a $Q$-colony with base $x$ is a ``real'' colony
of the configuration $\xi$ if its base is its only element having
$\Addr=0$.

  Cellular automata working with colonies will not change the value of
the address field unless it seems to require correction.
  In the absence of faults, if such a cellular automaton is started with a
configuration grouped into colonies then the sites can always use the
$\Addr$ field to identify their colleagues within their colony.

  Grouping into colonies seems to help preserve the $\fld{Main-bit}$
field since each colony has this information in $Q$-fold redundancy.
  The transition function may somehow involve the colony members in a
coordinated periodic activity, repeated after a period of $U$ steps for
some integer $U$\glo{u.cap@$U$}, of restoring this information from the
degradation caused by faults (e.g.~with the help of some majority
operation).

  Let us call $U$ steps of work of a colony a
 \df{work period}\index{period!work}.
  The best we can expect from a transition function of the kind described
above is that unless too many faults happen during some colony work
period the $\fld{Main-bit}$ field of most sites in the colony will always
be the original one.
  Rather simple such transition functions can indeed be written.
  But they do not accomplish qualitatively much more than a local
majority vote for the $\fld{Main-bit}$ field among three neighbors.

  Suppose that a group of failures changes the original content of the
$\fld{Main-bit}$ field in some colony, in so many sites that internal
correction is no more possible.
  The information is not entirely lost since most probably, neighbor
colonies still have it.
  But correcting the information in a whole colony with the help of other
colonies requires organization reaching wider than a single colony.
  To arrange this broader activity also in the form of a cellular
automaton we use the notion of simulation with error-correction.

  Let us denote by $M_{1}$\glo{m.cap@$M_{k}$} the fault-tolerant cellular
automaton to be built.
  In this automaton, a colony $\cC$\glo{c.cap@$\cC$} with base $x$ will be
involved in two kinds of activity during each of its work periods.
 \begin{description}

  \item[Simulation]\index{simulation}
   Manipulating the collective information of the colony in a way that can
be interpreted as the simulation of a single state transition of site $x$
of some cellular automaton $M_{2}$.

  \item[Error-correction]\index{error!correction}
  Using the collective information (the state of $x$ in $M_{2}$) to
correct each site within the colony as necessary.

 \end{description}
  Of course, even the sites of the simulated automaton $M_{2}$ will not be
immune to errors.
  They must also be grouped into colonies simulating an automaton $M_{3}$,
etc.; the organization must be a \emph{hierarchy of simulations}.

  Reliable computation itself can be considered a kind of simulation
of a deterministic cellular automaton by a probabilistic one.


\subsection{Block codes}\label{ss.block-code}

 \subsubsection{Codes on strings}\label{sss.string-codes}
  The notion of simulation relies on the notion of a \df{code}\index{code},
since the way the simulation works is that the simulated space-time
configuration can be decoded from the simulating space-time configuration.
  A code, $\fg$\glo{f.greek@$\fg_{*},\fg_{*}$} between two sets $R,S$ is, in
general, a pair $(\fg^{*},\fg_{*})$ where $\fg_{*}: R\to S$ is the
\df{encoding function} and $\fg^{*}: S\to R$ is the \df{decoding function}
and the relation
 \[
  \fg^{*}(\fg_{*}(r)) = r
 \]
   holds.
  A simple example would be when $R=\{0,1\}$, $S=R^{3}$,
$\fg_{*}(r)=(r,r,r)$ while $\fg^{*}((r,s,t))$ is the majority of $r,s,t$.

  This example can be generalized to a case when
$\SS_{1},\SS_{2}$\glo{s.cap.s@$\SS_{k}$} are finite state sets, $R=\SS_{2}$,
$S=\SS_{1}^{Q}$ where the positive integer $Q$ is called the \df{block
size}.
  Such a code is called a \df{block code}.
  Strings of the form $\fg_{*}(r)$ are called \df{codewords}.
  The elements of a codeword $s=\fg_{*}(r)$ are numbered as
$s(0),\ldots,s(Q-1)$.
  The following block code can be considered the paradigmatic example of
codes.

\begin{example}\label{x.block-code}
  Suppose that $\SS_{1}=\SS_{2}=\{0,1\}^{12}$ is the state set of both
cellular automata $M_{1}$ and $M_{2}$.
  Let us introduce the fields $s.\Addr$\glo{addr@$\Addr$} and
$s.\Info$\glo{info@$\Info$} of a state $r=(s_{0},\ldots, s_{11})$ in
$\SS_{1}$.
  The $\Addr$ field consists of the first 5 bits $s_{0},\ldots,s_{4}$,
while the $\Info$ field is the last bit $s_{11}$.
  The other bits do not belong to any named field.
  Let $Q=31$.
  Thus, we will use codewords of size $31$, formed of the symbols (local
states) of $M_{1}$, to encode local states of $M_{2}$.
  The encoding funcion $\fg_{*}$ assigns a codeword
 $\fg_{*}(r)=(s(0),\ldots, s(30))$ of elements of $\SS_{1}$ to each
element $r$ of $\SS_{2}$.
  Let $r=(r_{0},\ldots, r_{11})$.
  We will set $s(i).\Info=r_{i}$ for $i=0,\ldots,11$.
  The 5 bits in $s(i).\Addr$ will denote the number $i$ in binary
notation.
  This did not determine all bits of the symbols $s(0),\ldots, s(30)$ in
the codeword.
  In particular, the bits belonging to neither the $\Addr$ nor the
$\Info$ field are not determined, and the values of the $\Info$ field
for the symbols $s(i)$ with $i\not\in[0,11]$ are not determined.
  To determine $\fg_{*}(r)$ completely, we could set these bits to 0.

  The decoding function is simpler.
  Given a word $s=(s(0),\ldots,s(30))$ we first check whether it is a
``normal'' codeword, i.e.~it has $s(0).\Addr=0$ and $s(i).\Addr\ne 0$ for
$i\ne 0$.
  If yes then , $r=\fg^{*}(s)$ is defined by $r_{i}=s(i).\Info$ for
$i\in[0,11]$, and the word is considered ``accepted''.
  Otherwise, $\fg^{*}(s)=0\cdots 0$ and the word is considered ``rejected''.

  Informally, the symbols of the codeword use their first 5 bits to mark
their address within the codeword.
  The last bit is used to remember their part of the information about
the encoded symbol.
 \end{example}

  For two strings $u,v$, we will denote by%
 \glo{"+@$\cc$}%
 \begin{equation}\label{e.concat}
   u\cc v
 \end{equation}
  their concatenation.

 \begin{example}\label{x.code.aggreg}
  This trivial example will not be really used as a code but rather as a
notational convenience.
  For every symbol set $\SS_{1}$, blocksize $Q$ and $\SS_{2}=\SS_{1}^{Q}$,
there is a special block code $\ig_{Q}$\glo{i.greek@$\ig_{Q}$} called
\df{aggregation}\index{aggregation} defined by
 \[
  \ig_{Q*}((s(0),\ldots,s(Q-1)))=s(0)\cc\cdots\cc s(Q-1),
 \]
  and $\ig^{*}_{Q}$ defined accordingly.
  Thus, $\ig_{Q*}$ is essentially the identity: it just aggregates $Q$
symbols of $\SS_{1}$ into one symbol of $\SS_{2}$.
  We use concatenation here since we identify all symbols with binary
strings.
 \end{example}

\begin{figure}
 \setlength{\unitlength}{0.2mm}
 \[
 \begin{picture}(600,150)
    \put(0, 0){\framebox(600, 150){}}
    \put(0, 20){\line(1, 0){600}}
    \put(0, 90){\line(1, 0){600}}
    \put(0, 110){\line(1, 0){600}}
    \put(0, 130){\line(1, 0){600}}

    \put(610, 0){\makebox(0,20)[l]{$\var{Program}$}}
    \put(610,20){\makebox(0,70)[l]{$\var{Info}$}}
    \put(610,90){\makebox(0,20)[l]{$\var{Worksp}$}}
    \put(610,110){\makebox(0,20)[l]{$\var{Addr}$}}
    \put(610,130){\makebox(0,20)[l]{$\var{Age}$}}

   \multiput(0,0)(20,0){20}{\line(0,1){3}}
   \put(200,0){\line(0, 1){150}}
   \multiput(400,0)(20,0){10}{\line(0,1){150}}
 \end{picture}
 \]
 \caption{Three neighbor colonies with their tracks}
 \label{f.3-neighb}
\end{figure}
  The codes $\fg$ between sets $R, S$ used in our simulations will have a
feature similar to the acceptance and rejection of Example
~\ref{x.block-code}.
  The set $R$ will always have a special symbol called
$\Vac$\glo{vac@$\Vac$}, the \df{vacant}\index{vacant symbol} symbol.
  An element $s\in S$ will be called
 \df{accepted}\index{accepted by decoding} by the decoding if
$\fg^{*}(s)\ne \Vac$, otherwise it is called \df{rejected}.


\subsection{Generalized cellular automata (abstract media)}\label{sss.abstract}

  A block code $\fg$ could be used to define a code on configurations
between cellular automata $M_{1}$ and $M_{2}$.
  Suppose that a configuration $\xi$ of $M_{2}$ is given.
  Then we could define the configuration
 $\xi_{*}=\fg_{*}(\xi)$\glo{f.greek@$\fg_{*}(\xi),\fg^{*}(\xi)$}%
\glo{x.greek@$\xi_{*},\xi^{*}$}%
  of $M_{1}$ by setting for each cell $x$ of $\xi$ and $0\le i < Q$,
  \[
   \xi_{*}(Qx + i)=\fg_{*}(\xi(x))(i).
  \]
  The decoding function would be defined correspondingly.
  This definition of decoding is, however, unsatisfactory for our
purposes. 
  Suppose that $\xi_{*}$ is obtained by encoding a configuration
$\xi$ via $\fg_{*}$ as before, and $\zg$ is obtained by shifting
$\xi_{*}$: $\zg(x)=\xi_{*}(x-1)$.
  Then the decoding of $\zg$ will return all vacant values since now the
strings $(\zg(Qx),\cdots,\zg(Qx+Q-1))$ are not ``real'' colonies.
  However, it will be essential for error correction that whenever
parts of a configuration form a colony, even a shifted one, the
decoding should notice it.
  With our current definition of cellular automata, the decoding function
could not be changed to do this.
  Indeed, if $\zg^{*}$ is the configuration decoded from $\zg$ then
$\zg^{*}(0)$ corresponds to the value decoded from
$(\zg(0),\cdots,\zg(Q-1))$, and $\zg^{*}(1)$ to the value decoded from
$(\zg(Q),\cdots,\zg(2Q-1))$.
  There is no site to correspond to the value decoded from
$(\zg(1),\cdots,\zg(Q))$.

  Our solution is to generalize the notion of cellular automata.
  Let us give at once the most general definition which then we will
specialize later in varying degrees.
  The general notion is an \df{abstract medium}\index{medium!abstract}
 \glo{amed@$\var{AMed}$}
 \[
 \var{AMed}(\SS, \bC, \var{Configs}, \var{Evols}, \var{Trajs}).
 \]
  Here, $\var{Configs}$\glo{configs@$\var{Configs}$}
 is the set of functions $\xi:\bC\to\SS$ that are \df{configurations} and
$\var{Evols}$\glo{evols@$\var{Evols}$} is the set of functions
$\eta:\bC\times[0,\infty-]\to\SS$ that are \df{space-time configurations}
of the abstract medium.
  Further, $\var{Trajs}$\glo{trajs@$\var{Trajs}$} is the set of random
space-time configurations $(\mu,\eta)$ that are
\df{trajectories}\index{trajectory}.
  In all cases that we will consider, the set $\var{Trajs}$ will be given
in a uniform way, as a function $\var{Traj}(\bC)$ of $\bC$.
  The sets $\SS$, $\bC$, $\var{Configs}$ and $\var{Evols}$ are essentially
superfluous since the set $\var{Trajs}$ defines them implicitly---therefore
we may omit them from the notation, so that eventually we may just write
 \[
   \var{AMed}(\var{Trajs}).
 \]
  Given media $M_{1},M_{2}$ for the same $\SS,\bC$, we will write%
 \glo{"<@$\sbs$}%
 \[
   M_{1}\sbs M_{2}
 \]
  if $\var{Trajs}_{1}\sbs\var{Trajs}_{2}$.
  Let% 
 \glo{"+@$\cap$}%
 \[
   M_{1}\cap M_{2}
 \]
  be the medium whose trajectory set is
 $\var{Trajs}_{1}\cap\var{Trajs}_{2}$.

  Let us now consider some special cases.


\subsubsection{Cellular abstract media}

  All abstract media in this paper will be
\df{cellular}\index{medium!abstract!cellular}: the sets $\var{Configs}$ and
$\var{Evols}$ will be defined in the way given here.
  The set $\SS$ of local states will always include a distinguished state
called the \df{vacant state}\index{state!vacant} $\Vac$.
  If in a configuration $\xi$ we have $\xi(x)\ne\Vac$ then we will say that
there is a \df{cell}\index{cell} at site $x$ in $\xi$.
  We will have a positive number $B$\glo{b.cap@$B$} called the \df{body size}.
  In ordinary cellular automata, $B=1$.
  For a site $x$, interval $[x,x+B-]$ will be called the
\df{body}\index{body} of a possible cell with \df{base} $x$.
  A function $\xi:\bC\to\SS$ is a
 \df{configuration}\index{configuration} if the cells in it have
non-intersecting bodies.

 \begin{remark}  
  Since not each site will be occupied by a cell, it is not even important
to restrict the set of sites to integers; but we will do so for
convenience.
 \end{remark}

  A function $\eta:\bC\times[0,\infty-]\to\SS$ is a \df{space-time
configuration}\index{configuration!space-time} if
 \begin{cjenum}
  \item $\eta(\cdot,t)$ is a space configuration for each $t$;

  \item $\eta(x,t)$ is a right-continuous function of $t$;

  \item Each finite time interval contains only finitely many switching
times for each site $x$;

 \end{cjenum}
  A \df{dwell period}\index{period!dwell} is a tuple $(x,s,t_{1},t_{2})$
such that $x$ is a site, $s$ is a nonvacant state, and $0\le t_{1}<t_{2}$
are times.
  The rectangle $[x,x+B-]\times [t_{1},t_{2}-]$ is the
 \df{space-time body}\index{body!space-time} of the dwell period.
  It is easy to see that the dwell periods in a space-time configuration
have disjoint bodies.
  This completes the definition of the sets $\var{Configs}$ and
$\var{Evols}$ in cellular abstract media, the only kind of media used
in this paper.
  Therefore from now on, we may write
 \[
   \var{AMed}(\bC, \var{Trajs}, B).
 \]
  We may omit any of the arguments if it is not needed for the context.
  
  We will speak of a \df{lattice
configuration}\index{configuration!lattice} if all cells are at sites of
the form $iB$ for integers $i$.
  We can also talk about \df{lattice} space-time
configurations\index{configuration!space-time}: these have
space-time bodies of the form
 \[
   [iB,(i+1)B-]\times[jT,(j+1)T-]
 \]
  for integers $i,j$.
  
  A special kind of generalized cellular automaton is a straightforward
redefinition of the original notion of cellular automaton, with two new but
inessential parameters: a
 \df{deterministic cellular automaton}\index{cellular
automaton!deterministic}%
 \glo{ca@$\CA(\trans, B, T, \bC)$}%
 \[
   \CA(\trans, B, T, \bC)
 \]
 is determined by $B,T>0$ and a transition function $\trans:\SS^{3}\to\SS$.
  We may omit some obvious arguments from this notation.
  A lattice space-time configuration $\eta$ with parameters $B,T$ is a
\df{trajectory}\index{trajectory!deterministic cellular automaton} of this
automaton if
 \[
   \eta(x,t)=\trans(\eta(x-B,t-T), \eta(x,t-T), \eta(x+B,t-T))
 \]
 holds for all $x,t$ with $t\ge T$.
  For a space-time configuration $\eta$ let us write 
 \begin{equation}\label{e.trans-B}
   \ol\trans(\eta, x,t,B)=\trans(\eta(x-B,t), \eta(x,t), \eta(x+B,t)).
 \end{equation}
  We will omit the argument $B$ when it is obvious from the context.
  Probabilistic cellular automata and perturbations are generalized
correspondingly as%
 \glo{pca@$\PCA(\bP, B, T, \bC)$}%
% \glo{cae@$\CA_{\eps}(\trans, B, T, \bC)$}%
 \[
  \PCA(\bP, B, T, \bC),\qq \CA_{\eps}(\trans, B, T, \bC).
 \] 
  From now on, whenever we talk about a deterministic, probabilistic or
perturbed cellular automaton we understand one also having parameters
$B,T$.

  We will have two kinds of abstract medium that are more general than
these cellular automata.
  We have a \df{constant-period}\index{medium!constant-period} medium if in
all its trajectories, all dwell period lengths are multiples of some
constant $T$.
  Otherwise, we have a \df{variable-period}\index{medium!variable-period}
medium.
  

\subsubsection{Block codes between cellular automata}
  In a cellular abstract medium with body size $B$, a
colony\index{colony!in a cellular medium} of size $Q$ is defined as a set
of cells $x+iB$ for $i\in[0, Q - 1]$.
  Thus, the union of the cell bodies of body size $B$ in a colony of
size $Q$ occupies some interval $[x,x+QB-]$.
  A block code will be called
 \df{overlap-free}\index{code!block!overlap-free} if for every string
$(s(0),\ldots s(n-1))$, and all $i\le n-Q$, if both $(s(0),\ldots,s(Q-1))$
and $(s(i+1),\ldots,s(i+Q-1))$ are accepted then $i\ge Q$.
  In other words, a code is overlap-free if two accepted words cannot
overlap in a nontrivial way.
  The code in Example ~\ref{x.block-code} is overlap-free.
  All block-codes considered from now on will be overlap-free.
  Overlap-free codes are used, among others, in ~\cite{ItkisLevin94}.


\subsubsection{Codes on configurations}
  A block code $\fg$ of block size $Q$ can be used to define a code on
configurations between generalized abstract media $M_{1}$ and $M_{2}$.
  Suppose that a configuration $\xi$ of $M_{2}$, which is an
$\var{AMed}(QB)$, is given.
  Then we define the configuration
$\xi_{*}=\fg_{*}(\xi)$\glo{f.greek@$\fg_{*}(\xi),\fg^{*}(\xi)$} of $M_{1}$,
which is an $\var{AMed}(B)$, by setting for each cell $x$ of $\xi$ and
 $0\le i < Q$,
  \[
   \xi_{*}(x + i B)=\fg_{*}(\xi(x))(i).
  \]
  Suppose that a configuration $\xi$ of $M_{1}$ is given.
  We define the configuration
 $\xi^{*}=\fg^{*}(\xi)$ of $M_{2}$ as follows:
for site $x$, we set $\xi^{*}(x)=\fg^{*}(s)$ where
 \begin{equation}\label{e.cand.colony}
   s = (\xi(x), \xi(x + B), \ldots, \xi(x + (Q - 1)B)).
 \end{equation}
  If $\xi$ is a configuration with $\xi = \fg_{*}(\zg)$ then, due
to the overlap-free nature of the code, the value $\xi^{*}(x)$ is
nonvacant only at positions $x$ where $\zg(x)$ is nonvacant.
  If $\xi$ is not the code of any configuration then it may happen
that in the decoded configuration $\fg^{*}(\xi)$, the cells will 
not be exactly at a distance $QB$ apart.
  The overlap-free nature of the code garantees that the distance of
cells in $\fg^{*}(\xi)$ is at least $QB$ even in this case.


\subsection{Block simulations}\label{ss.block.sim}

  Suppose that $M_{1}$ and $M_{2}$ are deterministic cellular automata
where $M_{i}=\CA(\trans_{i},B_{i},T_{i})$, and $\fg$ is a block code with
 \[
  B_{1}=B,\qq B_{2}=QB.
 \]
  The decoding function may be as simple as in Example
~\ref{x.block-code}: there is an $\Info$ track and once the colony is
accepted the decoding function depends only on this part of the
information in it.

  For each space-time configuration $\eta$ of $M_{1}$, we can define
$\eta^{*}=\fg^{*}(\eta)$\glo{etastar@$\eta^{*}$} of $M_{2}$ by setting
 \begin{equation}
  \eta^{*}(\cdot,t)=\fg^{*}(\eta(\cdot,t)) . 
 \end{equation}
  We will say that the code $\fg$ is a
 \df{simulation}\index{simulation!block code} if for each configuration
$\xi$ of $M_{2}$, for the trajectory $(\mu,\eta)$ of $M_{1}$, such that
$\eta(\cdot,0,\og)=\fg_{*}(\xi)$ for almost all $\og$, the random
space-time configuration $(\mu,\eta^{*})$ is a trajectory of $M_{2}$.
  (We do not have to change $\mu$ here since the $\og$ in
$\eta^{*}(x,t,\og)$ is still coming from the same space as the one in
$\eta(x,t,\og)$.)

  We can view $\fg_{*}$ as an encoding of the initial configuration of
$M_{2}$ into that of $M_{1}$.
  A space-time configuration $\eta$ of $M_{1}$ will be viewed to have a
``good'' initial configuration $\eta(\cdot,0)$ if the latter is
$\fg_{*}(\xi)$ for some configuration of $M_{2}$.
  Our requirements say that from every trajectory of $M_{1}$ with
good initial configurations, the simulation-decoding results in a
trajectory of $M_{2}$.

  Let us show one particular way in which the code $\fg$ can be a
simulation.
  For this, the function $\trans_{1}$ must behave in a certain way which
we describe here.
  Assume that
 \[
  T_{1}=T,\ T_{2}=UT
 \]
  for some positive integer $U$ called the
 \df{work period size}\index{period!work!size}.
  Each cell of $M_{1}$ will go through a period consisting of $U$ steps
in such a way that the $\Info$ field will be changed only in the last
step of this period.
  The initial configuration $\eta(\cdot,0)=\fg_{*}(\xi)$ is chosen in
such a way that each cell is at the beginning of its work period.
  By the nature of the code, in the initial configuration, cells of
$M_{1}$ are grouped into colonies.

  Once started from such an initial configuration, during each work
period, each colony, in cooperation with its two neighbor colonies,
computes the new configuration.
  With the block code in Example ~\ref{x.block-code}, this may happen
as follows.
  Let us denote by $r_{-},r_{0},r_{+}$ the value in the first 12 bits of
the $\Info$ track in the left neighbor colony, in the colony itself
and in the right neighbor colony respectively.
  First, $r_{-}$ and $r_{+}$ are shipped into the middle colony.
  Then, the middle colony computes $s=\trans_{2}(r_{-1},r_{0},r_{1})$
where $\trans_{2}$ is the transition function or $M_{2}$ and stores it on
a memory track.
  (It may help understanding how this happens if we think of the
possibilities of using some mail, memory and workspace tracks.)
  Then, in the last step, $s$ will be copied onto the $\Info$ track.

  Such a simulation is called a \df{block simulation}.

  \begin{example}\label{x.sim.aggreg}
  Let us give a trivial example of a block simulation which will be
applied, however, later in the paper.
  Given a one-dimensional transition function $\trans(x,y,z)$ with
state space $\SS$, we can define for all positive integers $Q$ an
 \df{aggregated} transition function\index{transition function!aggregated}
 $\trans^{Q}(u,v,w)$\glo{tr@$\trans^{Q}(u,v,w)$} as follows.
  The state space of of $\trans^{Q}$ is $\SS^{Q}$.
  Let $\br_{j}=(r_{j}(0),\ldots, r_{j}(Q-1))$ for $j=-1,0,1$ be three
elements of $\SS^{Q}$.
  Concatenate these three strings to get a string of length $3Q$ and
apply the transition function $\trans$ to each group of three
consecutive symbols to obtain a string of length $3Q - 2$ (the end
symbols do not have both neighbors).
  Repeat this $Q$ times to get a string of $Q$ symbols of $\SS$:
this is the value of $\trans^{Q}(\br_{-1},\br_{0},\br_{1})$.

  For $M_{1}=\CA(\SS,\trans,B,T)$ and
$M_{2}=\CA(\SS^{Q},\trans^{Q},QB,QT)$, the aggregation code $\ig_{Q}$
defined in Example ~\ref{x.code.aggreg} will be a block simulation of
$M_{2}$ by $M_{1}$ with a work period consisting of $U=Q$ steps.
  If along with the transition function $\trans$, there were some fields
$\F,\G,\ldots\sbs\All$ also defined then we define, say, the field $\F$ in
the aggregated cellular automaton as $\bigcup_{i=0}^{Q-1}(\F+i\nm{\SS})$.
  Thus, if $\br=r(0)\cc\cdots\cc r(Q-1)$ is a state of the aggregated
cellular automaton then
 $\br.\F=r(0).\F\cc r(1).\F\cc\cdots\cc r(Q-1).\F$.
 \end{example}

  A transition function $\trans$ is
 \df{universal}\index{transition function!universal} if for every other
transition function $\trans'$ there are $Q,U$ and a block code $\fg$ such
that $\fg$ is a block simulation of $\CA(\trans',Q,U)$ by
$\CA(\trans,1,1)$.

\begin{theorem}[Universal cellular automata] \label{t.univ}

 There is a universal transition function.
 \end{theorem}

 \begin{proof}[Sketch of proof:]
 This theorem is proved somewhat analogously to the theorem on the
existence of universal Turing machines.
  If the universal transition function is $\trans$ then for simulating
another transition function $\trans'$, the encoding demarcates colonies of
appropriate size with $\Addr=0$, and writes a string $\var{Table}$ that is
the code of the transition table of $\trans'$ onto a special track called
$\fld{Prog}$\glo{prog@$\fld{Prog}$} in each of these colonies.
  The computation is just a table-look-up: the triple
$(r_{-},r_{0},r_{+})$ mentioned in the above example must be looked up
in the transition table.
  The transition function governing this activity does not depend on
the particular content of the $\fld{Prog}$ track, and is therefore
independent of $\trans'$.
  For references to the first proofs of universality (in a technically
different but similar sense), see ~\cite{BerlConwGuy82,TofMarg87}
 \end{proof}

  Note that a universal cellular automaton cannot use codes similar to
Example ~\ref{x.block-code}.
  Indeed, in that example, the capacity of the cells of $M_{1}$ is at
least the binary logarithm of the colony size, since each colony cell
contained its own address within the colony.
  But if $M_{1}$ is universal then the various simulations in which it
participates will have arbitrarily large colony sizes.

  The size $Q$ of the simulating colony will generally be very large
also since the latter contains the whole table of the simulated
transition function.
  There are many special cellular automata $M_{2}$, however, whose
transition function can be described by a small computer program and
computed in relatively little space and time (linear in the size
$\nm{\SS_{2}}$).
  The universal transition function will simulate these with
correspondingly small $Q$ and $U$.
  We will only deal with such automata.
  

\subsection{Single-fault-tolerant block simulation}\label{ss.ftol-block}

  Here we outline a cellular automaton $M_{1}$ that block-simulates a
cellular automaton $M_{2}$ correctly as long as at most a single
error occurs in a colony work period of size $U$.
  The outline is very informal: it is only intended to give some
framework to refer to later: in particular, we add a few more fields
to the fields of local states introduced earlier.
  For simplicity, these fields are not defined here in a way to make the
cellular automaton separable in the sense defined in ~\ref{sss.bandwidth}.
  They could be made so with a few adjustments but we want to keep the
introduction simple.

  The automaton $M_{1}$ is not universal, i.e.~the automaton
$M_{2}$ cannot be chosen arbitrarily.
  Among others, this is due to the fact that the address field of a
cell of $M_{1}$ will hold its address within its colony.
  But we will see later that universality is not needed in this
context.

  The cells of $M_{1}$ will have, besides the $\Addr$ field, also a
field $\Age$\glo{age@$\Age$}.
  If no errors occur then in the $i$-th step of the colony work
period, each cell will have the number $i$ in the field $\Age$.
  There are also fields called $\Mail$, $\Info$, $\fld{Work}$, $\Hold$,
$\fld{Prog}$.

  The $\Info$ field holds the state of the represented cell of $M_{2}$
in three copies.
  The $\Hold$\glo{hold@$\Hold$} field will hold parts of the final result
before it will be, in the last step of the work period, copied into
$\Info$.
  The role of the other fields is clear.

  The program will be described from the point of view of a certain
colony $\cC$.
  Here is an informal description of the activities taking place in
the first third of the work period.

 \begin{enumerate}
  \item
  From the three thirds of the $\Info$ field, by majority vote, a
single string is computed.
  Let us call it the \df{input string}.
  This computation, as all others, takes place in the workspace field
$\fld{Work}$; the $\Info$ field is not affected.
  The result is also stored in the workspace.
  \item
  The input strings computed in the two neighbor colonies are shipped
into $\cC$ and stored in the workspace separately from each other and
the original input string.
  \item
  The workspace field behaves as a universal automaton, and from the
three input strings and the $\fld{Prog}$ field, computes the string that
would be obtained by the transition function of $M_{2}$ from them.
  This string will be copied to the first third of the $\Hold$ track.
  \end{enumerate}

  In the second part of the work period, the same activities will be
performed, except that the result will be stored in the second part
of the $\Hold$ track.
  Similarly with the third part of the work period.
  In a final step, the $\Hold$ field is copied into the $\Info$ field.

  The computation is coordinated with the help of the $\Addr$ and
$\Age$ fields.
  It is therefore important that these are correct.
  Fortunately, if a single fault changes such a field of a cell then
the cell can easily restore it using the $\Addr$ and $\Age$ fields of
its neighbors.
 
  It is not hard to see that with such a program (transition function), if
the colony started with ``perfect'' information then a single fault will
not corrupt more than a third of the colony at the end of the work period.
  On the other hand, if two thirds of the colony was correct at the
beginning of the colony work period and there is no fault during the
colony work period then the result will be ``perfect''.


 \subsection{General simulations}\label{ss.gen-sim}

  The main justification of the general notion of abstract media is that it
allows a very general definition of simulations: a
 \df{simulation}\index{simulation} of abstract medium $M_{2}$ by abstract
medium $M_{1}$ is given by a pair
 \glo{f.greek.cap@$\Fg^{*}$}
 \[
   (\fg_{*}, \Fg^{*})
 \]
  where $\Phi^{*}$ is a mapping of the set of space-time configurations of
$M_{1}$ into those of $M_{2}$ (the decoding), and $\fg_{*}$ is a mapping of
the set of configurations of $M_{2}$ to the set of configurations of
$M_{1}$ (the encoding for initialization).
  Let us denote 
 \glo{etastar@$\eta^{*}$}
 \[
  \eta^{*}=\Fg^{*}(\eta).
 \]
  We require, for each trajectory $\eta$ for which the initial
configuration has the encoded form $\eta(\cdot,0)=\fg_{*}(\xi)$, that
$\eta^{*}$ is a trajectory of $M_{2}$ with $\eta^{*}(\cdot,0)=\xi$.

  A simulation will be called \df{local}\index{simulation!local}, if there
is a finite space-time rectangle
 $V^{*}=I\times [-u,0]$\glo{v.cap@$V^{*}$} such that
$\Fg^{*}(\eta)(w,t)$ depends only on $\eta((w,t)+V^{*})$.
  Together with the shift-invariance property, the locality property
implies that a simulation is determined by a function defined on the 
set of configurations over $V^{*}$.
  All simulations will be local unless stated otherwise.
  Corollary~\ref{c.var-sim} gives an example of non-local simulation.

  If $u=0$ then the configuration $\eta^{*}(\cdot,t)$ depends only on
the configuration $\eta(\cdot,t)$.
  In this case, the simulation could be called
``memoryless''\index{simulation!memoryless}.
  For a memoryless simulation, the simulation property is
identical to the one we gave at the beginning of Subsection
~\ref{ss.block.sim}.
  Our eventual simulations will not be memoryless but will be at least
\df{non-anticipating}\index{simulation!non-anticipating}: we will have
$u>0$, i.e.~the decoding looks back on the space-time configuration during
$[t-u,t]$, but still does not look ahead.
  In particular, the value of $\eta^{*}(\cdot,0)$ depends only on
$\eta(\cdot,0)$ and therefore the simulation always defines also a decoding
function $\fg^{*}$ on space-configurations.
  From now on, this decoding function will be considered part of the
definition of the simulation, i.e.~we will write
 \glo{f.greek.cap@$\Fg$}
 \[
   \Fg = (\fg_{*},\fg^{*},\Fg^{*}).
 \]
  Suppose that a sequence $M_{1},M_{2},\ldots$ of abstract media is given
along with simulations $\Fg_{1},\Fg_{2},\ldots$ such that $\Fg_{k}$ is a
simulation of $M_{k+1}$ by $M_{k}$.
  Such a system will be called an \df{amplifier}\index{amplifier}.
  Amplifiers are like renormalization groups\index{renormalization}
in statistical physics.
  Of course, we have not seen any nontrivial example of simulation other
than between deterministic cellular automata, so the idea of an amplifier
seems far-fetched at this moment.


 \subsubsection{Simulation between perturbations}
  Our goal is to find nontrivial simulations between cellular automata
$M_{1}$ and $M_{2}$, especially when these are not deterministic.
  If $M_{1}, M_{2}$ are probabilistic cellular automata then the
simulation property would mean that whenever we have a trajectory
$(\mu,\eta)$ of $M_{1}$ the random space-time configuration
$\eta^{*}$ decoded from $\eta$ would be a trajectory of $M_{2}$.
  There are hardly any nontrivial examples of this sort since in order
to be a trajectory of $M_{2}$, the conditional probabilities of
$\fg^{*}(\eta)$ must satisfy certain equations defined by
$\bP_{2}$, while the conditional probabilitiees of $\eta$ satisfy
equations defined by $\bP_{1}$.

  There is more chance of success in the case when $M_{1}$ and $M_{2}$ are
perturbations of some deterministic cellular automata since in this case,
only some inequalities must be satisfied.
  The goal of improving reliability could be this.
  For some universal transition function $\trans_{2}$, and at least two
different initial configurations $\xi_{i}$ ($i=0,1$), find
$\trans_{1},Q,U,c$ with $B_{1}=B$, $B_{2}=BQ$, $T_{1}=T$, $T_{2}=TU$ and a
block simulation $\Fg_{1}$ such that for all $\eps>0$, if $\eps_{1}=\eps$,
$\eps_{2}=c\eps^{2}$ and $M_{k}$ is the perturbation
 \[
  \CA_{\eps_{k}}(\trans_{k},B_{k},T_{k}, \bZ)
 \]
 then $\Fg_{1}$ is a simulation of $M_{2}$ by $M_{1}$.
  The meaning of this is that even if we have to cope with the fault
probability $\eps$ the simulation will compute $\trans_{2}$ with a much
smaller fault probability $c\eps^{2}$.
  The hope is not unreasonable since in Subsection ~\ref{ss.ftol-block},
we outlined a single-fault-tolerant block simulation while the
probability of several faults happening during one work period is only
of the order of $(QU\eps)^{2}$.
  However, it turns out that the only simply stated property of a
perturbation that survives noisy simulation is a certain initial stability
property (see below).


\subsubsection{Error-correction}\label{sss.error-correction}
  Even if the above goal can be achieved, the reason for the existence of
the simulated more reliable abstract medium is to have feedback from it to
the simulating one.
  The nature of this feedback will be defined in the notion of
error-correction to whose definition now we proceed.
  Let us call the set
 \glo{s.greek.cap@$\Sg_{0}$}
 \begin{equation}\label{e.std-alph}
 \Sg_{0}=\{0,1,\#,*\}
 \end{equation}
  the \df{standard alphabet}\index{standard!alphabet}.
  Symbol
 $\#$\glo{,@$*,\#$} will be used to delimit binary strings, and
 $*$ will serve as a
 ``don't-care'' symbol\index{don't-care symbol}.
  Each field $\F$ of a cell state such that the field size is even, can be
considered not only a binary string but a string of (half as many) symbols
in the standard alphabet.
  If $r,s$ are strings in $(\Sg_{0})^{n}$ then%
 \glo{"<@$\preceq$}%
 \[
   r\preceq s
 \]
  will mean that $s(i)=r(i)$ for all $0\le i<n$ such that $r(i)\ne *$.
  Thus, a don't-care symbol $r(i)$ imposes no restriction on $s$ in
this relation.
  There will be two uses of the don't-care symbol.
 \begin{itemize}

  \item The more important use will come in defining the code used for
error-correction in a way that it requires the correction of only those
parts of the information in which correction is desirable.

  \item The less important use is in defining the notion of ``monotonic
output'': namely, output that contains more and more information as time
proceeds.
  This is convenient e.g.~ for continuous-time cellular automata, where it
is difficult to say in advance when the computation should end.

 \end{itemize}
  For codes $\fg_{*},\psi_{*}$, we will write
 \[
   \psi_{*}\preceq\fg_{*}
 \]
 if for all $s$ we have $\psi_{*}(s)\preceq\fg_{*}(s)$.

  Let us define the notion of error-correction.
  Let $\Fg=(\fg_{*},\fg^{*},\Fg^{*})$ be a simulation whose encoding
$\fg_{*}$ is a block code with block size $Q$, between abstract cellular
media $M_{i}$ ($i=1,2$).
  Let $T_{i}>0$ ($i=1,2$) be some parameters, and
 $\fg_{**}\preceq\fg_{*}$\glo{f.greek@$\fg_{**}$} a block code of
blocksize $Q$.
  We say that $\Fg$ has the
 \df{$\eps$-error-correction property}\index{error!correction} with respect
to $\fg_{**}, T_{1}, T_{2}$ if the following holds for every configuration
$\xi$ of $M_{2}$ and every trajectory $(\mu,\eta)$ of $M_{1}$ with
$\eta(\cdot, 0)=\fg_{*}(\xi)$.

  Let $\eta^{*}=\Fg^{*}(\eta)$ and let $x_{1},x_{2}$ be sites where $x_{1}$
has address $a$ in the $Q$-colony with base $x_{2}$, let $t_{0}$ be some
time.
  Let $\cE$ be the event that $\eta^{*}(x_{2},\cdot)$ is nonvacant during
$[t_{0}-T_{2}/3, t_{0}]$ and let $\cE'$ be the event that for each $t$ in
$[t_{0}-T_{1}/3, t_{0}]$ there is a $t'$ in $[t_{0}-T_{2}/3, t]$ with
 \[
   \fg_{**}(\eta^{*}(x_{2}, t'))(a) \preceq \eta(x_{1}, t).
 \]
  Then $\Prob\setof{\cE\cap\neg\cE'}<\eps$.

  Informally, this means that for all $x_{1},x_{2},a$ in the given
relation, the state $\eta(x_{1},t)$ is with large probability what we
expect by encoding some $\eta^{*}(x_{2}, t')$ via $\fg_{**}$ and taking the
$a$-th symbol of the codeword.
  Error-correction is only required for a code $\fg_{**}\preceq\fg_{*}$
since $\fg_{*}$ determines the value of many fields as a matter of
initialization only: these fields need not keep their values constant
during the computation, and therefore $\fg_{**}$ will assign don't-care
symbols to them.
  The code $\fg_{**}$ will thus generally be obtained by a simple
modification of $\fg_{*}$.
  \begin{example}
  Let
 \[
  B_{1}=1,\qq B_{2} = Q,\qq T_{1}=1,\qq T_{2}=U
 \]
 for some $U>Q$.
 Assume that for $k=1,2$, our media $M_{k}$ are cellular generalized
media with body sizes $B_{k}$ and state spaces $\SS_{k}$.
  Assume further that $M_{2}$ has at least a field $\F_{2}$ with
$|\F_{2}|\le Q/3$ and $M_{1}$ has at least the fields
$\F_{1},\Addr,\Age$, with $|\F_{1}|=2$. 
  For a state $s\in\SS_{2}$, let the string
 \[
   s'=\fg_{*}(s)\in\SS_{1}^{Q}
 \]
 be defined as follows.
  Take the binary string $s.\F_{2}$, repeat it 3 times, pad it with
$*$'s to a string of size $Q$ of the standard alphabet: let this be a
string $(f(0),\ldots,f(Q-1))$.
  Now for each address $b$, let
 \[
  s'(b).\F_{1}=f(b),\qq s'(b).\Addr=b,\qq s'(b).\Age=0,
 \]
 and let all other fields of $s'(b)$ be filled with $*$'s.
  The definition of $s''=\fg_{**}(s)$ starts as the definition of
$s'$ with the only difference that set $s''(b).\Age=*$.
  Thus, the code $\fg_{*}(s)$ encodes a redundant version of
$s.\F_{2}$ onto the $\F_{1}$ track of the block $s'$ and initializes
the $\Addr$ and $\Age$ tracks to the values they would have at the 
beginning of a work period.
  The code $\fg_{**}(s)$ leaves all tracks other than $\F_{1}$ and
$\Addr$ undetermined, since it will have to be compared with the
state of the colony also at times different from the beginning of the
work period.
 \end{example}
\begin{figure}
 \setlength{\unitlength}{1mm}
 \[
\begin{picture}(100,110)(-20,18)
  \put(0,102){\makebox(0,0)[b]{$x_{2}$}}
  \put(-2,100){\makebox(0,0)[r]{$t_{0}$}}
  \put(0,100){\circle*{1.5}}
  \put(0,100){\line(0,-1){80}}
  \put(60,102){\makebox(0,0)[b]{$x_{1}=x_{2}+aB$}}
  \put(60,100){\line(0,-1){25}}
  \put(60,85){\circle*{1.5}}
  \put(62,85){\makebox(0,0)[l]{$t$}}
  \put(62,75){\makebox(0,0)[l]{$t_{0}-T_{1}/3$}}

  \put(0,65){\line(1,0){80}}
  \put(82,65){\makebox(0,0)[lb]{$t'$}}
  \put(80,63){\makebox(0,0)[t]{$x_{2}+QB$}}
  \multiput(0,65)(5,0){16}{\circle*{0.8}}
  \put(0,68){\makebox(80,2)[b]{$\overbrace{\rule{76mm}{0mm}}$}}

  \put(42,72){\vector(4, 3){16}}
  \put(50,80){\makebox(0,0)[rb]{$\varphi_{**}$}}

  \put(-0.5,60){\line(1,0){1}}
  \put(-2,60){\makebox(0,0)[r]{$t-T_{1}/3$}}

  \put(-2,20){\makebox(0,0)[r]{$t_{0}-T_{2}/3$}}

  \put(-25,50){\vector(0,1){10}}  
  \put(-25,48){\makebox(0,0)[t]{time}}  

\end{picture}
 \]
 \caption{Error correction}
 \label{f.error-corr}
\end{figure}
  Suppose that an amplifier $(M_{k},\Fg_{k})_{k\ge 1}$ is given along
with the sequences $\fg_{k**},T_{k},\eps''_{k}$.
  We will call this structure an
 \df{error-correcting amplifier}\index{amplifier!error-correcting} if for
each $k$, the simulation $\Fg_{k}$ has the $\eps''_{k}$- \df{error
correction property} with respect to $\fg_{k**}$, $T_{k}$, $T_{k+1}$.


 \subsection{Remembering a bit: proof from an amplifier assumption}

  The following lemma will be proved later in the paper.

 \begin{lemma}[Initially Stable Amplifier]\label{l.abstr-amp}
 \index{amplifier!initially stable}
 \index{lemma@Lemma!Initially Stable Amplifier}
  We can construct the following objects, for $k=1,2,\ldots$.
 \begin{cjenum}

  \item
 Media $M_{k}$ over state space $\SS_{k}$, simulations
$\Fg_{k}=(\fg_{k*},\fg^{k*},\Fg^{k*})$ and sequences $\fg_{k**}$,
$\eps''_{k}$, $T_{k}$ forming an $\eps''_{k}$- error correcting amplifier
with $\sum_{k}\eps''_{k}<1/6$.

  \item (Initial stability) Parameters
$\eps_{k},B_{1}$ with $\sum_{k}\eps_{k}<1/6$, transition function
$\trans_{1}$ and two configurations $\xi_{0},\xi_{1}$ such that, defining
$\xi_{u}^{1}=\xi_{u}$, $\xi_{u}^{k+1}=\fg^{k*}(\xi_{u}^{k})$ for $u = 0,1$,
we have
 \[
   M_{1} = \CA_{\eps_{1}}(\trans_{1}, B_{1}, T_{1}, \bZ).
 \]
  Further, for each $k,u$, for each trajectory $\eta$ of $M_{k}$ with
$\eta(\cdot,0)=\xi_{u}^{k}$, for all $t<T_{k}$, for each site $x$, we have
 \[
  \Prob\setof{\eta(x,t) \ne \eta(x,0)} < \eps_{k}.
 \]
  \item Parameters $Q_{k}$ such that the codes $\fg_{k*}$ are block codes
with block size $Q_{k}$.

  \item (Broadcast)\index{broadcast} Fields $\F^{k}$ for the state spaces
$\SS_{k}$ such that for each $k$, for each address $a\in[0,Q_{k}-1]$ and
state $s\in\SS_{k+1}$, for each $u\in\{0,1\}$ and site $x$ we have
 \begin{align}
\label{e.abstr-amp.broadcast-u}
    \xi_{u}^{k}(x).\F^{k} &= u,
\\\label{e.abstr-amp.broadcast-error-corr}
    s.\F^{k+1}          &\preceq \fg_{k**}(s)(a).\F^{k}.
 \end{align}
 \end{cjenum}
 \end{lemma}
  Equation~\eqref{e.abstr-amp.broadcast-u} says for the configurations
$\xi^{k}_{u}$, (obtained by decoding from the initial configuration
$\xi_{u}$) in each cell of medium $M_{k}$, field $\F_{k}$ has value $u$.
  Equation~\eqref{e.abstr-amp.broadcast-error-corr} says the following.
  Assume for symbol $s\in\SS_{k+1}$ we have $s.\F_{k+1} = u \ne *$.
  Then the encoding function $\fg_{**}$ encodes $s$ into a colony of
$Q_{k}$ symbols $r_{0},\ldots,r_{Q_{k}-1}$ such that for each $a$, we have
$s_{a}.\F_{k}=u$.
  Thus, the $\F_{k+1}$ field of $s$ gets ``broadcast'' into the $\F_{k}$
field of each symbol of the code of $s$.
  This way, even if property~\eqref{e.abstr-amp.broadcast-u} were assumed
only for a fixed level $k$, property would
~\eqref{e.abstr-amp.broadcast-error-corr} imply it for all $i<k$.

  Let us use this lemma to prove the first theorem.

  \begin{proof}[Proof of Theorem ~\protect\ref{t.1dim.nonerg}]
  Let us use the amplifier defined in the above lemma.
  Let $\eta^{1}$ be a trajectory of the medium $M_{1}$ with initial
configuration $\xi_{u}$.
  Let $\eta^{k}$ be defined by the recursion
$\eta^{k+1}=\Fg^{*}_{k}(\eta^{k})$.
  Let $(x_{1},t_{1})$ be a space-time point in which we want to check
$\eta(x_{1},t_{1}).\F^{1}=u$.
  There is a sequence of points $x_{1},x_{2},\ldots$ such that $x_{k+1}$
is a cell of $\eta^{k+1}(\cdot,0)$ containing $x_{k}$ in its body with
some address $b_{k}$.
  There is a first $n$ with $t_{1}<T_{n}/3$.
  Let $\cF_{k}$ be the event that $\eta^{k}(x_{k},t).\F^{k}=u$ for $t$
in $[t_{1}-T_{k}/3, t_{1}]$.
  The theorem follows from the bounds on $\sum_{k}\eps_{k}$ and
$\sum_{k}\eps''_{k}$ and from
 \begin{equation}\label{e.cup-not-F.k}
 \Prob\setof{\neg(\cF_{1}\cap\cdots\cap\cF_{n})} \le \eps_{n} +
  \sum_{k=1}^{n-1}\eps''_{k}.
 \end{equation}
  To prove this inequality, use
 \[
   \neg(\cF_{1}\cap\cdots\cap\cF_{n}) = \neg\cF_{n}\cup
 \bigcup_{k=1}^{n-1}(\neg\cF_{k}\cap\cF_{k+1}).
 \]
  By the construction, $\eta^{n}(x_{n},0).\F^{n}=u$.
  Since the duration of $[0,t_{1}]$ is less than $T_{n}$ we have
$\Prob\setof{\eta^{n}(x_{n},t_{1})\ne\eta^{n}(x_{n},0)}<\eps_{n}$ by the
initial stability property, proving $\Prob\setof{\neg\cF_{n}}\le\eps_{n}$.
  The error-correction property and the broadcast property imply
$\Prob\setof{\cF_{k+1}\cap\neg\cF_{k}}\le\eps''_{k}$.
  \end{proof}

comm.tex
\section{Communication}\label{s.commun}

\subsection{Retrieval rules}

  Here, the rules for information retrieval from neighbor colonies will be
given.
  Neighbors of a cell are of the form $\thg_{j}(x)$ for $j\in\Nb-ind$ where
 \[
   \Nb-ind = \{-1.5,-1,0,1,1.5\}
 \]
  was defined in Subsection ~\ref{ss.rob.comput}. 
  Now these same notions of neighbor are applied to big cells and the
distance unit is $QB$ rather than $B$.
  We define $\var{Mail-ind}$ and $\ol k$ as in ~\ref{sss.mail-movement}:%
 \glo{mail-ind@$\var{Mail-ind}$}%
 \glo{k@$\ol k$}%
 \begin{align*}
   \var{Mail-ind} &= \{-1.1,-0.1,0.1,1.1\},
\\ \ol k          &= \sign(k)\flo{|k|}.
 \end{align*}
  First some definitions will be given, for a cell $x$ and its neighbor $y$
in direction $j$ which is equal to $\thg_{1.5j}(x)$ if the latter is
nonvacant and $\thg_{j}(x)$ otherwise.
  For a cell $x$, let%
 \glo{x@$x^{*}, x^{*0}$}%
 \begin{equation}\label{e.b-star}
  x^{*} = x - \Addr(x) B
 \end{equation}
  be the base of the \df{originating colony} of $x$ and
 \[
  x^{*0} = x - (\Addr(x) \bmod Q) B
 \]
  be the base of the \df{colony} of $x$.
  Thus, we have $x^{*}=x^{*0}$ iff $\Addr(x)\in[0,Q-1]$.
  The relation of cells and their originating colonies will define the
predicate%
 \glo{edge@$\Edge_{j}(x)$}%
 \[
  \Edge_{j}(x) = \begin{cases}
     0 &\text{if $x^{*}=y^{*}$,}
\\   1 &\text{if $x$ and $y$ are members of two adjacent colonies,}
\\ 1.5 &\text{if $1 < (x^{*}-y^{*})/(jQB) < 2$,}
\\ \infty &\text{otherwise.}
     \end{cases}
 \]
  The field $\Mail_{k}$ has the same subfields as in Subsection
~\ref{ss.simp-sim}.
  The subfield $\Mail_{k}.\Status$ can now also have the value%
 \glo{fickle@$\Fickle$}%
 \[
  \Fickle
 \]
 standing for ``transitional''.
  When $\Mail_{k}.\Status=\Fickle$ then the other subfields of $\Mail_{k}$
will play no role therefore we will, informally, also write
$\Mail_{k}=\Fickle$.
  The mail field $\Mail_{k}$ of a cell will cooperate, in direction $j$,
with mail field%
 \glo{peer@$\peer(k, j)$}%
 \[
   \peer(k, j) = k - j\flo{\Edge_{j}}
 \]
 of a neighbor if the latter index is in $\var{Mail-ind}$.
  To control the track $\Mail_{k}$, there is a one-bit track%
 \glo{control@$\Control_{k}$}%
 \glo{post@$\var{post}$}%
 \glo{get@$\var{get}$}%
 \[
  \Control_{k}\in\{\var{post},\var{get}\}
 \]
 which moves in the direction $-\sign(k)$ (opposite to the direction of
mail movement which it controls).
  For $|k|=0.1$, the values of $\Control_{k}$ will simply depend on
age: in certain stages of the program the mail must be posted, in
others it must be passed.
  For $|k|=1.1$, the value of $\Control_{k}$ will travel in the direction
$-\sign(k)$.
  For robustness, a change in the value of $\Control_{k}$ will propagate into
the inside of the next colony only when it is not to be followed by a
change back too soon.
  By definition, for $j\in\{-1,1\}$, either $\thg_{j}(\x)$ or
$\thg_{1.5j}(\x)$ is vacant.
  For every field $\F$ we denote by%
 \glo{f.cap@$\F^{(j)}$}%
 \begin{equation}\label{e.nearest-nb}
  \F^{(j)} 
 \end{equation}
  the field $\F$ of the nonvacant cell $\thg_{nj}(\x)$.
  Here is the formal propagation of control:%
 \glo{propag-control@$\rul{Propag-control}$}%
  \begin{program}
  rule $\rul{Propag-control}$  \0{
\\  pfor $j$ in $\{-1,1\}$ do \0{
\\    cond \0{
\\    ? $\Edge_{j}>0$ or \2{
\\          (\cmt{if $\thg_{2j}(\x)$ is in the colony of $\x$ then
 $\Control_{1.1j}^{2j}=\Control_{1.1j}^{j}$})
            }
\proglb{pg.propag-control.constancy}
\\    ! $\Control_{1.1j}:=\Control_{\peer(1.1j,j)}^{(j)}$
\\    }}}
\end{program}
  Condition ~\eqref{pg.propag-control.constancy} will make sure that a
damage rectangle creates at most 1 wrong value of the control and that this
wrong value practically does not propagate.

\begin{remark}
  In the present discussion, we assume that 
$|\Mail_{k}.\Info|=|\Info|$, which is not really true for a separable
transition rule.
  However, as mentioned in Remark ~\ref{r.narrow-mail}, the only
modification for the case of a narrow mail track is that the $\Info$ track
must be split up into narrower tracks (packets) and each narrower track
must be mailed in a separate copy operation.
  \end{remark}

  The rule below shows when and how mail will be posted:%
 \glo{post-mail@$\rul{Post-mail}$}%
 \begin{program}
 rule $\rul{Post-mail}$ \0{
\\ for $k\in\{-1.1,1.1\}$ do \0{
\\   cond \0{
\\     ? $\Control_{k}=\var{post}$ and $\Kind\in\{\Member,\Growth\}$ 
\\     ! cond \0{
\\         ? $\Age\not\in[Q,\cns{grow-start}]$
\\         ! $\Mail_{k} := \Fickle$
\\         ?! \0{
\\           $\Mail_{k}.\Info:=\Info$
\\           $\Mail_{k}.\Addr:=\Addr$
\\           }}}}}
 \end{program}
  Even if the posting of mail is requested, the posted mail will have value
$\Fickle$ if the age of the sending cell is close to a work period
transition of its colony (this will be the case with all growth cells).

  Let us define, for $j=-\sign(k)$ and each subfield $\F$ of $\Mail_{k}$,%
 \glo{fromnb@$\Fromnb$}%
 \[
   \var{Mail-to-receive}_{k}.\F = \begin{cases}
 $\Undef$  &\text{if $\peer(k,j)$ is undefined,}
\\   j\cdot \Edge_{j}
           &\text{if $\F = \Fromnb$, $|k| = 0.1$,
                                $1 \le \Edge_{j} < \infty$,}
\\   \Mail_{\peer(k, j)}^{(j)}.\F &\text{otherwise.}
    \end{cases}
 \]
  The ``hand-shaking'' condition%
 \glo{mail-used@$\var{Mail-used}$}%
 \[
   \var{Mail-used}(k)
 \]
 says that the cell is free to rewrite $\Mail_{k}$ since the value was
already used by the neighbor in direction $j=\sign(k)$.
  It is defined to be true if either $\peer(k,j)$ or $\peer(k,-j)$ is
undefined, or the following holds for all $\F$:
 \[
   \Mail_{\peer(k,j)}^{(j)}.\F = \begin{cases}
 -j\cdot\Edge_{j} &\text{if $\F = \Fromnb$, $k = 1.1j$,
                   $1 \le \Edge_{j} < \infty$,}
\\  \Mail_{k}.\F &\text{otherwise.}
  \end{cases}
 \]
  Information on the $\Mail_{k}$ tracks moves under the effect of the
following rule, except when it is overridden by $\rul{Post-mail}$.%
 \glo{move-mail@$\rul{Move-mail}$}%
 \begin{program}
 rule $\rul{Move-mail}$ \0{
\\  pfor $k$ in $\var{Mail-ind}$ do \0{
\\    ? $\Control_{k}=\var{get}$ and $\var{Mail-used}(k)$ 
\\    ! $\Mail_{k}:=\var{Mail-to-receive}_{k}$
\\    }}
\end{program}
  Arriving mail from neighbor $m$ will be stored in location
$\fld{-Retrieved}_{m}$\glo{retrieved@$\fld{-Retrieved}_{m}$} on track
$\Port_{m}$\glo{port@$\Port_{m}$}.
  Let us call by
\glo{retrieved.status@$\fld{-Retrieved}_{m}.\Status$}%
 $\fld{-Retrieved}_{m}.\Status$
 the status track of the location $\fld{-Retrieved}_{m}$.
  Locations $\fld{-Retrieved}_{m}$ will be checked as to whether the
information retrieved in them is transitional (a similar situation arises
in the proof of Theorem ~\ref{t.reach} (Reach Extension)).
  The program%
 \glo{check-retrieve@$\prg{check-retrieve}$}%
 \glo{ck-res@$\fld{Ck-res}$}%
 \[
 \rul{Check}_{0}(\prg{check-retrieve},\fld{Ck-res},\loc_{1},\loc_{2},\ldots)
 \]
  checks whether for each of the locations that are its arguments, there is
a $c\in\{\var{Normal},\Undef\}$ such that with the possible exception of 3
cells, all symbols are equal to $c$.
  The exceptions allow for one damage rectangle in each interval of size
$QB$ along the way from which information is retrieved.
  The checking rule $\rul{Check}_{1}()$ was defined in ~\ref{ss.refresh}, and
the program $\prg{recheck-1}$ was defined at ~\eqref{e.recheck-1}.
 \begin{program}
  subrule $\rul{Age-check}$  \0{
\\  $\rul{Check}_{1}(\prg{check-retrieve}, \fld{Ck-res}, 
	(\fld{-Retrieved}_{m}.\Status : m\in\Nb-ind))$;
\\  $\rul{Check}_{1}(\prg{recheck-1}, \fld{Ck-res}, \fld{Ck-res}, 2)$;
\\  }
 \end{program}

  \begin{lemma}[Age Check]\label{l.age-check}\index{lemma@Lemma!Age Check}\
\begin{cjenum}

  \item
  Assume that at the beginning of an application of $\rul{Age-check}$,
for all $m$, with the possible exception of 4 symbols, either all elements
of the string in the location $\fld{-Retrieve}_{m}.\Status$ are
$\var{Normal}$ or all are $\Undef$.
  Assume moreover that either the check is damage-free or we can write 3 in
place of 4 above.
  Then at the end, with the possible exception of 2 adjacent cells, all
cells of the colony have $\fld{Ck-res}=1$.

  \item 
  Assume that at the beginning of $\rul{Age-check}$, for some $m$, it
is not true that with the possible exception of 4 symbols, either all
elements of the string in the location $\fld{-Retrieve}_{m}.\Status$ are
$\var{Normal}$ or all are $\Undef$.
  Then at the end, with the possible exception of 2 adjacent cells, all
cells of the colony have $\fld{Ck-res}=0$.

 \end{cjenum}
  \end{lemma}
\begin{proof}
  The proof is similar to the proof of Lemma ~\ref{l.refresh} (Refresh).
\end{proof}

  The subrule $\Retrieve$ is essentially a repetition of another subrule.%
 \glo{retrieve@$\Retrieve$}%
 \glo{retr-cycle@$\rul{Retr-cycle}$}%
 \begin{program}
   subrule $\Retrieve$ \0{
\\   $\fld{Ck-res}:=0$ 
\\   repeat 5 times \0{
\\     $\rul{Retr-cycle}$;
\\     \cmt{idle for $\lg(\End-\cns{grow-start}+Q)$ steps}
\\     }}
 \end{program}
  The long idle time between the application allows for getting the
neighbor colonies out of a possibly transitional situation.
  The rule $\rul{Retr-cycle}$ will send the commands $\var{post}$ and
$\var{get}$ on its control lines.
  Command $\var{post}$ is repeated just enough times to get it across.
  Command $\var{get}$ is repeated enough times for the mail track to
transfer the information from any neighbor.
  During this time, the rule will snatch information from each track
$\Mail_{k}$ to the appropriate track $\Port_{m}$.
  Then, the information will be checked for safety using
$\rul{Age-check}$.
  If it is safe then the retrieval will not be repeated: the rule
still goes through the same number of steps but without resetting the
receiving area and without any snatching.
 \begin{program}
     rule $\rul{Retr-cycle}$ \0{
\\     cond \0{
\\       ? $\fld{Ck-res}=0$ 
\\       ! for $m\in\Nb-ind\xcpt\{0\}$ do \0{
\\           $\Write(\var{Vacant-str}, \fld{-Retrieved}_{m})$;
             }};
\\     repeat $3Q\lg$ times \0{  
\\       for $j=-0.1,0.1$ do \0{     
\proglb{pg.retrieve.post}
\\         $\Control_{j} := \var{post}$
           }};
\\     repeat $2Q\lg$ times \0{
\proglb{pg.retrieve.get}
\\       for $j=-0.1,0.1$ do \0{
\\         $\Control_{j} := \var{get}$
           }}
\\     \prl cond \0{
\proglb{pg.retrieve.snatch}
\\       ? $\fld{Ck-res}=0$ 
\\       ! for $j=-0.1,0.1$ do \0{
\\         cond \0{
\\           ? $\Addr=\Mail_{j}.\Fromaddr$
\\           ! $\Port_{\Mail_{j}.\Fromnb} := \Mail_{j}$
             }}};
\\     $\rul{Age-check}$
\\     }
 \end{program}
  The total number of steps of $\Retrieve$ can be estimated as
 \[
  c_{1}Q\lg\nm{\SS_{k}}/\bw_{k}
 \]
  for an appropriate constant $c_{1}$.


\subsection{Applying the computation rules}\label{ss.apply-comp}

  For proving part ~\eqref{ax.comput.trans} of Condition ~\ref{ax.comput}
(Computation Property) for big cells, assume that for some rational $a$, we
have
 \begin{equation}\label{e.f_{1}}
  \Damage^{*}\cap [x-3QB,x+4QB-]\times[a-\Tl^{*}/2+,a+2\Tu^{*}]=\eset.
 \end{equation}
  By Lemma ~\ref{l.dead-if-long}, if there is no switching time
during $[a+,a+2\Tu^{*}]$ then $\eta^{*}(x,a+)=\Vac$.
  
 \begin{lemma}[Retrieval]\label{l.retr}\index{lemma@Lemma!Retrieval}
  Assume that $\sg_{0}$ or $\sg_{1},\sg_{2}$ is defined for $\eta^{*}$.
  Then we have case ~\eqref{ax.comput.trans} or \eqref{ax.comput.creator}
or \eqref{ax.comput.newborn} of Condition ~\ref{ax.comput} (Computation
Property).
  \end{lemma}
  \begin{Proof}
  As in the proof of Lemma ~\ref{l.legality} (Legality), consider a time
$v_{2}$ such that $\eta^{*}(x,v_{2})\ne\Vac$.
  If $\sg_{0}$ is defined then $v_{2}=\sg_{0}$, while if $\sg_{2}$ is
defined then it is some time very close from below to $\sg_{2}$.
  Let us define $v_{1}$ as in that proof.
  As in part ~\ref{legality.synch} of that proof, the Large Progress Lemma
can extend the path repeatedly backward from $v_{1}$ until we either arrive
at either an outer or germ cell or at a cell $c_{0}=(x_{0},v_{0})$ in the
same work period, with $\Age(c_{0})\le 2Q$.

  \begin{step+}{retr.germ}
  Assume that $c_{0}$ is a germ cell.
  Then we have case ~\eqref{ax.comput.newborn} of the Computation Property.
  \end{step+}
  \begin{pproof}
  Repeated application of the Large Progress Lemma gives a time interval
long enough during which the colony and the adjacent colonies on both sides
have been covered by germ cells.
  This implies that the state of the new big cell is latent and also that
for the big cell $x$, we have $\eta^{*}(\thg_{j}(x,t,\eta^{*}),t)=\Vac$
for some time $t$ in $[a+,\sg_{0}-]$ and for $j\ne 0$.
 \end{pproof}

  \begin{step+}{retr.member}
   Now assume that $c_{0}$ is a member cell.
  \end{step+}
  \begin{prooof}
  From time $v_{0}$ on, we can follow the development of colony $\cC$.
  The computation process can be treated similarly to the proof in the
Legality Lemma; the additional problem is the retrieval of the needed
information from the neighbor colonies in such a way that all retrieved
information can be attributed to a single time instant.
  (This issue was solved once already in the proof of Theorem
~\ref{t.reach} (Reach Extension)).

  Event ~\eqref{e.f_{1}} implies that in the whole space-time area in
which this communication takes place only the usual damage rectangles must
be considered.
  Due to ~\eqref{e.synch-start-lb-req}, the whole computation fits into an
interval of length $\Tl^{*}$ and therefore in each direction, at most 3
damage rectangles can affect the retrieval (considering communication with
a non-adjacent neighbor colony).

  The extension arms of the colony will be extended by the rule
$\rul{Extend}$, defined in Subsection ~\ref{ss.anim}.
  The success of carrying out the extension over possible latent or germ
cells or an opposing extension arm in the way is guaranteed by Lemma
~\ref{l.creation} (Creation).
  If the extension cells of $\cC'$ are growth cells then they are stronger
but the age check will fail in this case, so we can assume that this is not
the case.
  If there are extension arms from both colony $\cC$ and a non-adjacent
neighbor colony $\cC'$ then the strength ordering gives preference to one
side and therefore soon only one of the extension arms remains.

  Part ~\eqref{pg.retrieve.post}, of rule $\rul{Retr-cycle}$ sends the message
$\var{post}$ along the control line $\Control_{0.1}$ to the cells of the
nearest colony $\cC'$ (or its extension) on the left communicating with
$\cC$.
  The existence and condition of $\cC'$ will be discussed below. %?
  This message will be maintained by the healing rule as a locally
maintained field.
  Its value arrives on control line $\Control_{1.1}$ to $\cC'$ (or its
extension).
  There, its value is propagated (carefully) by $\rul{Propag-control}$.
  Via the rule $\rul{Post-mail}$, the signal causes the cells of
$\cC'$ to post the needed information.

  In due time, part ~\eqref{pg.retrieve.get}, of rule $\rul{Retr-cycle}$ sends
the message $\var{get}$ along the same control line to colonies $\cC'$ and
$\cC$; this causes the track $\Mail_{1.1}$ of $\cC-QB$ to pass its
information to the right, to track $\Mail_{0.1}$ of $\cC$, which passes it
further to the right.
  Damage can occur during the passing phase, but after healing its effect
is confined to information (not the control fields) in the cells (at most
two) which it changed.
  During the same phase, due to the parallelly running part
~\eqref{pg.retrieve.snatch} of $\Retrieve$, the $\Port_{m}$ fields of each
cell of $\cC$ snatch the information addressed to them from the
right-moving track $\Mail_{0.1}$.

  At the end of $\rul{Retr-cycle}$, rule $\rul{Age-check}$ will be applied.
  By Lemma ~\ref{l.age-check} (Age Check), at the end of the
application of this rule, all but maybe 2 cells of the track
$\fld{Check-res}$ contain the same value.
  We will say that the process \df{passed} or \df{failed the age check}.
  The rule $\rul{Retr-cycle}$ is iterated 5 times but it will not affect the
$\Port_{m}$ tracks after it passes the age check.

\begin{step+}{retr.member.age-fail}
 The age check can fail at most 4 times.
  \end{step+}
 \begin{pproof}
  For every neighbor colony from which mail is to be retrieved, at
most two iterations of $\rul{Retr-cycle}$ can fail the age check.
  Normally, there can only be one such failure, when the colony was
found in a transition age: this gives at most 1 failure on the left
and 1 failure on the right.
  Due to the idling between iterations of $\rul{Retr-cycle}$, the next iteration
will find the colony past the transition age.

  It can also happen that the neighbor colony was found in a transition age
just before vanishing and next time it will be found in a transition age
when it is just being recreated by a farther colony.
  However, it is easy to see that this can happen only for one neighbor
colony on the left and one on the right, bringing the total number of
failures to at most 4.
  \end{pproof}

  Take an iteration of $\rul{Retr-cycle}$ that passes the age check.
  Let $t_{0}$ be the earliest time after the beginning of this iteration
when the whole area $D=[x-2QB,x+3QB]$ is free of the healable wake of
any damage rectangle, and let $t_{1}$ be the end of this iteration.
  Let us call any colony $\cC'$ with base $x'$ in $[x-2Q+,x-Q]$ a
\df{potential left neighbor colony}.

  \begin{step+}{retr.member.all-covered}
  Suppose that there is a potential left neighbor colony $\cC'$ that stays
covered during $[t_{0},t_{1}]$ (a temporary hole due to the damage
rectangle and healing within $4\tau_{1}$ time units does not count).
  \end{step+}
  \begin{prooof}
  It is easy to see by Lemma ~\ref{l.pres-attrib} (Present Attribution) that
all cells between $\cC'$ and $\cC$ (if any) not in the wake of a damage
rectangle belong to extensions of either $\cC'$ or $\cC$.

  The retrieval from $\cC'$ proceeds according to the program.
  The mail will be passed from $\cC'$ to $\cC$ through the remaining
extension arm (if any).
  The age check guarantees that all the retrieved information can be
attributed to a single instant of time before $t_{1}$, since it will not
change during the at most $3Q\tau_{1}$ time units needed for its reading (we
count $\tau_{1}$ for each mail-passing step, and add $Q\tau_{1}$ more time units
for the possible push-back of extension arm by an opposite one).

  According to Lemma ~\ref{l.pres-attrib} (Present Attribution), before
retrieval, each of the strings to be retrieved represents some string
within 2 deviations.
  During retrieval, damage can change at most 4 cells, increasing the
number of deviations to at most to 6.
  Since we use a 6-error-correcting code the computation proceeds from here
as expected.
  \end{prooof}
  
  \begin{step+}{retr.member.not-all-covered}
  Suppose now that there is no potential left neighbor colony
that stays covered during $[t_{0},t_{1}]$.
  \end{step+}
  \begin{prooof}
  There are the following possibilities, according to the Present
Attribution Lemma ~\ref{l.pres-attrib}:
 \begin{djenum}
  \item\label{i.retr.nb.empty}
  No cells occur in $[x-QB, x-]$ during $[t_{0},t_{1}]$;

  \item\label{i.retr.nb.born}
  Growth to the right from some colony $\cC'-QB$ where $\cC'$ is a
potential left neighbor colony;

  \item\label{i.retr.nb.vanish}
  A potential left neighbor colony $\cC'$ is beginning to disappear as in
part ~\eqref{i.pres-attrib.vanish} of the Lemma
~\ref{l.pres-attrib} (Present Attribution).
  Then within $2Q\tau_{1}$ time units hereafter all cells of $\cC'$ disappear.
 \end{djenum}

  Let us look at the $\Port_{i}$ track before the age check, for
$i\in\{-1,-1.5\}$.
  If for some cell $x$ on it $\Port_{i}(x)$ is not the direct result of
damage and $\Port_{i}.\Status(x)\ne\Undef$ then this value was obtained
from a potential neighbor colony $\cC'$ by mail during the last retrieval
cycle.
  In all the cases considered, this value is then $\Fickle$.
  Since the age check passes, Lemma ~\ref{l.age-check} (Age Check) implies
that, with the possible exception of 2 intervals of 2 cells, the cells of
$\cC$ have $\Port_{i}.\Status=\Undef$.
  Thus at the end of $\Retrieve$, the string on the $\Port_{i}$ track
represents a vacant value within 4 errors.

 \begin{step+}{retr.member.not-all-covered.long-vacant}
  There is a time interval of length at least $3Q\tau_{1}$ before $t_{1}$ in
which all big cells corresponding to potential left neighbor colonies
$\cC'$ are vacant and in which therefore the information collected by
$\Retrieve$ can be attributed to any instant.
 \end{step+}
 \begin{pproof}
  In case ~\eqref{i.retr.nb.empty}, the big cell corresponding to colony
$\cC'$ is indeed empty all the time.
  In case ~\eqref{i.retr.nb.born}, the growth process from colony $\cC'-QB$
could not have started long before $t_{0}$ since so few cells reported unsafe
age: therefore the duration of growth provides the necessary long interval.
  In case ~\eqref{i.retr.nb.vanish}, cells of $\cC'$ start vanishing within
$Q$ steps after $t_{0}$.
  Otherwise namely the $\Port_{i}$ track would snatch values with
$\Status=\Fickle$ and then would not pass the age check.
  Once the vanishing of colony $\cC'$ started, it will be over within
$Q\tau_{1}$ time units.
  Repopulating it by growth will take sufficiently long that it does not
create a new cell during this retrieval cycle.
 \end{pproof}
\end{prooof} % {retr.member.not-all-covered}
 \end{prooof} % {retr.member}

  \begin{step+}{retr.outer}
  Assume that $c_{0}$ is an outer cell.
  Then we have case ~\eqref{ax.comput.creator} of the Computation
Property. 
  \end{step+}
  \begin{pproof}
  The fact that the new big cell is latent can be similarly concluded.
  The Attribution Lemma allows us to attribute the outer cell in question
to a neighbor colony, say with base cell $x-QB$ on the left, from which
it has grown.
  This implies $\Growing_{1}=1$ for this colony, which, as seen above,
implies $\Creating_{1}=1$ in the big cell $x-QB$.

  Now the reasoning of ~\ref{retr.member} above can be applied to this big
cell, seeing that it computes its next state according to the transition
rule from information retrieved from its neighbors.
  In particular, it applies the rule $\Arbitrate$ and therefore can only
have $\Creating_{1}=1$ if the big cell $x$ is vacant when observed.

  Therefore, on the other hand, the creation of the latent big cell $x$ can
be attributed to the rule $\Create$, hence the transition rule was also
satisfied in big cell $x$.
  \end{pproof}
\end{Proof} % {l.retr}

  The following lemma covers the cases left after the above lemma.

\begin{lemma}[Growth]\label{l.growth}\index{lemma@Lemma!Growth}
  Assume that we have ~\eqref{e.f_{1}} and $\eta^{*}(x,t)=\Vac$ 
for $t\in[a+,a+2\Tu^{*}]$.
  Then part ~\eqref{ax.comput.no-birth} of Condition ~\ref{ax.comput}
(Computation Property) applies to $\eta^{*}$.
  \end{lemma}
 \begin{Proof}
  Let $\cC$ be the colony whose base is $x$.
  If there is any $(y,t)$ with $0<|y-x|<QB$, $t\in[a+,a+2\Tu^{*}]$ and
$\eta^{*}(y,t)\ne\Vac$ then we are done; assume therefore that there is no
such $y$.
  If there is any $t$ in $[a+,a+2\Tu^{*}]$ when both
$\eta^{*}(x-QB,t)$ and $\eta^{*}(x+QB,t)$ are vacant then at this time
there is no potential creator, and we are done.
  The case remains when for all $t$ in $[a+,a+2\Tu^{*}]$ there is a
$j\in\{-1,1\}$, with $\eta^{*}(x+jQB,t).\Creating_{-j}=1$ and there is no
big cell $y$ during this time whose body intersects the potential body of
the big cell $x$.
  We will show that this case does not occur.
  Without loss of generality, suppose
 \[
  \eta^{*}(x-QB,a+2\Tu^{*}-\Tl^{*}/2).\Creating_{1}=1.
 \]
  \begin{step+}{growth.one-side}
  Suppose that there is no $t$ in $[a+,a+2\Tu^{*}-\Tl^{*}/2]$ with
$\eta^{*}(x+QB,t).\Creating_{-1}=1$.
  \end{step+}
  \begin{prooof}
  Then for all $t$ in this interval, we have
$\eta^{*}(x-QB,t).\Creating_{1}=1$.
  Tracing backward and forward the evolution of the colony of the big cell
$x-QB$ (and applying Lemmas ~\ref{l.legality} (Legality) and \ref{l.retr}
(Retrieval), we will find a whole work period $[u_{1},u_{2}]$ of colony
$\cC-QB$ in $[a-\Tl^{*}/2,a+2\Tu^{*}-\Tl^{*}/2]$.
  At the end of this work period, growth to the right takes place.

  If the growth succeeds this would contradict our assumption: suppose that
does not.
  This can only happen, according to Lemma ~\ref{l.creation} (Creation), if
some non-germ cell $z$ is in the way.
  Lemma ~\ref{l.pres-attrib} (Present Attribution), shows that $z$ is a
left extension cell of a live big cell $y$ in $[x+QB+,x+2QB-]$, and is
therefore not stronger than the right growth it is keeping up.

  The rule $\Arbitrate$ kills $z$ since it prefers right growth to the left
one, and therefore $z$ does not really prevent the right growth from
succeeding.
  Since this preference is arbitrary assume that the rule $\Arbitrate$
actually prefers growth in the left direction and that $z$ is a left growth
cell.
  We can trace backward and forward the evolution of the colony of $y$ to
see that it carries its growth to conclusion, resulting in a new big cell
$y-QB$ before time $a+2\Tu^{*}$, whose body intersects the body of $x$.
  This has also been excluded.
 \end{prooof}

  \begin{step+}{growth.two-side}
  Suppose that there is also a $t$ in $[a+,a+2\Tu^{*}-\Tl^{*}/2]$ with
$\eta^{*}(x+QB,t).\Creating_{-1}=1$.
  \end{step+}
  \begin{prooof}
  Tracing backward and forward the evolution of the colony of the big cells
$x-QB$ and $x+QB$ (and applying the Legality and Retrieval lemmas) it is
easy to see that they are non-vacant for all $t$ in $[a+,a+2\Tu^{*}]$
(since according to Condition ~\ref{cond.creating}, $\Creating_{j}=1$
implies $\Dying=0$).

  It is easy to see that there is a $j\in\{-1,1\}$ and
$[t_{1},t_{2}]\sbs[a-\Tl^{*}/2,a+2\Tu^{*}]$ such that $[t_{1},t_{2}]$ is a
dwell period of big cell $x+jQB$ with $\Creating_{-j}=1$.
  Assume first that $j=-1$ can be chosen.

  In the colony $\cC$ of $x$ between the colonies $\cC-QB$ and $\cC+QB$,
due to Lemma ~\ref{l.pres-attrib} (Present Attribution), all non-germ cells
belong to the extension of one of these two colonies.
  The growth rule of $x-QB$ will try to create a latent big cell in
$\cC$.
  If the growth rule of $\cC+QB$ is not active then there are no obstacles
to this creation and it succeeds, contrary to the original assumption: so
we are done.
  Moreover, it succeeds even if the growth rule of $\cC+QB$ is active since
the strength relations favor growth from the left.

  Assume now that only $j=1$ can be chosen.
  The reasoning is similar to the above except when the growth rule of
$\cC-QB$ is active at the same time when $\cC+QB$ is trying to grow left.
  This can only happen when the dwell period $[t_{1},t_{2}]$ of big cell
$x+QB$ overlaps with a dwell period $[u_{1},u_{2}]$ of big cell $x-QB$ with
$\Creating_{1}=1$.
  By our assumption, $[u_{1},u_{2}]\not\sbs[a-\Tl^{*}/2,a+2\Tu^{*}]$.

  In the next reasoning, we will use the fact that growth is confined to a
time interval of length at most $\Tl^{*}/2$ at the end of any colony work
period. %?

  Assume $t_{2}>a+2\Tu^{*}-\Tl^{*}/2$.
  Then we must have $u_{2}>a+2\Tu^{*}$.
  Hence the previous dwell period $[u_{0},u_{1}]$ of $x-QB$ is in
$[a+,a+2\Tu^{*}]$ and must have $\Creating_{1}=0$.
  Therefore $\Creating_{-1}=1$ in the previous dwell period $[t_{0},t_{1}]$
of $x+QB$.
  Due to the confinement of growth to the end of the work period, the
growth to the left from $\cC+QB$ at the end of the period $[t_{0},t_{1}]$
will be undisturbed by growth to the right from $\cC-QB$ and the creation
succeeds near time $t_{1}$, contrary to the original assumption.

  Assume now $t_{2}\le a+2\Tu^{*}-\Tl^{*}/2$.
  Then due to the confinement of growth just mentioned, we have
 $u_{2}\le a+2\Tu^{*}$. %?
  Hence, $u_{1}<a-\Tl^{*}/2$, and the next dwell period of $x-QB$,
contained entirely in $[a+,a+2\Tu^{*}]$, must have $\Creating_{1}=0$.
  Then the next dwell period of $x+QB$ is still entirely in
$[a+,a+2\Tu^{*}]$ and has $\Creating_{-1}=1$, and the creation to the left
succeeds.
 \end{prooof} %{growth.two-side}
\end{Proof}
 

\subsection{The error parameters}

  Lemma ~\ref{l.amp} (Amplifier) says that given a (broadcast) amplifier
frame $\Frame$ with large enough $\rep_{0}$, we can complete it to a
uniform (broadcast) amplifier.
  We leave out the case of broadcast amplifiers: the proof comes with some
simplification from the proof for general amplifiers.
  
  The main ingredient of our amplifier is the sequence of transition
functions $\var{Sim-trans}_{k}$ and the sequence of codes $\fg_{k*}$,
$\fg_{k**}$, $\fg^{*}_{k}$, which was defined in the course of the proof.
  It remains to verify the amplifier properties listed after
~\eqref{e.unif-amp}.
  Let us recall them here.
  \begin{cjenum}

  \item $(\Rider^{k})$ with guard fields $(\Guard^{k})$ is a guarded shared
field for $(\fg_{k*})$, $(\fg_{k**})$, as defined in Subsection
~\ref{ss.amp.tkdn};

  \item the damage map of the simulation $\Fg_{k}$ is defined as in
Subsection ~\ref{ss.rob.damage};

  \item $\trans_{k}$ is combined from $\var{Rd-trans}_{k}$ and
$\var{Sim-trans}_{k}$, with fields $\Rider^{k}$, $\Guard^{k}$;

  \item\label{amp.M_{k}}
    $M_{k}=\Rob(\trans_{k},B_{k},\Tl_{k},\Tu_{k},\eps_{k},\eps'_{k})$;

  \item $\Fg_{k}$ has $\eps''_{k}$-error-correction for $\fg_{k**}$;

 \end{cjenum}
  
  The first three properties follow immediately from the definition of
$\trans_{k}$ and the code, given in the preceding sections.
  It has also been shown, by induction, that $M_{k+1}$ is a robust medium
simulated by $M_{k}$ via the code, with $\eps_{k}$ as the error bound and
$\Tl_{k}$, $\Tu_{k}$ as the work period bounds.
   It needs to be shown yet that $\eps'_{k}$ indeed serves as the bound in
the definition of $M_{k}=\Rob(\cdots)$, and that the simulation has
$\eps''_{k}$-error-correction.

  $\eps'_{k+1}$ must bound the difference from 0.5 of the probability of
the new coin-toss of the simulated computation, and the simulation in the
work period must be shown to have $\eps''_{k}$-error-correction.
  We must show that in a big cell transition, the probability that the
$\Rand^{*}$ field is 1 is in $[0.5-\eps'_{k+1},0.5+\eps'_{k+1}]$.
  (We also have to show that the bounds on the probabilities are of the
form of sums and products as required in the definition of canonical
simulation, but this is automatic.)

  In case there is no damage rectangle during the whole work period, the
field $\Rand^{*}$ was computed with the help of the rule $\rul{Randomize}$.
  This rule took the value $X$ found in field $\Rand$ of the base cell of
the colony and copied it into the location holding $\Rand^{*}$.

\begin{remark}
  This is the point where we use that our simulation is a canonical
simulation but not necessarily a deterministic one: the time at which the
the base cell tosses the coin can be found using a stopping time within the
colony work period.
 \end{remark}

  By the property of $M_{k}$, the probability that $X=1/2$ is within
$\eps'_{k}$ of 0.5.
  By its definition, $\eps''_{k}$ upper-bounds the probability that any
damage rectangle intersects the colony work period.
  Therefore the probability that $\Rand^{*}\ne X$ can be bounded by
$\eps_{k}$.
  Hence, the probability that the $\Rand^{*}$ field is 1 is in
 \[
  [0.5-\eps'_{k}-\eps''_{k},0.5+\eps'_{k}+\eps''_{k}]=
  [0.5-\eps'_{k+1},0.5+\eps'_{k+1}].
 \]
  As just noted, with probability $\eps''_{k+1}$, no damage rectangle
occurs during a colony work period.
  Under such condition, the rule $\Refresh$ works without a hitch and each
cell contains the information encoded by the code $\fg_{**}$ from the state
of the big cell.
  This shows that our simulation has the $\eps''_{k}$-error-correction
property.


concl.tex
\section{Some applications and open problems}

\subsection{Non-periodic Gibbs states}

  Consider spin systems\index{spin system} in the usual sense
(generalizations of the Ising model\index{Ising model}).
  All 2-dimensional spin systems hitherto known were known to have only a
finite number of extremal Gibbs states\index{state!Gibbs} (see
e.g.~\cite{AizenIsing80}): thus, theoretically, the amount of storable
information on an $n\times n$ square lattice did not grow with the size of
the lattice.
  In 3 dimensions this is not true anymore, since we can stack independent
2-dimensional planes: thus, in a cube $C_{n}$\glo{c.cap@$C_{n}$} of size
$n$, we can store $n$ bits of information.
  More precisely, the information content of $C_{n}$ can be measured by the
dimension of the set of vectors\glo{s.greek@$\sg$}
 \[
    (\mu\setof{\sg(x) = 1} : x\in C_{n})
 \]
  where $\mu$ runs through the set of Gibbs states.
  This dimension can be at most $O(n^{d-1})$ in a $d$-dimensional lattice,
since the Gibbs state on a cube is determined by the distribution on its
boundary.
  The stacking construction shows that storing
$\Og(n^{d-2})$\glo{o.greek.cap@$\Og$} bits of
information is easy.
  We can show that $\Og(n^{d-1})$ is achievable: in particular, it is
possible to store an infinite sequence in a 2-dimensional spin system in
such a way that $n$ bits of it are recoverable from any $n$ sites with
different $x$ coordinates.

  For this, we apply a transformation from~\cite{GKLMEquil86} (see also
~\cite{BennGriIrrev85}): a probabilistic cellular automaton $M$ in $d$
dimensions gives rise to an equilibrium system $M'$ in $(d+1)$ dimensions.
  Essentially, the logarithms of the local transition probabilities define
the function $J$ and space-time configurations of $M$ become the
space-configurations of $M'$.
  Non-ergodicity of $M$ corresponds to phase transition in $M'$.
  In the cellular automaton of Theorem~\ref{t.1dim.stor}, each infinite
sequence $\rg$ gives rise to a space-time configuration storing the bits of
$\rg$ in consecutive cells.
  Now, each of these space-time configurations gives rise to a separate
Gibbs state belonging to one and the same potential.

  Let us note that though the Gibbs system is defined in terms of an energy
function $H(\sg)$\glo{h.cap@$H(\sg)$}, it is not helpful to represent this
energy function in terms of a temperature\index{temperature}
$T$\glo{t.cap@$T$} as $H(\sg)/T$.
  The reason is that the individual terms of $H(\sg)$ do not depend
linearly on the error probability $\eps$ (or any function of it).
  In fact, we believe it can be proved that if an artificial $T$ is
introduced (with $T=1$ for a certain sufficiently small value of $\eps$)
then a slight decrease of $T$ destroys the phase transition.


 \subsection{Some open problems}

 \subsubsection{Turing machines}\index{Turing machine}
  It is an interesting question (asked by Manuel Blum) whether a reliable
Turing machine can be built if the tape is left undisturbed, only the
internal state is subject to faults.
  A construction similar to reliable cellular automaton seems to be
possible.
  It is not known whether there is a simpler construction or, whether there
is a way to derive such a machine from reliable cellular automata.

 \subsubsection{Relaxation time as a function of space size}
  Consider now Toom's medium\index{Toom rule} as a typical example of a
medium non-ergodic for $m=\infty$.
  It follows from Toom's proof that, for small enough fault
probability $\eps$, we have
 $\lim_{m\to\infty}r_{m}(0,1/3)=\infty$, i.e.~the increase of space
increases the relaxation time\index{relaxation time} (the length of time
for which the rule keeps information) unboundedly.
  The speed of this increase is interesting since it shows the
durability of information as a function of the size of the cellular
automaton in which it is stored.
  Toom's original proof gives only $r_{m}(0,1/3)>cm$ for some constant
$c$.
  The proof in ~\cite{BermSim88}, improving on ~\cite{GacsReif3dim88},
gives $r_{m}(0,1/3)>e^{cm}$ for some constant $c$, and this is essentially
the meaning of saying that Toom's rule helps remember a bit of information
for exponential time.

  So far, the relaxation times of all known nontrivial non-ergodic
media (besides Toom's, the ones in ~\cite{Gacs1dim86} and \cite{Gacs2dim89})
depend exponentially on the size of the space.
  It is an interesting question whether this is necessary.
  In a later work, we hope to show that this is not the case and that
there are non-ergodic media such that $r_{m}(n,1/3)<m^{c}$ holds for all
$n$, for some constant $c$.
  The main idea is that since the medium will be able to perform an
arbitrary reliable computation this computation may involve recognizing the
finiteness of the space rather early (in time $m^{c}$) and then erasing all
information.

 \subsubsection{Relaxation time as a function of observed area}
  Lemma ~\ref{l.unif} seems to suggest that the issue of information
loss in a cellular automaton is solved by the question of mixing
for $m=\infty$.
  This is not so, however: as noted together with Larry Gray, Leonid
Levin and Kati Marton, we must also take the dependence of
$r_{m}(n, \dg)$ on $n$ into account.
  As time increases we may be willing to use more and more cells to
retrieve the original information.
  Even if $r_{\infty}(n,\dg)<\infty$ for each $m$, we may be satisfied
with the information-keeping capability of the medium if, say,
$r_{m}(n,1.9)>e^{cn}$ for some constant $c$.

  In some mixing systems, the dependence of $r_{m}(n, \dg)$ on $n$ is
known.

\begin{example}[The contact process.]\index{contact process}
  The contact process is a one-dimensional $\CCA$ as defined in Subsection
~\ref{ss.Markov}.
  Let us note that this this process is not noisy: not all local
transition rates are positive.
  The process has states 0,1.
  In trajectory $\eta(x,t)$, state $\eta(x,t)=1$ turns into 0 with
rate 1.  
  State $\eta(x,t)=0$ turns into 1 with rate
$\lg(\eta(x-1,t)+\eta(x+1,t))$\glo{l.greek@$\lg$}.
  It is known that this process has a critical rate\index{critical rate}
$\lg_{c}\in[0+,\infty-]$ with the following properties.
  
  If $\lg\le \lg_{c}$ then the process is mixing with the invariant
measure concentrated on the configuration $\xi$ with $\xi(x)=0$ for
all $x$.
  If $\lg>\lg_{c}$ then the process is non-ergodic.

  If $\lg<\lg_{c}$ then it is known (see Theorem 3.4 in Chapter VI of
~\cite{Liggett85}) that the order of magnitude of $r_{\infty}(n,\dg)$ 
is $\log n$.

  If $\lg=\lg_{c}$ then the convergence is much slower, with an order
of magnitude that is a power of $n$ (see Theorem 3.10 in Chapter VI
of ~\cite{Liggett85} and \cite{BezuidenhoutGrimmett90}).
\end{example}

  We believe it possible to construct a medium that is mixing for
$m=\infty$ but loses information arbitrary slowly: for any computable
function $f(n)$, and a constant $c$ there is a medium with
 \[
  r_{m}(n,1.9) > f(n)\wedge e^{cm}
 \]
  for finite or infinite $m$.
  Notice that this includes functions $f(n)$ like $e^{e^{e^{n}}}$.
  Such a result could be viewed as an argument against the relevance of the
non-ergodicity of the infinite medium for practical information
conservation in a finite medium.
  The construction could be based on the ability to perform arbitrary
computation reliably and therefore also to destroy locally identifiable
information arbitrarily slowly.


defs.tex
\section{Media}\label{s.med}

  An abstract medium has been defined in ~\ref{sss.abstract} as essentially
a set of stochastic processes called its trajectories.
  Let us narrow this category somewhat.
  The kind of abstract medium considered in this paper will simply be
called a \df{medium}.
  We will also restrict the kind of simulations among media to mappings
that by their very form will obviously be simulations: they will be called
\df{canonical simulations}.


\subsection {Trajectories}
 \label{ss.traj}

  Here, we will show in what form the set of trajectories of a medium will
be given.


 \subsubsection{Weak trajectories}
  
  In defining the conditions making up a medium we will make use of
inequalities of the form
 \[
  \bE \g\le b
 \]
 where $\g$ is an event function (as defined in Subsection ~\ref{ss.PCA}),
measurable in $\cA(V)$ for some rectangle $V$.

  \begin{example}
  Let $V=[a_{1}+,a_{2}]\times[t+,u]$, $B < d = 0.2 (a_{2}-a_{1})$.
  Suppose that we are given some $\br\in\SS^{3}$, $s\in\SS$.
  Let $\g=1$ if there is a space-time point $(x,t_{0})$ in $V$, and an
$\eps<d$ such that $\eta(x+iB,t)=r_{i}$ for $i = -1, 0, 1$ during
$[t_{0}-\eps,t_{0}-]$ and $\eta(x,t_{0})=s$.
  Thus, the event $\g=1$ marks a certain kind of transition in the window.
  \end{example}

  A medium will be given by many such conditions.
  Let us fix an arbitrary countable set $\TT$\glo{t.cap.t@$\TT$} which will be
called the set of \df{condition types}\index{condition!type}.
  A \df{medium}\index{medium} is given as%
 \glo{med@$\var{Med}$}%
 \begin{equation}\label{e.med}
  M=\var{Med}(\SS, \bC, \g(\cdot,\cdot,\cdot), \b(\cdot)).
 \end{equation}
  Here, $\SS$ is the set of possible local states and $\bC$ is the set of
possible cell sites.
  The space $\bC$ can also be omitted whenever it is clear from the
context.
  For all types $\ag\in\TT$ and rational rectangles $V$, the medium assigns
an event function%
 \glo{g@$\g(\ag,V,\eta)$}%
 \[
  \g(\ag,V,\eta)
 \]
  and a bound $\b(\ag)\in[0,1]$\glo{b@$b(\ag)$}.
  (We do not insist that $\g(\ag,V,\cdot)$ be measurable in $\cA(V)$ though
usually this will be the case.)
  Therefore from now on, a \df{local condition}\index{condition!local} will
be defined as a pair
 \glo{a.greek@$(\ag,V)$}%
 \[
   (\ag,V).
 \]
  The set $\SS$ is determined by $g$ implicitly.
  Also, generally local conditions will only be defined for small $V$, and
in a translation-invariant\index{translation-invariance} way (in space, but
only almost so in time since the time 0 is distinguished).
  Therefore one and the same pair $g,b$ can serve for all sufficiently
large finite spaces $\bC$ as well as the infinite space, just like with
deterministic cellular automata, where the same transition function
determines trajectories in finite spaces as well as the infinite space.

  When we are given media $M_{1},M_{2},\ldots$ then $\g_{i}(),\b_{i}()$
automatically refer to $M_{i}$.

  Two local conditions are \df{disjoint}\index{condition!local!disjoint}
when their rectangles are.
  A random space-time configuration $\eta$ will be called a
 \df{weak trajectory}\index{trajectory!weak} if for each time $u\ge 0$, for
each set of disjoint local conditions
 \[
  (\ag_{i},V_{i})_{i\le N}
 \]
  with $\min_{i}\prt V_{i}\ge u$, if $h$ is an event function
over $\cA_{u}$ then
 \begin{equation}\label{e.weak-traj-def}
 \bE (h \prod_{i}\g(\ag_{i}, V_{i},\eta)) \le \bE h\prod_{i} \b(\ag_{i}).
 \end{equation}
  This says that we can multiply the probabilities of violating local
conditions in disjoint windows, i.e.~that these violations happen
``independently''.


 \subsubsection{Trajectories}
  The media we are going to be interested in have these three types of
condition.
 \begin{djenum}

  \item One type recognizes in $V$ a certain kind of value called
``damage'', and has $b=\eps$ for some small $\eps$;

  \item One type recognizes if there is no damage in $V$ and the
transition does not occur according to a certain transition function.
  This has $b=0$.

  \item
  One type corresponds to some ``coin tossing'' event, and has
$b=0.5+\eps'$ for a suitable $\eps'$.

 \end{djenum}
  If we need coin-tossing (we need it only for the results on
self-organization) then we must also consider certain sets of conditions
that are chosen randomly.
  A \df{random local condition}\index{condition!local!random} is a
(measurable) function $(\ag,V(\eta))$ assigning a local condition to each
space-time configuration $\eta$.
  We recall the definition of stopping times from the theory of stochastic
processes, specialized to our present needs.
  A real random variable $\sg$ with values in $[0,\infty-]$ is a
\df{stopping time derived from}\index{stopping time} $\eta$ if for each $t$
the event $\sg\le t$ is in $\cA_{t}$.
  Let $\cA_{\sg}$\glo{a.cap@$\cA_{\sg}$} be the algebra of events $A$ with
the property that $A\cap\{\sg\le t\}\in \cA_{t}$.
    Assume that for each $t$ in $[0, \infty-]$ there is random variable
$V^{t}(\eta)$\glo{v.cap@$V^{t}(\eta)$} measurable in $\cA_{t}$ with values
that are rational rectangles with
 \[
  \prt V^{t}(\eta)\sbs[t, \infty]
 \]
  and such that with probability 1 the function $V^{t}(\eta)$ is right
semi-continuous in $t$.
  This will be called a \df{rectangle process derived from}\index{rectangle
process} $\eta$.
  We mention the following well-known fact from the theory or stochastic
processes:

 \begin{theorem}[see ~\cite{Neveu64}]\label{t.stopping-fact}
  $V^{\sg}$ is a random variable measurable in $\cA_{\sg}$.
 \end{theorem}

  We will omit the words ``derived from $\eta$'' when they are clear from
the context.
  A \df{random-stopping
 local condition}\index{condition!local!random-stopping} is given by a
triple%
 \glo{a.greek@$(\ag, V^{t}(\eta), \sg)$}%
 \begin{equation}\label{e.rand-cond}
   (\ag, V^{t}(\eta), \sg)
 \end{equation}
  where $\ag$ is a type, $V^{t}(\eta)$ is a rectangle process and $\sg$ is
a stopping time, both derived from $\eta$.
  This condition is supposed to express the bound
 \[
   \bE \g(\ag,V^{\sg},\eta) \le \b(\ag).
 \]
  For some finite set $N$ of indices, let us now be given a sequence 
 \begin{equation}\label{e.rand-cond-sys}
   (\ag_{i},V_{i}^{t}, \sg_{i})_{i\in N}
 \end{equation}
 of random-stopping local conditions.
  It is is called a \df{system of disjoint random local
 conditions} if (for almost all $\eta$) all the rectangles
$V_{i}^{\sg_{i}}(\eta)$ are disjoint, and there is a constant upper bound
on the $\sg_{i}$ and a constant segment containing all $\prs V_{i}^{t}$.
  A random space-time configuration $\eta$ will be called a
\df{trajectory}\index{trajectory} if for each set of disjoint random local
conditions as in ~\eqref{e.rand-cond-sys} with $\sg_{i}\ge u$, if $h$ is an
event function over $\cA_{u}$ then
 \begin{equation}\label{e.traj-def}
 \bE (h \prod_{i}\bar \g(i,\eta)) \le \bE h\prod_{i} \b(\ag_{i})
 \end{equation}
  where%
% \glo{gieta@$\bar \g(i,\eta)$}%
 \begin{equation}\label{e.ol-f}
   \bar \g(i,\eta) = \g\bigparen{\ag_{i},V^{\sg_{i}(\eta)}(\eta),\eta}.
 \end{equation}
  This also says that we can multiply the probabilities of violating local
conditions in disjoint windows, but requires that this be even true if the
windows are chosen by random stopping rules.
\begin{figure}
 \setlength{\unitlength}{1mm}
 \[
 \begin{picture}(100, 65)(-20,0)
    \put(-10,0){\vector(0,1){60}}
    \put(-13, 55){\makebox(0,0)[r]{time}}
    \put(35, 23){\framebox(10, 10){$V_{1}^{\sg_{1}}$}}
    \put(-11, 20){\line(1,0){2}}
    \put(-16, 20){\makebox(0,0){$\sg_{1}$}}
    \put(55, 10){\framebox(8, 25){$V_{2}^{\sg_{2}}$}}
    \put(-11, 8){\line(1,0){2}}
    \put(-16, 8){\makebox(0,0){$\sg_{2}$}}
    \put(25, 5){\framebox(25, 10){$V_{3}^{\sg_{3}}$}}
    \put(-11, 2){\line(1,0){2}}
    \put(-16, 2){\makebox(0,0){$\sg_{3}$}}
 \end{picture}
 \]
 \caption{A system of disjoint random local conditions}
 \label{f.loc-cond}
\end{figure}


\subsubsection{Examples of simple media}

\begin{example}\label{x.PCA-medium}
  The first example will show how a $\PCA$ fits into this framework.
  Let us be given a probabilistic cellular automaton
$\PCA(\bP,B,T)$.
  For each state vector $\br\in \SS^{3}$ and state $s$, let us form type
$\ag(s,\br)$.%\glo{a.greek@$\ag(s,\br)$}
  This condition type says that the transition rules are obeyed at times
of the form $nT$.
  Then for cell $x$, time $t$ of the form $nT$ with $n>0$, let
 \begin{equation}\label{e.PCA-medium}
 \begin{aligned}
  \g\bigparen{\ag(s,\br),\;\{x\}\times[t-T+,t],\;\eta}
        &= \{\eta(x+iB,t-T)=r_{i}\;(i=-1,0,1),\;\eta(x,t)=s\},
\\       \b(\ag(s,r)) &= \bP(s,\br).
 \end{aligned}
 \end{equation}
  For all cells $x$ and rational times $u$ we define some new type
 $\bg=\bg(x,u)$%\glo{bxu@$\bg(x,u)$}
 by $\b(\bg(x,u)) = 0$ and
 \[
  \g\bigparen{\bg(x,u),\;\{(x,u)\},\;\eta}
   = \setof{\eta(x,u)\ne\eta(x,T\flo{u/T})}.
 \]
  This condition says that $\eta(x,u)=\eta(x,T\flo{u/T})$ with probability
1.
  For all other combinations $\ag,V$ we set $\g(\ag,V,\eta)=0$.
  It is easy to see that the trajectories of $\PCA(\bP,B,T)$ are
trajectories of the medium defined this way.
  \end{example}

\begin{example}\label{x.PCA-stop}
  The new conditions introduced below are ``loosened-up'' versions of the
above ones since it is not always desirable to be as restrictive.
  Let us be given a probabilistic cellular automaton $\PCA(\bP,B,T)$.
  For each set of states $E$, and state vector $\br=(r_{-1},r_{0},r_{1})$
let%
 \glo{p.cap@$\bP(E,\br)$}%
 \[
  \bP(E,\br)=\sum_{q\in E}\bP(q,\br).
 \]
  Let $\bK$\glo{k.cap@$\bK$} be the set of functions $K:\SS^{3}\to 2^{\SS}$
such that
  \begin{equation}\label{e.K-def}
  K(\br)\sbs \setof{s\ne r_{0}: \bP(s,\br)>0}.
  \end{equation}
  For a space-time trajectory $\eta$ and a $K\in\bK$ let us write%
 \glo{k.cap@$\ol K(x,t,\eta)$}%
 \[
   \ol K(x,t,\eta)=K(\eta(x-B,t), \eta(x,t), \eta(x+iB,t)).
 \]
  For all $K',K''\in\bK$ with $K'\sps K''$ (i.e.~$K'(\br)\sps K''(\br)$ for
all $\br$), let%
 \glo{c.cap@$c(K',K'')$}%
 \[
   c(K',K'') =\bigvee_{\br} \frac{\bP(K''(\br),\br)}{\bP(K'(\br),\br)}
 \]
  be the least upper bound, over $\br$, on the conditional probability of
getting into the set $K''(\br)$ provided we get into the set $K''(\br)$.
  For each pair of such functions $K'\sps K''$ let us form the type%
 \glo{a.greek@$\ag(K',K'')$}
 \[
  \ag =\ag(K', K'').
 \]
  For each cell $x$ and $u\le v$ of the form $nT$, let us form the 
rectangle $V=\{x\}\times[u+,v]$.
  For each such pair $\ag,V$ let 
  $\g(\ag,V,\eta)=1$ if there is a first $t\in[u+,v]$ with
 $\eta(x,t)\in K'(x,t-T,\eta)$ and in it, we have
 $\eta(x,t)\in K''(x,t-T,\eta)$.
  Also, let $\b(\ag)=c(K',K'')$.
  \end{example}

 \begin{proposition}\label{p.discr-stop}
  If $M$ is the medium defined by the conditions above then
 $\PCA(\bP, B, T)\sbs M$.
  \end{proposition}
  \begin{proof}[Proof sketch] 
 The statement follows by a standard argument from the strong Markov
property of the Markov process $\PCA(\bB, B, T)$ (see ~\cite{Neveu64}).
 \end{proof}

\begin{example}\label{x.CCA-stop}
  Consider a continuous-time cellular automaton $\CCA(\bR,B)$.
  For any functions $K,K',K''\in\bK$ as in Example ~\ref{x.PCA-stop}, let%
 \glo{r.cap@$\bR(K,\br)$}% 
 \glo{c@$c(K',K'')$}% 
 \begin{align*}
    \bR(K,\br) &= \sum_{q\in K}\bR(q,\br),
\\   c(K',K'') &= \bigvee_{\br}\frac{\bR(K''(\br),\br)}{\bR(K'(\br),\br)}.
 \end{align*}
  We define each $\ag(K',K'')$, $V=\{x\}\times[u+,v]$ and $\g(\ag,V,\eta)$
as before, but now for all rational $u<v$.
 \end{example}

  \begin{theorem}\label{t.cont-stop}
  Every trajectory of $\CCA(\bR,B)$ is a trajectory of the medium defined
in the above example.
  \end{theorem}
 \begin{proof}[Proof sketch]
  As in ~\ref{sss.discr-time-approx}, for a small $\dg>0$, let
$M_{\dg}=\PCA(\bP,B,\dg)$ with $\bP(s,\br)=\dg\bR(s,\br)$ when
 $s\ne r_{0}$ and $1-\dg\sum_{s'\ne r_{0}}\bR(s',\br)$ otherwise.
  Then a transition to the limit $\dg\to 0$ in Proposition
~\ref{p.discr-stop} completes the proof.
  The transition uses the fact that trajectories of $M(\dg)$ converge in
distribution to trajectories of $\CCA(\bR,B)$.
 \end{proof}

 \begin{remark}\label{r.second-time}
  Of course in both Proposition ~\ref{p.discr-stop} and in Theorem
~\ref{t.cont-stop}, instead of the first time with $\eta$ switching into
$K'$ we could have asked about the second time, or the third time, etc.
 \end{remark}


\subsection{Canonical simulations}

\subsubsection{Definition of canonical simulations}\label{sss.canonical}
  Let us introduce a special kind of simulation, that establishes certain
relations between the local conditions of the media and thus makes it
easier to prove it is a simulation.
  Let $M_{1}, M_{2}$ be media and let $\fg^{*}$ be a mapping from the
space-time configurations of $M_{1}$ into the evolutions of $M_{2}$: we
will write $\eta^{*}=\fg^{*}(\eta)$.
  We say that $\fg^{*}$ is the map for a \df{canonical
simulation}\index{simulation!canonical} if the following holds.
  Let $(\ag,V)$ be any local condition for $M_{2}$.
  Then there is a system of random local conditions%
% \glo{baij@$\bg(\ag,i,j)$}%
% \glo{wtaijve@$W^{t}(\ag,i,j,V,\eta)$}%
% \glo{taijve@$\tau(\ag,i,j,V,\eta)$}%
 \begin{equation}\label{e.canonical-sys}
   \bigparen{\bg(\ag,i,j), W^{t}(\ag,i,j,V,\eta), \tau(\ag,i,j,V,\eta)}
 \end{equation}
  with $i=1,\ldots,n(\ag)$\glo{n@$n(\ag)$},
$j=1,\ldots,k(\ag,i)$\glo{k@$k(\ag,i)$},
 \begin{equation}\label{e.tau-lb}
   \inf\prt V\le\tau(\ag,i,j,V,\eta),
 \end{equation}
  such that for each fixed $i$, the subsystem containing elements for that
$i$ forms a system of disjoint random local conditions with
 $W^{t}(\ag,i,j,V,\eta)\sbs V$, and, defining%
% \glo{waijve@$\bar W(\ag,i,j,V,\eta)$}%
% \glo{gaijve@$\bar \g_{1}(\ag,i,j,V,\eta)$}%
 \begin{equation}\label{e.ol-W-f}
 \begin{aligned}
       \bar W(\ag,i,j,V,\eta) &= W^{\tau(\ag,i,j,V,\eta)}(\ag,i,j,V,\eta),
\\ \bar \g_{1}(\ag,i,j,V,\eta) &=
    \g_{1}(\bg(\ag,i,j), \bar W(\ag,i,j,V,\eta),\eta),
 \end{aligned}
 \end{equation}
 we have
 \begin{equation}\label{e.canonical}
 \begin{aligned}
 \g_{2}(\ag,V,\eta^{*}) &\le \sum_{i}\prod_{j}\bar \g_{1}(\ag,i,j,V,\eta),
\\ \b_{2}(\ag) &\ge \sum_{i}\prod_{j} \b_{1}(\bg(\ag,i,j)).
 \end{aligned}
 \end{equation}

  A simulation map will be called a
 \df{deterministic canonical
simulation}\index{simulation!canonical!deterministic} 
when the system in ~\eqref{e.canonical-sys} is deterministic: neither
$\tau(\ag,i,j,V,\eta)$ nor $W^{t}(\ag,i,j,V,\eta)$ depends on $\eta$.
  Under the condition mentioned in the definition of weak trajectories
(see~\eqref{e.weak-traj-def}), we will be able to provide deterministic
canonical simulations and this is why weak trajectories are sufficient.
  Canonical simulations are ``cooked up'' to make the following theorem
true.

\begin{theorem}[Canonical Simulation]\label{t.canonical}
 \index{theorem@Theorem!Canonical Simulation}
  If $\fg^{*}$ is a canonical simulation map then for each
trajectory $\eta$ of $M_{1}$, the expression $\fg^{*}(\eta)$ defines
a trajectory of $M_{2}$. 
\end{theorem}

 \begin{Proof}
  Let $\eta$ be a trajectory of $M_{1}$ and
$(\ag_{l},V_{l}^{t},\sg_{l})_{l\in N}$ a system of disjoint random local
conditions in $M_{2}$.
  Let $u$ be some time such that $\sg_{l}\ge u$ for each $l$, and let $h$
be an event function measurable in $\cA_{u}$.
  We must show
 \[
 \bE \bigparen{h\prod_{l} \bar \g_{2}(l,\eta^{*})} 
  \le \bE h \prod_{l}\b_{2}(\ag_{l}),
 \]
  where $\bar \g_{2}(l,\zg)$ is defined as in ~\eqref{e.ol-f}.
  By the assumption, for each $l,V$ there is a system of disjoint
random local conditions
 \[
 \bigparen{\bg(\ag_{l},i,j), W^{t}(\ag_{l},i,j,V,\eta),
	\tau(\ag_{l},i,j,V,\eta)}
 \]
  for $i=1,\ldots,n(\ag_{l})$ $j=1,\ldots,k(\ag_{l},i)$ with the properties
defined for canonical simulations.
  Since $V$ has a countable range, we obtain measurable functions even if
we substitute $V_{l}^{\sg_{l}}(\eta^{*})$ into $V$ here.
  Let 
 \[
   \bar V_{l} = V_{l}^{\sg_{l}}(\eta^{*})
 \]
  and recall ~\eqref{e.ol-W-f}.

 \begin{step+}{canonical.rectangle}
  $\bar{\bar W}^{t}=\bar W^{t}(\ag_{l},i,j,\bar V_{l},\eta)$
 is a rectangle process and
  $\tau(\ag_{l},i,j,\bar V_{l},\eta)$ is a stopping time.
 \end{step+}
 \begin{pproof}
 It is easy to see that 
  $\prt\bar{\bar W}^{t}\sbs[t,\infty]$ and that the process
 $\bar{\bar W}^{t}$ is upper semicontinuous almost everywhere.
  Let us show that for each $t$ it is measurable in $\cA_{t}$.
  We write
 \[
   \bar W^{t}(\ag_{l},i,j,\bar V_{l},\eta)=W\eqv
 \bigvee_{V}\bigparen{\bar W^{t}(\ag_{l},i,j,V,\eta)=W\et
	V=\bar V_{l}}.
  \]
  Now ~\eqref{e.tau-lb} and $\tau(\ag_{l},i,j,V,\eta)\le t$ implies
$\inf\prt V\le t$.
  On the other hand by the definition of random-stopping local conditions,
$V=\bar V_{l} (= V_{l}^{\sg_{l}})$ implies $\sg_{l}\le \inf\prt V$.
  Hence we can write the above expression as
 \[
 \bigvee_{V}\bigparen{\bar W^{t}(\ag_{l},i,j,V,\eta)=W
  \et V=V_{l}^{\sg_{l}}}\et \sg_{l}\le t.
  \]
  By Theorem ~\ref{t.stopping-fact},
 \begin{equation}\label{e.stopping-impl}
  \Setof{\sg_{l}\le t \et V=V_{l}^{\sg_{l}}}\in\cA_{t}.
 \end{equation}
  By the definition of the rectangle process $W^{t}$, also
 \[
  \Setof{\bar W^{t}(\ag_{l},i,j,V,\eta)=W}\in \cA_{t},
 \]
  hence indeed $\setof{\bar{\bar W}^{t}=W}\in\cA_{t}$.
  Finally, we have to show
 \[
   \Setof{\tau(\ag_{l},i,j,\bar V_{l},\eta)\le t}\in\cA_{t}.
 \]
  As above,
 \[
 \tau(\ag_{l},i,j,\bar V_{l},\eta)\le t \eqv
  \bigvee_{V} \bigparen{\tau(\ag_{l},i,j,V,\eta)\le t \et V=\bar V_{l}}
 \]
 which again can be written as 
 \[
  \bigvee_{V}\bigparen{\tau(\ag_{l},i,j,V,\eta)\le t \et
  V=V_{l}^{\sg_{l}}}\et \sg_{l}\le t.
 \]
  We have $\Setof{\tau(\ag_{l},i,j,V,\eta)\le t}\in\cA_{t}$ since
$\tau(\ag_{l},i,j,V,\eta)$ is a stopping time; combining this with
~\eqref{e.stopping-impl} completes the proof.
 \end{pproof}

  By ~\eqref{e.canonical} we have
 \begin{equation}\label{e.canonical-appl}
 \g_{2}(\ag,\bar V_{l},\eta^{*}) \le
   \sum_{i}\prod_{j} \g_{1}(\ag_{l},i,j,\bar V_{l},\eta).
 \end{equation}
 and
 \[
  \prod_{l}\b_{2}(\ag_{l})\ge
     \prod_{l}\sum_{i}\prod_{j}\b_{1}(\bg(\ag_{l},i,j))
 = \sum_{i(\cdot)}\prod_{l,j}\b_{1}(\bg(\ag_{l},i(l),j))
 \]
 where the last sum is over all functions $i(\cdot)$ with
$i(l)\in[1,n(\ag_{l})]$.
  Similarly, by ~\eqref{e.canonical-appl}
 \[
 \g_{2}(\ag,\bar V_{l},\eta^{*}) \le 
   \sum_{i(\cdot)}\prod_{l,j}\bar \g_{1}(\ag_{l},i(l),j,\bar V_{l},\eta).
 \]
  Therefore it is sufficient to show
 \[
  \bE\bigparen{h\prod_{l,j}\bar \g_{1}(\ag_{l},i(l),j,\bar V_{l},\eta)}
	\le \bE h\prod_{l,j}\b_{1}(\bg(\ag_{l},i(l),j)).
 \]
  Let us fix a function $i(l)$.
  Recall that by ~\eqref{e.ol-W-f},
 \[
  \bar \g_{1}(\ag,i,j,\bar V_{l},\eta) =
    \g_{1}(\bg(\ag,i,j), \bar W(\ag_{l},i,j,\bar V_{l},\eta),\eta).
 \]
  For any $l,i$, the rectangles $\bar W(\ag_{l},i,j,\bar V_{l},\eta)$ are all
disjoint and belong to $\bar V_{l}$.
  Also the sets $\bar V_{l}$ are disjoint, therefore all rectangles
 $\bar W(\ag_{l},i(l),j,\bar V_{l},\eta)$ are disjoint.
  Recall that also by ~\eqref{e.ol-W-f},
\[
  \bar W(\ag,i,j,\bar V_{l},\eta) 
  = W^{\tau(\ag,i,j,\bar V_{l},\eta)}(\ag,i,j,\bar V_{l},\eta),
 \]
  therefore the system
\[
  \bigparen{\bg(\ag_{l},i(l),j),\bar W(\ag,i,j,\bar V_{l},\eta), 
  \tau(\ag,i,j,\bar V_{l},\eta)}
 \]
 taken for all $l,j$, is a system of disjoint random local conditions with
 $u\le \tau(\ag,i,j,\bar V_{l},\eta)$, and hence the proof is finished by
the trajectory property of $\eta$.
  \end{Proof}


\subsubsection{Frequency of switching times}
  Adding certain conditions does not really change some media.
  Let us call a canonical simulation
\df{injective}\index{simulation!canonical!injective} if the mapping
$\fg^{*}$ is the identity, and the functions
$\b_{2}(\ag),\g_{2}(\ag,\cdot,\cdot)$ differ from $\b_{1},\g_{1}$ only in
that they are defined for some additional types $\ag$, too.
  Proving a certain probability bound for the behavior of $\eta_{1}$ within
some window does not create a canonical simulation yet: the bound must be
formulated in such a way that this type of probability bound can be
multiplied with itself and all the other bounds over a system of disjoint
windows (and these windows can even be chosen via stopping times).

  Let us illustrate canonical simulations on the the following example.
  The simulating medium $M_{1}$ is the $\CCA$ of Example ~\ref{x.CCA-stop}.
  The conditions to add impose lower and upper bounds on the frequency of
switching times of $M_{1}$.
  Namely, for some function $K\in\bK$ let%
 \glo{a@$a_{-1}(K), a_{1}(K)$}%
 \begin{align*}
     a_{-1}(K) &= \bigwedge_{\br}\bR(K(\br),\br),
\\   a_{1}(K) &= \bigvee_{\br}\bR(K(\br),\br).
 \end{align*}
  Let us call a time $u$ of the space-time configuration $\eta$ a
 \df{$K$-switching-time}\index{switch!time} of a cell $x$ if for all
$t<u$ sufficiently close to $u$ we have $\eta(x,u)\in K(x,t,\eta)$, i.e.~we
have just jumped into the target set determined by $K(\cdot)$.

  For some rational constant $D>0$, integers $l\ge 0$ and $j=-1,1$ let%
 \glo{a.greek@$\ag(K,D,k,j)$}%
 \begin{equation}\label{e.switch-count}
  \g\bigparen{\ag(K,D,k,j),\;\{x\}\times[u+, u + D],\;\eta}
 \end{equation}
  be the event function of type $\ag(K,D,k,j)$ for $j=-1$ [$j=1$] for the
event that site $x$ has at most [at least] $k$ times during $[u+,u+D]$,
that are $K$-switching times.
  
  \begin{proposition}\label{p.time-bounds}
  For each transition rate matrix $\bR$ and function $K\in\bK$ there is a
function $\kg(\eps)>0$ such that for all $k>0$, defining, with
 $a_{j}=a_{j}(K)$
 \begin{align}\nn
   \b(\ag(K, D, (a_{j}+j\eps)D, j)) &= e^{-\kg(\eps) D}
  &\text{unless } j = 1 \text{ and } (a_{1}+\eps)D = 1,
\\\label{e.1-switch-count}
   \b(\ag(K,D,1,1))      &= e^{-\kg(\eps) D}\wedge a_{1}D & % needed but why?
 \end{align}
  (and defining $\b(\ag(K,D,k,j))=1$ for all other choices of $k$) the
trajectories of $\CCA(\bR,B)$ are also trajectories of the medium obtained
by adding all these conditions.
  \end{proposition}

  The proof proceeds by first estimating the event in question by sums of
products of single switching events and using then a standard
large-deviation estimate.
  
% \begin{proof}
%  We use approximation as in ~\ref{sss.discr-time-approx}.
%  Thus, for a sufficiently small $\dg>0$, let $M_{\dg}=\PCA(\bP,B,\dg)$ with
%$\bP(s,\br)=\dg\bR(s,\br)$ when $s\ne r_{0}$ and
% $1-\dg\sum_{s'\ne r_{0}}\bR(s',\br)$ otherwise.
%  The event functions ~\eqref{e.switch-count} are well-defined also for
%this case, for $D,u$ that are multiples of $\dg$.
%  We will consider them with with $k=(a_{j}_j\eps)D$ where we assume for
%simplicity that
% \[
%   n = D/\dg
% \]
% is an integer.
%  Let
% \begin{align*}
%      I &= \{u+i\dg\}_{i=0}^{n},
%\\   \f_{-1}(t,\eta) &= \g\bigparen{\ag(K,\dg,0,-1),\;\{x\}\times
%	[t-\dg+,t],\;\eta},
%\\   \f_{1}(t,\eta)  &= \g\bigparen{\ag(K,\dg,1, 1),\;\{x\}\times
%	[t-\dg+,t],\;\eta}.
% \end{align*}
%  Then
% \begin{align*}
%   \g\bigparen{\ag(K,D,1,1),\;\{x\}\times[u+, u + D],\;\eta}
%   &\le \sum_{t\in I}\f_{1}(t,\eta),
%\\ \g\bigparen{\ag(K,D,(a_{-1}-\eps)D,-1),\;\{x\}\times[u+, u + D],\;\eta}
%   &\le \sum_{\substack{ S\sbs I\\ |S|\le (a_{-1}-\eps)D}}
% \prod_{t\in S}\f_{1}(t,\eta)\prod_{t\in I\xcpt S}\f_{-1}(t,\eta),
%\\ \g\bigparen{\ag(K,D,(a_{1}+\eps)D,1),\;\{x\}\times[u+, u + D],\;\eta}
%   &\le \sum_{\substack{ S\sbs I\\ |S|\ge (a_{1}+\eps)D}}
% \prod_{t\in S}\f_{1}(t,\eta)\prod_{t\in I\xcpt S}\f_{-1}(t,\eta).
% \end{align*}
%  For some new types $\bg(0,D),\bg(j,D,(a_{j}+j\eps))$ for $j=-1,1$ let
% \begin{align*}
%    b(\bg(0,D))     &= (n+1) a_{1}\dg = (D+\dg) a_{1},
%\\  b(\bg(-1,D,(a_{-1}-\eps))) &= 
%   \sum_{i\le (a_{-1}-\eps)D}\binom{n}{i}(a_{1}\dg)^{i}(1-a_{-1}\dg)^{n-i}
%\\   &\le \biggparen{\frac{1-a_{-1}\dg}{1-a_{1}\dg}}^{n}
%   \sum_{i\le (a_{-1}-\eps)D}\binom{n}{i}(a_{1}\dg)^{i}(1-a_{1}\dg)^{n-i},
%\\  b(\bg(1,D,(a_{1}+\eps))) &=
%   \sum_{i\ge (a_{1}+\eps)D}\binom{n}{i}(a_{1}\dg)^{i}(1-a_{-1}\dg)^{n-i}
%\\   &\le \biggparen{\frac{1-a_{-1}\dg}{1-a_{1}\dg}}^{n}
%  \sum_{i\ge (a_{1}+\eps)D}\binom{n}{i}(a_{1}\dg)^{i}(1-a_{1}\dg)^{n-i},
% \end{align*}
%  further
% \begin{align*}
% \g\bigparen{\bg(0,D),\;\{x\}\times[u+,u + D],\;\eta} &=
%     \g\bigparen{\ag(K,D,1,1),\;\{x\}\times[u+, u + D],\;\eta},
%\\ \g\bigparen{\bg(j,D,(a_{j}+j\eps)),\;\{x\}\times[u+,u + D],\;\eta} &=
%     \g\bigparen{\ag(K,D,(a_{j}+j\eps)D,j),\;\{x\}\times[u+, u + D],\;\eta}
% \end{align*}
%  for $j\in\{-1,1\}$.
%  Then these last conditions can be added to those of Example
%~\ref{x.PCA-stop} and the result will still be a medium with the same
%trajectories, since the new conditions are obtained by an injective canonical
%simulation from the old conditions.

%  A large-deviation calculation shows that one can find $\kg(\eps)>0$ such
%that for all $D$, for small enough $\dg$ we have
% $b(\bg(j,D,(a_{j}+j\eps)))\le e^{-\kg(\eps) D}$.
%  This relation will be conserved in the limit as $\dg\to 0$.
% \end{proof}


\subsection{Primitive variable-period media}
 \label{ss.asynch}
  We say that $\Tl>0$\glo{t.cap@$\Tl,\Tu$} is a
 \df{dwell period lower bound}\index{period!dwell!lower bound} of a
space-time configuration $\eta$ if no dwell period of $\eta$ is shorter
than $\Tl$.
  A continuous-time cellular automaton has no such lower bound.

  In the amplifier $M_{0},M_{1},\ldots$ we will construct eventually on top
of a continuous-time probabilistic cellular automaton $M_{0}$, all abstract
media $M_{1}, M_{2},\ldots$ will have a dwell period lower bound, only
$M_{0}$ will not have one.
  $M_{1}$ will be a so-called
 \df{primitive variable-period medium}\index{medium!variable-period!primitive}:
 these can be considered the continuous-time extension of the notion of an
$\eps$-perturbation of a deterministic cellular automaton with
coin-tossing.
  On the other hand, $M_{2}, M_{3},\ldots$ will only fit into a more
general framework (non-adjacent cells).

  Let us thus proceed to the definition of medium%
 \glo{primvar@$\Prim-var$}%
 \[
   \Prim-var(\SS, \bC, \trans, B, \Tl, \Tu, \eps).
 \]
  The set $\SS$ of states is implicit in the transition function therefore
from now on, it will be omitted.
  We have dwell period lower and upper bounds $\Tl\le\Tu$ and
a failure probability bound $\eps>0$.
  The local state, as in Example ~\ref{x.rand-gen}, is a record with two
fields, $\Det$\glo{det@$\Det$} and $\Rand$\glo{rand@$\Rand$} where $\Rand$
consists of a single bit which is, say, always the first bit.

  To simplify the upper-bounding of dwell periods, we assume that the
transition function has the property
 \begin{equation}\label{e.prim-time-mark}
  \trans(r_{-1},r_{0},r_{1}).\Det\ne r_{0}.\Det.
 \end{equation}
  For a space-time configuration $\eta$, site $x$ and rational number $a>0$
let $\sg_{1}=\sg_{1}(x,a,\eta)$, and $\sg_{2}$ be the first and second
switching times $t>a$ of $\eta$ in $x$.
  Let us list the different types of local condition.
 \begin{cjenum}

  \item\label{prim-var.dwell-lb}
  Conditions of type $\ag(\var{dw-p-lb})$ imposing $\Tl$ as a
dwell period lower bound.
  We have $\b(\ag(\var{dw-p-lb}))=\eps$, and 
 \[
   \g\bigparen{\ag(\var{dw-p-lb}),\; \{x\}\times[a,a+\Tu],\; \eta}
 \]
  is the event function saying that $\eta(x,t)$ has two switching times
closer than $\Tl$ to each other during $[a+,a+\Tl-]$.

  \item\label{prim-var.dwell-ub}
  Conditions of type $\ag(\var{dw-p-ub})$ imposing $\Tu$ as a
dwell period upper bound.
  We have $\b(\ag(\var{dw-p-ub}))=\eps$, and 
 \[
   \g\bigparen{\ag(\var{dw-p-ub}),\;\{x\}\times[a+,a+\Tu],\; \eta}
 \]
  is the event function saying that $\eta(x,t)$ has no switching times
in $[a+,a+\Tu]$.

  \item\label{prim-var.trans}
  Conditions of type $\ag(\var{comput})$ saying that the new value of the
$\Det$ field at a switching time obeys the transition function.
  We have $\b(\ag(\var{comput})) = \eps$, and
 \begin{multline*}
 \g\bigparen{\ag(\var{comput}),\; \{x\}\times[a,a+2\Tu],\; \eta}
 \\ = \{\eta(x,\sg_{2}).\Det\not\in
  \setof{\ol\trans(\eta,x,t,B).\Det : t\in[\sg_{1},\sg_{2}-\Tl/2]}\}.
 \end{multline*}
  Here we used the notation ~\eqref{e.trans-B}.

 \item\label{prim-var.coin}
  Conditions of type $\ag(\var{coin},j)$ for $j=0,1$ saying that the new
value of the $\Rand$ field at a switching time is obtained nearly by a
fresh coin-toss:
 \begin{align*}
   \b(\ag(\var{coin},j)) &= 0.5 + \eps,
\\   \g\bigparen{\ag(\var{coin},j),\; \{x\}\times[a,a+\Tu],\; \eta} &=
 \{\eta(x,\sg_{2}).\Rand = j\}.
 \end{align*}

 \end{cjenum}
  Condition ~\eqref{prim-var.trans} says that unless an exceptional event
occurred, whenever a state transition takes place at the end of a dwell
period $[\sg_{1},\sg_{2}]$ it occurs according to a transition made on the
basis of the states of the three neighbor cells and the random bit at some
time in the \df{observation interval} $[\sg_{1},\sg_{2}-\Tl/2]$.
  Since the observation interval does not include the times too close to
$\sg_{2}$, information cannot propagate arbitrarily fast.

 \begin{example}
  All trajectories of the ordinary deterministic cellular automaton
$\CA(\trans,B,T)$ are also trajectories of
$\Prim-var(\trans,B,T,T,0)$.
 \end{example}


\begin{theorem}[Simulation by $\CCA$]\index{theorem@Theorem!$\CCA$-simulation}
 \label{t.sim-by-cont-pca}
  For medium
 \[
  M=\Prim-var(\trans,1,\Tl,1,\eps)
 \]
  with ~\eqref{e.prim-time-mark} and $\Tl<1$ there is a noisy
transition rate $\bR(s,\br)$ over some state space $\SS'$ and a function
$\pi:\SS'\to\SS$ such that $\pi(\eta(x,t))$ is a trajectory of $M$ for each
trajectory $\eta$ of $\CCA(\bR,1)$.
 \end{theorem}

  The proof is a straightforward application of Proposition
~\ref{p.time-bounds}.

%\begin{proof}
%  For an appropriate $n$ to be chosen later, let
%$\SS'=\SS^3\times\{0,\ldots,3n-1\}$.
%  If $s'=(\bs,i)$ where $\bs=(s_{-1},s_{0},s_{1})$ then let
%$\pi(s')=s_{0}$.

%  Let us define the transition rates $\bR_{n}(\cdot,\cdot)$ with
%$\sum_{s}\bR_{n}(s',\br)=3n$.
%  Let $\bK_{n}$ be the set of functions as defined in ~\eqref{e.K-def}
%belonging to this set of states but assuming that all transition rates are
%positive.
%  Let us choose the function $K\in\bK$ as follows.
%  Let us be given $\br\in\SS^{3}$ where $r_{0}=(\bq,i)$.
%  Then $K(\br)$, is the set of those $(\bar\bq,i+1)$ for which $\bar\bq$ is
%given as follows.
%  If $i\ne n-1,3n-1$ then $\bar\bq=\bq$.
%  If $i=n-1$, $j=-1,0,1$ then $\bar q_{j}=\pi(r_{j})$.
%  Suppose $i=3n-1$: then $\bar q_{j}= q_{j}$ for $j=-1,1$ and
% $\bar q_{0}.\Det=\trans(\bs)$.
%  This completes the definition of $K$ which is a one-element set whenever
%$i\ne 3n-1$ in which case it is a two-element set (where the two elements
%are determined by the value of $\bar q_{0}.\Rand$).

%  Now $\bR_{n}$ is given as follows.
%  We have $\bR_{n}(s,\br)=0$ for all $s\ne K(\br)$ and
%$\bR(K(\br),\br)=3n$.
%  This determines $\bR_{n}(s,\br)$ for all cases when $K(\br)$ is a
%one-element set.
%  If $K(\br)$ is a two-element set then the transition rates into each of
%these elements are equal.
%  This completes the definition of $\bR_{n}$.

%  Thus, in a trajectory $\eta$ of $\bR_{n}$, each dwell period of
%$\pi(\eta)$ consists of $3n$ small dwell periods of $\eta$.
%  In the $n$-th transition, cell $x$ learns the current represented
%state $\pi(\eta(x+j,t))$ of its two neighbors.
%  In the $3n$-th transition, it switches its own represented state
%according to the transition probabilities corresponding to the triple
%of $\SS$ states it currently knows about.
  
%  The actual transition rates $\bR$ differ from $\bR_{n}$ in an arbitrary
%way by some small amount $<\eps'$.
%  Let us show that we can choose first $n$ and then $\eps'$ in such a way
%that the process $\pi(\eta)$ becomes a trajectory of $M$.

%  Let $K_{0}(\br)=\SS\xcpt(K(\br)\cup\{r_{0}\})$.
%  A trajectory $\eta$ of $\bR_{0}$, in any switching point $(x,t)$ makes a
%switch into $K(x,t-,\eta)$.
%  Thus, a trajectory $\eta$ of $\bR$ in any switching point $(x,t)$, if it
%does not make a switch into $K(x,t-,\eta)$ then it makes a switch into
%$K_{0}(x,t-,\eta)$, and the rate of this is smaller than $\eps'|\SS|$.
%  Let us call this a \df{faulty switch}.
%  According to the simpler part of Proposition ~\ref{p.time-bounds}
%referring to bounds of the kind ~\eqref{e.1-switch-count}, by making
%$\eps'$ small enough we can always achieve that the following condition
%type $\ag(\var{fault})$ can be added to the others:
% \[
%  \b(\ag(\var{fault})) = c\eps,
% \]
%  where $c$ is any positive constant chosen in advance and
% \[
%   \g\bigparen{\ag(\var{fault}),\;\{x\}\times[a,a+2],\; \eta}
% \]
%  is the event that a faulty switch occurs in $x$ during $[a,a+2]$.
%  Therefore in all the local conditions for the simulated $\Prim-var()$,
%when bounding the probabilities in local conditions, we can confine
%ourselves to the case that no faulty switch occurs in $x$ during the time
%period $[a,a+2]$.

%  Consider the conditions in ~\eqref{prim-var.dwell-lb}.
%  Since we can exclude faulty switches in the time period $[a,a+1]$, a
%trajectory $\eta(x,t)$ of $\bR$ will be such that if
% $\eta(x,t)=(\br(x,t),i(x,t))$ then $i(x,t)$ increases by 1 modulo $3n$ in
%every switch.
%  Therefore there are exactly $3n$ switching times of $\eta$ between any
%two switching times of $\pi(\eta)$.
%  Let $d=(1-\Tl)/2$.
%  If $\pi(\eta)$ has two switching times $\sg_{1}<\sg_{2}$ during
%$[a,a+1]$ that are closer then $\Tl$ then either they are in $[a,a+1-d]$ or
%in $[a+d,a+1]$.
%  Consider the first case, the second case is similar.
%  Then $\eta$ has at least $3n$ switching times during $[a,a+1-d]$.
%  By choosing $n$ large enough and noting that the rate of $\bR$ is
%(arbitrarily close to) $3n$, we can use Proposition ~\ref{p.time-bounds} to
%bound the probability of this event by $\eps/3$.
%  The probability for the other case can also bounded by $\eps/3$ and the
%probability of a faulty switch can also bounded by $\eps/3$.
%  We thus get the bound $\eps$ in the conditions ~\eqref{prim-var.dwell-lb}
%by canonical simulation.

%  Now consider condition ~\eqref{prim-var.trans}.
%  Again, we can assume that no faulty switch occurs during $[a,a+2]$.
%  There are exactly $3n$ switching times of $\eta$ between $\sg_{1}$ and
%$\sg_{2}$.
%  According to the definition of $\bR_{n}$, the transition will occur
%according to $\trans$, with the neighbor values that were read at the $n$th
%switching time.
%  Now an argument similar to the proof of ~\eqref{prim-var.dwell-lb} shows
%that this $n$th switching time is in $[\sg_{1},\sg_{2}-\Tl/2]$.

%  Finally, the possibility of adding condition ~\eqref{prim-var.coin} on
%$\pi(\eta)$ is a straightforward consequence of Theorem ~\ref{t.cont-stop}.
%  Indeed, let $K'(\br)=\SS\xcpt \{r_{0}\}$ and let $K''(\br)$ be the set of
%elements $(\bq,0)\in K'(\br)$.
%  Thus, jumping into $K''$ means making a switch in $\pi(\eta)$.
%  At that switch, the transition rates into the possibility $q_{0}.\Rand=1$
%and $q_{0}.\Rand=0$ are within $\eps'$ of $1/2$.
%  Therefore Theorem ~\ref{t.cont-stop} is applicable.
% \end{proof}


\subsection {Main theorems (continuous time)}
 \label{ss.ftol-asn}

  The first publication showing the possibility of reliable computation
with a continuous-time medium (in two dimenstions) is~\cite{Wang90}.
  Here, we formulate the new results for variable-period
one-dimensional information storage and computation.
  The following theorems are just like Theorems ~\ref{t.1dim.nonerg},
\ref{t.1dim.stor} and \ref{t.1dim.comp} except that they have a
variable-period medium $\Prim-var(\trans',1,\Tl,1,\eps)$ with $\Tl = 0.5$
in place of the perturbed discrete-time automaton $\CA_{\eps}(\trans')$.
  See the Corollary below for continuous-time interacting particle systems.

 \begin{theorem}[1-dim non-ergodicity, variable-period]
\label{t.1dim.nonerg.var}\ \\
  There is a one-dimensional transition function such that its primitive
variable-period perturbations remember a field.
 \end{theorem}

 \begin{theorem}[FCA, 1-dim, storage, variable-period]
 \label{t.1dim.stor.var}
  There is
 \begin{itemize}
  \item a transition function $\trans$;
  \item a hierarchical code $\Psi$ with a shared field $(\F^{k})$ as
in~\eqref{e.shared};
  \item constants $d_{1},c_{2}>0$;
 \end{itemize}
  such that for $h_{2}(n)=n^{c_{2}/\log \log n}$, all $\eps>0$, $t>0$, for
$\Tl=0.5$, any configuration $\rg$ with states in $\SS.\F^{1}$, trajectory
$\eta$ of $\Prim-var(\trans,1,\Tl,1,\eps)$, over $\bC=\ZZ_{N}$ (for finite
or infinite $N$) with initial configuration $\Gg(\rg;\Psi)$, for all for
all $y$ in $\var{Visible}(K(N),N)$, we have
 \[
  \Prob\setof{\rg(y) \ne \eta(\X(y;\Psi),t).\F^{1}}
 < d_{1}\eps + t\eps^{h_{2}(N)}.
 \]
  The code can be chosen to have $\X(y; K,\Psi)=y$.
  \end{theorem}

  The main result of the present paper is the following one, asserting the
existence of a one-dimensional fault-tolerant variable-period cellular
automaton:

 \begin{theorem}[FCA, 1-dim, variable period, known bounds]
 \label{t.1dim.comp.var}
  This theorem says the same as Theorem ~\ref{t.1dim.comp}, with 
again $\Prim-var(\trans',1, 0.5, 1,\eps)$, replacing $\CA_{\eps}(\trans')$.
  \end{theorem}

  For the interpretation of this theorem, see the comment after Theorem
~\ref{t.1dim.comp}.
  The construction indicated in ~\ref{sss.active} has a similar
variable-period counterpart.
  Theorem ~\ref{t.sim-by-cont-pca} implies the following.

\begin{corollary}[Interacting particle system construction]
  In Theorems ~\ref{t.1dim.nonerg.var}, \ref{t.1dim.stor.var},
\ref{t.1dim.comp.var}, we can replace $\trans'$ with a rate matrix $\bR$
and $\Prim-var(\trans',1,\Tl,1,\eps)$, with a $\CCA$ with rates coming from
an arbitrary $\eps$-perturbation of $\bR$.
  This proves, in particular, Theorem ~\ref{t.1dim.nonerg.cont}.
 \end{corollary}


\subsection {Self-organization} 
\label{ss.sorg}

  If the input information is a single symbol then an (infinite or
large finite) hierarchical initial configuration in the above reliable
simulation theorems is less natural than one consisting of the
repetition of this symbol.\index{self!organization}

\begin{theorem}[FCA, 1-dim, storage, variable-period, self-organizing]
\label{t.sorg.stor}
  For each $m$ there is
 \begin{itemize}
  \item a transition function $\trans$ with state space $\SS$
having a field $\Output$;
  \item a mapping $\gg:\{0,1\}^{m} \to\SS$;
  \item constants $c_{1},c_{2}>0$, 
 \end{itemize}
  such that for $h_{2}(n)= n^{c_{2}/\log\log n}$, $\eps>0$, $t>0$, for any
string $s$ of length $m$ in the standard alphabet, any trajectory $\eta$ of
$\Prim-var(\trans,1,\Tl,1,\eps)$ over $\bC=\ZZ_{N}$ (for finite or infinite
$N$) having initial configuration $\eta(y,0)=\gg(s)$ for all $y$, the
following holds for all $x$:
 \[
 \Prob\setof{s \ne \eta(x,t).\Output}/c_{1} < \eps + t\eps^{h_{2}(N)}
  +  (t^{2}\eps)\wedge (t^{-0.4}+N^{-0.4}).
 \]
 \end{theorem}

  Though it is not seen from the theorem, hierarchical organization
actually emerges here: the configuration $\eta(\cdot,t)$ will consist
of islands of varying levels of ``organization'' and the level will be
generally growing with $t$.
  For infinite $N$ we can ignore the terms involving $N$ (since they
converge to 0), obtaining $\eps + (t^{2}\eps)\wedge t^{-0.4}$.
  The term $t^{-0.4}$ decreases rather slowly.
  This term is essentially the upper bound on the probability that
organization does not grow to the required level until time $t$.

  To formulate a theorem about self-organizing computation, assume
that the input is again, as in the storage case, just a binary string
$s$ fitting into a single cell.
  (If you want a larger input, we would have to encode it into a
higher-order cell and repeat that cell.)
  However, the simulated computation may last forever producing
ever-growing monotonic output.
  Where to read the currently available output when the input has no
distinguished origin?
  This must depend on the length of the output.
  We can expect that there is a constant $c_{0}$ such that for some
sequences of lengths $B'_{1}<B'_{2}<\cdots$, $B_{1}<B_{2}<\cdots$, if
the computation output is a string of length $\ge B'_{k}$ by some
time $t$, then by all times exceeding a certain time $h_{1}(t)$, its
first segment of length $B'_{k}$ ``can be located somewhere'' in
every interval $I_{k}(x) = [x,x+c_{0}B_{k}]$.
  Since this requires the short starting segments of the output to
occur more densely than the longer ones, we store the output on
infinitely many different tracks simultaneously.
  As for the infinitely many fields $\F_{i}^{k}$ in Proposition
~\ref{p.shared-infin}, let $Y+\X_{k}(y)$ denote the position where
the $y$-th symbol of the $k$-th track is stored, if the storage
starts at position $Y$.
  (In our construction, $Y$ will be the site of a cell of the
simulated medium $M_{k}$ whose body fits into $I_{k}(x)$.)

  The theorem on self-organizing computation says that there is a constant
$d_{0}$ and a function $\Y_{k}(\cdot,\cdot,\cdot)$\glo{y.cap@$\Y_{k}$}
 such that for every $k,x,y,t$, in every interval $I_{k}(x)$, with
$Y=\Y_{k}(x,h_{1}(t),\eta)$, with probability $\ge 1-d_{0}\eps$ we have
 \[
  \zg(y,t).\Output \preceq\eta(Y+\X_{k}(y), h_{1}(t)).\F_{1}^{1}.
 \]

front.tex
\title[Reliable Cellular Automata]
{Reliable Cellular Automata with Self-Organization}

\author{Peter G\'acs}
\address{Computer Science Department\\ Boston University}
\email{gacs@bu.edu}

\keywords{probabilistic cellular automata, interacting particle systems,
renormalization, ergodicity, reliability, fault-tolerance,
error-correction, simulation, hierarchy, self-organization}

\subjclass{60K35, 68Q80, 82C22, 37B15}

\date{\today}

\thanks{Partially supported by NSF grant CCR-920484}


\begin{abstract}
  In a probabilistic cellular automaton in which all local transitions have
positive probability, the problem of keeping a bit of information
indefinitely is nontrivial, even in an infinite automaton.
Still, there is a solution in 2 dimensions, and this solution can be
used to construct a simple 3-dimensional discrete-time universal
fault-tolerant cellular automaton.
This technique does not help much to solve the following problems:
remembering a bit of information in 1 dimension; computing in
dimensions lower than 3; computing in any dimension with
non-synchronized transitions.

Our more complex technique organizes the cells in blocks that
perform a reliable simulation of a second (generalized) cellular
automaton.
The cells of the latter automaton are also organized in blocks,
simulating even more reliably a third automaton, etc.
Since all this (a possibly infinite hierarchy) is organized in
``software'', it must be under repair all the time from damage caused
by errors.
A large part of the problem is essentially self-stabilization
recovering from a mess of arbitrary size and content.
The present paper constructs an asynchronous one-dimensional
fault-tolerant cellular automaton, with the further feature of
``self-organization''.
The latter means that unless a large amount of input information must be
given, the initial configuration can be chosen homogeneous.
 \end{abstract}

\maketitle

 \newpage
 \tableofcontents



gap.tex
\section{Gaps}\label{s.gaps}
  
  The main lemma of this section is the Running Gap Lemma, saying that if a
sufficiently large gap is found in a colony then this gap will not be
closed, but will sweep through it, essentially eliminating a partial
colony, and serving as a preparation to the Attribution Lemma of the next
section.
  We start by collecting here some constants and inequalities, for later
reference.
  For clarity, we omit the notation $\flo{\cdot}$ for integer part.
  Recall that by definition, $\End-\cns{grow-start}$ and
$\End-\cns{grow-end}$ are constant.
  We use a constant $K_{1}$ that can be computed from the program, see
~\eqref{e.compute-time} below.
  Recall the definition $\tau_{i} = (\p_{i}+1)\Tu$ in ~\eqref{e.tau_{i}}.%
 \glo{p@$\p_{i}$}%
 \glo{split@$\cns{split-t}$}%
 \glo{compute-start@$\cns{compute-start}$}%
 \glo{idle-start@$\cns{idle-start}$}%
 \glo{synch-start-lb@$\cns{synch-start-lb}$}%
 \glo{end-period@$\cns{end-period}$}%
 \glo{grow-start@$\cns{grow-start}$}%
 \glo{grow-end@$\cns{grow-end}$}%
 \glo{crit@$\cns{crit}$}%
 \glo{germ-grow-end@$\cns{germ-grow-end}$}%
 \glo{germ-end@$\cns{germ-end}$}%
 \begin{align}
   \nn           \p_{0} &= 4\lg+1,
\\ \label{e.decay-t}
                 \p_{1} &=  4\lg\p_{0}.
\\ \label{e.p_{2}}
             \p_{2}     &=  2\lg\p_{1},
\\ \label{e.split-t}
         \cns{split-t}  &= 14\tau_{1}+\Tl,
\\ \label{e.Q-req-1}
                Q       &> 250 > 12\cns{split-t}/\tau_{1}, %?
\\ \label{e.compute-start}
    \cns{compute-start} &= 3Q\p_{2}/\p_{1}=6Q\lg,
\\ \label{e.compute-time-def}
     \cns{compute-time} &= K_{1}Q\cp/\bw,
\\ \label{e.idle-start}
     \cns{idle-start}   &= \cns{compute-start} + \cns{compute-time};
\\ \label{e.synch-start-lb-req}
  \cns{synch-start-lb}  &= \cns{idle-start}(1+\lg), % \ge
\\ \label{e.synch-start-req}
                      U &\ge (\cns{synch-start-lb}+Q)\p_{1},
\\ \label{e.end-period}
       \cns{end-period} &= 6Q\p_{1}\lg,
\\ \label{e.grow-start-req}
       \cns{grow-start} &= \End-\cns{end-period}+4Q,
\\ \label{e.grow-end-req}
         \cns{grow-end} &= \cns{grow-start} + 6Q\lg, %\ge
\\ \label{e.crit}
             \cns{crit} &= 3Q\tau_{1},
\\ \label{e.germ-grow-end}
             \cns{germ-grow-end} &= 12Q\p_{1}\lg,
\\ \label{e.germ-end}
             \cns{germ-end} &= \cns{germ-grow-end} + \cns{end-period}.
 \end{align}
  Inequality ~\eqref{e.synch-start-req} holds in view of ~\eqref{e.Ubd}, if
$\rep_{0}$ is large enough.
  Before, $\cns{synch-start-lb}$ is a lower bound on the value of $\Age$
when $\End$ will be computed.
  Similarly, $\cns{synch-start-lb}+\cns{end-period}$ is a lower bound on
$\End$.


 \subsection{Paths}\label{ss.paths}
  
  Suppose that $t<u$, cell $x$ is live at $t$ and is not in any
extended damage rectangle during the interval $[t,u]$, and there are
no switching times in $[t+,u-]$.
  Then we say that $(x,t)$ is connected by a
 \df{vertical link}\index{link} to $(x,u)$.%\index{link!vertical}
  If one end of a vertical link is not a switching time then the link
is called \df{short}.%\index{link!vertical!short}
  If cells $x,x+B$ are siblings not in any extended damage rectangle at
time $t$ or $t-$ then the points $(x,t)$, $(x+B,t)$ are said to be
connected by a \df{horizontal link} (of size 1).%\index{link!horizontal}
  Also the pair $(x,t),(x+2B,t)$ is said to be connected by a \df{double
horizontal link} if there is a
near-end-correction for $(x+B,t)$.%\index{link!horizontal!double}
  If $(y,t')$ is, according to case ~\eqref{l.parent.gen} of Lemma
~\ref{l.parent} (Parent) a mother or father of $(x,u)$, we will say that
the point $(y,t')$ is connected by a \df{parental}
(maternal or paternal) link to point $(x,u)$.%\index{link!parental}
  By this lemma (under the appropriate damage-free condition), the
parent survives until the birth of the child, and therefore the
parental link can be replaced by a horizontal link and some vertical
links. 
  A \df{link} is a link of one of these kinds.
  A link is \df{steep} or, equivalently, \df{slow} if it is a non-short
vertical link or a parental link.%\index{link!steep, slow}
  (Since time is the second coordinate, steepness of a line is
synonymous to slowness of the  movement of a point along it.)
  A sequence $(x_{0},t_{0})$, $\ldots$, $(x_{n},t_{n})$ with $t_{i}\le t_{i+1}$
such that subsequent points are connected by links, is called a
\df{path}.
  A \df{forward $(n,k)$-path}\index{path!forward, backward} is a path of
length $n$ whose number non-steep links is at most $k$.
  The adjective ``forward'' will be omitted when it is obvious from
the context.
  A $(n,0)$-path is \df{steep}, or \df{slow}.
  A \df{backward path} is the reversed reading of a forward path,
backward in time.
  Notice that a point $(x_{i},t_{i})$ on a path can actually be dead,
if it has just died: indeed, it can be connected e.g.~to
$(x_{i+1},t_{i+1})$ by a horizontal link such that $t_{i}=t_{i+1}$
and $x_{i},x_{i+1}$ are siblings at $t_{i}-$.

  For a path $P=(x_{0},t_{0}),\ldots,(x_{n},t_{n})$ and
$t\in[t_{0},t_{n}]$, let%
 \glo{p.cap@$P(t)$}%
 \[
  P(t)
 \]
 be $x_{i}$ with the smallest $i$ such that $t\in[t_{i},t_{i+1}]$.

  The following statement follows immediately from the definition of
paths. 

  \begin{lemma}\label{l.path-time}
  For the time projection $d$ of an $(n,k)$-path we have
 \[
   d\ge (n-k)\Tl/2. 
 \]
  \end{lemma}

  The following lemma says that if two paths cross then they
intersect.

 \begin{lemma}[Crossing]\label{l.crossing}\index{lemma@Lemma!Crossing}
  Let $(x_{1},s_{1}),\ldots,(x_{m},s_{m})$ and
$(y_{1},t_{1}),\ldots,(y_{n},t_{n})$ be two paths with $s_{1}=t_{1}$,
$s_{m}=t_{n}$, $x_{1}\le y_{1}$, $x_{m}\ge y_{n}$.
  Then there are $i,j$ such that $x_{i}=y_{j}$ and either
$t_{j}\in[s_{i},s_{i+1}]$ or $s_{i}\in[t_{j},t_{j+1}]$.
\end{lemma}

\begin{proof}
  Parental links can always be replaced with horizontal and vertical
links.
  Horizontal links of size 2 jump over a latent cell only.
  So, paths cannot jump across each other.%
  \end{proof}

  According to the Parent Lemma, a steep path can be continued
backward in time until it hits some extended damage rectangle.
  Moreover, occasionally we have a choice between continuing to the
mother or to the father.
  Let%
 \glo{wake@$\cns{wake}$}%
 \begin{equation}\label{e.wake}
         \cns{wake} = \tau_{0}+2\Tu.
 \end{equation}
  If $[a_{0},a_{1}-]\times [u_{0}+,u_{1}-]$ is an extended damage rectangle
then let%
 \glo{a@$a_{i}$}%
 \glo{u@$u_{i}$}%
 \begin{equation}\label{e.u-2}
  u_{2}= u_{0}+\cns{wake}.
 \end{equation}
  The rectangle 
 \begin{equation}\label{e.wake-rect}
  [a_{0},a_{1}-]\times [u_{0}+,u_{2}-]
 \end{equation}
 will be called the \df{wake}\index{damage!rectangle!wake} of the damage
rectangle in question.
  The lemma below says that unless a path started backward in the wake of a
damage rectangle, it can be diverted and continued back past a damage
rectangle.

\begin{lemma}[Ancestor]\label{l.ancestor}\index{lemma@Lemma!Ancestor}
  Let $(x_{0},t_{0})$ be a live point not in ~\eqref{e.wake-rect}, with
$x_{0}$ in $[a_{0}-QB/4,a_{0}+QB/4-]$ and $t_{0}$ in
$[u_{0},u_{0}+\Tl^{*}/2]$.

  Then, there is a path going backward from $(x_{0},t_{0})$ and ending
either in $u_{0}$ or in a birth.
  It is an $(n,2)$-path for some $n$ with at most 1 horizontal link.
  In constructing the path backwards, we are free to choose between
maternal and paternal links at all times but possibly once, when
moving out of $[a_{0},a_{1}]$.
  These times, as well as the horizontal link, may only occur during
$[u_{0}+,u_{2}-]$.
 \end{lemma}

\begin{proof}
  We call the path to be constructed a \df{desired path}.
  Let us start constructing a steep path $c_{0},\ldots,c_{n}$ with
 \[
  c_{i}=(x_{i},t_{i})
 \] 
  backward from $(x_{0},t_{0})$.
  If we get to $u_{0}$ then we are done, otherwise, we stop just before
we would hit $u_{1}+\Tu-$, with $c_{k}$ being the last element.
  Then $t_{k}<u_{1}+2\Tu$ and $x=x_{k}\in[a_{0},a_{1}]$.
  Indeed, if this is not so then we could continue the path either by
a vertical or by a parental link.
  The vertical link would be shorter than than $\Tu$, and the parental
link would lead to a damage-free cell, so either of them would be
allowed. 

  Let us now go back on the path for $i=k,k-1,\ldots$ until the first
$i$ (counting from $k$) such that either $c_{i}$ is a parent of
$c_{i-1}$ or $x_{i}=x$ can have a horizontal link at some time during
$[t_{i},t_{i-1}]$.
  There will be such an $i$, since otherwise the cell $x$ would be
isolated throughout $[u_{1}+2\Tu,u_{2}]$ with no near-end-correction
in a neighbor, and the rule $\Purge$ would kill it by the time
$u_{2}$.%

  Suppose that $c_{i}$ is not a parent: then let $y_{0}=x$ and let
$w_{0}$ be the earliest time in $[t_{i},t_{i-1}]$ when $x$ has a
sibling $y_{1}\ne x$.
  Let $w_{1}=w_{0}$.
  Suppose that $c_{i}$ is a mother: then it has a sibling
$y_{1}\ne x$.
  Let $w_{1}=t_{i}$ in this case.
  Suppose that $c_{i}$ is a father: then let $y_{1}\ne x$ be the
corresponding mother with $w_{1}=t_{i}$.

  Let $P_{1}$ be the part of the original path until $c_{i-1}$, and
$P_{2}$ the new part ending in $(y_{1},w_{1})$.
  Let us build a steep path $(y_{j},w_{j})$, $j=1,2$, $\ldots$,
backwards until either $w_{j}<u_{0}$ or $y_{j}=x$ and let $P_{3}$
be the part of this path ending with $(y_{j-1},w_{j-1})$.
  If $w_{j}<u_{0}$ then $P_{1},P_{1},P_{3}$ combine to a desired path,
suppose therefore that $w_{j}\ge u_{0}$, hence $y_{j}=x$.
  Then $(x,w_{j})$ is a parent of $(y_{j-1},w_{j-1})$, hence by the
Parent Lemma, $x$ is a sibling of $y_{j-1}$ at time $t_{j-1}$.
  By definition, if $t$ is the first time after $t_{k}$ when $x$ has a
sibling then $t\ge t_{i}$; hence $w_{j-1}<t_{k}<u+2\Tu$.
  By the Parent Lemma, $(x,u_{0}-\Tu)$ is also parent of
$(w_{j-1},t_{j-1})$ (by the same animation): choosing this as
$(y_{j},w_{j})$, we are done.
 \end{proof}% l.ancestor


\subsection{Running gaps}\label{ss.decay}

  The rule $\Decay$ attempts to achieve that if some ``relevant gap'' was
not closed in reasonable time then it becomes wider.%
 \glo{decay@$\Decay$}%
 \begin{program}
    rule $\Decay$ \0{
\\    cond \0{
\\      ? $\exists j\in\{-1,1\} \Xposed(j)$
\\      ! $\Die(\p_{1})$
\\      }}
 \end{program}
 
\begin{remark}
  Most killing will be done by this rule.
  The rule $\Purge$ is important only when the damage erases a colony
endcell and creates an isolated cell, intersecting its former body.
  The decay rule (in this simple form) would take too long to eliminate the
new cell which could in the meantime widen the gap (and make it
unhealable).
  \end{remark}
 
 
  Consider an interval $G=[l+,r-]$ where $0 < r - l$ is divisible by $B$.
  Assume that if the wake of a damage rectangle with space projection
$[a_{0},a_{1}-]$ intersects $G$ then $l<a_{0}<a_{1}< r$.  
  We call $G$ a \df{gap with right-age}\index{gap}\index{gap!right-age} $n$
if $n$ is the smallest number $k$ such that every cell in $G$
space-consistent with $r$ and not in the wake of a damage rectangle is a
germ cell with age $<k$.
  The right age is infinite if there is no such number $k$ (these cases
will not be relevant).
  The \df{size} of $G$ is $r-l-B$.
  If $G$ is contained in the colony of $r$ then it is called an
\df{interior gap}.
  As we see, $G$ is assumed to be a gap only in the set of cells that are
space-consistent with $r$ and are not young germ cells.
  (It is probably not important that we exclude only cells space-consistent
with $r$.)

  Suppose that in a time interval $[v_{0},v_{1}]$, the gap
$G(t)=[l(t)+,r(t)-]$ is defined for all $t$, in such a way that all cells
$r(t)$ are space-consistent with each other, and for all $t_{1}$, $t_{2}$
with $|t_{2}-t_{1}|\le 3\Tu$, we have $r(t_{2})-l(t_{1})> B$.
  Then $G(t)$ is called a (right) \df{gap path}, and the \df{right age} of
the gap path is the maximum of the right ages of the gaps in it.
  By this definition, if a path space-consistent with $r(t)$ has the same
time projection $[v_{0},v_{1}]$ as the right gap path $G(t)$ and has no
germ cells younger than the right age of the gap path then it cannot cross
$G(t)$ since no parental link can jump through it.
  Though the wake of a damage rectangle in $G(t)$ may contain some cells
that are not young germ cells these do not live long enough to become
parents (due to the wait of animation) and therefore also cannot assist in
the jumping of a path.

  The lemma below says that the $\Decay$ rule causes a large enough gap
to move right rather fast.
  The gap is assumed to be connected, via a series of horizontal links, to
a forward path.
  This excludes irregular and unimportant cases when the gap would have to
travel through all kind of debris.


  \begin{lemma}[Running Gap]\label{l.rn-gap}
  Let $P_{1}=(x_{0},v_{0})$, $\ldots$, $(x_{n},v_{n})$ be a forward path
with at most one double horizontal link, let $L,k$ be positive integers
with
 \begin{align*}
     L &\le 3Q,
\\   k &< \cns{synch-start-lb}+\cns{end-period}-5L\p_{1}\lg.
 \end{align*}
  Assume the following:
 \begin{cjenum}

  \item $(x_{n}, v_{n})$ is not a germ cell younger than
 $< k + 10L\lg\p_{1}$;

  \item $(y_{0}, v_{0})$ is to the left of $(x_{0},v_{0})$ in the same domain;

  \item\label{i.rn-gap.in-col}
 if $y_{0}$ is a left outer cell then $P_{1}$ is in the same colony;

  \item No damage rectangle affects $[y_{0}+,x_{0}-]\times\{v_{0}\}$, even via
neighbors;

  \item $(y_{0},v_{0})$ is a left exposed edge (see Subsection
~\ref{ss.edges});

  \item\label{l.rn-gap.gap-bds} 
  $y_{0}$ has been the right end of an interior gap of right-age $k$ and
size $>5B$ during $[v_{0}-\Tu, v_{0}]$;

  \item\label{l.rn-gap.time-proj-bd}
  $v_{n}-v_{0}\le 2L\tau_{1}$;

  \end{cjenum}
  Then during $[v_{0},v_{n}]$, a right gap path $G(t)=[l(t)+,r(t)-]$ can be
defined, with $r(v_{0})=y_{0}$,
 \begin{equation}\label{e.gap-path.fast} 
  (r(v_{n})-y_{0})/B \ge (v_{n}-v_{0}-\cns{wake})/\tau_{1}-4,
 \end{equation}
 $r(t)\ge y_{0}-B$ and the right ageof the gap path is $< k + 5L\lg\p_{1}$.
  If no damage rectangle occurs on the whole interval during the time
considered then the right-hand side of ~\eqref{e.gap-path.fast} can be
replaced with $\flo{(v_{n}-v_{0})/\tau_{1}}$.
  \end{lemma}

\begin{figure}
 \setlength{\unitlength}{1mm}
 \begin{picture}(100, 100)(-10, -5)
%left gap end
    \put(0,0){\circle{1}}
    \put(0,0){\line(0,1){10}}
    \put(0,10){\circle{1}}
    \put(0,10){\line(1,2){5}}
    \put(5,20){\circle{1}}
    \put(5,20){\line(0,1){10}}
    \put(5,30){\circle{1}}
    \put(5,30){\line(0,1){10}}
    \put(5,40){\circle{1}}
    \put(5,40){\line(1,2){5}}
    \put(10,50){\circle{1}}
    \put(10,50){\line(1,2){5}}
    \put(15,60){\circle{1}}
    \put(15,60){\line(0,1){10}}
    \put(15,70){\circle{1}}
    \put(15,70){\line(1,2){5}}
    \put(20,80){\circle{1}}
    \put(20,80){\line(1,2){5}}
%    \put(25,90){\circle{1}}
%    \put(25,90){\line(1,2){5}}

% right gap end
    \put(20,0){\circle{1}}
    \put(20,0){\line(1,2){5}}
    \put(25,10){\circle{1}}
    \put(25,10){\line(0,1){10}}
    \put(25,20){\circle{1}}
    \put(25,20){\line(1,1){5}}
    \put(30,25){\circle{1}}
    \put(30,25){\line(1,1){5}}
    \put(35,30){\circle{1}}
    \put(35,30){\line(1,0){5}}
    \put(40,30){\circle{1}}
    \put(40,30){\line(1,2){5}}
    \put(45,40){\circle{1}}
    \put(45,40){\line(1,1){5}}
    \put(50,45){\circle{1}}
    \put(50,45){\line(1,0){5}}
    \put(55,45){\circle{1}}
    \put(55,45){\line(1,0){5}}
    \put(60,45){\circle{1}}
    \put(60,45){\line(1,1){5}}
    \put(65,50){\circle{1}}
    \put(65,50){\line(1,1){5}}
    \put(70,55){\circle{1}}
    \put(70,55){\line(1,0){5}}
    \put(75,55){\circle{1}}
    \put(75,55){\line(1,0){5}}
    \put(80,55){\circle{1}}
    \put(80,55){\line(1,1){5}}
    \put(85,60){\circle{1}}
    \put(85,60){\line(0,1){10}}
    \put(85,70){\circle{1}}
    \put(85,70){\line(1,1){5}}
    \put(90,75){\circle{1}}
    \put(90,75){\line(1,2){5}}
    \put(95,85){\circle{1}}
    \put(95,85){\line(1,1){5}}
%    \put(100,90){\circle{1}}
%    \put(100,90){\line(1,1){5}}
%    \put(105,95){\circle{1}}
%    \put(105,95){\line(1,1){5}}

% horizontal links
    \put(20,0){\line(1,0){55}}
    \multiput(25,0)(5,0){10}{\circle*{1}}

% path
    \put(75,0){\circle*{1}}
    \put(75,0){\line(-1,2){5}}
    \put(70,10){\circle*{1}}
    \put(70,10){\line(0,1){10}}
    \put(70,20){\circle*{1}}
    \put(70,20){\line(1,2){5}}
    \put(75,30){\circle*{1}}
    \put(75,30){\line(0,1){10}}
    \put(75,40){\circle*{1}}
    \put(75,40){\line(0,1){10}}
    \put(75,50){\circle*{1}}
    \put(75,50){\line(0,1){10}}
    \put(75,60){\circle*{1}}
    \put(75,60){\line(1,2){5}}
    \put(80,70){\circle*{1}}
    \put(80,70){\line(0,1){10}}
    \put(80,80){\circle*{1}}
    \put(80,80){\line(0,1){10}}
%    \put(80,90){\circle*{1}}
%    \put(80,90){\line(1,2){5}}

    
    \put(105, 30){\vector(0,1){10}}
    \put(108, 35){\makebox(0,0)[l]{time}}

    \put(8, 35){\makebox(0,0)[l]{$l(t)$}}
    \put(45, 35){\makebox(0,0)[l]{$r(t)$}}
    \put(78, 35){\makebox(0,0)[l]{$P_{1}(t)$}}

    \put(75, -3){\makebox(0,0)[t]{$(x_{0},v_{0})$}}
    \put(20, -3){\makebox(0,0)[t]{$(y_{0},v_{0})$}}
    \put(82, 100){\makebox(0,0)[r]{$(x_{n},y_{n})$}}

 \end{picture}
 \caption{Running Gap Lemma}
 \label{f.running}
\end{figure}

  Before proving this lemma, let us prove a corollary saying that if $P_{1}$
is long there is no large young gap next to its beginning (say, on the
left).
 
  \begin{corollary}[Running Gap]\label{crl.rn-gap}
  Assume the conditions of the Running Gap Lemma, with $L=Q$, and assume
also that the path $P_{1}$ remains in the colony of $y_{0}$.
  Then we have
 \begin{equation}\label{e.v-n-ub}
  v_{n}-v_{0} \le Q\tau_{1}.
 \end{equation}
  \end{corollary}

  \begin{proof}
  It is easy to see that the length of the path is at most $5L\lg\p_{1}$.
  By the definition of the gap path $G(t)$ above, path $P_{1}$ starts
on its right.
  Since age varies by at most 1 per link along a path (except for a double
link) and since $(x_{n},v_{n})$ is not a germ cell younger than
$k+10L\lg\p_{1}$, no cell on $P_{1}$ is a germ cell with age
 $<k+5L\lg\p_{1}$, while according to Lemma ~\ref{l.rn-gap}, all cells in
$G(t)$ space-consistent with $r(t)$ are germ cells with such age.
  Therefore $P_{1}$ never crosses the gap path from right to left.
  The inequality ~\eqref{e.gap-path.fast} gives a lower bound on how
fast $r(t)$ moves right.
  Since $P_{1}$ stays in the colony of $y_{0}$,
 \begin{align*}
  (v_{n}-v_{0}-\cns{wake})/\tau_{1}-3  &< Q-5,
\\ v_{n}-v_{0} < \tau_{1}(Q-2) + \cns{wake} <\tau_{1}Q
 \end{align*}
  (see ~\eqref{e.decay-t} and \eqref{e.wake} for the last inequality).
\end{proof}

 \begin{Proof}[Proof of Lemma ~\ref{l.rn-gap}]
  Let $r(v_{0})=y_{0}$, and let $l(v_{0})$ be the leftmost cell such that
the gap $[l(v_{0})+,r(v_{0})-]$ has right-age $\le k$.
   \begin{step+}{rn-gap.inward}
  Let $t_{1}>v_{0}$.
  Assume that for all $t\le t_{1}$, a gap path $G(t)$ is defined with the
desired properties and in such a way that $(r(t_{1}),t_{1})$ is not a germ
cell younger than $k+10L\p_{1}\lg$ and is not in the wake of a damage
rectangle.
  Then $r(t_{1})$ is a edge space-consistent with $r(t_{0})$ that is either
exposed or is to become exposed in one step, in one of the cases of
Lemma ~\ref{l.exposing} (Exposing).
  This last case occurs only if there is a damage rectangle during 
$[v_{0},t_{1}]$. 
    \end{step+}
  \begin{pproof}
  Since $(r(t_{1}),t_{1})$ is not in the wake of a damage rectangle we can
build a backward $(m,2)$-path
 \[
  P_{2}=((z_{0},w_{0})=(r(t_{1}),t_{1}),\ldots,(z_{m},w_{m}))
 \]
 according to the Ancestor Lemma.
  Lemma ~\ref{l.path-time} and the bound ~\eqref{l.rn-gap.time-proj-bd}
gives
 \[
  m \le 2+2(v_{n}-v_{0})/\Tl \le 2+4L\p_{1}\lg < 5L\lg\p_{1}.
 \]
  The backward path $P_{2}$ ends in at time $v_{0}$.
  Indeed, if it ended in a birth then $(r(t_{1}),t_{1})$ would be a germ
cell younger than $5L\p_{1}\lg$ contrary to the assumption.
  $P_{2}$ does not cross the gap since otherwise $(r(t_{1}),t_{1})$ would be a
germ cell younger than $k+5L\lg\p_{1}+5L\lg\p_{1}$ which was excluded.
  Therefore defining $x=P_{2}(v_{0})$ we have $x\ge y_{0}$.
  Without loss of generality, we can suppose $x\le x_{0}$.
  Otherwise, Lemma ~\ref{l.crossing} (Crossing) implies that path $P_{2}$
crosses $P_{1}$ and we can switch from $P_{2}$ to $P_{1}$ at the meeting
point.
  Thus, $x$ is on the interval $[y_{0},x_{0}]$, aligned with $x_{0}$.

  Combine $P_{2}$ and the horizontal path from $(x,v_{0})$ to $(y_{0},v_{0})$ into
a single chain of links connecting siblings.
  This chain has at most $3Q$ horizontal links from the left edge
$(y_{0},v_{0})$ to $(x,v_{0})$, and then at most $2+2(v_{n}-v_{0})/\Tl$
links on $P_{2}$, giving fewer than
 \[
   3Q + 2(v_{n}-v_{0})/\Tl + 2
 \]
 links.
  The assumption that the gap path satisfies the requirements of the Lemma
implies $r(t)\ge y_{0}-B$, hence $P_{2}$ is to the right of the left end of
the colony of $y_{0}$.

  In the number of steps available, a protected left edge cannot
occur on such a path unless $y_{0}$ is a left outer cell and the path
leaves the colony of $y_{0}$ on the right.
  Indeed, suppose first that $(y_{0},v_{0})$ is a member or right outer
cell. 
  For a path of ancestors starting from such a cell to turn into a
left outer cell this path would first have to walk right to
participate in the creation of a colony and then walk back through the
growth process from that colony, which is impossible due to
~\eqref{e.synch-start-lb-req}. %?

  Suppose now that $(y_{0},v_{0})$ is a (exposed) left outer cell.
  The age of cells on the path is locally monotonically nondecreasing,
except when it crosses into another work period.
  Indeed, since the age of siblings is required to be monotonically
nondecreasing towards the originating colony, it is nondecreasing on the
horizontal part of the path; it is also nondecreasing on the part $P_{2}$
constructed by the Ancestor Lemma, except on the horizontal link allowed by
that lemma.
  Therefore the age of $(r(t),t)$ cannot be smaller by more than 1.
  If the age is not smaller at all then $(r(t),t)$ is also exposed.
  If decreasing the age by 1 makes it protected then we must have one of
the cases in Lemma ~\ref{l.exposing}.

  Suppose that $(y_{0},v_{0})$ is a germ cell.
  Left germ cells inside a colony, as well as member cells they can turn
into on the path $P_{2}$ are always exposed.
  We should not rely on this asymmetry in the definition of ``exposed'' for
germs, however, since we want to apply the lemma also when changing left to
right.
  Let us assume therefore for a moment that left and right is interchanged
in the definition of ``exposed'' for germs.
  Then a germ cell that is a left edge is exposed to the left only if its
age is $\ge\cns{germ-grow-end}$.
  In this case, the same argument works as for left outer cells above.
 \end{pproof} % rn-gap.inward

  \begin{step+}{rn-gap.no-dam}
  Consider a time interval $[f_{0},f_{1}]$, assume that the gap $G(t)$
with the desired properties was defined up to time $f_{0}$, where
$G(f_{0})$ has size $>2B$ and right-age $\le k$.
  Assume that for $t\in[f_{0},f_{1}]$, no wake of a damage rectangle
intersects the area where we define the path further.

  Then the gap path $G(t)$ can be defined further in $[f_{0},f_{1}]$ in
such a way that $G(t)$ has right-age $\le k+2(t-f_{0})/\Tl+1$ and size
 \[
 \ge r(f_{0})-l(f_{0})-B+(t-f_{0})B/(\p_{2}\Tl),
 \]
  with 
 \[
  (r(t)-r(f_{0}))/B \ge \flo{(t-f_{0})/\tau_{1}}-1.
 \]
   \end{step+}
  \begin{pproof}
  Let us define $G(t)$ as follows.   
  Suppose that it was defined up to time $t_{1}$ and let $t_{2}$ be the
next time that is a switching time of either $l(t_{1})+B$ or $r(t)$.  
  We distinguish the following cases.
   \begin{djenum}

    \item  $t_{2}$ is a switch of $l(t_{1})+B$.
  If the switch is an animation resulting from $\Grow$ creating a
sibling of $l(t_{1})$ then $l(t_{2})=l(t_{1})+B$, else $l(t_{2})=l(t_{1})$.

    \item  $t_{2}$ is a switch of $r(t)$.
  If $r(t_{1})$ dies then $r(t_{2})$ is the closest cell to the right of
$r(t_{1})$ that is not a germ cell younger than $k+2(t_{2}-f_{0})/\Tl+1$ or
$k+10L\lg\p_{1}$, else $r(t_{2})=r(t_{1})$.
    \item  In all other cases, we leave $G(t)$ unchanged.

    \end{djenum}

   \begin{step+}{rn-gap.no-dam.age} $G(f_{1})$ has right-age
 $\le k+2(f_{1}-f_{0})/\Tl+1$.
    \end{step+}
   \begin{pproof} 
  Let $z_{1}$ be a live cell in $G(f_{1})$ space-consistent with $r(f_{1})$,
and let us build a sequence $(z_{1},w_{1})$, $(z_{2},w_{2})$, $\ldots$
with $f_{1}=w_{1}\ge w_{2}\ge\cdots$ as follows.
  Without loss of generality, assume that $w_{1}$ is a switching time
of $z_{1}$. 
  If $z_{1}$ is live at $w_{1}-$ then $z_{2}=z_{1}$ and $w_{2}$ is the previous
switching time of $z_{1}$.
  Otherwise, either $(z_{1},w_{1})$ is a newborn germ cell, in which case the
sequence ends at $(z_{1},w_{1})$, or it has a parent $(x,u)$.

  If $x\in G(u)$ then $z_{2}=x$, $w_{2}=u$.
  Let us show that otherwise, $z_{1}$ was created by the internal
correction part of the healing rule.
  If $x\le l(u)$ then it could not have created $z_{1}$ by the growth
rule since by the definition of $l(t)$, this would have increased
$l(t)$, bringing $(z_{1},w_{1})$ outside the gap.
  If $x\ge r(u)$ then it could not have animated $z_{1}$ by the growth
rule since $r(u)$ is an exposed edge.
  The end-correcting part of the rule $\Heal$ could not be involved.
  Indeed, the left end in case could only be the left end of the right
neighbor colony of $y_{0}$.
  In this case, $r(u)$ would be a member cell and hence $y_{0}$ would be a
left outer cell.
  For that case, however, we assumed in condition ~\eqref{i.rn-gap.in-col}
of the lemma that the path (hence also the gap path which is to its left)
stays in the colony of $y_{0}$.
  (This is the part of the Gap Lemma where we use the fact that we
upper-bound only the right-age, i.e.~the age of cells space-consistent
with $r(u)$: thus, the end-healing of some other colony inconsistent
with $r(u)$ can be ignored.)

  If the internal correction case of healing created $z_{1}$, let
$(z_{2},w_{2})$ be the father of $(z_{1},w_{1})$, this will be inside the gap.
  By the parent construction, $w_{2}\le w_{1}-\Tl$ and
 $\Age(z_{1},w_{1})\le\Age(z_{2},w_{2})+1$. 
  We see that the sequence $(z_{i},w_{i})$ steps back at least $\Tl/2$
time units in every step and the age of $(z_{i},w_{i})$ can decrease by at most
1 in each such step.
  Since it can only end in a birth or a germ cell in $G(f_{0})$ this
and ~\eqref{l.rn-gap.time-proj-bd} proves the age bound.%
\end{pproof} % rn-gap.no-dam.age

    \begin{step+}{rn-gap.no-dam.progress}\
  \begin{cjenum}

   \item\label{i.rn-gap.no-dam.progress.monot}
  Edge $r(t)$ does not move left during $[f_{0},f_{1}]$.
  During the same period, $l(t)$ moves right at most once.

  \item\label{i.rn-gap.no-dam.progress.spread}
   For all $n>0$ with $t=f_{0}+n\tau_{0}<f_{1}$, we have
 $r(t)\ge r(t_{1})+(n-1)B$.

   \end{cjenum}
  \end{step+}

 \begin{pproof}
  Let us prove ~\eqref{i.rn-gap.no-dam.progress.monot} first.
  By property ~\ref{rn-gap.no-dam.age}, the gap can contain only
latent and germ cells.
  The size of $G(t)$ does not allow $\Heal$ to decrease it: indeed,
it follows just as as in ~\ref{rn-gap.no-dam.age} above that
end-healing cannot operate.
  Since $G(t)$ is a left gap, the rule $\Grow$ can decrease it only
on the left.
  After one such decrease, the size is still $>B$.
  The next application of $\Grow$ is away by a waiting
period\index{period!wait} of length $\p_{2}\Tl$.

  Let us prove ~\eqref{i.rn-gap.no-dam.progress.spread}.
  Since the conditions of ~\ref{rn-gap.inward} are satisfied, $y=r(f_{0})$
is an exposed left edge or is a cell whose age is just one step before the
applicability of one of the cases in Lemma ~\ref{l.exposing}
(Exposing).
  If $y$ is exposed then the rule $\Decay$ kills it within $\tau_{1}$
time units.
  In the other case, nothing prevents the age of $y$ to increase within
$\tau_{1}$ time units.
  From now on, the rule $\Decay$ applies.
 \end{pproof} % rn-gap.no-dam.progress

  To conclude, note that according to ~\ref{rn-gap.no-dam.progress} and
~\eqref{e.p_{2}}, every $\p_{2}\Tl$ time units, the left edge $l(t)$ moves at most
one cell width to the right but the right edge $r(t)$ moves at least two
cell widths.
  Since the size started from $>2B$, it will remain $>B$.
  This proves the lower bounds on the size of $G(t)$ and on $r(t)$.%
 \end{pproof} % rn-gap.no-dam
 
 \begin{step+}{rn-gap.dam}
  Let $[a_{0},a_{1}-]\times[u_{0}+,u_{2}-]$ be the wake of the damage rectangle
and assume that $u_{0}\in [v_{0},v_{n}]$.
  Assume also that $G(u_{0})$ has size $>4B$ and right-age $\le k$ at time
$u_{0}$.

  Then the gap path $G(t)$ with the desired properties can be defined
for $t\in [u_{0}+,u_{2}-]$; moreover, $G(u_{2})$ has size $> 2B$
 and right-age $\le k+2\cns{wake}/\Tl+1$.

  We also have $r(t)> r(u_{0})-2B$ for all $t\in[u_{0}+,u_{2}-]$.
  \end{step+}
  \begin{pproof} 
  Let $k(t) = k+2(t-u_{0})/\Tl+1$.

 \begin{step+}{rn-gap.dam.left}
  Assume that the interval $[a_{0},a_{1}]$ is closer to $l(u_{0})$ than to
$r(u_{0})$.
  \end{step+}
 \begin{prooof}
  Then $r(t)$ will be defined just as in the damage-free case.

  \step{rn-gap.dam.left.less}{Let $t\in[u_{0}+,u_{2}-]$.}
  \begin{prooof}
   Then we set $l(t)$ to be the first site from the left that, at time
$u_{0}$, is $\ge l(u_{0})\vee a_{1}$ and is aligned with $l(u_{0})$.
  This defines a gap $G(t)$ of size $>B$ for this time
interval.
  This gap will not decrease during $[u_{0}+,u_{2}-]$ since it is too
large for $\Heal$ and $\Grow$ the damage has insufficient time to
trigger $\Grow$.
  So, the age bound reasoning of point ~\ref{rn-gap.no-dam.age} above
 %stepref does not work here
 applies and the right-age of $G(t)$ will be $\le k(t)$.
  \end{prooof}

  \begin{step+}{rn-gap.dam.left.left}
   Let $t=u_{2}$ and $a_{0}\le l(u_{0})+B$.
   \end{step+}
  \begin{prooof}
  Then $a_{1}\le l(u_{0})+2B$, and we set $l(u_{2})$ to be the greatest cell
$\le l(u_{0})\vee a_{1}$ and aligned with $l(u_{0})$.
  Then $l(u_{2})\le l(u_{0})+2B$, hence $G(u_{2})$ has size $>2B$.
  Again, the reasoning of point ~\ref{rn-gap.no-dam} above
 % stepref does not work here.
 applies to show that $G(t)$ has age $\le k(t)$.
  If $l(u_{2})>l(u_{0})$ then no growth animation could have been pending
in $l(u_{2})$ from time before $u_{0}$ and this completes the proof of the
claim in ~\ref{rn-gap.dam}.
   \end{prooof} 

  \step{rn-gap.dam.left.right}{Let $t=u_{2}$ and $a_{0} > l(u_{0})+B$.} 
  \begin{prooof}
  Then we define $l(u_{2})=l(u_{0})+B$.
  At most one cell can be added to $l(u_{0})$ by growth during
$[u_{0},u_{2}-]$.
  Lemma ~\ref{l.ancestor} (Ancestor) shows that any live cell in
$[a_{0},a_{1}-]$ can be traced back to a birth within $G(t)$ or to a time
in $G(t)$ before $u_{0}$ and therefore the same reasoning as for the
other cases gives that $G(t)$ has right-age $\le k(t)$.
  \end{prooof}
  \end{prooof} % rn-gap.dam.left
  
  \begin{step+}{rn-gap.dam.right}
  Assume now that $[a_{0},a_{1}]$ is closer to $r(u_{0})$ than to $l(u_{0})$.
   \end{step+}
  \begin{prooof} 
  This case is similar to case ~\eqref{rn-gap.dam.left}, so we point
out only the differences.
  Now, the gap on the left of $a_{0}$ may decrease by one during
$[u_{0}+,u_{2}-]$, to size $>0$, if a growth step occurs on the left.
  For $t=u_{2}$, now the cases we distinguish are:

  \step{rn-gap.dam.right.right}{Assume $a_{1}\ge r(u_{0})$.}
  \begin{prooof}
  Then $a_{0}\ge r(u_{0})-B$.
  We set $r(u_{2})$ to be the smallest cell $\ge r(u_{0})\wedge a_{0}$ and
aligned with $l(u_{0})$.
  Then $r(u_{2})\ge r(u_{0})-B$, hence $G(u_{2})$ has size $>2B$, even
if a growth step occurred at $l(t)$ during $[u_{0}+,u_{2}-]$.
   \end{prooof}

  \step{rn-gap.dam.right.left}{Now assume $a_{1} < r(u_{0})$.}
  \begin{prooof}
  Then we define $r(u_{2})=r(u_{0})$.
  Since no growth could have occurred on the right-hand side, by
applying the earlier reasoning, we will find that $G(t)$ has right age
$\le k(t)$.%
\end{prooof}%
\end{prooof}% rn-gap.dam.right.
\end{pproof}% rn-gap.dam

  Let us construct $G(t)$ for $t\in[v_{0},v_{n}]$.
  In the space-time rectangle considered, at most one damage rectangle
occurs.
  Indeed, $v_{n}-v_{0}\le\Tl^{*}/2$ follows from ~\eqref{l.rn-gap.time-proj-bd}
and \eqref{e.end-period}.

  Let $f_{0}=v_{0}$ and let $f_{1}$ be the supremum of the those $t>f_{0}$ until
which the damage-free construction in the proof of ~\ref{rn-gap.no-dam} is
applicable: thus, if there is no damage involved then $f_{1}=v_{n}$, else
$f_{1}=u_{0}$.
  Applying this construction, we get to $f_{1}$ with gap size $>4B$.
  Applying ~\ref{rn-gap.no-dam}, knowing there is no damage before, we find
the age upper bound $k+2(t-v_{0})/\Tl+1$ and the lower bound
$\flo{(t-v_{0})/\tau_{1}}$ on $(r(t)-y_{0})/B$.
  If $f_{1}=u_{0}\le v_{0}$ then we apply the construction of ~\ref{rn-gap.dam}
to get to $f'_{0}=v_{m}\wedge u_{2}$.
  Now, the gap has age upper bound $k+2(t-v_{0})/\Tl+2$, and lower bound
$(t-v_{0}-\cns{wake})/\tau_{1}-2$ on $(r(t)-y_{0})/B$.

  Let now $f'_{0}$ take the role of $f_{0}$ and repeat the damage-free
step to $f'_{1}=v_{n}$.
  Now, we have age upper bound $k+2(t-v_{0})/\Tl+3$ and lower bound
$(t-v_{0}-\cns{wake})/\tau_{1}-4$ on $(r(t)-y_{0})/B$.
\end{Proof} % l.rn-gap


germ.tex
\section{Germs}\label{s.germs}

\subsection{Control}\label{ss.control}

  Recall the definition of $\Gg(I, d)$\glo{g.greek.cap@$\Gg(I, d)$} in
~\eqref{e.Gg-interval}.

 \begin{lemma}\label{l.lasting-control}
  Let $x_{0}$ be a site and $t_{1}<t_{2}$ times.
  Assume that $(x_{0},t_{1})$ is controlled and
$\Gg(x_{0}, 3B)\times[t_{1} - 8\Tu,t_{2}]$ is damage-free.
  Then $(x_{0},t_{2})$ is controlled.
 \end{lemma}
\begin{Proof}
  In the proof below, \df{controlling}\index{controlling} always means
controlling $(x_{0},t_{1})$.
  Let $t_{0}=t_{1}-6\Tu$.
  For $t$ in $[t_{0}, t_{2}]$, let
 \[
  A(t) = \Gg(x_{0},3B)\times [t_{0},t].
 \]
 \begin{step+}{lasting-control.control}
  Let $t\in[t_{1},t_{2}]$.
  Assume that $x_{0}$ is controlled for all $t'<t$.
  Then $[x_{0}-3B,x_{0}+3B-]\times \{t\}$ contains a cell.
 \end{step+}
 \begin{pproof}
  By our assumption, for all $t'<t$, each set
 $[x_{0}-B,x_{0}+B-]\times [t'-6\Tu,t']$ contains a cell $x_{1}$.
  If it stays until time $t$ then we are done.
  If it disappears the death must have been caused by $\Arbitrate$, due to
a cell $y_{1}$ with $|y_{1}-x_{1}|<2B$ about to create another cell whose
body intersects with the body of $x_{1}$.
  Cell $y_{1}$ had $\Dying=0$ to be able to kill and therefore survives
until time $t$.
 \end{pproof}

 \begin{step+}{lasting-control.inher}
  Let $t\in[t_{1},t_{2}]$.
  Assume that $x_{0}$ is controlled for all $t'<t$.
  Then $\Gg(x_{1},B)\times [t-6\Tu,t]$ contains a cell.
 \end{step+}
 \begin{pproof}
  Bu assumption, for all $t'<t$, each set $\Gg(x_{0},B)\times [t'-6\Tu,t']$
contains a cell $x_{1}$.
  Without loss of generality, suppose $x_{1}\le x_{0}$.
  If this is also true for $t'=t$ then we are done.
  Suppose it does not: then one such cell $x_{1}$ disappears at time
$t-6\Tu$.
  This must have been caused by the rule $\Arbitrate$, %!
 due to some cell $y_{1}$ about to create an adjacent neighbor whose body
intersects with the body of $x_{1}$.
  Without loss of generality, assume $y_{1}\in [x_{1}-2B+, x_{1}-B-]$.
  According to the $\Arbitrate$, cell $y_{1}$ must have had $\Dying=0$,
$\Creating_{1}=1$ to be able to erase and therefore survives until time
$t$. %!
  Since according to Condition ~\ref{cond.creating}, only the rule
$\Arbitrate$ changes $\Creating_{1}$, and only when a right neighbor has
appeared, cell $y_{1}$ keeps trying to create a right neighbor. %!

  \begin{step+}{lasting-control.inher.succ}
    Suppose that $y_{1}$ succeeds in creating $y_{1}+B$ before time
$t_{0}+2\Tu$.  
  \end{step+}
  \begin{prooof}
  If $y_{1}+B\ge x_{0}-B$ then it will control; otherwise, $y_{1}+B$ will
try to create $y_{1}+2B$. %!
  If it succeeds in $2\Tu$ time units then the created cell will control; if it
does not then then according to the Computation Property, %!
 another cell in $[y_{1}+2B+,y_{1}+3B-]$ interferes and it will control.
 \end{prooof}

  \begin{step+}{lasting-control.inher.fail}
  Suppose that the creation does not succeed within $2\Tu$ time units.
  \end{step+}
 \begin{prooof}
    Then a cell $x_{2}\in[y_{1}+B+,y_{1}+2B-]$ interferes.
  If $x_{2}\ge x_{0}-B$ then $x_{2}$ will control, suppose therefore that
$x_{2}<x_{0}-B$.
  We have $|x_{1}-x_{2}|<B$ since $x_{1},x_{2}\in[y_{1}+B,y_{1}+2B]$.
  Therefore $x_{2}$ must have arisen after $x_{1}$ disappeared.
  Due to part ~\ref{lasting-control.control} above, $x_{2}$ could not have
arisen by spontaneous birth, hence it must have been created by a right
neighbor.
  If $x_{2}$ was created after $t_{0}$ then its creating right neighbor is
alive after $t_{0}$ and it will control.
  Suppose therefore that $x_{2}$ was created at time $t_{0}$ and its right
neighbor disappeared by time $t_{0}$.
  
  Suppose that $x_{2}$ stays  for at least $2\Tu$ time units;  then it  tries to
create $x_{2}+B$.
  If it succeeds then $x_{2}+B$ will control; if it does not then the cell
that interferes in the creation will control.

  Suppose that $x_{2}$ disappears before $t_{0}+2\Tu$.
  Suppose that $y_{1}$ now succeeds in creating $y_{1}+B$ before time
$t_{0}+4\Tu$.
  If $y_{1}+B\ge x_{0}-B$ then it will control; otherwise, it will try to
create $y_{1}+2B$.
  If it succeeds in $2\Tu$ time units then the created cell will control.
  If it does not then the cell that interferes will control.

  Suppose that $y_{1}$ still does not succeed in its creation.
  Then another cell $x_{3}$ appears before $t_{0}+4\Tu$ that prevents this.
  This $x_{3}$ must have been created by a right neighbor that will control.
 \end{prooof}
 \end{pproof} %lasting-control.inher
\end{Proof}

  \begin{lemma}\label{l.lasting-control-prop}\index{control!lasting}
  The media of our amplifier have the lasting control property.
  \end{lemma}
 \begin{proof}
  Assume that for some sites $x_{0}$ and times $t_{1}<t_{2}$, with
 \[
   I=\Gg(x_{0}, ((t_{2}-t_{1})\Tu/\Tl + 4)B),
 \]
  $I\times \{t_{1}\}$ is blue and $I\times [t_{1}-2\Tu, t_{2}]$ is
damage-free.
  We have to prove that $(x_{0},t_{2})$ is blue.

  Lemma ~\ref{l.lasting-control} implies that this point is controlled; what
remains to show is that the controlling cell in
$\Gg(x_{0},B)\times[t_{2}-6\Tu,t_{2}]$ is blue.
  Due to part ~\ref{lasting-control.control} above, in the area considered,
there is always some cell within distance $3B$ left or right of any site,
and this prevents any germ cell from being born.
  If therefore the controlling cell would be non-blue then one could
construct from it a path of non-blue cells backwards.
  This path cannot reach outside $I$ during $[t_{1},t_{2}]$ since it needs
at least $\Tl$ time units to move one cell width away from $x_{0}$.
 \end{proof}

  Let us introduce an undirected graph $G(\eta)$\glo{g.cap@$G(\eta)$} on
space-time points of a space-time configuration $\eta$ by defining below
the following kinds of edge.
 \begin{djenum}

  \item points $(x,t)$ and $(x,t')$ are connected for $t<t'$ if a cell of
$\eta$ is present in $x$ for all of $[t, t']$;

  \item suppose that $|x-y|<2B$ and there is a cell at time $t$ in both $x$
and $y$, and moreover there is a cell in $y$ during the a whole dwell
period of $x$ containing $t$.
  Then $(x,t)$ and $(y,t)$ are connected.

  \item if a cell has just been created in $(x,t)$ by an adjacent cell $y$
whose last dwell period before $t$ begins in $t'$ then $(x,t)$ and $(y,t')$
are connected;

 \end{djenum}
  These are all the edges of graph $G$.


  \begin{lemma}\label{l.old-control}
  Let $t_{0}=t_{1}-8\Tu$,
 \[
   I=\Gg(x_{0}, 9B). 
 \]
  Assume that $I\times \{t_{0}\}$ is controlled and the area
$I\times[t_{0}-8\Tu, t_{1}]$ is damage-free.
  Then there are sites $z_{1}\le x_{0}\le z_{2}$ and a path in the graph
$G$ defined on $I\times[t_{0},t_{1}]$, connecting $(z_{1},t_{1})$ with
$(z_{2},t_{1})$.
  \end{lemma}
  \begin{Proof}
  Since $(x_{0},t_{0})$ is controlled there is a cell $(x_{1},u_{1})$ in
$\Gg(x_{0},B)\times[t_{0}-6\Tu,t_{0}]$.
  Without loss of generality, assume that $x_{1}\ge x_{0}$.

 \begin{step+}{old-control.survives}
  Suppose that $x_{1}$ stays a cell until time $t_{1}$.
 \end{step+}
 \begin{prooof}
  Since $(x_{1}-B,t_{0})$ is controlled there is a cell $(x_{2},u_{2})$ in
$\Gg(x_{1}-B,B)\times[t_{0}-6\Tu,t_{0}]$.
  If the cell in $x_{2}$ exists until time $t_{1}$ then necessarily
 $x_{2} < x_{0}$, and it is easy to see that there is a time $v_{1}$ such
that the points $(x_{1}, t_{1})$, $(x_{1}, v_{1})$, $(x_{2}, v_{1})$,
 $(x_{2}, t_{1})$ form a path in $G$.

 \begin{step+}{old-control.survives.lasts}
  Suppose that the cell in $x_{2}$ lasts until $t_{0} + 2\Tu$.
 \end{step+}
 \begin{prooof}
  Then it coexists with $x_{1}$ at time $t_{0}$, therefore
 $x_{2}\in [x_{1}-2B+,x_{1}-B]$.
  Since $(x_{2}-B,t_{0})$ is controlled there is a cell $(x_{3},u_{3})$ in
$\Gg(x_{2}-B,B)\times[t_{0}-6\Tu,t_{0}]$.
  If the cell in $x_{3}$ exists until time $t_{1}$ then $x_{3}\le x_{2}-B$,
and it is easy to see that there are times $v_{i}$ such that the points
$(x_{1},t_{1})$, $(x_{1},v_{1})$, $(x_{1},v_{2})$, $(x_{2},v_{2})$
$(x_{2},v_{3})$, $(x_{3},v_{3})$, $(x_{3},t_{1})$ form a path in $G$.

  If the cell in $x_{3}$ disappears before time $t_{1}$ then this has been
caused by $\Arbitrate$, via a cell $y_{1}$ about to create another cell
intersecting with the body of $x_{3}$.
  As seen in similar discussions above, cell $y_{1}$ exists during the
whole of $[t_{0}-8\Tu,t_{1}]$.
  Therefore it is not equal to $x_{2}$ which is assumed to disappear.  But
its body does not intersect the body of of either $x_{2}$ or $x_{3}$ hence
 $y_{1} \in [x_{3} - 2B+, x_{3} - B-]$.
  
  If cell $x_{3}$ lasts until $t_{0}+2\Tu$ then it is easy to see that
there are times $v_{i}$ such that the points $(x_{1},t_{1})$,
$(x_{1},v_{1})$, $(x_{1},v_{2})$, $(x_{2},v_{2})$ $(x_{2},v_{3})$,
$(x_{3},v_{3})$, $(x_{3},v_{4})$ $(y_{1},v_{4})$, $(y_{1},t_{1})$ form a
path in $G$.

  Suppose that $x_{3}$ disappears before $t_{0}+2\Tu$.
  Now $y_{1}$ tries to create $y_{1} + B$ which (if this succeeds) tries to
create $y_{1}+2B$, etc. until reaching $x_{1}$.
  If we reach $x_{1}$ this defines a path again between $(x_{1}, t_{1})$
and $(y_{1}, t_{1})$.

  Suppose that one of these creations, e.g.~the creation of $y_{1} + B$ does
not succeed.
  Then a cell exists in
 \[
   [y_{1} + B+, y_{1} + 2B-] \times [t_{0} + 2\Tu, t_{0} + 4\Tu].
 \]
  The space is not sufficient for this cell to be born spontaneously,
therefore it can be traced back via creations to one of $x_{1}, x_{2}, x_{3}$
or to some cell existing during $[t_{0}, t_{0} + 2\Tu]$ between
$y_{1}$ and $x_{2}$.
  This way again a path can be defined.
 \end{prooof}
 
 \begin{step+}{old-control.survives.dies}
  Suppose that the cell in $x_{2}$ disappears before $t_{0} + 2\Tu$.
 \end{step+}
 \begin{prooof}
  This has been caused by $\Arbitrate$, via a cell $y_{1}$ about to create
another cell intersecting with the body of $x_{2}$; as above, cell $y_{1}$
exists during the whole of $[t_{0}-8\Tu,t_{1}]$.
  Then either $y_{1}=x_{1}$ or $y_{1}\in[x_{2}-2B+, x_{2}-B-]$.
  In the second case, there are points $v_{i}$ such that $(x_{1},t_{1})$,
$(x_{1},v_{1})$, $(x_{1},v_{2})$, $(x_{2},v_{2})$ $(x_{2},v_{3})$,
$(y_{1},v_{3})$, $y_{1},t_{1})$ form a path in $G$.
  Suppose therefore $y_{1}=x_{1}$.

  After $x_{2}$ dies, either $y_{1}$ succeeds creating $y_{1}-B$ before time
$t_{0}+4\Tu$ or some cell $(x'_{2},u'_{2})$ interferes with this.
  In the first case, let us call $x'_{2}=y_{1}-B$.
  In both cases, we can continue as in part
~\ref{old-control.survives.lasts} above with $x'_{2}$ in place of $x_{2}$
and $t_{0}+5\Tu$ in place of $t_{0}+2\Tu$.
 \end{prooof}
  \end{prooof}% old-control.survives

 \begin{step+}{old-control.dies}
  Suppose that the cell in $x_{1}$ disappears before time $t_{1}$.
 \end{step+}
  \begin{prooof}
  This has been caused by $\Arbitrate$, via a cell $y_{1}$ about to create
another cell intersecting with the body of $x_{1}$; again, $y_{1}$ exists
through all the time considered here.
  If $y_{1}>x_{1}$ then we can continue as in part
~\ref{old-control.survives} above with $y_{1}$ in the role of $x_{1}$ above
and $x_{1}$ in the role of $x_{2}$ above.
  If $y_{1}<x_{1}$ then we can do the same, after a left-right reflection.
  \end{prooof}
 \end{Proof} 
 
  \begin{lemma}\label{l.control-deleg}\index{control!delegation}
  The simulations of our amplifier have the control delegation property.
  \end{lemma}
  \begin{proof}
  Let $M=M_{k}$, $\Fg=\Fg_{k}$ for some $k$, for our amplifier, and let
$\eta$ be a trajectory of $M$.
  Let $\Tu=\Tu_{k}$, $\Tu^{*}=\Tu_{k+1}$, etc. 
  Let 
 \[
  I=\Gg(x_{0}, (8\Tu^{*}/\Tl^{*}+4)QB).
 \]
  Assume that $I\times \{t_{1}-8\Tu_{2}\}$ is blue in
$\eta^{*}=\Fg^{*}(\eta)$ and $I\times[t_{1}-16\Tu_{2}, t_{1}]$ is
damage-free in $\eta$.
  We must prove that $(x_{0},t_{1})$ is blue in $\eta$.

  As mentioned at the beginning of Section ~\ref{s.plan}, the simulation
$\fg_{k}^{*}$ consists of two parts: the simulation of $M_{k+1}$ by a
medium $M'_{k}$ of reach 2, and the simulation of $M'_{k}$ by $M_{k}$ as
shown in Theorem ~\ref{t.reach}.
  Control delegation from $M'_{k}$ to $M_{k}$ is trivial, since the cells
of the two media are essentially the same; hence, we need to consider only
control delegation from $M_{k+1}$ to $M'_{k}$.

  Lemma ~\ref{l.old-control} implies that there are sites
 $z_{1}\le x_{0}\le z_{2}$ and a path in the graph $G(\eta^{*})$ defined on
$I\times[t_{0},t_{1}]$, connecting $(z_{1},t_{1})$ with $(z_{2},t_{1})$.
  This path consists of blue big cells: indeed, since the area is
controlled in $\eta^{*}$ birth is excluded, therefore a non-blue big cell
would have to trace back its origin to outside $I$, but the complement of
$I$ is too far to do this in the available time.
  The path gives rise in a natural way to a sequence
 $(c_{1},\ldots,c_{n})$ of small cells with $c_{1}=(z_{1},t_{1})$,
$c_{n}=(z_{2},t_{1})$, and for each $i$, either $c_{i}$ and $c_{i+1}$ are
in two consecutive dwell periods of the same cell, or have the form
$(x,t),(y,t)$ with $|x-y|<2B$.
  All these cells are member or extension cells of the colonies of the big
cells of the path.
  Since $\Color$ is a broadcast field and $\Guard=-1$ in all our cells,
these small cells are all blue.
  Let us form a polygon $P_{1}$ connecting these points with straight
lines.
  
  Let $A$ be the set of elements of $I\times[t_{1}-16\Tu_{2}, t_{1}]$
reachable from $(x_{0},t_{1})$ along any polygon at all without crossing
$P_{1}$.
  It is easy to see that $A$ is controlled; let us show that it is also
blue.
  Indeed, according to Lemma ~\ref{l.lasting-control}, not birth can take
place in a controlled area, therefore from any cell in $A$ a path of
ancestors passes to the outside of $A$.
  When it crosses $P_{1}$ one of its cells must be equal to a blue cell and
therefore the whole path must be blue.
 \end{proof}
  

 \subsection{The program of a germ}

  We now add some rules to the program of our amplifier to make it
self-organizing.
  A germ starts out as a single cell with $\Age=0$ and $\Addr=-Q$ and
tries to grow into an area covering 3 colonies by growing right, but can be
held up by some other cells.
  The cell with address $-Q$ will be called the
\df{leader}\index{germ!leader} of the germ (calling it the ``base'' would
be confusing).
  Germ cells are weaker than non-germ cells, hence a growing germ cannot
intrude into an extended colony and a growing colony can destroy germ cells
in its way.
  In what follows, the germ growth rule is based on \df{work
periods}\index{period!work!germ} just as colonies.
  Not all germ work periods are alike: each work period is associated with
a \df{level}\index{germ!level}.
  Let%
 \glo{l@$\l$}%
 \begin{equation}\label{e.l-def}
    \l = \log(3Q)
 \end{equation}
  (not necessarily an integer).
  The level of the germ is stored in a field%
 \glo{level@$\Level$}%
 \[
   \Level\in[0,\l-]\cup\infty
 \]
  of each of its cells.
  Cells stronger than germ cells have level $\infty$.
  Latent cells are level 0 germ cells; thus, even latent cells have color.
  $\Age$ will be reset to 0 at the beginning of each work period, and the
work period of level $s$ lasts until $\Age = U(s)$ where%
 \glo{u.cap@$U(s)$}%
 \[
   U(s)=4\p_{1}\lg 2^{s}.
 \]
  We say that a work period has level $s$, if the leader cell has that
level.
  Typically, in this case the germ has already been extended to a size at
least $2^{s}B$.
  Therefore if a right edge cell has $\Addr + Q < 2^{\Level} - 1$ then it
will be called \df{exposed}\index{germ!exposed}.
  This extends the definition of exposed edges given in Subsection
~\ref{ss.edges} without affecting any previous reasoning using this notion.
  There is also a field%
 \glo{active@$\Active$}%
 \[
   \Active\in\{0,1\}.
 \] 
  Cells with $\Active=1$ are called \df{active}\index{germ!active}, others
\df{passive}\index{germ!passive}.
  Here are the rules using these properties:
 \begin{enumerate}

  \item If a germ cell sees a (not necessarily adjacent) germ cell on the
left with the same color but higher level then it becomes vacant.

  \item When a passive germ cell of level $s$ sees an active germ cell on
the left, of the same color and level, with
 $\Age\le U(s)- 2\p_{1}2^{s}$, then it turns vacant.

 \end{enumerate}    
  The work period is divided into two parts:
 \df{growth and computation}\index{germ!growth}\index{germ!computation}.
  In growth, the right end attempts to grow to size $2^{s+1}$.
  The computation part is omitted if the right end has address $2Q-1$ (the
final goal).
  This part, which takes the $2^{s+2}$ last steps of the work period,
checks whether the germ has size $2^{s+1}B$, by propagating left the
information about the address of the right edge in a field
$\fld{New-level}$\glo{new-level@$\fld{New-level}$}.
  If $\fld{New-level}>\Level$ then in the next work period, each cell sets 
$\Level:=\fld{New-level}$.
  Otherwise, the leader cell chooses a random number in $\{0,1\}$ and
broadcasts it right on the track $\Active$.
  This ends the computation.

 \begin{remark}
  Probably a much simpler rule (e.g.~a random decision each time there is a
conflict) would do but our rule makes the proof very simple.
  On the other hand, the estimates of the proof would be much better with a
somewhat more complicated rule that allows for some error-correction in the
germ cells, e.g.~erasing a small germ surrounded by cells of different
color.
 \end{remark}
  

 \subsection{Proof of self-organization}

  \begin{lemma}[Germ Attribution]\label{l.germ-attrib}
 \index{lemma@Lemma!Germ Attribution}
  Let $c_{1}=(x_{1},t_{1})$ be a blue germ cell, of level $s$.
  Assume that the area
 \[
  [x_{0}-3\cdot 2^{s}B, x_{0}+2^{s}B]\times
  [t_{1}-2\cdot 2^{s}\tau_{1}, t_{1}+2U(s)\lg] 
 \]
  is free of damage and of nonblue cells.
  Then either $c_{1}$ is part of a domain with no exposed edge or there is
a blue cell of higher level in the above area.
  \end{lemma}
  \begin{Proof}
  Let us construct a path $P_{1}$ backward from $c_{1}$ in such a way that
we keep the path on the left edge of the germ: thus, whenever possible we
move left on a horizontal link, otherwise we move back in time on a
vertical link.
  At time 
 \[
   t_{0}=t_{1}-2^{s}\tau_{1},
 \]
  the path might stop at a cell $c_{0}$ one level lower than $c_{1}$.

 \begin{step+}{germ-attrib.hole}
  There is a time $t_{3}$ in $[t_{0},t_{1}]$ when $P_{1}(t_{3})$ is a
leader and the germ has size $\ge 2^{s}$.
 \end{step+}
 \begin{pproof}
  Suppose this is not so.
  If the right end is exposed at time $t_{0}$ then it remains so and the
germ decays away in the given time.
  If the left end is exposed during all of $[t_{0},t_{0}+\cns{split-time}]$
then the left end decays, becomes unhealable, and the germ will decay.
  Suppose therefore that both ends are protected by some time
$t'_{3}<t_{0}+\cns{split-time}$.
  If the right end has level $s$ at this time, then it has the desired
size, too.

  Suppose the germ at the time $t_{3}$ has size $<2^{s}B$ and the right end
has a lower level allowing this size.
  If the left end is younger than the computation start then the
computation would never allow it to switch to a higher level with this
small size, so the size $2^{s}B$ must be reached at some time $t_{3}$.
  If it is older than the computation start then (unless an end becomes
exposed and the germs dies on that account) the age advances quickly to the
new work period, and the whole germ obtains the new, higher level.
  If the germ is still small its right becomes exposed and then the whole
germ will be wiped out.
 \end{pproof} %{germ-attrib.hole}

  Let us follow the development of the germ from $t_{3}$ forward.  
  If the left end survives then the germ survives till time $t_{1}$ and we
are done.
  If the left end will be destroyed by a cell $c_{2}$ with higher level
then we are done.

  The last possibility is that the left end will be destroyed by an active
cell $c_{4}$ on the same level.
  Let us construct a path $P_{2}$ backward from $c_{4}$ in a way similar to
$P_{1}$.
  By the reasoning of part ~\ref{germ-attrib.hole} above we arrive at a
time $t_{5}$ at which $P_{2}(t_{5})$ is a leader and the germ has size
 $\ge 2^{s}$.

  Following the development of this (active) germ forward, its left end
either survives or will be killed by a cell $c_{2}$ of level $>s$ (in which
case we are done, having found $c_{2}$).
  If the left end survives then the germ of $c_{4}$ kills the germ of
$c_{1}$, growing over at least $2^{s}$ killed cells.
  (It is easy to see that new germ cells arising in place of the killed
ones do not have sufficient time to reach level $s$ and are therefore no
obstacle to this growth.)
  This creates a germ of size $\ge 2^{s+1}$ whose level will increase after
its next computation notices this.
  All this happens within at most 2 work periods of the germ of $c_{4}$.
  \end{Proof}

  \begin{lemma}[Level Increase]\label{l.level-incr}
 \index{lemma@Lemma!Level Increase}
  For a level $s\ge 0$, integers $n>1$, $r\ge 3\cdot 2^{s} B$, some site
$x_{0}$, some rational time $t_{0}$, with $c_{0}=(x_{0},t_{0})$, 
let
  \begin{align*}
   d_{1}=d_{1}(s) &= 3U(s)\p_{1},
\\ L_{0} &= \Gg(x_{0}, 3\cdot 2^{s}\lg B),
\\ I_{0} &= \Gg(L_{0}, 3QB),
\\ G_{0} &= [t_{0}-2\cdot 2^{s}\tau_{1}, t_{0}],
\\ G_{1} &= [t_{0}-3\Tu, t_{0}],
\\ H_{1} &= [t_{0},t_{0}+nd_{1}\Tu].
 \end{align*}
  Assume
 \begin{equation}\label{e.level-incr.time-bd}
  nd_{1}\Tu < \Tl^{*}.
 \end{equation}
  Let $\cG_{0}$ be the event that $I_{0}\times (G_{0}\cup H_{1})$ is
damage-free, $I_{0}\times G_{1}$ is blue, and $c_{0}$ has level $s$.
  Let $\cH_{1}$ be the event that $L_{0}\times (G_{1}\cup H_{1})$, is blue
and contains a cell of level $s+1$.
  Then there is a constant $\kg_{1}>0$ such that the probability of
$\neg\cH_{1}\cap\cG_{0}$ is at most $e^{-\kg_{1}n}$.
  Moreover, this estimate is also understood in the sense of an injective
canonical simulation\index{simulation!canonical!injective}.
 \end{lemma}
 \begin{Proof}\
 \begin{step+}{level-incr.blue}
  All cells in $L_{0}\times H_{1}$ are blue.
 \end{step+}
 \begin{pproof}
  Non-blue germ cells cannot arise in a blue area.
  If a non-blue non-germ cell would occur it could be attributed to a full
non-blue colony.
  It takes two full consecutive colony-occupations to reach into $L_{0}$
from outside $I_{0}$, and this takes at least $\Tl^{*}$ time units which is, by
the assumption ~\eqref{e.level-incr.time-bd}, more than our total time.
 \end{pproof}

  Lemma ~\ref{l.germ-attrib} shows that, in the absence of damage, either
the conclusion of the present lemma holds or $c_{0}$ is part of a germ of
size at least $2^{s}$, without exposed edges.
  Let $c_{1}=(x_{1},t_{0})$ be the left endcell of this germ.

  \begin{step+}{level-incr.partner}
  The following holds during 
  \[
  J_{1} = [t_{0}, t_{0}+d_{1}\Tu]:
  \]
  either a cell with level $>s$ occurs in $\Gg(x_{1},2^{s+1}B)$ or a leader
cell $c_{2}=(x_{2},t_{2})$ with level $s$ occurs in
 $[x_{1}+2^{s}B, x_{1}+2^{s+1}B-]$.
  In the latter case, at time $t_{2}$, all cells between $x_{1}$ and
$x_{2}$ belong to the germ of $c_{1}$, with no place left for cells between
them.
  \end{step+}
 \begin{pproof}
  If $c_{1}$ is killed during $[t_{0},t_{0}+2U(s)\tau_{1}]$ from the left
by a higher-level cell then we are done.
  Suppose that it will be killed by an active cell $c_{2}$ of the same
level.
  Then Lemma ~\ref{l.germ-attrib} (Germ Attribution) implies that $c_{2}$
is contained in a germ without exposed edges, hence of size $\ge 2^{s}$.
  This germ conquers the area of the germ of $c_{1}$ within the next
$2U(s)\tau_{1}$ time units, and creates a cell of level $s+1$, which is one of
the desired outcomes.

  Suppose that this does not happen.
  If the growth of the germ of $c_{1}$ will not be held up then it will
create a cell of level $s+1$ within $2U(s)\tau_{1}$ time units.
  It can be held up only by a cell of higher or equal level.
  A cell of higher level would give what is required: suppose that this
does not happen.
  If it is held up by a cell of the same level, then unless this cell is a
leader it decays within time $\tau_{1}$.
  Therefore the growth succeeds unless a leader cell $c_{2}$ of the same
level is in the way and all cells between $x_{0}$ and $x_{1}$ belong to the
germ of $c_{1}$, with no place left for cells between them.
 \end{pproof}

  \begin{step+}{level-incr.toss}
  Let $t_{3}=t_{2}+ d_{1}\Tu$, $J_{2}=[t_{2}, t_{3}]$.
  Let $\cJ_{1}(t_{2})$ be the event that $\Level(x_{1},t_{2})=s$, there is
a leader cell $c_{2}=(x_{2},t_{2})$ of level $s$ in
 $[x_{1}+2^{s}B, x_{1}+2^{s+1}B-]$, and at time $t_{2}$ all cells between
$x_{1}$ and $x_{2}$ belong to the germ of $c_{1}$, with no place left for
another cell.
  The probability that $\cG_{0}\cap\cJ_{1}(t_{2})$ holds and no cell of
level $>s$ occurs during $J_{2}$ in $\Gg(x_{1}, 2^{s+1}B)$ is at most
 \[
  1-(0.5-\eps')^{3}.
 \]
  \end{step+}
  \begin{pproof}
  If $x_{1}$ will be killed from the left during $J_{2}$ then we will be
done by the same reasoning as in part ~\ref{level-incr.partner} above.
  Suppose that this does not happen.

  Suppose that that $x_{2}$ is the later one among $x_{1}$ and $x_{2}$ to
make a work period transition after $t_{2}$, at time $v_{2}$.
  Let $v_{3}$ be its next work period
transition\index{period!work!transition}.
  Let $u_{2}$ be the last work period transition time of $x_{1}$ before
$v_{2}$ and $u_{3},u_{4}$ the next work period transitions of $x_{1}$.
  Let $\cJ_{2}(t_{2})$ be the event that the coin tosses at time
$u_{2},u_{3}$ make $x_{1}$ active and the coin toss at time $v_{2}$ makes
$x_{2}$ passive.

  Suppose now that $x_{1}$ is the later one to make its first transition
after $t_{2}$, at time $u_{3}$.
  Let $u_{4}$ be its next work period transition.
  Let $v_{3}$ be the last work period transition of $x_{2}$ before $u_{3}$
and $v_{4}$ its next work period transition.
  Let $\cJ_{2}(t_{2})$ be the event that the coin tosses at time
$v_{3},v_{4}$ make $x_{2}$ passive and the coin toss at time $u_{3}$ makes
$x_{1}$ active.

  The randomization part of the Computation Property implies that, in the
absence of damage, the probability of
 $\cJ_{1}(t_{2}) \cap \neg\cJ_{2}(t_{2})$ in both cases is at most
$1-(0.5-\eps')^{3}$.
  Let us show that in both cases if $\cJ_{1}(t_{2}) \cap \cJ_{2}(t_{2})$
holds then $\Level(x_{1},u_{4})=s+1$. i.e.~ the germ of $x_{1}$ will
overrun the germ of $x_{2}$ while it is passive.

  In the first case, suppose that the work period $[v_{2},v_{2}]$ of
$x_{2}$ covers the work period $[u_{3},u_{4}]$ of $x_{1}$.
  Then $x_{1}$ certainly has sufficient time to overrun.
  If $[v_{2},v_{2}]$ does not covers $[u_{3},u_{4}]$ then it is divided
between $[u_{2},u_{3}]$ and $[u_{3},u_{4}]$, therefore $x_{1}$ will have
sufficient time in one of these work periods for the overrun.
  The reasoning is analogous in the other case.
\end{pproof}
  Repeated application of the above reasoning gives the probability upper
bound $(1-(0.5-\eps')^{3})^{n-1}$.
  Indeed, we reason about $n$ disjoint windows (separated by the times
$t_{2},t_{3},t_{4},\ldots$ where $t_{i+1}=t_{i}+d_{1}\Tu$).
  If $\cJ_{2}(t_{2})$ fails then $\cJ_{1}(t_{3})$ still holds in the window
between $t_{3}$ and $t_{4}$, so the reasoning is applicable to this new
window, etc.
  The probability bounds will multiply due to the disjointness of the
windows. 
 \end{Proof}
 
  Recall the definition of $\l$ in ~\eqref{e.l-def}.

  \begin{lemma}[Birth]\label{l.birth}\index{lemma@Lemma!Birth}
  For integer $n>1$, and $c_{0}=(x_{0},t_{0})$, let
  \begin{align*}
   d_{2} &= 120\p_{1}^{2}\lg Q,
\\ I_{0} &= \Gg(x_{0}, 33QB),
\\ L_{\l} &= \Gg(x_{0}, 30QB),
\\ G_{0} &= [t_{0} - Q\tau_{1}, t_{0}],
\\ G_{1} &= [t_{0} - 3\Tu, t_{0}],
\\ H_{\l} &= [t_{0}, t_{0} + nd_{2}\Tu].
 \end{align*}
  Let $\cG_{0}$ be the event that $I_{0}\times (G_{0}\cup H_{\l})$ is
damage-free, and $I_{0}\times G_{1}$ is blue.
  Let $\cH_{\l}$ be the event that $L_{\l}\times (G_{0}\cup H_{1})$
contains a big blue cell.

  Assume
 \begin{equation}\label{e.birth.time-bd}
  nd_{2}\Tu < \Tl^{*}.
 \end{equation}
  There is a constant $\kg_{1}>0$ such that the probability of
$\neg\cH_{\l}\cap\cG_{0}$ is at most $\l e^{-\kg_{1}n}$.
  Moreover, this bound is also understood in the sense of an injective
canonical simulation.
 \end{lemma}
 \begin{Proof}
  Repeated application of Lemma ~\ref{l.level-incr} (Level Increase).
  Notice that
 \[
  \sum_{0 \le s < \l} d_{1}(s) = 3\p_{1}\sum_{0 \le s < \l} U(s) = 
   12 \p_{1}^{2} \lg \sum_{0 \le s < l} 2^{s}
 \le 24\p_{1}^{2}\lg 2^{\l} < 120 \p_{1}^{2}\lg Q = d_{2}.
 \]
  For level $s\ge 0$, let
 \begin{align*}
   L_{s} &=\Gg(x_{0}, 6\cdot 2^{s} B),
\\ t_{s} &= t_{0}+24 n\p_{1}^{2}\lg\Tu 2^{s}.
 \end{align*}
  Then $t_{s}= t_{s-1}+ n d_{1}(s)\Tu$ for $s>0$.
  Let $\cH_{s}$ be the event that a cell of level $s$ appears in $L_{s}$
before time $t_{s}$.
  The blueness of $I_{0}$ implies $\cH_{0}$.
  Repeated application of Lemma ~\ref{l.level-incr} (Level Increase) shows
that the probability of $\neg\cH_{s}\cap\cH_{i}$ for $i<s$ is at most
$e^{-\kg_{1}n}$ for an appropriate constant $\kg_{1}$.
  From here, we obtain the required upper bound on the probability of
non-birth.
 \end{Proof}

  \begin{Proof}[Proof of Lemma \protect\ref{l.sorg}]
  Let $\eta$ be a trajectory of a medium $M_{k}$ of our amplifier and 
$\eta^{*}=\Fg^{*}_{k}(\eta)$.
    We will use the notation $Q=Q_{k}$, etc.
  Let us define some quantities with the absolute constants
$C_{0},C_{1},C_{2},\kg_{1}$ that will be defined later.
 \begin{align*}
      D_{1} &= C_{1} B,
\\    D_{2} &= C_{1} QB, 
\\    O_{1} &= C_{2}\Tu^{*},
\\    q_{1} &= (24 C_{1}Q + 3C_{2}U+1)\eps,
\\    q_{2} &= 8(C_{1}Q)^{2}\sg^{2},
\\    q_{3} &= e^{-\kg_{1}U/Q}C_{1}/{33}.
\\     \sg' &= q_{1}+q_{2}+q_{3}.
 \end{align*}
  Our goal is to show that for every time $v_{0}$, if $\eta$ is
$(D_{1},\sg)$-blue at time $v_{0}$, then $\eta^{*}$ is $(D_{2},\sg')$-blue
at time $v_{0}+O_{1}$.
  Then we will be done since ~\eqref{e.sg} implies $\sg'\le\sg_{k+1}$.
  
  As mentioned at the beginning of Section ~\ref{s.plan}, the simulation
$\fg_{k}^{*}$ consists of two parts: the simulation of $M_{k+1}$ by a
medium $M'_{k}$ of reach 2, and the simulation of $M'_{k}$ by $M_{k}$ as
shown in Theorem ~\ref{t.reach}.

 \begin{step+}{sorg.small-jump}
  We will concentrate on the self-organization from $M'_{k}$ to $M_{k+1}$.
 \end{step+}
 \begin{prooof}
  The self-organization from $M_{k}$ to $M'_{k}$ is similar but much
simpler, so we omit it (it refers to the proof of Theorem ~\ref{t.reach}).
% we would have to write a program for pending cells of $M_{k}$ (see
% the proof of Theorem ~\ref{t.reach}) similar to (but much simpler than)
% the
% germ program of $M'_{k}$, since a pending cell $M_{k}$ must grow to an
% island of size 5 before becoming an accepted cell and hence a cell of
% $M'_{k}$.
 \end{prooof}

  We will use the inequalities
 \begin{align}
  \label{e.lg-less-3.2}   \Tu^{*}/\Tl^{*} &\le 3,
\\\label{e.nu-ub}         \Tu^{*}/\Tl     &< 2U,
 \end{align}
  where ~\eqref{e.lg-less-3.2} is the same as ~\eqref{e.lg-less-3} and
~\eqref{e.nu-ub} follows from ~\eqref{e.Ubd-brc}.
  Let $v_{0}$ be a time, and let $J_{2}$ be a space interval of length
$D_{2}$.
  Let
  \begin{align*}
   d_{2}  &= 120\p_{1}^{2}\lg Q,
\\ J_{0}  &= \Gg(J_{2}, D_{2}),
\\ J'_{0} &= \Gg(J_{2}, D_{2}-B),
\\ G_{0}  &= [v_{0} - Q\tau_{1}, v_{0}],
\\ G_{1}  &= [v_{0} - 5\Tu, v_{0}],
\\ H_{0}  &= [v_{0}, v_{0} + O_{1}],
\\ H_{1}  &= [v_{0}, v_{0} + \Tl^{*}].
 \end{align*}
  Assume that $\eta$ is $(D_{1},\sg)$-blue at time $v_{0}$.
 Let $\cE_{1}$ be the event that there is no damage in
 $J'_{0}\times (G_{0}\cup H_{0})$.
  The Restoration Property gives the upper bound 
 \begin{equation}\label{e.sorg.q_{1}}
  8\frac{3D_{2}}{B}\frac{O_{1}+Q\tau_{1}}{\Tl}\eps
        \le (24 C_{1}Q + 3C_{2}U+1)\eps
 \end{equation}
  on the probability of $\neg\cE_{1}$, where we used
~\eqref{e.lg-less-3.2},\eqref{e.nu-ub}.

  Let $\cE_{2}$ be the event that there is a subinterval $J_{1}$ of $J_{0}$
of size $2.5D_{1}$ such that $(J_{0}\xcpt J_{1})\times G_{1}$ is blue.

  \begin{step+}{sorg.first}
  The probability of $\cE_{1}\cap\neg\cE_{2}$ is upper-bounded by
 \begin{equation}\label{e.sorg.q_{2}}
   (D_{2}/B)^{2}\sg_{1}^{2} \le 8(C_{1}Q)^{2}\sg_{1}^{2}.
 \end{equation}
  \end{step+}
  \begin{pproof}
  The proof is a little similar to the proof of Lemma ~\ref{l.sim-damage},
only simpler.
  If
 \[
  (iD_{1}/2+[0,D_{1}-])\cap J_{0}\times G_{1}
 \]
  is blue for all $i\in\ZZ$ then clearly $J_{0}\times G_{1}$ is blue.
  For some $i,j$ with $|i-j|\ge 4$, let $\cF_{i,j}$ be the event that 
this set is not blue, for either $i$ or $j$.
  The blueness of $\eta$ at time $v_{0}$ implies the upper bound $\sg^{2}$
on the probability of $\cF_{i,j}$.
  The probability that there is an $i,j$ such that $\cF_{i,j}$ holds is at
most $8(D_{2}/B)^{2}\sg^{2}$.
  If there is no such pair $i,j$ then it is easy to see that $\cE_{2}$
holds. 
 \end{pproof}

  Under condition of $\cE_{1}\cap\cE_{2}$, let $J_{1}$ be the subinterval
introduced in the definition of $\cE_{2}$.
  Let
 \[
   I_{0,i}  = \Gg(66QBi,33QB).
 \]
  Let $\cE_{3}$ be the event that for all $i$ such that
 $I_{0,i}\sbs J'_{0}\xcpt J_{1}$ the set $I_{0,i}\times (G_{0}\cup H_{1})$
contains a big blue cell.
  With $n<\Tl^{*}/(d_{2}\Tu)$, Lemma ~\ref{l.birth} (Birth) gives the upper
bound 
 \[
  \log(5Q) e^{-\kg_{2}n}\frac{D_{2}}{33QB},
 \]
  for an appropriate constant $\kg_{2}$, on the probability of
$\cE_{1}\cap\cE_{2}\cap\neg\cE_{3}$.
  Using ~\eqref{e.lg-less-3.2}, \eqref{e.nu-ub} and \eqref{e.Ubd}, we can
compute a constant $\kg_{1}$ for upperbounding the above by
 \begin{equation}\label{e.sorg.q_{3}}
  e^{-\kg_{1}U/Q}{C_{1}}/{33}.
 \end{equation}
  We will show that under condition
$\cE_{1}\cap\cE_{2}\cap\cE_{3}$, the trajectory $\eta^{*}$ is blue over
 \[
  A_{0}=J_{2}\times [v_{0}+O_{1}-5\Tl^{*}, v_{0}+O_{1}].
 \]
  \begin{step+}{sorg.near-edge}
  Assume that $J_{1}$ is disjoint from $\Gg(J_{2},D_{2}/2)$.
  \end{step+}
  \begin{prooof}
   
  \begin{step+}{sorg.near-edge.clean}
  $\Gg(J_{2},2QB)\times H_{0}$ contains no non-blue cell.
  \end{step+}
  \begin{pproof}
  Assume that, on the contrary, it contains such a cell.
  Let us build a path of ancestors from this cell.
  This path cannot end in a birth inside $\Gg(J_{2},D_{2}/2-2B)$ since
Lemma ~\ref{l.lasting-control} (Lasting Control) implies that no birth
takes place there.
  Let us show that the path will not leave this set either.
  We will show that it does not leave on the right.
  For this, whenever we have a choice between father and mother, we build
the path to the left.
  This way, the path only moves to the right when the cell is obtained from
its mother by growth or end-healing.
  Once the backward path moved into the originating colony of a growth it
will stay there at least until the beginning of the work period before it
can move right again.
  It needs therefore at least $(i-1)\Tl^{*}$ time units to move over $i$
colonies, and its total displacement will be at most $QB(1+O_{1}/\Tl^{*})$.
  For this to be smaller than the distance of the complement of
$\Gg(J_{2},D_{2}/2-2B)$ from $\Gg(J_{2},2QB)$, we need
 \[
   QB(1+O_{1}/\Tl^{*}) < D_{2}/2-2QB-2B.
 \]
  Rearranging and using $\Tu^{*}/\Tl^{*}\le 3$ from ~\eqref{e.lg-less-3}
show that this is satisfied if 
 \begin{equation}\label{e.sorg.C_{1}-C_{2}}
   2(4+3C_{2}) < C_{1}.
 \end{equation}
  Therefore the path never leaves $\Gg(J_{2},D_{2}/2-2B)$: this is
impossible since the path is not blue but the set it is in is blue at time
$v_{0}$.
 \end{pproof}%{sorg.near-edge.clean}

  Let $x\in J_{2}$: we will show that $x$ becomes controlled in $\eta^{*}$ at
some time before $v_{0}+O_{1}-5\Tl^{*}$.
  Then Lemma ~\ref{l.lasting-control} will imply that it stays controlled
until $v_{0}+O_{1}$ and part ~\ref{sorg.near-edge.clean} above shows that
it is actually blue.

  Let $i$ be such that $x\in I_{0,i}$.
  Event $\cE_{3}$ implies that $I_{0,i}(G_{0}\cup H_{1})$ contains a
big blue cell $(y,t)$.
  This cell is within distance $66QB$ from $x$, say, to the left.
  As soon as it arises it begins to create a right neighbor, which also
creates a right neighbor, etc., until the chain either reaches $x$ or will
be prevented by another blue cell $z$ within distance $QB$ on the right.
  In the latter case, we continue from $z$, and see that the chain controls
$x$ by time $t+67\Tu^{*}$: hence we are done if
 \[
  C_{2}\ge 73.
 \]
  \end{prooof}%{sorg.near-edge}
  
  \begin{step+}{sorg.inside}
  Assume that $J_{1}$ intersects $\Gg(J_{2},D_{2}/2)$.
  \end{step+}
  \begin{prooof}

  \begin{step+}{sorg.inside.non-germ}
  There are no non-germ non-blue cells in
 \[
  \Gg(J_{2},2QB)\times [v_{0}+Q\tau_{1}, v_{0}+O_{1}].
 \]
  \end{step+}
  \begin{pproof}
  The size of $J_{1}$ is $2.5D_{1} < QB$ according to our assumption about
$Q$.
  Therefore if it has any non-blue non-germ cells at time $v_{0}$ then
these cells are in domains with an exposed edge and will decay within
$Q\tau_{1}$ time units.
  It can be seen just as in part ~\ref{sorg.near-edge.clean} above
that non-blue non-germ edges don't have time to grow in from outside
$\Gg(J_{2},D_{2})$.

  Non-blue germ cells in $J_{1}$ may also begin to grow to the right.
  But within 5 cell widths, they meet an existing blue cell $x$, as seen in
part ~\ref{lasting-control.control} of the proof of Lemma
~\ref{l.lasting-control} (Lasting Control).
  $x$ will not be erased by a non-blue germ cell on the left.
  It will not be erased by a germ cell on the right either since germ cells
erase other germ cells only in the right direction.
  It might be erased by a non-germ cell $y$ on the right, that is about to
create a left adjacent neighbor to itself.
  Cell $y$ (or, even the neighbor $y-B$ it creates) will then be the next
obstacle and it can only be eliminated in a similar way.
  The time between these successive eliminations (except possibly between
the first two) is at least $\Tl^{*}$ since for the next occurrence of such
an event, we must wait for the colony in question to die and for a new
colony to overtake and start growing a left extension.
  Therefore the total number of cells that can be added to the non-blue
germ in this exotic way is at most $O_{1}/\Tl^{*}+2<3C_{2}+2$ (using
$\Tu^{*}\Tl^{*}<3$ again), which still leaves it a germ if
 \begin{equation}\label{e.sorg.C_{0}}
   C_{0}>3C_{2}+2.
 \end{equation}
 \end{pproof}%{sorg.inside.non-germ}

  Let $x\in J_{2}$: we will show as in ~\ref{sorg.inside} above that
$x$ becomes controlled in $\eta^{*}$ at some time before
$v_{0}+O_{1}-5\Tl^{*}$.

  Let $I_{0,i}$ be closest possible to $x$ while disjoint from that
$J_{1}$. 
  Event $\cE_{3}$ implies that $I_{0,i}(G_{0}\cup H_{1})$ contains a
big blue cell $(y,t)$.
  This cell is within distance 
 \[
  (1.25)\cdot D_{1}+2\cdot 66QB = 1.25C_{1}B + 132 QB
 \]
  from $x$, say, to the left.
  As soon as it arises it begins to create a right neighbor, which also
creates a right neighbor, etc., until the chain either reaches $x$ or will
be prevented by another blue cell $z$ within distance $QB$ on the right.
  In the latter case, we continue from $z$, and see that the chain controls
$x$ by time $t+133\Tu^{*}$: hence we are done if
 \[
  C_{2}\ge 139.
 \]
 \end{prooof}%{sorg.inside}

  We have shown that the probability that $\eta^{*}$ is not blue over
$A_{0}$ is at most $\sg'$.
  We bounded it, referring only to events within a window with space
projection $J_{0}$.
  It follows that for a group of $m$ disjoint space translations of this
window, the probability bounds that $\eta^{*}$ is not blue over any of the
corresponding translations of $A_{0}$, is bounded by ${\sg'}^{m}$.
 \end{Proof}

glue.tex
\section{Killing and creation}\label{s.kill}

  The present section collects some rules, conditions and properties that
will be needed in the rest of the construction.
  The material is somewhat heterogenous, but is related mostly to
consistency, killing and creation.

 \subsection{Edges}\label{ss.edges}
  Let%
 \glo{e@$\e_{j}$}%
 \[
  \e_{-1}=0,\ \e_{1}=Q-1.
 \]
  A cell $x$ is a \df{colony endcell in direction
$j$}\index{colony!endcell} if $\Addr(x)\equiv \e_{j} \pmod Q$.
  Outer or germ cells before the end of their growth ($\cns{grow-end}$
resp.~ $\cns{germ-grow-end}$) are said to be in their \df{expansion
period}\index{period!expansion}, and are called \df{expansion
cells}\index{cell!expansion}.

  Suppose that cell $x$ has no siblings in direction $j$.
  It will be called a \df{protected edge}\index{edge!protected} in that
direction if it is some legitimate boundary in that direction, in the sense
described below; otherwise, it will be called an \df{exposed
edge}\index{edge!exposed}.
  For each kind of cell listed below, the cell is defined to be
protected if the statement listed after the colon is true; othewise,
it is exposed.
  \begin{description}

   \item[Member] Colony endcell in direction $j$, except if it is
a doomed right endcell with $0<\Age<\cns{compute-start}$;

   \item[Expansion] In direction $j$ if this is the direction of expansion,
except when it is a channel cell with $\Age \ge \cns{idle-start}$;

   \item[Non-expansion, germ]
  Outer colony endcell in direction $j$ if this is the extension direction
and the cell is not outer with $\Age>\cns{germ-end}-2Q$;

   \item[Non-expansion, outer, non-germ]
  Any colony endcell in direction $j$ if this is the extension direction;

    \end{description}

  In a rule, the condition that $\x$ is an exposed edge in direction
$j$ will be expressed by%
 \glo{xposed@$\Xposed_{j}$}%
 \[
  \Xposed_{j}=\Xposed_{j}(\x)=1.
 \]
  An exposed edge is the sign of defect, or a call to eliminate an
extension of a colony or a colony; the decay rule will kill an edge cell if
it stays exposed too long.

 \begin{lemma}\label{l.expose}
  If a left exposed edge dies and its right sibling was not a
colony endcell then this neighbor becomes a left exposed edge.
  The same holds if we replace left with right.
 \end{lemma}
 \begin{proof}
  This is obvious in most cases.
  One case when it is not is when the exposed edge is a left outer cell
that is not an expansion cell.
  It is imaginable namely that its right neighbor is still in the
growth stage.
  However, our definition of siblings requires the ages of cells to be
monotonically nonincreasing as we move away from the originating
colony, therefore this is not possible.

  The situation is similar when a doomed exposed right endcell dies.
\end{proof}

  A \df{multidomain}\index{domain!multi-} is either a domain or the union
of some adjacent space-consistent domains meeting in protected
colony-endcells.
  From the above definitions it is clear that only a cut can turn a
domain into a multidomain.


\subsection{Killing}\label{ss.kill}

  Generally, a cell will be ``killed'' by making it latent.
  Killing will be announced first by making a one-bit field%
 \glo{dying@$\Dying$}%
 \[
  \Dying
 \]
  equal to 1.
  (The default value of this field is 0.)
  This feature will disable the cell from creating a live neighbor
(just in the interest of continuity and ease of reasoning).
  So, whenever the program will kill a cell it will call the following
subrule: its argument determines its speed.%
 \glo{die@$\Die$}%
 \begin{program}
 subrule $\Die(\p)$ \0{
\\ $\Dying:=_{\p} 1$;
\\   $\Kind:=_{\p}\Latent$
\\   }
 \end{program}

  The killing of a cell is almost always a corrective action, except when
the definition of ``protected'' makes certain cells exposed with the
intention of killing off a whole channel or colony.

  \begin{condition}[Dooming]\label{l.dooming}\index{condition@Condition!Dooming}
  The only rules that change the field $\Doomed$ without killing the cell
are the following.
 \begin{djenum}

  \item The subrules $\Animate$ and $\Heal$ when they create a non-doomed
cell;

  \item At $\Age=\cns{compute-start}$, we set $\Doomed=0$;

  \item At $\Age=\cns{idle-start}$ we possibly set $\Doomed=1$.

 \end{djenum}
  \end{condition}

  We call two cells \df{partners}\index{partners} if one of the following
cases holds:
 \begin{djenum}

  \item They are relatives at distance $2B$ and the cell between them is
not their sibling;

  \item They are adjacent and changing the age of one of them by 1
makes them siblings;

 \end{djenum}
  When a cell has a partner then it may happen that one of its neighbors
will be corrected in a short while to become a sibling, therefore the cell
will be frozen by the rule $\rul{Freeze}$ below.
  A frozen cell's age will not be advanced (seen the rule $\rul{March}$ in
~\ref{sss.age-updating}), making the neighbor's correction easier.
 \glo{freeze@$\rul{Freeze}$}%
 \begin{program}
   rule $\rul{Freeze}$ \0{
\\     cond \0{
\\       ? $\x$ \cmt{is exposed or has a non-dying partner} 
\\       ! $\Frozen := 1$
\\       ?! $\Frozen := 0$
\\         }}
\end{program}

\begin{condition}[Freeze]\label{cond.freeze}\index{condition@Condition!Freeze}
  Only the rule $\rul{Freeze}$ can change the field $\Frozen$.
\end{condition}


  \subsection{Creation, birth, and arbitration}\label{ss.heal.crea}

 \glo{create@$\Create$}%
 \glo{creating@$\Creating_{j}$}%
  \begin{program}
 rule $\Create$ \0{
\\  pfor $j\in\{-1,1\}$ do \0{
\\    cond  \0{
\\      ?  $\Kind=\Vac$ and $\Creating_{j}^{-j}=1$
\\      ! $\Kind:=\Latent$
\\      }}}
\end{program}

  This rule is slightly different from the other ones since the site
to which it is applied is vacant.
  Therefore in simulation, the cell $\x$ is not really there to ``apply''
this rule; it is applied implicitly by its creator neighbor
$\thg_{-j}(\x)$.
  We will call this neighbor the \df{mother}\index{cell!mother} of the new
latent cell.%
 \glo{birth@$\rul{Birth}$}%
  \begin{program}
 rule $\rul{Birth}$ \0{
\\    cond  \0{
\\      ?  $\Kind=\Vac$ and $\Kind_{j}=\Vac$ ($j=-1,1$)
\\      ! $\Kind:=\Latent$
\\      }}
\end{program}
  This rule tries to give rise to a newborn cell if its neighbors are
vacant.
  As the Computation Property shows the birth rule will not be enforced by the
trajectory property.
  (Still, birth will be realized for big cells when germ cells succeed in
creating a new colony.)
  
\begin{condition}\label{cond.birth}
 $\Create$ and $\rul{Birth}$ are the only rules applicable to a vacant
cell.
 \end{condition}

  Condition ~\ref{cond.birth} implies that in all cases different from the
one listed in the rules $\Create$ or $\rul{Birth}$, the site is required by
the transition function to remain vacant.
  Case ~\eqref{ax.comput.no-birth} of Condition ~\ref{ax.comput} (Computation
Property) allows for the creation to be blocked by a cell whose body
intersects the cell to be created.

  Let us proceed to the definition of rule $\Arbitrate$ which controls the
values of the field $\Creating_{j}$.
  Consider the example of a cell $x$ and its left nonadjacent neighbor
$y=\thg_{-1.5}(x)$ that may want to create a cell in $y+B$, overlapping the
body of $x$.
  Whether $x$ will be erased will be decided not by whether $y$ is
stronger than $x$ but by whether the new cell $y+B$ would be stronger
than $x$.

  \begin{remark}
  This distinction matters when a colony wants to create an outer cell that
would intrude into another colony.
  It is important in this case for the created cell to be weaker
than the member cells of the other colony with whom it is competing
for space.
  \end{remark}

  To simplify the expression of the rule, for a relation $R$, let%
 \glo{"<@$a\leor{R} b$}%
 \[
  a\leor{R} b
 \]
  mean ``$a<b$ or ($a=b$ and $R$ holds)''.
  The kind of the cell to be created must have been declared in field
$\Kind_{-j}$\glo{kind@$\Kind_{j}$} of $\thg_{j}(\x)$.
  This field is actually a function of two fields called 
 \[
   \Kind_{j}.\Grow,\ \Kind_{j}.\Heal,
 \]
  which will be set by the rules $\rul{Grow-step.active}$ and $\Heal$ (see
later), and is defined as
 \[
  \Kind_{j} = \begin{cases}
   \Kind_{j}.\Heal &\text{if $\Dying=0$, $\Kind_{j}.\Heal \ne \Latent$,}
\\ \Kind_{j}.\Grow &\text{if $\Dying=0$, $\Kind_{j}.\Grow \ne \Latent$,}
\\ \Latent       &\text{otherwise.}
  \end{cases}
 \]

  \begin{condition}\label{cond.creating}
  The default value of $\Creating_{j}$ is 1.
  The only rule changing $\Creating_{j}$ is $\Arbitrate$.
  \end{condition}
 \glo{arbitrate@$\Arbitrate$}
 \begin{program}
 rule $\Arbitrate$ \0{
\\   pfor $j\in\{-1,1\}$ do \0{
\\     cond  \0{
\\       ? $\Kind = \Latent$ and
  $\Kind_{-j}^{1.5j} \geor{j=1} \Kind_{j}^{-j}$
  and $\Creating_{j}^{-j}=0$
 \proglb{pg.arbitrate.sacrif}
\\       ! $\Kind:=\Vac$ 
\\       ? $\Kind \ne \Latent$ and
  ($\Kind_{-j}^{j}\geor{j=1}\Kind$ or $\Kind_{-j}^{1.5j}\geor{j=1}\Kind$)
 \proglb{pg.arbitrate.kill}
\\       ! $\Die(\p_{0})$
\\       ? $\Kind^{j}\ne \Vac$ 
\\       ! $\Creating_{j} := 0$
 \proglb{pg.arbitrate.vacant}
\\       ?! $\Creating_{j} := 1$
\\       }}}
\end{program}
  Part ~\eqref{pg.arbitrate.kill} erases a cell if another cell must be
put in its place (initiated by a non-dying cell) that is stronger or has
the same strength but is initiated from right.
  Part ~\eqref{pg.arbitrate.sacrif} erases a latent cell fast.
  This part will be \df{stronger than any other rule} possibly conflicting
with it (which, in other words, would just set some fields of the cell
instead of erasing it).
  The role of the condition $\Creating_{j}^{-j}=0$ will be seen in the next
lemma. 
  According to ~\eqref{pg.arbitrate.vacant}, the rule turns off
$\Creating_{j}(x)$ as soon as the job of creating the neighbor $x+jB$ is
done.

 \begin{remark}
  The rule also shows that the default value of $\Creating_{j}$ is 1.
  Therefore even a latent cell creates a neighbor if nothing is in the way.
  This will be used for the self-organization properties.
 \end{remark}

  The following lemma shows that the rules $\Arbitrate$ and $\Create$
indeed succeed in creating a new cell.
  Here, cell $x-B$ will create a cell at site $x$.
  Creation from the right is analogous.
  Let%
 \glo{t.greek@$\tau_{i}$}%
 \begin{equation}\label{e.tau_{i}}
  \tau_{i}  = (\p_{i}+1)\Tu.
 \end{equation}

\begin{lemma}[Creation]\label{l.creation}\index{lemma@Lemma!Creation}
  Assume the following, with $I=[t_{0}, t_{0} + \tau_{0} + 4\Tu]$:
 \begin{cjenum}
  \item $[x-B,x+2B]\times I$ is damage-free;
  \item $\eta(x-B,t).\Dying=0$ and
 \[
 \eta(x-B,t).\Kind_{1} \ge \eta(y,t).\Kind\vee \eta(y,t).\Kind_{-1}
 \]
  for all $(y,t)$ in $[x+,x+2B-]\times I$;
 \end{cjenum}
  Then $\eta(x,t)\ne\Vac$ for some $t$ in $I$.
\end{lemma}
  \begin{Proof}
  Let us assume, on the contrary, that $x$ is vacant during all of $I$, and
we will arrive at a contradiction.

  The conditions and the rule $\Arbitrate$ imply that we have
$\eta(x-B,t).\Creating_{1}=1$ at some $t_{1}\le t_{0}+\tau_{0}$ and this
stays so while $x$ is vacant.
  Now the rule $\Create$ requires that $x$ become a cell.
  However, Condition ~\ref{ax.comput} (Computation Property) requires $x$ to
actually become a cell by time $t_{1}+2\Tu$ only if the body of no existing
cell intersects with the body of $x$: see case ~\eqref{ax.comput.no-birth}.
  Suppose therefore that some cell $y$ intersects the body of $x$ during
$[t_{1}, t_{1}+2\Tu]$.

 \begin{step+}{create.long-nui}
  Suppose that $y$ does not disappear before $t_{0}+\tau_{0}$.
 \end{step+}
 \begin{prooof}
  Then part~\eqref{pg.arbitrate.vacant} of rule $\Arbitrate$ implies that
during this time, $\Creating_{-1}(y+B)$ becomes 0, hence $y+B$ loses the
ability to recreate $y$ fast.
  Part ~\eqref{pg.arbitrate.kill} of the same rule makes $y$ latent within
$\tau_{0}$ time units.
  Part ~\eqref{pg.arbitrate.sacrif} then erases $y$ within $2\Tu$ units of
time.

  Any new cell $y'$ causing a similar obstacle to creating $x$ could arise
only if $y+B$ creates it.
  Indeed, the only other way allowed by the Computation Property is case
~\eqref{ax.comput.newborn} there; however, this case, reserved for the
possible appearence of a latent cell out of ``nothing'', (indeed, out of
lower-order germs) requires $\thg_{j}(y',t)$ to be vacant for all $j$,
i.e.~that $y'$ have no (adjacent or non-adjacent) neighbors.
  But, $x-B$ would be such a neighbor, so $y'$ will not appear.

  Thus, $x$ will be created within $2\Tu$ time units after the
disappearence of $y$.
 \end{prooof}  

  \begin{step+}{create.short-nui}
  Suppose that $y$ disappears before $t_{0}+\tau_{0}$.
  \end{step+}
 \begin{prooof}
  If it does not reappear within $2\Tu$ time units then $x$ will be
created as above.
  Suppose therefore that $y$ reappears.
  When it reappears we necessarily have $\Creating_{-1}(y+B)=1$.
  This turns 0 within $\tau_{0}$ time units.
  After it turns 0, the rule $\Arbitrate$ erases $y$ within $2\Tu$ units of
time and then $x$ will be created in $2\Tu$ time units.
  Cell $y$ will not be recreated to prevent this since
$\Creating_{-1}(y+B)=0$ for at least $\p_{0}\Tl>4\Tu$ time units.
 \end{prooof}
  \end{Proof} % {l.creation}
  

\subsection{Animation, parents, growth}\label{ss.anim}

  A latent cell $\x$ can come to life by a rule in three ways: by the
rules $\Animate$, $\Heal$, or by starting to develop as a germ cell.
  The subrule $\Animate(j,p,\ldots)$, $j\in\{-1,1\}$, gives the new cell
the appropriate field values.

  The field $\Becoming$\glo{becoming@$\Becoming$} (default value 0, reset
when $\Animate$ is not applicable) is used to slow animation by its
assignment parameter $p$.
  The condition $\Dying=0$ in the rule below makes sure that (in
absence of damage) the mother is still alive when $\x$ becomes live.
  The subscript $\p_{0}$ in the last assignments makes sure that once the
decision is made to revive the cell, its age is set fast enough in order
that it does not stay much behind the age of the creating cell.
  This way, the created cell becomes a sibling of the creating one.%
 \glo{animate@$\Animate$}%
 \begin{program}
 subrule $\Animate(j,p,\F_{1},v_{1},\F_{2},v_{1},\ldots)$ \0{
 \\   cond \0{
 \\     ? $\Kind=\Latent$ and $\Dying^{j}=0$ and \2{(
 \\       ($\thg_{2j}(\x)$ \cmt{is a sibling of $\thg_{j}(\x)$ and
 $\Dying^{j}=\Dying^{2j}=0$}) 
 \\          or ($\Kind^{j}=\Germ$ and $\Addr^{j}=-Q$ and $\Dying^{j}=0$ and
 \\        \cmt{there is no non-germ neighbor towards $-j$})
            )}
 \\     ! cond \0{
 \\       ? $\Becoming=0$
 \\       ! $\Becoming:=_{p} 1$
 \\       ?! \prl pfor $i=1,2,\ldots$ do $\F_{i}:=_{\p_{0}} v_{i}$
          }
 \\     ?! $\Becoming:=_{\p_{0}} 0$
\\        }}
 \end{program}
  The cell $\thg_{j}(\x)$ used here is called the \df{mother cell}.
  In case the same result could also have arisen using cell $\thg_{-j}(\x)$
then the mother cell is the one closer to the center of its colony.

  The following lemma is immediate from the definition of the
animation rule.

\begin{lemma}[Animation
Support]\label{l.anim-supp}\index{lemma@Lemma!Animation Support}
  Suppose that
 \begin{cjenum}

  \item a cell $x$ has just been animated at time $t$ by a non-germ
neighbor $y=\thg_{j}(x)$ (this rule, with observation time $t'$ being a
possible explanation for its becoming live);

  \item $x+[-3B,4B]\times t+ [-3\Tu,0]$ is damage-free;

  \item there is no colony-boundary between $y$ and its sibling required
by the rule ;

 \end{cjenum}
  Then $y$ and its two siblings survive until after $t$.
 \end{lemma}

  \begin{proof}
  The animation requires a sibling for $y$ with both $y$ and the sibling
non-dying.
  Due to the minimum delay $\p_{0}$ in dying which they did not even
begin, these cells remain live till after $t$.
  Since there is no colony boundary between them, a cut will not break
the sibling relation of these cells either.
 \end{proof}

  Remember that whether a cell has kind $\Channel$ or $\Growth$ can be
determined from its age.
  Therefore it is sufficient to have one value%
 \glo{ext@$\Ext_{j}$}%
 \[
  \Ext_{j}
 \]
  in place of $\Growth_{j}$ and $\Channel_{j}$.
  Rules $\rul{Extend}$ and $\Grow$ both rely on the following subrules.%
 \glo{grow-step@$\rul{Grow-step}$}%
 \begin{program}
    subrule $\rul{Grow-step.active}(j)$ \0{
\\   cond  \0{
\\     ? $\Kind=\Germ$ \cmt{and $j$ points away from the colony center}
\\     ! $\Kind_{j}.\Grow:=\Germ$
\\     ? ($\Addr = \e_{j}$ or $\Kind=\Ext_{j}$) and $\Sib(-j)$
\\     ! $\Kind_{j}.\Grow := \Ext_{j}$ 
\\     ?! $\Kind_{j}.\Grow := \Latent$
\\     }}
 \end{program}
\begin{program}
  subrule $\rul{Grow-step.passive}(j)$ \0{
\\    cond \0{
\\     ? $\Kind=\Latent$ and $\Kind_{j}^{-j}\in\{\Germ,\Ext_{j}\}$
\\       and $\Kind_{j}^{-j}\geor{j=1} \Kind_{-j}^{j}$
\\     ! \cmt{if possible, make $\x$ consistent with $\thg_{-j}(\x)$ using}
\\       $\Animate(-j,\p_{2},\Kind,\Growth_{j},\ldots)$ 
\\       }}
 \end{program}
  The rule $\rul{Extend}$ serves to extend the channel in
direction $j$ during the computation time of the colony.
 \glo{extend@$\rul{Extend}$}%
 \begin{program}
    rule $\rul{Extend}$ \0{
\\    pfor $j=-1,1$ do \0{
\\      cond \0{
\\        ? $\Age\in[0, \cns{compute-start}-1]$ 
\\        ! $\rul{Grow-step.active}(j)$
\\        ? $\Age^{-j}\in[0, \cns{compute-start}-1]$
\\        ! $\rul{Grow-step.passive}(j)$
\\        }}}
 \end{program}
  The rule $\Grow$ depends on the fields
$\Growing_{j}$\glo{growing@$\Growing_{j}$}.
  The computation rule (to be defined below) turns this field to 1 in
all cells of the colony iff the field $\Creating_{j}$ in the big cell
represented by the colony has value 1.
  Otherwise, it will be 0 in all cells.
  The healing rule, to be given later, keeps this locally maintained
field constant throughout the extended colony.%
 \glo{grow@$\Grow$}%
 \begin{program}
 rule $\Grow$ \0{
\\ pfor $j=-1,1$ do \0{
\\   cond \0{
\\     ? $\Age\in[\cns{grow-start},\cns{grow-end}-1]$ and
         $\Growing_{j}=1$
\\     ! $\rul{Grow-step.active}(j)$
\\     ? $\Age^{-j}\in[\cns{grow-start},\cns{grow-end}-1]$
         $\Growing_{j}^{-j}=1$
\\     ! $\rul{Grow-step.passive}(j)$
\\     }}}
\end{program}
  For germs, the growth rule is similar.
  However, growth will proceed always to the right and the time intervals
in which it occurs will be defined later, in the germ program.


\subsection{Healing}\label{ss.heal-rule}

  Let $\F_{1}:=v_{1},\ldots,\F_{k}=v_{k}$ be an assignment changing some
fields of $\x$.
  This assignment is an \df{internal correction}\index{correction!internal}
if the following conditions hold:
  \begin{cjenum}

  \item For $j\in\{-1,1\}$, we have $\Dying^{j}=0$.
  Also, $\Frozen^{j}=1$ unless $\thg_{j}(\x)$ is a sibling of $\x$.

  \item After the assignment, but not before, $\x$ and its two neighbors
form a domain in which the following holds: for each locally maintained
field $\F$, if $\Age$ is not in the update interval of $\F$ (as defined
in Subsection ~\ref{ss.refreshing}) then $\F=\F^{j}$ for $j\in\{-1,1\}$.

  \item\label{i.heal.int.strong} In each direction $j$, the domain, with
constant values for the locally maintained fields, continues to the second
neighbor unless the first neighbor is a protected colony endcell towards
$j$.

 \end{cjenum}

  If $\x$ is latent and one of its neighbors is an endcell of its colony
protected in the direction away from $\x$ then the internal correction will
be called a \df{near-end-correction}\index{correction!near-end}.
  An assignment to make a non-germ cell is an \df{end-correction to the
right}\index{correction!end} if the following holds:
 \begin{cjenum}

  \item $\Dying^{-1}=0$.
  Also, $\Frozen^{-1}=1$ unless $\thg_{-1}(\x)$ is a sibling of $\x$.

  \item After the assignment, but not before, the following holds: $\x$ is
the right-protected right endcell of its colony with $\thg_{-1}(\x)$ in its
domain, with $\Age=\Age^{-1}$, and for each locally maintained field $\F$,
if $\Age$ is not in the update interval of $\F$ (as defined in Subsection
~\ref{ss.refreshing}) then $\F=\F^{-1}$;

  \item The domain, with constant values for the locally maintained fields,
continues to $\thg_{-2}(\x)$.

  \item If $\x$ is a right outer cell then $\Age\ge\cns{grow-end}$;

  \end{cjenum}
  End-corrections in the left direction are defined similarly.
  Note that end-correction does not create a germ cell.
  Each of the corrections above is called \df{mild} if it can be achieved
by only changing some locally maintained fields different from $\Age$
and $\Addr$.
  Internal corrections are called \df{weak} if ~\eqref{i.heal.int.strong}
is not required.
  Let us denote by%
 \glo{int-corr@$\var{Int-corr}(x)$, $\var{Int-corr}'(x)$}%
 \glo{end-corr@$\var{End-corr}_{j}(x)$}%
 \[
   \var{Int-corr}(x)=1,\ \var{End-corr}_{j}(x)=1
 \]
 the fact that an internal correction is possible in $x$ or that an
end-correction in direction $j$ is possible in $x$.
  The fact that a weak internal correction is possible will be denoted by%
 \[
   \var{Int-corr}'(x)=1.
 \]
  We need the notion of weak internal correction since cell $\x$ cannot
check $\var{Int-corr}(\thg_{-1}(\x))$ directly, only
$\var{Int-corr}'(\thg_{-1}(\x))$.
 \glo{heal@$\Heal$}%
 \begin{program}
  rule $\Heal$ \0{
\\  cond \0{
\\    ? $\var{Int-corr}(\x)=1$ and \2{
\\      \cmt{if} $\var{Int-corr}'(\thg_{-1}(\x))=1$ 
\\      \cmt{then that correction would result in a weaker cell $\thg_{-1}(x)$}
        }
\\    ! cond \0{
\\        ? \cmt{the correction is mild}
\\        ! \cmt{carry it out}
\\        ? $\Kind\ne\Latent$ 
\\        ! $\Die(\p_{0})$
\\        ?! \cmt{correct using $\Animate(j,\p_{0},\ldots)$
            for some $j\in\{-1,1\}$}
            }
\\    ? $\exists j\in\{-1,1\}$ $\var{End-corr}_{j}(\x)=1$ and \2{
 $\var{Int-corr}'(\thg_{-j}(\x))=0$ and
\proglb{pg.heal.far-nb}
\\      \cmt{$\x$ is no endcell in direction $-j$} and
        $\var{End-corr}_{-j}(\x)=0$
        and $\Kind_{j}^{-j}\geor{j=-1} \Kind_{-j}^{j}$
        }
\\    ! cond \0{
\\        ? \cmt{the correction is mild}
\\        ! \cmt{carry it out}
\\        ? $\Kind\ne\Latent$ 
\\        ! $\Die(\p_{0})$
\\        ?! \cmt{correct using $\Animate(j,\p_{0},\ldots)$}
          }
\\    ? $\exists j\in\{-1,1\}$ 
 \cmt{there is an end-correction in direction $j$ in $\thg_{j}(\x)$ 
   (then $j$ is unique)}
\\    ! $\Kind_{j}.\Heal := \Kind$;
\proglb{pg.heal.end-heal}
\\    ?! pfor $j\in\{-1,1\}$ do $\Kind_{j}.\Heal:=\Latent$;
\\    }}
\end{program}
  Part ~\eqref{pg.heal.far-nb} uses the fact that our cells have a reach
greater than 1, seeing their second neighbors.
  If an internal correction will be carried out then of the two neighbors
of $\x$, the one closer to the center of the colony is called the
\df{mother}\index{cell!mother} of $\x$ while the one farther from the
center is called the \df{father}\index{cell!father}.%
 \glo{purge@$\Purge$}
 \begin{program}
  rule $\Purge$ \0{
\\   cond \0{
\\     ? $\x$ \cmt{is isolated and 
             is not an endcell of a near-end-correction}
\\     ! $\Die(\p_{0})$
\\        }}
 \end{program}

 \begin{condition}[Animation]\label{cond.anim}
 \index{condition@Condition!Animation}\ 
 \begin{cjenum}

  \item 
  The only rules creating a live cell are $\Animate$ and $\rul{Birth}$;

  \item
  $\Animate$ will be applied only by $\Heal$ or $\rul{Grow-step}$, and it
will never create an exposed cell;

  \item
  The birth rule will be applied to cells with no live neighbors;

 \end{cjenum}
 \end{condition}


\begin{condition}[Killing]\label{cond.killing}
 \index{condition@Condition!Killing}\
 \begin{cjenum}

  \item The rule $\Die(p)$ is invoked always with $p\ge\p_{0}$;

  \item
  A cell can only be made vacant by the rule $\Arbitrate$;

  \item Only the following rules can kill a cell: $\Heal$, $\Arbitrate$,
$\Decay$, $\Purge$;

  \item A non-exposed edge can be killed only if a neighbor has
$\Kind_{j}\ne\Latent$.
  Setting $\Kind_{j}\ne\Latent$ happens only in the growth rules and in
end-healing;

  \end{cjenum}
 \end{condition}


  \subsection{Continuity}

  Our terminology turns out to be incestuous: a child cell can only be
created if it also becomes a sibling.
  
 \begin{lemma}[Parent]\label{l.parent}\index{lemma@Lemma!Parent}
  Suppose $(x,u)$ is not in any extended damage rectangle, and $x$
becomes animated.
  Then there is a $j\in\{-1,1\}$ and $t'\in[u-3\Tu+, u-\Tl/2]$
with the following properties.
  \begin{cjenum}

   \item\label{l.parent.rul}
  Some rule is applicable at time $t'$ invoking the animation of $x$ with
mother $x+jB$.

   \item\label{l.parent.gen}
  $x+jB$ has a state at time $t'$ that makes it a sibling of $(x,u)$.
  If the internal correction case of the healing rule applies then
$(x-jB,t')$ is a father of $(x,u)$;

   \item\label{l.parent.sib} 
  For any time $t\in [u-\Tu,u]$, if $x$ and its mother (resp.~father)
are not in any extended damage rectangle during $[t',t]$ then they are
siblings at $t$;

   \item\label{l.parent.choose-time}
  If $x$ is not affected by the damage via neighbors at time $u$ then
we can choose $t'>u-\Tu$.
   Also, $t'$ can be chosen anywhere before $u-\Tu$ if this is also
before the time projection of the damage rectangle.

  \end{cjenum}
 \end{lemma}
  \begin{proof}
  Since $x$ is not affected immediately by damage, legality implies
that the change is the delayed result of the application of
$\Animate$.

  \step{pf.l.parent.gen}{Let us prove ~\eqref{l.parent.rul} and
\eqref{l.parent.gen} first.}
  \begin{prooof}
  Suppose first that $x$ is not affected by the damage via neighbors
at time $u$.
  Then at the observation time $t'$ corresponding to the switch
$(x,u)$, we have the situation described by  ~\eqref{l.parent.gen}.

  Suppose now that $x$ is affected by the damage via neighbors at time
$u$.
  Then, according to Lemma ~\eqref{l.damage-altern}, it is not affected
via neighbors during $[u-3\Tu,u-2\Tu]$.
  Let $t$ be a switching time of $x$ in this interval (in a moment, we
will see that $t$ exists.)
  Then at the observation time $t'$ corresponding to the switch
$(x,t)$, we have the situation described by  ~\eqref{l.parent.gen}.
  Indeed, there are at most $4\lg$ steps of $x$ between $t$ and $u$; but
the delay parameter of $\Animate$ is at least $\p_{0}$, so since
~\eqref{e.p_{0}} implies $4\lg<\p_{0}$, the observation time $t'$ must have
occurred during the wait.
  \end{prooof} % l.parent.gen

  \step{pf.l.parent.sib}{Let us prove ~\eqref{l.parent.sib}.}
  \begin{prooof}
  According to Condition ~\ref{cond.anim} (Animation), the applied rule was
either $\Heal$ or $\rul{Grow-step}$.
  In the healing case, the parents are frozen and non-dying, therefore
they will not change their age for a while yet in any way but healing.

  In the growth case, the age of the child is made equal to the age of
the mother at a not much earlier time $t''$ since once animation has
been decided the assignment during animation happens fast (with delay
$\p_{0}$).
  Therefore the mother has time for at most one increase (with delay
$\p_{2}$) of age in $[t''-,u]$, and this will not break the sibling
relation.
  The mother (and father) does not die since the rule $\Die$ would have
announced this at least $\p_{0}\Tl$ time units earlier (see Condition
~\ref{cond.killing}) via the field $\Dying$ and this would have turned off
the animation or healing of $x$ (\eqref{e.p_{0}} implies
$\p_{0}\Tl>2\Tu$).%
 \end{prooof}%l.parent.sib
 \end{proof}%l.parent


\begin{lemma}[Glue]\label{l.glue}\index{lemma@Lemma!Glue}
  Suppose that the adjacent cells $x,x+B$ are siblings at time $t_{0}$,
and the damage does not intersect the rectangle
 \[
  (x,t_{0}) + [-2B,3B]\times[-4\Tu,\Tu].
 \]
  Suppose also that at the next moment that is a switching time of one of
them, this is a switching time of $x$ and this breaks the sibling relation.
  Then we have the following possibilities:
 \begin{djenum}

   \item a cut;

   \item $x-B$ was not a sibling of $x$ at the last observation time of $x$
and the switch kills $x$ by $\Heal$, $\Decay$ or $\Arbitrate$;

 \end{djenum}
 \end{lemma}

 \begin{Proof}\
  \begin{step+}{glue.rule}
  If a cell $x$ breaks a sibling relation by a rule then one of the
cases listed in the statement of the lemma holds.

  This follows from the definition of siblings, Conditions
~\ref{cond.addr-age} (Address and Age), \ref{cond.killing} (Killing) and
the healing rule.
  \end{step+}

  We will show that if neither of the possibilities listed in statement of
the lemma holds then the cells remain siblings.
  
  \begin{step+}{glue.new}
  Suppose that $x$ or $x+B$ were animated at some time in
$[t_{0}-\Tu,t_{0}]$; without loss of generality, suppose the latest such
time was $t_{1}$ and the cell was $x+B$.
   \end{step+}
  \begin{prooof}
  Then $x+B$ will be without an age change for at least $\p_{0}\Tl$
time units which, due to the fact that ~\eqref{e.p_{0}} implies
 $\p_{0} \ge 4\lg$, is longer than the whole period under consideration.
  If $x$ also underwent animation during this interval then the same
is true for it, hence the two cells remain siblings.
  Suppose therefore that $x$ has been live during $[t_{0}-\Tu,t_{0}]$.
  The rule $\Animate$ implies that $x+B$ is not a germ unless $x$ is
one of the parents.
  If $x$ is a parent of $x+B$ then Lemma ~\ref{l.parent} (Parent) implies
that the two cells remain siblings for at least $\Tu$ time units; after
this, both cells have seen each other as siblings and therefore Condition
~\ref{cond.addr-age} (Address and Age) shows that they remain siblings
until a cut or a death.

  Suppose that $x$ is not a parent of $x+B$.
  If it has changed its age within the last $4\Tu$ time units then it
will not change the age for a long time after, and the two cells remain
siblings.
  If it has not changed its age within this time then for at least
$2\Tu$ time units before the observation time before the animation, it
already is a partner of the mother $x+B$.
  The rule $\Freeze$ of Subsection ~\ref{ss.edges} implies then that
$x$ is frozen which keeps $x$ and $x+B$ siblings.
  \end{prooof} % glue.new

  \begin{step+}{glue.nonsib}
  Suppose now that both cells have been live during $[t_{0}-\Tu,t_{0}]$.
  \end{step+}
 \begin{prooof}
  If $x$ changes its age within this time then it will not change its
age soon and therefore remains a sibling.
  Suppose therefore that $x$ does not change its age during this
time. 
  If $x+B$ was a sibling all the time during $[t_{0}-\Tu,t_{0}]$ then $x$
sees that $x+B$ is a sibling and will not break the sibling relation.
  Suppose therefore that $x+B$ changes its age within this interval
and becomes a sibling of $x$ this way.
  Then $x$ had ample time before this age to observe that $x+B$ is a
partner.
  Therefore $x$ is frozen and will not change its age at the next
switch.%
 \end{prooof}% glue.sib
\end{Proof} % l.glue

 \begin{remark}\label{r.glue}
  The lemma essentially also holds if we exchange left for right and $x+B$
for $x-B$, with the following modification:

  In this case there is yet another possibility for $x$ to break the
sibling relation by a rule: namely, when $x$ is a doomed right end
membercell of its colony turning to $\Age=1$.
  Indeed, case ~\eqref{i.sib.doomed} of the definition of siblings says $x$
is not a sibling of its left neighbor anymore if this happens.
 \end{remark}

\begin{lemma}[Exposing]\label{l.exposing}\index{lemma@Lemma!Exposing}
  An edge turns into an exposed one by a rule only in the following cases:
 \begin{djenum}

  \item\label{exposing.doom}
   doomed right end membercell of its colony turning to $\Age=1$;

  \item\label{exposing.channel}
   channel cell, $\Age=\cns{idle-start}$;

  \item\label{exposing.germ-end}
   outer germ, $\Age=\cns{germ-end}-2Q$;

  \item\label{exposing.grow-end}
   growth, non-end, $\Age=\cns{grow-end}$;

  \item\label{exposing.germ-grow-end}
   germ cell, $\Age=\cns{germ-grow-end}$, except when it is an outer
edge of an outer colony endcell;

 \end{djenum}
 \end{lemma}
 \begin{proof}
  Direct consequence of the definition of siblings and exposed edges and
Conditions ~\ref{cond.addr-age} (Address and Age), \ref{cond.killing}
(Killing).
  \end{proof}

hd.tex
%\documentclass[oneside]{amsart} % For the journal
\documentclass{amsart}
%\documentclass[12pt]{article}

% \makeatletter
% \newenvironment{figure*}  % for endfloat+amsart, must come before endfloat
%                {\@dblfloat{figure}}
%                {\end@dblfloat}
% \makeatother

\usepackage{amssymb,enumerate,gacspf,gacs}
% \usepackage{amssymb,enumerate,gacspf,gacs,endfloat,doublespace}
% \usepackage{times}
% \usepackage{amsmath,amssymb,amsthm,enumerate,gacspf,gacs}


\topmargin=0in
\oddsidemargin=0.25in
\evensidemargin=0.25in
\textwidth=6in
\textheight=8in

%\includeonly{bibl}
% From the list of files below, you can include selectively
% front,intr,cod,hier,lat,defs,sim,rob,amp,
% plan,glue,gap,att,cmp,comm,germ,bibl

\makeatletter

\renewcommand\printindex[1]{\@input{\jobname.#1.ind}}% for amsart
% \newcommand\printindex[1]{\@input{\jobname.#1.ind}}%
\newenvironment{theglossary}{\begin{theindex}}{\end{theindex}}
\newcommand{\glo}{\glossary}

\makeglossary
\makeindex

\makeatother

\setlength{\vfuzz}{4pt} % to ignore trivial vertical overfull boxes

\pfshortnumbers{4} % Use short step numbers for all levels >= 3

%\renewcommand{\labelitemi}{$\m@th\circ$}

\numberwithin{equation}{section} % in amsmath
% \numberwithin{figure}{section} % in amsmath, does not work with endfloat

 \newcommand{\nam}[1]{{\text{\rmfamily\upshape\mdseries\HyphConv{#1}\/}}}
 \newcommand{\cns}[1]{(\text{\rmfamily\upshape\mdseries\HyphConv{#1}})}
 \newcommand{\fld}{\var}
 \newcommand{\rul}{\var}
 \newcommand{\prg}{\var}

% for doublespace
% \setstretch{1.7}

\begin{document}

\include{front}

\renewcommand\a {{a}} %?
\renewcommand\b {{b}} %?
\renewcommand\c {{c}} %?
\newcommand\e {{e}}
\newcommand\f {{f}}
\newcommand\F {\fld{F}}
\newcommand\g {{g}}
\newcommand\G {\fld{G}}
\newcommand\h {{h}}
\newcommand\fH {\fld{H}}
\newcommand\bw {{w}}
\newcommand\K {{K}}
\renewcommand\l {{l}}
\renewcommand\L {{L}}
\newcommand\n{{n}}
\newcommand\N {{N}}
\newcommand\p{{p}}
\newcommand{\bq}{{\mathbf{q}}} 
\renewcommand\r{{r}}
\newcommand{\br}{{\mathbf{r}}} 
\renewcommand{\S}{{S}}
\newcommand{\bs}{{\mathbf{s}}}
\newcommand\bu{{\mathbf{u}}} % was breve accent
\renewcommand\v {{v}}
\newcommand\w {{w}}
\newcommand\x{{\mathbf{x}}}
\newcommand\X {X}
\newcommand\Y {Y}
\newcommand\Z {Z}

\newcommand{\prt}{\mathbf{\pi}_{\text{t}}}
\newcommand{\prs}{\mathbf{\pi}_{\text{s}}}

\newcommand{\cmt}[1]{\textrm{\mdseries{#1}}} % for comments in programs

\newcommand{\cc}{\sqcup} % for concatenation
\newcommand{\bigcc}{\bigsqcup} 

\newcommand\CA {\var{CA}}
\newcommand\PCA {\var{PCA}}
\newcommand\CCA {\var{CCA}}
\newcommand\GCA {\var{GCA}}

\newcommand\cp{\var{Cap}}

\newcommand\Vac {\var{Vac}}

\newcommand\Start {\var{Start}}

\newcommand{\Undef}{\var{Undef}}


\newcommand\All {\fld{All}}
\newcommand\Inbuf {\fld{Inbuf}}
\newcommand\Outbuf {\fld{Outbuf}}
\newcommand\Buf {\fld{Buf}}
\newcommand\Pointer {\fld{Pointer}}
\newcommand\Memory {\fld{Memory}}
\newcommand{\legal}{\var{legal}}

\newcommand\Guard {\fld{Guard}}

\newcommand\Input {\fld{Input}}
\newcommand\Output {\fld{Output}}
\newcommand\Mail {\fld{Mail}}
\newcommand\Det {\fld{Det}}
\newcommand\Rand {\fld{Rand}}

\newcommand\trans {\var{Tr}}

\newcommand\Trans{}
\def\Trans-prob{\var{Trans-prob}} % no space before the first brace.

\include{intr}

\newcommand\Main{\fld{Main}}
\newcommand\Addr {\fld{Addr}}
\newcommand\Age {\fld{Age}}
\newcommand\Hold {\fld{Hold}}
\newcommand\Info {\fld{Info}}

\newcommand\Init {\var{Init}}

\include{cod}

\newcommand\Rider {\fld{Rider}}
\newcommand\univ {\var{Univ}}

\include{hier}

\newcommand\Loc {}
\def\Loc-distr{\var{Loc-distr}} % no space before the first brace.

\newcommand\Tu {{T^\bullet}}
\newcommand\Tl {{T_\bullet}}

\newcommand\Prim{}
\def\Prim-var{\var{Prim-var}}


\include{lat}

\newcommand{\type}{\var{Type}}

\include{defs}

\newcommand\Param{\var{Param}}

\makeatletter

\newcommand\amod{\mskip-\medmuskip\mkern5mu\mathbin
  {\operator@font amod}\penalty900
  \mkern5mu\mskip-\medmuskip}

\makeatother
 % why is the spacing erased after amod in inline math mode?

\newcommand\leor[1] {\stackrel{\scriptstyle #1}{<}}
\newcommand\geor[1] {\stackrel{\scriptstyle #1}{>}}

\newcommand\Prev {\fld{Prev}}
\newcommand\Cur {\fld{Cur}}

\newcommand\prl {\hbox{$\mskip\medmuskip\parallel\mskip\medmuskip$}}

\newcommand\sign {\mathop{\rm sign}\nolimits}

\newcommand\Cpt {\fld{Cpt}}
\newcommand\Copy {\rul{Copy}}
\newcommand\Write {\rul{Write}}
\newcommand\Retrieve {\rul{Retrieve}}
\newcommand\Eval {\rul{Eval}}
\newcommand\Status {\fld{Status}}
\newcommand\Fromaddr {\fld{Fromaddr}}
\newcommand{\Fromnb}{\fld{Fromnb}}

\newcommand\Nb {}
\def\Nb-ind{\var{Nb-ind}}
      
\newcommand\Latent {\var{Latent}}

\newcommand{\Rob}{\var{Rob}}

\newcommand\Wait {\fld{Wait}}
\newcommand\Kind {\fld{Kind}}

\newcommand\Compute{\rul{Compute}}
\newcommand\Growth {\var{Growth}}
\newcommand\Channel {\var{Channel}}
\newcommand\Sib {\var{Sib}}
\newcommand\Ext {\var{Ext}}
\newcommand\Member {\var{Member}}
\newcommand\Grow {\rul{Grow}}
\newcommand\Doomed{\fld{Doomed}}
\newcommand\Growing{\fld{Growing}}
\newcommand\Create{\rul{Create}}
\newcommand\Attrib{\rul{Attrib}}
\newcommand\Creating{\fld{Creating}}
\newcommand\Done{\fld{Done}}

\newcommand{\loc}{\var{loc}}

\newcommand\peer{\var{peer}}
\newcommand\Edge{\var{Edge}}

\newcommand{\Fickle}{\var{Fickle}}
\newcommand\ACA {\var{ACA}}

\include{sim}

\newcommand{\Color}{\var{Color}}
\newcommand\Bad {\var{Bad}}
\newcommand\Damage {\var{Damage}}

\newcommand{\LastMod}{\var{LastMod}}
\newcommand{\Pending}{\var{Pending}}
\newcommand{\Accepted}{\var{Accepted}}

\include{rob}

\newcommand\rep{R}

\newcommand\Frame {\var{Frame}}
\newcommand\Sim {\fld{Sim}}

\include{amp}

\newcommand\Redun{\fld{Redun}}
\newcommand\Fut{\fld{Fut}}

\newcommand{\Germ}{\var{Germ}}

\newcommand\Refresh {\rul{Refresh}}
\newcommand{\Purge}{\rul{Purge}}
\newcommand{\Heal}{\rul{Heal}}
\newcommand{\Decay}{\rul{Decay}}
\newcommand{\Animate}{\rul{Animate}}
\newcommand{\Control}{\fld{Control}}
\newcommand{\Frozen}{\fld{Frozen}}
\newcommand{\End}{\fld{End}}

\include{plan}

\newcommand{\Becoming}{\fld{Becoming}}
\newcommand{\Xposed}{\var{Xposed}}
\newcommand{\Freeze}{\rul{Freeze}}
\newcommand{\Dying}{\fld{Dying}}
\newcommand{\Die}{\var{Die}}
\newcommand{\Arbitrate}{\rul{Arbitrate}}

\newcommand{\Birth}{\rul{Birth}}
\newcommand{\Corr}{\var{Corr}}

\include{glue}

\include{gap}

\include{att}

\newcommand\Decode{\rul{Decode}}
\newcommand\Vote{\fld{Vote}}

\def\Broadcast{\rul{Broadcast}} 

\include{cmp}

\newcommand{\Port}{\fld{Port}}

\include{comm}

\newcommand{\Level}{\fld{Level}}
\newcommand{\Active}{\fld{Active}}

\include{germ}

\include{concl}

\include{bibl}

\end{document}


hier.tex
 \section{Hierarchy}\label{s.hier}

 \subsection{Hierarchical codes} \label{ss.hier}

  The present section may seem a long distraction from the main course of
exposition but many readers of this paper may have difficulty
imagining an infinite hierarchical structure built into a configuration of
a cellular automaton.
  Even if we see the possibility of such structures it is important to
understand the great amount of flexibility that exists while building it.
  Formally, a hiearchy will be defined as a ``composite code''.
  Though no decoding will be mentioned in this subsection, it is still
assumed that to all codes $\fg_{*}$ mentioned, there belongs a decoding
function $\fg^{*}$ with $\fg^{*}(\fg_{*}(x))=x$.

 \subsubsection{Composite codes}
  Let us discuss the hierarchical structure arising in an amplifier.
  If $\fg,\psi$ are two codes then $\fg\circ\psi$ is defined by
$(\fg\circ\psi)_{*}(\xi)=\fg_{*}(\psi_{*}(\xi))$ and
$(\fg\circ\psi)^{*}(\zg)=\psi^{*}(\fg^{*}(\zg))$.
  It is assumed that $\xi$ and $\zg$ are here configurations of the
appropriate cellular automata, i.e.~the cell body sizes are in the
corresponding relation.
  The code $\fg\circ\psi$\glo{"+@$\circ$} is called the
 \df{composition}\index{code!composition} of $\fg$ and $\psi$.

  For example, let $M_{1},M_{2},M_{3}$ have cell body sizes $1,31,31^{2}$
respectively.
  Let us use the code $\fg$ from Example ~\ref{x.block-code}.
  The code $\fg^{2}=\fg\circ\fg$ maps each cell $c$ of $M_{3}$ with body
size $31^{2}$ into a ``supercolony''\index{supercolony} of $31\cdot 31$
cells of body size 1 in $M_{1}$.
  Suppose that $\zg=\fg_{*}^{2}(\xi)$ is a configuration obtained by
encoding from a lattice configuration of body size $31^{2}$ in $M_{3}$,
where the bases of the cells are at positions $-480 + 31^{2} i$.
  (We chose -480 only since $480=(31^{2}-1)/2$ but we could have chosen any
other number.)
  Then $\zg$ can be broken up into colonies of size $31$ starting at
any of those bases.
  Cell 55 of $M_{1}$ belongs to the colony with base $47=-480+17\cdot 31$
and has address 8 in it.
  Therefore the address field of $\zg(55)$ contains a binary
representation of 8.
  The last bit of this cell encodes the 8-th bit the of cell (with base)
47 of $M_{2}$ represented by this colony.
  If we read together all 12 bits represented by the $\Info$ fields of
the first 12 cells in this colony we get a state $\zg^{*}(47)$ (we count
from 0).
  The cells with base $-15+31j$ for $j\in\ZZ$ with states
$\zg^{*}(-15+31j)$ obtained this way are also broken up into colonies.
  In them, the first 5 bits of each state form the address and the
last bits of the first 12 cells, when put together, give back the
state of the cell represented by this colony.
  Notice that these 12 bits were really drawn from $31^{2}$ cells of
$M_{1}$.
  Even the address bits in $\zg^{*}(47)$ come from different cells of
the colony with base 47.
  Therefore the cell with state $\zg(55)$ does not contain information
allowing us to conclude that it is cell 55.
  It only ``knows'' that it is the 8-th cell within its own colony
(with base 47) but does not know that its colony has address 17 within
its supercolony (with base $-15\cdot 31$) since it has at most one
bit of that address.

\begin{figure}
 \setlength{\unitlength}{0.2mm}
 \[
 \begin{picture}(600,150)
    \put(0, 0){\framebox(600, 150){}}

    \put(610, 0){\makebox(0,20)[l]{$\var{Prog}$}}

    \put(0,20){\line(1,0){600}}
    \put(610,20){\makebox(0,70)[l]{$\var{Info}$}}

    \put(0, 20){\makebox(80,70){$\var{Prog}^{*}$}}
    \put(80, 20){\line(0, 1){70}}
    \put(80, 20){\makebox(280,70){$\var{Info}^{*}$}}
    \put(360, 20){\line(0, 1){70}}
    \put(360, 20){\makebox(80,70){$\var{Worksp}^{*}$}}
    \put(440, 20){\line(0, 1){70}}
    \put(440, 20){\makebox(80,70){$\var{Addr}^{*}$}}
    \put(520, 20){\line(0, 1){70}}
    \put(520, 20){\makebox(80,70){$\var{Age}^{*}$}}

    \put(0,90){\line(1,0){600}}
    \put(610,90){\makebox(0,20)[l]{$\var{Worksp}$}}

    \put(0, 110){\line(1,0){600}}
    \put(610,110){\makebox(0,20)[l]{$\var{Addr}$}}

    \put(0, 130){\line(1,0){600}}
    \put(610,130){\makebox(0,20)[l]{$\var{Age}$}}

   \multiput(0,0)(20,0){30}{\line(0,1){3}}
 \end{picture}
 \]
 \caption{Fields of a cell simulated by a colony}
 \label{f.fields}
\end{figure}

 \subsubsection{Infinite composition}
  A code can form composition an arbitrary number of times with itself
or other codes.
  In this way, a hierarchical, i.e.~highly nonhomogenous, structure can
be defined using cells that have only a small number of states.
  A \df{hierarchical code}\index{code!hierarchical} is given by a sequence
 \glo{s.cap.s@$\SS_{k}$}%
 \glo{q.cap@$Q_{k}$}%
 \glo{f.greek@$\fg_{k*}$}%
	\begin{equation}\label{e.hier-code}
  (\SS_{k},Q_{k},\fg_{k*})_{k\ge 1}
 	\end{equation}
  where $\SS_{k}$ is an alphabet, $Q_{k}$ is a positive integer and 
$\fg_{k*}:\SS_{k+1}\to\SS_{k}^{Q_{k}}$ is an encoding function.
  Since $\SS_{k}$ and $Q_{k}$ are implicitly defined by $\fg_{k*}$ we can
refer to the code as just $(\fg_{k})$.

  We will need a composition $\fg_{1*}\circ\fg_{2*}\circ\cdots$ of
the codes in a hierarchical code since the the definition of the
initial configuration for $M_{1}$ in the amplifier depends on all codes
$\fg_{i*}$.
  What is the meaning of this?
  We will want to compose the codes ``backwards'', i.e.~in such a
way that from a configuration $\xi^{1}$ of $M_{1}$ with cell body size 1,
we can decode the configuration $\xi^{2}=\fg_{1}^{*}(\xi^{1})$ of $M_{2}$ with
cell body size $B_{2}=Q_{1}$, configuration $\xi^3=\fg_{2}^{*}(\xi^{2})$, of
$M_{3}$ with body size $B_{3}=Q_{1}Q_{2}$, etc.
  Such constructions are not unknown, they were used e.g.~ to define
``Morse sequences'' with applications in group theory as well in the theory
of quasicrystals (\cite{ItkisLevin94,Radin91}).

  Let us call a sequence $a_{1},a_{2},\ldots$\glo{a@$a_{k}$} with
 $0\le a_{k} < Q_{k}$
 \df{non-degenerate for $Q_{1},Q_{2},\ldots$}\index{non-degenerate} if there
are infinitely many $k$ with $a_{k}>0$ and infinitely many $k$ with
$a_{k}<Q_{k}-1$.
  The pair of sequences
 \begin{equation}\label{e.block-param}
   (Q_{k},a_{k})_{k=1}^{\infty}
 \end{equation}
  with non-degenerate $a_{k}$ will be called a \df{block
frame}\label{frame!block} of our hierarchical codes.
  All our hierarchical codes will depend on some fixed block frame, 
$((Q_{k},a_{k}))$, but this dependence will generally not be shown in the
notation. 

\begin{remarks}\
 \begin{enumerate}

  \item The construction below does not need the generality of an arbitrary
non-degenerate sequence: we could have $a_{k}=1$ throughout.
  We feel, however, that keeping $a_{k}$ general makes the construction
actually more transparent.

  \item  It is easy to extend the construction to degenerate sequences.
  If e.g.~$a_{k}=0$ for all but a finite number of $k$ then the process
creates a configuration infinite in right direction, and a similar
construction must be added to attach to it a configuration infinite in the
left direction.
 \end{enumerate}
 \end{remarks}

  For a block frame $((Q_{k},a_{k}))$, a finite or infinite sequence
$(s_{1},a_{1}),(s_{2},a_{2}),\ldots$ will be called
\df{fitted}\index{fitted sequence} to the hierarchical code $(\fg_{k*})$ if
 \[
  \fg_{k*}(s_{k+1})(a_{k})=s_{k}
 \]
 holds for all $k$.
  For a finite or infinite space size $N$, let %
 \glo{b.cap@$B_{k}$}%
 \glo{k.cap@$K(N)$}%
 \glo{o@$o_{k}$}%
 \glo{c.cap@$C_{k}(x)$}%
 \begin{align}
 \nn              B_{1} 	&= 1,
 \\\label{e.B_{k}}  B_{k} 	&= Q_{1}\cdots Q_{k-1} \for k>1,
 \\\label{e.K}    K = K(N)      &= \sup_{B_{k}<N} k+1,
 \\\nn            o_{k} 	&= -a_{1}B_{1} - \cdots - a_{k-1}B_{k-1},
 \\\label{e.C_{k}-x} C_{k}(x) &= o_{k} + xB_{k},
 \end{align}
  The following properties are immediate:
 \begin{equation}\label{e.C_{k}-prop}
 \begin{aligned}
      o_{1}               &= C_{1}(0) = 0,
\\    o_{k}		&= o_{k+1}+a_{k}B_{k},
\\      0               &\in  o_{k}+[0,B_{k}-1].
 \end{aligned}
 \end{equation}

  \begin{proposition}\label{p.fitted}
  Let us be given a fitted sequence $(s_{k},a_{k})_{k\ge 1}$.
  Then there are configurations $\xi^{k}$ of $M_{k}$ over $\ZZ$ such that
for all $k\ge 1$ we have
 \begin{align*}
   \fg_{k*}(\xi^{k+1})	&=  \xi^{k},
\\ \xi^{k}(o_{k})  	        &= s_{k}.
 \end{align*}
 \end{proposition}

  The infinite code we are interested in is $\xi^{1}$.
  Note that in this construction, $s_{k}$ is the state of the site
$o_{k}$ in configuration $\xi^{k}$ whose body contains the site 0.
  This site has address $a_{k}$ in a colony with base $o_{k+1}$ in
$\xi^{k+1}$.

 \begin{proof}
  Let%
 \glo{x.greek@$\xi^{i}_{k}$}%
 \begin{equation}\label{e.xi^{k}_{k}}
  \xi^{k}_{k}
 \end{equation}
 be the configuration of $M_{k}$ which has state $s_{k}$ at site $o_{k}$
and arbitrary states at all other sites $C_{k}(x)$, with the following
restriction in case of a finite space size $N$.
  Let $\xi^{k}_{k}\ne\Vac$ only for $k\le K=K(N)$ and
$\xi^{K}_{K}(o_{K}+z)\ne\Vac$ only if
 \begin{equation}\label{e.xi^{K}.defined}
  0 \le zB_{K} < N.
 \end{equation}
  Let 
 \begin{equation}\label{e.xi-i-k}
 \xi^{i}_{k} = \fg_{i*}(\fg_{(i+1)*}(\cdots \fg_{(k-1)*}(\xi^{k}_{k})\cdots))
 \end{equation}
 for $k>i\ge 1$.
  We have
 \begin{equation}\label{e.fitted.ext}
  \xi^{k}_{k+1}(o_{k})=\fg_{k*}(\xi^{k+1}_{k+1}(o_{k+1}))(a_{k})
 = \xi^{k}_{k}(o_{k})
 \end{equation}
  where the first equation comes by definition, the second one by
fittedness.
  The encoding conserves this relation, so the partial configuration
 $\xi^{i}_{k+1}(o_{k+1}+[0,B_{k+1}-1])$ is an
extension of $\xi^{i}_{k}(o_{k}+[0,B_{k}-1])$.
  Therefore the limit $\xi^{i}=\lim_{k} \xi^{i}_{k}$ exists for each $i$.
  Since $(a_{k})$ is non-degenerate the limit extends over the whole
set of integer sites.
\end{proof}

  Though $\xi^{1}$ above is obtained by an infinite process of encoding,
no infinite process of decoding is needed to yield a single
configuration from it: at the $k$-th stage of the decoding, we get a
configuration $\xi^{k}$ with body size $B_{k}$.

 \subsubsection{Controlling, identification}\label{sss.controlling}
  The need for some freedom in constructing infinite fitted sequences
leads to the following definitions.
  For alphabet $\SS$ and field $\F$ let%
 \glo{.@$\SS.\F$}%
 \[
   \SS.\F = \setof{w.\F: w\in \SS}.
 \]
  Then, of course, $\nm{\SS.\F}=|\F|$.
  Let $D=\{d_{0},\ldots,d_{|D|-1}\}\sbs [0,Q-1]$ be a set of addresses
with $d_{i}<d_{i+1}$.
  For a string $s$, let%
 \glo{.@$s(D).\F$}%
 \[
   s(D).\F
 \]
  be the string of values $(s(d_{0}).\F,\ldots,s(d_{|D|-1}).\F)$ so that
 \[
  s.\F =s([0,Q-1]).\F.
 \]
  Field $\F$ \df{controls}\index{controlling} an address $a$ in code
$\fg_{*}$ \df{via} function $\gg:\SS_{1}.\F\to\SS_{1}$\glo{g.greek@$\gg$}
if
 \begin{cjenum}
  \item For all $r\in\SS_{1}.\F$ there is an $s$ with $\fg_{*}(s)(a).\F=r$;
in other words, $\fg_{*}(s)(a).\F$ runs through all possible values for
this field as $s$ varies.

  \item For all $s$ we have $\fg_{*}(s)(a) = \gg(\fg_{*}(s)(a).\F)$;
in other words, the field $\fg_{*}(s)(a).\F$ determines all the other
fields of $\fg_{*}(s)(a)$.

 \end{cjenum}
  From now on, in the present subsection, whenever we denote a field
by $\F^{k}$ and a code by $\fg_{k*}$ we will implicitly assume that
$\F^{k}$ controls address $a_{k}$ in $\fg_{k*}$ unless we say otherwise.
  (The index $k$ in $\F^{k}$ is not an exponent.)
 
  Suppose that fields $\F^{1},\F^{2}$ are defined for cellular automata
$M_{1}$ and $M_{2}$ between which the code $\fg$ with blocksize $Q$ is
given.
  Suppose that set $D$ satisfies $|D| =  |\F^{2}|/|\F^{1}|$.
  We say that in $\fg_{*}$, field $\F^{1}$ over $D$ is
 \df{identified with}\index{field!identification} $\F^{2}$ if in any codeword
$\w=\fg_{*}(s)$, the string
 $\w(d_{0}).\F^{1}\cc\cdots\cc \w(d_{|D|-1}).\F^{1}$ is identical to
$s.\F^{2}$.
  Conversely, thus
$\w(d_{i}).\F^{1}=s.\F^{2}([i|\F^{1}|,(i+1)|\F^{1}|-1])$.
  The identification of $\F^{2}$ with $\F^{1}$ over $D$ implies that if a
simulation has error-correction in $\F^{1}$ over $D$ then the information
restored there is $s.\F^{2}$.
 
 \begin{example}\label{x.control-identif}
  Consider the simulation outlined in Subsection ~\ref{ss.ftol-block}, and
let us call the encoding $\fg_{*}$.
  Let $\F^{1}$ be the $\Info$ field of $M_{1}$: we denote it by
$\Info^{1}$.
  Assume further that the simulated medium $M_{2}$ is of a similar type, so
it has an $\Info^{2}$ field.
  Assume for simplicity 
 \[
   6\mid Q,\qq |\Info^{1}| = 2,\qq |\Info^{2}| = Q/3.
 \]
  The $\Info^{1}$ field of cells in interval $[0,Q/3-1]$ of a simulating
colony represents the whole state of a simulated cell of $M_{2}$.
  The $\Info^{1}$ field on $[Q/3,Q-1]$ is only used for redundancy.
  Only a segment of the $\Info^{1}$ field of $[0,Q/3-1]$, say the one on
$[0,Q/6-1]$ is used to represent $\Info^{2}$ of the simulated cell.
  The rest is used for encoding the other fields.
  Hence $\Info^{1}$ on $[0,Q/6-1]$ is identified with $\Info^{2}$ in our
code $\fg_{*}$. 

  Let $s'=\fg_{*}(s)(1)$ be the state of the cell with address 1 of a
colony of $M_{1}$ which is the result of encoding state $s$ of $M_{2}$.
  Let $s'.\Info^{1}$ be the third and fourth bits of $s.\Info^{2}$,
$s'.\Addr=1$, and $s'.\F=0$ for all fields different from these two.
  Then $\Info^{1}$ controls address 1 in the code $\fg_{*}$.
 \end{example}
\begin{figure}
 \setlength{\unitlength}{0.2mm}
 \[
 \begin{picture}(600,150)
    \put(0, 0){\framebox(600, 150){}}

    \put(610, 0){\makebox(0,20)[l]{$\var{Prog}^{1}$}}

    \put(0,20){\line(1,0){600}}
    \put(610,20){\makebox(0,70)[l]{$\var{Info}^{1}$}}

    \put(0, 20){\makebox(80,70){$\var{Prog}^{2}$}}
    \put(80, 20){\line(0, 1){70}}
    \put(80, 20){\makebox(280,70){$\var{Info}^{2}$}}
    \put(360, 20){\line(0, 1){70}}
    \put(360, 20){\makebox(80,70){$\var{Worksp}^{2}$}}
    \put(440, 20){\line(0, 1){70}}
    \put(440, 20){\makebox(80,70){$\var{Addr}^{2}$}}
    \put(520, 20){\line(0, 1){70}}
    \put(520, 20){\makebox(80,70){$\var{Age}^{2}$}}

    \put(0,90){\line(1,0){600}}
    \put(610,90){\makebox(0,20)[l]{$\var{Worksp}^{1}$}}

    \put(0, 110){\line(1,0){600}}
    \put(610,110){\makebox(0,20)[l]{$\var{Addr}^{1}$}}

    \put(0, 130){\line(1,0){600}}
    \put(610,130){\makebox(0,20)[l]{$\var{Age}^{1}$}}

    \put(80,0){\dashbox{5}(20, 150){}}
    \put(80,0){\makebox(20, 20){0}}

   \multiput(0,0)(20,0){30}{\line(0,1){3}}
 \end{picture}
 \]
 \caption[Control and identification]{Assume that in the code of this
figure, $\protect\var{Addr}$, $\protect\var{Age}$ and
$\protect\var{Worksp}$ are constant and $\protect\var{Prog}^{1}$ has always
0 in its position 4.
  Then address 4 is controlled by $\protect\var{Info}^{1}$, and
$\protect\var{Info}^{2}$ is identified with $\protect\var{Info}^{1}$ over
the addresses 4-17.}
 \label{f.control}
\end{figure}
  If for each address $a$, the field $\F^{1}$ over $\{a\}$ is identified
with $\F^{2}$ then we say that $\F^{2}$ is \df{broadcast}\index{broadcast}
to $\F^{1}$ (since this means that the code copies the value of $s.\F^{2}$
into the $\F^{1}$ field of each cell of $\fg_{*}(s)$).

  Let us be given%
 \glo{ps.greek.cap@$\Psi$}%
 \begin{equation}\label{e.primi-shared}
   \Psi=((\SS_{k},Q_{k},\fg_{k*},\F^{k},\gg_{k},a_{k}) : k\ge 1)
 \end{equation}
  where $1\le a_{k}\le Q_{k}-2$, such that in code $\fg_{k*}$,
 \begin{cjenum}
  \item $\F^{k}$ over $\{a_{k}\}$ is identified with $\F^{k+1}$;
  \item $\F^{k}$ controls address $a_{k}$ for $\fg_{k*}$ via $\gg_{k}$;
 \end{cjenum}
  Such a system of fields $\F^{k}$ will be called a \df{primitive shared
field}\index{field!shared!primitive} for the hierarchical code
$(\fg_{k*})$.
  If also each code $\fg_{k*}$, broadcasts $\F^{k+1}$ into $\F^{k}$ then we
will say that the fields $\F^{k}$ form a \df{broadcast
field}\index{field!broadcast}.
  Note that the field still controls only a single address $a_{k}$.
  The $\fld{Main-bit}$ field mentioned in Subsection ~\ref{ss.col} would be
an example.

  \begin{proposition}\label{p.fitted-constr}
  For any hierarchical code with primitive shared field given as in
~\eqref{e.primi-shared} above, for all possible values
$u_{1}\in\SS_{1}.\F^{1}$ the infinite sequence $(s_{k},a_{k})_{k\ge 1}$ with
$s_{k}=\gg_{k}(u_{1})$ is fitted.
 \end{proposition}

  The proof is immediate from the definitions.

  Let us denote the configurations $\xi^{1},\xi^{1}_{k}$ that belong to this
fitted infinite sequence according to Proposition ~\ref{p.fitted} (and
its proof) by%
 \glo{g.greek.cap@$\Gg(u_{1};k,\Psi)$}%
 \begin{equation}\label{e.Gg.primi}
 \begin{aligned}
       \xi^{1}     &= \Gg(u_{1};\Psi)=\Gg(u_{1}),
\\     \xi^{1}_{k}   &= \Gg(u_{1};k,\Psi)=\Gg(u_{1};k).
 \end{aligned}
 \end{equation}

\subsubsection{Coding an infinite sequence}\label{sss.hier.infin-seq}
  Let us show now how a doubly infinite sequence of symbols can be
encoded into an infinite starting configuration.

  Let us be given%
 \glo{q@$q_{k}$}%
 \begin{equation}\label{e.shared}
   \Psi=(\SS_{k},Q_{k},\fg_{k*},\F^{k},q_{k},\gg_{k},a_{k})_{k\ge 1}
 \end{equation}
  where $2\le q_{k}\le Q_{k}$ and the sequence $a_{k}$ is non-degenerate, 
such that in code $\fg_{k*}$,
 \begin{cjenum}
  \item $\F^{k}$ over $[0,q_{k}-1]$ is identified with $\F^{k+1}$;
  \item $\F^{k}$ controls address $a_{k}$ for $\fg_{k*}$ via $\gg_{k}$;
 \end{cjenum}
  Such a system will be called a \df{shared field}\index{field!shared} for
the fields $\F^{k}$, and the hierarchical code $(\fg_{k*})$, and the fields
$\F^{k}$ will be denoted as%
 \glo{f.cap@$\F^{k}(\Psi)$}%
 \[
   \F^{k}(\Psi).
 \]
  The identification property implies that for all $0\le a<q_{k}$, we
have
  \begin{equation}\label{e.identif}
  \fg_{k*}(s)(a).\F^{k} = s.\F^{k+1}([a|\F^{k}|,(a+1)|\F^{k}|-1]).
  \end{equation}

 \begin{example}\label{x.err-corr-code}
  Let us show some examples of codes $\fg_{k}$ in which $\F^{k}$ over
$[0,q_{k}-1]$ is identified with $\F^{k+1}$.

  A code $\psi=(\psi_{*}, \psi^{*})$ with $\psi^{*}: R^{Q}\to S$ will be called
\df{$d$-error-correcting with blocksize $Q$}\index{code!error-correcting}
if for all $u,v$, if $u$ differs from $\psi_{*}(v)$ in at most $d$ symbols
then $\psi^{*}(u)=v$.
  Assume that both $R$ and $S$ are of the form $\{0,1\}^{n}$ (for different
$n$).
  A popular kind of error-correcting code are codes $\psi$ such that
$\psi_{*}$ is a linear mapping when the binary strings in $S$ and $R^{Q}$
are considered vectors over the field $\{0,1\}$.
  These codes are called \df{linear codes}\index{code!linear}.
  It is sufficient to consider linear codes $\psi$ which have the property
that for all $s$, the first $|S|$ bits of the codeword $\psi_{*}(s)$ are
identical to $s$: they are called the
 \df{information bits}\index{code!bits!information}.
  (If a linear code is not such, it can always be rearranged to have this
property.)
  In this case, the remaining bits of the codeword are called
\df{error-check bits}\index{code!bits!error check}, and they are linear
functions of $s$.
  Applying such linear codes to our case, for $s\in \SS_{k+1}$, let
 \[
   \w = \fg_{k*}(s).
 \]
  Then we will have
 \[
  \sqcup_{0 \le a < Q_{k}} \w(a).\F^{k} = \psi_{k*}(s.\F^{k+1})
 \]
  for a linear code $\psi_{k}$ whose information bits are in
 $\sqcup_{0 \le a < q_{k}} \w(a).\F^{k}$ and error-check bits are in
 $\sqcup_{q_{k} \le a < Q_{k}} \w(a).\F^{k}$.
  For $d=1$, if we are not trying to minimize the amount of redundancy in
the error correction then we may want to use the tripling method outlined
in Subsection ~\ref{ss.ftol-block} and Example ~\ref{x.control-identif},
which sets $q_{k}=Q_{k}/3$.
  In this case, the error-check bits simply repeat the original bits twice
more.
\begin{figure}
 \setlength{\unitlength}{0.25mm}
 \[
 \begin{picture}(600,150)
    \put(0,20){\framebox(600,40){}}
    \put(-10,20){\makebox(0,40)[r]{$\var{F}^{k}$}}

    \put(0,20){\makebox(440,40){Information bits of $\var{F}^{k+1}$}}
    \put(440,20){\makebox(160,40){Error-check bits of $\var{F}^{k+1}$}}

    \put(440,20){\line(0,1){40}}
    \multiput(0,20)(20,0){30}{\line(0,1){3}}

    \put(440,5){\makebox(0,0)[t]{$q_{k}$}}
 \end{picture}
 \]
 \caption{Error-correcting code in a shared field}
 \label{f.shared}
\end{figure}
 \end{example}

 \begin{example}\label{x.RS-code}\index{code!Reed-Solomon}
  In a digression that can be skipped at first reading, let us define the
more sophisticated linear code we will be using in later construction (a
generalization of the so-called Reed-Solomon code, see ~\cite{Blahut83}).

  Let our codewords (information symbols and check symbols together) be
binary strings of length $\N\l$\glo{n.cap@$\N$}\glo{l@$\l$} for some $\l$,
$\N$.
  Binary strings of length $\l$ will be interpreted as elements of the
Galois field $GF(2^{\l})$\index{Galois field}\glo{gf@$GF(2^{\l})$} and
thus, each binary string $\c$ of length $\N\l$ will be treated as a vector
$(\c(0),\ldots,\c(\N - 1))$ over $GF(2^{\l})$.
  (Note that the word ``field'' is used in two different senses in the
present paper.)
  Let us fix $\N$ distinct nonzero elements
$\ag_{i}$\glo{a.greek@$\ag_{i}$} of $GF(2^{\l})$ and let $t < \N/2$ be an
integer.
  The codewords are those vectors $\c$ that satisfy the equation
 \begin{equation}\label{e.RS-code}
  \sum_{i = 0}^{\N - 1}\ag_{i}^{j}\c(i).\F^{k} = 0\ (j = 1,\ldots, 2t)
 \end{equation}
  where the addition, multiplication and taking to power $j$ are
performed in the field $GF(2^{\l})$.
  These are $2t$ linear equations.
  If we fix the first $\N - 2t$ elements of the vector in any way, (these
are the information symbols) the remaining $2t$ elements (the error check
symbols) can be chosen in a way to satisfy the equations, by solving a set
of $2t$ linear equations.
  This set of equations is always solvable, since its determinant is a
Vandermonde determinant.

  Below, we will show a procedure for correcting any $\nu \le t$ nonzero
errors.
  This shows that for the correction of error in any $\le t$ symbols, only
$2t$ error-check symbols are needed.

  If $E = (e_{0},\ldots, e_{\N - 1})$ is the sequence of errors then the
word that will be observed is $C + E$.
  Only $e_{i_{\r}}$ are nonzero for $\r=1,\ldots,\nu$.
  Let $Y_{\r}=e_{i_{\r}}, X_{\r}=\ag_{i_{\r}}$.
  Then we define the \df{syndrome} $S_{j}$ for $j=1,\ldots,2t$ by
 \begin{equation}\label{e.S_{j}}
	S_{j} = \sum_{i} (c_{i}+e_{i})\ag_{i}^{j}
		= \sum_{i} e_{i}\ag_{i}^{j} 	
	   	= \sum_{\r} Y_{\r} X_{\r}^{j}
 \end{equation}
  which can clearly be computed from the codeword: it is the amount by
which the codeword violates the $j$-th error check equation.
  We will show, using the last expression, that $Y_{\r}$ and $X_{\r}$ can be
determined using $S_{j}$.
  We first define the auxiliary polynomial
 \[
	\Lg(x)=\prod_{\r}(1-xX_{\r})=\sum_{s=0}^{\nu} \Lg_{s} x^{s}
 \]
  whose roots are $X_{\r}^{-1}$.
  Let us show how to find the coefficients $\Lg_{s}$ for $s>0$.
  We have, for any $\r = 1,\ldots, \nu$, and any $j = 1, \ldots, 2t - \nu$:
 \[
	0	= Y_{\r}X_{\r}^{j+\nu}\Lg(X_{\r}^{-1})		
		= \sum_{s} \Lg_{s} Y_{\r} X_{\r}^{j+\nu-s}.     
 \]
  Hence, summing for $\r$, 
 \begin{equation}\label{e.key}
	0 = \sum_{s = 0}^{\nu} \Lg_{s}(\sum_{\r} Y_{\r} X_{\r}^{j+\nu-s})
	= \sum_{s = 0}^{\nu} \Lg_{s} S_{j+\nu-s}\ (j = 1,\ldots, 2t - \nu)
 \end{equation}
  hence using $\Lg_{0}=1$,
 $\sum_{s=1}^{\nu} \Lg_{s} S_{j+\nu-s}=-S_{j+\nu}$.
  This is a system of linear equations for $\Lg_{s}$ whose coefficients are
the syndroms, known to us, and whose matrix $M_{\nu}$ is nonsingular.
  Indeed, $M_{\nu} = ABA^{T}$ where $B$ is the diagonal matrix
$\ang{Y_{\r}X_{\r}}$ and $A$ is the Vandermonde matrix $A_{j,\r}=X^{j-1}_{\r}$.

  A decoding algorithm now works as follows.
  For $\nu = 1,2,\ldots,t$, see if $M$ is nonsingular, then compute
$\Lg(x)$ and find its roots by simple trial-and-error, computing
$\Lg(\ag{i}^{-1})$ for all $i$.
  Then, find $Y_{\r}$ by solving the set of equations ~\eqref{e.S_{j}} and
see if the resulting corrected vector $C$ satisfies ~\eqref{e.RS-code}.
  If yes, stop.

  (There is also a faster way for determining $\Lg(x)$, via the Euclidean
algorithm, see ~\cite{Blahut83}).

  To make the code completely constructive we must find an effective
representation of the field operations of $GF(2^{\l})$.
  This finite field can be efficiently represented as the set of remainders
with respect to an irreducible polynomial of degree $\l$ over $GF(2)$, so
what is needed is a way to generate large irreducible polynomials.
  Now, it follows from the theory of fields that
 \[
	x^{2\cdot 3^{s}} + x^{3^{s}} +1 
 \]
  is irreducible over $GF(2)$ for any $s$.
  So, the scheme works for all $\l$ of the form $2\cdot 3^{s}$.
 \end{example}

  In a hierarchical code, with a shared field, there is a function
$\X(y)$ with the property that site $y$ of the original information
will map to site $\X(y)$ in the code.
  To define this function, let%
 \glo{b.cap@$B'_{k}$}%
 \glo{o@$o'_{k}$}%
 \glo{c.cap@$C'_{k}(y)$}%
 \[
   B'_{k},o'_{k},C'_{k}(y)
 \] 
  be defined like $B_{k},o_{k},C_{k}(y)$ but using $q_{k}$ in place of $Q_{k}$.
  For all $k$, every integer $y$ can be represented uniquely in the
form
 \begin{equation}\label{e.number-repr.q}
  y = \sum_{i=1}^{k}(y'_{i}-a_{i})B'_{i}
 \end{equation}
  where $0\le y'_{i}< q_{i}$ for $i<k$.
  Since $(a_{k})$ is non-degerate for $(q_{k})$, this is true even with
$k=\infty$, in which case the above sum is finite.
  Let%
 \glo{x.cap@$\X(y, i; k, \Psi)$}%
 \begin{equation}\label{e.shared.X^{i}}
 \begin{aligned}
  \X(y, i; k) =
 \X(y, i;  k, \Psi) &= \sum_{m=i}^{k} (y'_{m} - a_{m}) B_{m},
 \\    \X(y, i)	    &=   \X(y, i; K(N)), 
 \\    \X(y; k)     &=   \X(y, 1; k), 
 \\    \X(y)        &=   \X(y, 1; K(N)),
 \end{aligned}
 \end{equation}
  Define the same notation for $\X'$ with $B'_{k}$ instead of $B_{k}$.
  Notice that $\X(0,i)=\X'(0,i)=0$, $\X'(y,1)=y$.
  Clearly, the sites of form $o_{i}+\X(y,i;k)$ for all possible $y$ will
form a lattice of distance $B_{i}$.
  If $i<k$ then the definitions give
 \begin{equation}\label{e.X-i-prop}
  o_{i} + \X(y, i; k) = o_{i+1} + \X(y, i + 1; k) + y'_{i} B_{i}.
 \end{equation}
  Using the notation $\ig_{Q}$ introduced in ~\ref{sss.string-codes}, let
us define the aggregated configurations%
 \glo{r.greek@$\rg^{k}$}% 
 \begin{equation}\label{e.rg^{k}}
  \rg^{k} = \ig_{B'_{k}*}(\rg)
 \end{equation}
  of body size $B'_{k}$ over $\ZZ$.
  Then, of course,
 \begin{equation}\label{e.aggreg.step}
  \rg^{k+1} = \ig_{q_{k}*}(\rg^{k}).
 \end{equation}
  Let 
 \glo{visible@$\var{Visible}(k,N)$}%
 \begin{equation}\label{e.Visible}
 \begin{aligned}
  \var{Visible}(k,N) &= \setof{y: 0 \le y - o_{K} < NB'_{K}/B_{K}}.
\\ &= \bigcup_{0 \le zB_{k} < N}C'_{k}(z)
 \end{aligned}
 \end{equation}
  Then $\X(y)$ is defined whenever $y\in\var{Visible}(k,N)$, i.e.~the
symbols $\rg(y)$ can be recovered after encoding
whenever $y$ is in this interval.


 \begin{proposition}\label{p.shared}
  For a hierarchical code with a shared field as given in
~\eqref{e.shared}, for an arbitrary configuration $\rg=\rg^{1}$ in
$(\SS_{1}.\F^{1})^{\ZZ}$, there are configurations $\xi^{k}$ over $\ZZ$ such
that for all $k\ge 1$, $y\in\ZZ$ we have
 \begin{align}
\label{e.shared.coding}
   \fg_{k*}(\xi^{k+1}) 		&=  \xi^{k},
\\\label{e.shared.comput}
 \xi^{1}(\X(y)).\F^{1}		&=  \rg^{1}(y).
 \end{align}
  More generally, we have
 \begin{equation}\label{e.X-y-i}
 \xi^{i}(o_{i}+\X(y,i)).\F^{i}  =  \rg^{i}(o'_{i}+\X'(y,i))
 \end{equation}
  for $1\le i\le k$.
  If the space is $\ZZ_{N}$ for a finite $N$ then all these configurations
with the above properties exist for all $k$ with $B_{k}\le N$, and
~\eqref{e.shared.comput} holds whenever $y\in\var{Visible}(K(N),N)$.
 \end{proposition}

\begin{Proof}  The proof is mechanical verification: we reproduce it here
only to help the reader check the formalism.
 \begin{step+}{shared.constr}
  Let us construct $\xi^{k}$.
 \end{step+}
  \begin{prooof}
  For infinite space size, let
 \begin{equation}\label{e.shared.xi_{k}}
   \xi^{k}_{k}(C_{k}(y)) = \gg_{k}(\rg^{k}(C'_{k}(y))).
 \end{equation}
  For finite space size $N$, define the above only for $B_{k}\le N$ and
$y$ in $[0,\flo{N/B_{k}}-1]$, where $C_{k}(y)$ on the left-hand side is
taken $\pmod N$.
  In all other sites $x$, let $\xi^{k}_{k}(x)=\Vac$.
  Let $\xi^{i}_{k}$ be defined again by ~\eqref{e.xi-i-k}.
  We define $\xi^{i}$ as in the proof of Proposition ~\ref{p.fitted}.
  It is sufficient to show ~\eqref{e.fitted.ext} again to prove that
the limits in question exist.
  By definition,
 \[
\xi^{k}_{k+1}(o_{k}) = \fg_{k*}(\xi^{k+1}_{k+1}(o_{k+1}))(a_{k})
= \fg_{k*}(\gg_{k+1}(\rg^{k+1}(o'_{k+1})))(a_{k}).
 \]
  By the controlling property, its $\F^{k}$ field $r$ completely determines
the last expression via $\gg_{k}$.
  By the identification property ~\eqref{e.identif} and
the aggregation property ~\eqref{e.aggreg.step},
 \[
   r=\rg^{k+1}(o'_{k+1})([a_{k}B'_{k},(a_{k}+1)B'_{k}-1]) 
   = \rg^{k}(o'_{k+1}+a_{k}B'_{k})=\rg^{k}(o'_{k}).
 \]
  By definition, $\xi^{k}_{k}(o_{k})=\gg_{k}(\rg^{k}(o'_{k}))$ which proves the
statement. 
 \end{prooof}

  \begin{step+}{shared.comput}
  Let us show ~\eqref{e.X-y-i}.
  \end{step+}
 \begin{pproof}
  We use induction on $i$, from $k$ down to 1.
  The case $i=k$ says 
 \[
  \xi^{k}(C_{k}(y'_{k}-a_{k})).\F^{k} = \rg^{k}(C'_{k}(y'_{k}-a_{k}))
 \]
  which follows from the definition of $\xi^{k}$.
  Assume that the statement was proved for numbers $>i$: we prove it
for $i$.
 By the definitions of $\X(y,i)$ and $\xi^{i}$ and by ~\eqref{e.X-i-prop}
we have
 \begin{multline}\label{e.X-y-i-rel.1}
\xi^{i}(o_{i}+\X(y,i)) =  \xi^{i}(o_{i+1}+\X(y,i+1)+y'_{i}B_{i})
\\  = \fg_{i*}(\xi^{i+1}(o_{i+1}+\X(y,i+1)))(y'_{i}) = \Dg_{1}.
 \end{multline}
  By induction,
 \[
   \xi^{i+1}(o_{i+1}+\X(y,i+1)).\F^{i+1}
  = \rg^{i+1}(o'_{i+1}+\X'(y,i+1)) = \rg^{i+1}(z)
 \]
  where $z = o'_{i+1}+\X'(y,i+1)$ can also be written in the form
$C'_{i+1}(x)$ for some $x$.
  Now we have, by the identification property~\eqref{e.identif} and
the aggregation property~\eqref{e.aggreg.step}
 \begin{equation}\label{e.X-y-i-rel.2}
\Dg_{1}.\F^{i} = \rg^{i}(z+y'_{i}B'_{i}) = 
 \rg^{i}(o'_{i+1}+\X'(y,i+1)+y'_{i}B'_{i}) = \rg^{i}(o'_{i}+\X'(y,i))
 \end{equation}
  where the third equality is implied by the definition of
$\X'(y,i)$.
 \end{pproof}% shared.comput
 \end{Proof}% shared

  In analogy with~\eqref{e.Gg.primi}, we will denote this code as
follows:%
 \glo{g.greek.cap@$\Gg(\rg; k, \Psi)$}%
 \begin{equation}\label{e.Gg.shared}
 \begin{aligned}
     \xi^{1}_{k}   &= \Gg(\rg; k,\Psi)=\Gg(\rg;k),
\\   \xi^{1}     &= \Gg(\rg; \infty, \Psi)=\Gg(\rg; \Psi)=\Gg(\rg).
 \end{aligned}
 \end{equation}
  $\Gg$ is the \df{limit code}\index{code!limit} with \df{approximations}
$\Gg(\cdot;k)$\index{code!limit!approximation}
 and the function $\X(y)$ is the \df{site map}\index{site!map} of the
system $\Psi$.
  Note that for finite space size $N$, we have $\Gg(\rg)=\Gg(\rg;k)$
for the largest $k$ with $B_{k}\le N$.

  The proof also shows that $\X(y;k)$ plays the role of the site map
for the approximation:
 \begin{equation}\label{e.shared.comput.approx}
 \xi^{1}_{k}(\X(y;k)).\F^{1} = \rg^{1}(y),
 \end{equation}

  The growth of the quotients $\X(y)/y$ is a measure of how the infinite
code stretches its input, i.e.~of the
 ``space redundancy''\index{redundancy!space}.
  (Strictly speaking, the redundancy is defined as $\X(y)/y - 1$.)  
  The value $\X(y;k)/y$ for each approximating code is limited since it
stretches blocks of size $B'_{k}$ into blocks of size $B_{k}$.
  If a code has $q_{k}=Q_{k}$ as in the example below then $\X(y)=y$.

 \begin{example}\label{x.no-stretch}
  Let us show a variant of Example ~\ref{x.err-corr-code} with
$q_{k}=Q_{k}$.
  The details can be skipped at first reading.

  Field $\F^{k}$ is a binary string of length
 $\l_{k}=\l_{1}Q_{1}\cdots Q_{k-1}$.
  Let $s\in S_{k+1}$,
 \begin{align*}
    \w    &= \fg_{k*}(s),
\\  \v(a) &= \w(a).\F^{k}\ (a = 1,\ldots,Q_{k} - 1).
 \end{align*}
  The information symbols of the code are $\v(a)$ for $0 < a < Q_{k} - 1$.
  Let the positive integers
 $m_{k},n_{k}$\glo{m@$m_{k}$}\glo{n@$n_{k}$} be such that
 \[
  m_{k} h_{k} = \l_{k},\, m_{k} n_{k} \le Q_{k}.
 \]
  A narrower track $\w.\fH^{k}$\glo{h.cap@$H^{k}$} contains the error-check
bits for the same information, where
 $|\fH^{k}| = h_{k}$\glo{h@$h_{k}$} (see Figure~\ref{f.no-stretch}).
  For each $0\le i < n_{k}$, the concatenation of strings $\w(a).\fH^{k}$
with $a\in[im_{k},(i+1)m_{k}-1]$ will be denoted
 \[
  v(i + Q_{k}).
 \]
  These are the error-check symbols.
  With the code of Example ~\ref{x.RS-code}, we have $n_{k} = 2t$ and
$Q_{k}+n_{k} = \N$.
  The redundancy of the code is $1/m_{k}$.
 \end{example}
\begin{figure}
 \setlength{\unitlength}{0.25mm}
 \[
 \begin{picture}(600,150)
    \put(0,70){\framebox(600,20){Error-check bits of $\var{F}^{k+1}$}}
    \put(-10,70){\makebox(0,20)[r]{$\var{H}^{k}$}}

    \put(0,20){\framebox(600,50){Information bits of $\var{F}^{k+1}$}}
    \put(-10,20){\makebox(0,50)[r]{$\var{F}^{k}$}}

    \multiput(0,20)(20,0){30}{\line(0,1){3}}

 \end{picture}
 \]
 \caption{Error-correcting code in a shared field, with at least one
information bit per cell}
 \label{f.no-stretch}
\end{figure}
 \begin{proposition}
  In the example above, $\sum_{k} 1/m_{k} < \infty$.
 \end{proposition}

\begin{proof}
  For the capacity of the cells in $M_{k}$ we have
 \[
  \nm{\SS_{k}} = \l_{k} + h_{k} + r_{k} = \l_{k}(1+1/m_{k}) + r_{k}
 \]
  where $r_{k}$ is the number of bits not belonging to $\F^{k}$ or $\fH^{k}$.
  The state of a cell of $M_{k+1}$ must be stored in the fields of the
cells of the colony representing it, excluding the error-correcting
bits in $\fH^{k}$.
  Hence
 \begin{equation}\label{e.no-stretch}
 \begin{aligned}
     \l_{k+1} + h_{k+1} + r_{k+1} &\le  Q_{k}(\l_{k} + r_{k}),
\\   h_{k+1}                     &\le  Q_{k}r_{k} - r_{k+1},
\\                    1/m_{k+1}  &\le  r_{k}/\l_{k} - r_{k+1}/\l_{k+1},
\\ \sum_{k=2}^\infty 1/m_{k}       &\le  r_{1}/\l_{1}.
 \end{aligned}
 \end{equation}
\end{proof}


 \subsubsection{Infinitely many fields}
  The above construction will be used mainly to encode the input
$\rg^{1}$ into the configuration $\xi^{1}$, and to find the sites where
the output can be retrieved.
  The information is kept on each level $k$ in field $\F^{k}$.
  In the case when besides information storage also computation will be
going on, several configurations may have to be encoded, representing
e.g.~the output of the same computation at different times (see Subsection
~\ref{ss.sorg}).

  Here we will set up the framework for coding infinitely many
sequences, each to it own track.
  Since any infinite sequence can be broken up into infinitely many
infinite subsequences this elaboration is routine, but it is worth
fixing some notation.
  Readers interested only in information conservation can skip this
construction.
  
  Let us be given, for k=1,2,\ldots, $0\le i<k$, %
 \glo{p@$p_{k}$}%
 \glo{f.cap@$\F^{k}_{j}$}%
 \begin{equation}\label{e.std-shared}
   \Psi= 
 (\SS_{k},Q_{k},\fg_{k*},(\F^{k}_{j})_{j=1}^{k},q_{k},p_{k},\gg_{k})_{k\ge 1}
 \end{equation}
 such that $2<q_{k}+p_{k}\le Q_{k}$, and in code $\fg_{k*}$ the following
properties hold:
 \begin{cjenum}
  \item For each $k$, field $\bigcup_{j\le k} \F^{k}_{j}$ controls $a_{k}$ via
$\gg_{k}$;
  \item $\F^{k}_{j}$ is identified with $\F^{k+1}_{j}$ over $[0,q_{k}+p_{k}-1]$
if $j<k$ and over $[0,q_{k}-1]$ if $j=k$;
  \item $\F^{k}_{k}$ over $q_{k}+[0,p_{k}-1]$ is identified with
$\F^{k+1}_{k+1}$;
 \end{cjenum}
  Such a system will be called a \df{standard system of shared
fields}\index{standard!system of shared fields} and we will write
 \[
   \F^{k}_{j}=\F^{k}_{j}(\Psi).
 \]

  For simplicity, we only consider infinite space.

 \begin{proposition}\label{p.shared-infin}
  For a standard system of shared fields $\Psi$ as in~\eqref{e.std-shared},
there are functions
 $\X_{j}(y,\Psi)=\X_{j}(y)$\glo{x.cap@$\X_{j}(y,\Psi)$} with $\X_{j}(0)=0$
such that for any infinite sequence $d_{j}$\glo{d@$d_{j}$} of integers and
any infinite sequence of configurations
 \glo{r.greek@$\rg_{j}$}
 \[
  \rg_{j} \in (\SS_{1}.\F_{1}^{1})^{\ZZ} \for j\ge 1
 \]
  there are configurations $\xi^{k}$ such that for all $k,j\ge 1$,
$y\in\ZZ$ we have
 \begin{equation}
 \begin{aligned}\label{e.shared-infin.comput}
   \fg_{k*}(\xi^{k+1}) 		&=  \xi^{k},
\\ \xi^{1}(\X_{j}(y)+d_{j}B_{j}).\F^{1}_{1}	&=  \rg_{j}(y).
 \end{aligned}
 \end{equation}
 \end{proposition}

  The proof of this proposition is routine computation, so we omit it here.

  The sequence $d_{j}$ gives additional freedom of shifting the origins
independently for each $j$.

  In analogy with~\eqref{e.Gg.primi} we define%
% \glo{g.greek.cap@$\Gg((\rg_{j});k,\Psi)$}%
 \begin{equation}\label{e.Gg.j}
 \begin{aligned}
       \xi^{1}     &= \Gg((\rg_{j});\Psi)=\Gg((\rg_{j})),
\\     \xi^{1}_{k}   &= \Gg((\rg_{j});k,\Psi)=\Gg((\rg_{j});k).
 \end{aligned}
 \end{equation}
  and call $\Gg()$ the \df{limit code} and $\X_{j}(y)$ the \df{site
map} of this many-field hierarchical code.
  We may want to use the same configuration $\rg_{1}$ for each $\rg_{j}$:
e.g.~ if we start the computation on infinitely many levels simultaneously,
from the same input.

%  \begin{proof}
%  For $1\le j,k$ let 
% \begin{equation}
%   q_{k,j} = \begin{cases}
%         p_{k} &\text{if $k \le j$}
%\\       q_{k} &\text{otherwise.}
%     \end{cases}
% \end{equation}
%  Now define $B'_{k,j},C'_{k,j}(x)$ to replace ~\eqref{e.C_{k}-x} but
%using $q_{k,j}$ in place of $Q_{k}$.
%  For $1\le j\le k$, let us define the aggregated configurations
% \[
%  \rg^{k}_{j} = \ig_{B'_{k,j}*}(\rg_{j}).
% \]
%  Let 
% \begin{equation}\label{e.shared.xi_{k}.infin}
%   \xi^{k}_{k}(C_{k}(y)) = \gg_{k}(\bigcc_{j\le k}\rg^{k}_{j}(C'_{k,j}(y))),
% \end{equation}
%  and let $\xi^{i}_{k}$ be defined again by ~\eqref{e.xi-i-k}.
%  This definition gives
% \begin{equation}\label{e.shared-infin.1}
% \xi^{k}_{k}(o_{k}).\F^{k}_{j} = \rg^{k}_{j}(o'_{k}).
% \end{equation}
%  We define $\xi^{i}$ as in the proof of Proposition ~\ref{p.fitted}.
%  It is sufficient to show~\eqref{e.fitted.ext} again to prove that
%the limits in question exist.
%  By definition,
% \[
%\xi^{k}_{k+1}(o_{k}) = \fg_{k*}(\xi^{k+1}_{k+1}(o_{k+1}))(a_{k})
% =  \fg_{k*}(\gg_{k+1}(\bigcc_{j\le k+1}\rg^{k+1}(o'_{k+1})))(a_{k}).
% \]
%  By the controlling property, its $\F^{k}_{j}$ fields $r_{j}$ completely
%determine the last expression via $\gg_{k}$.
%  By the identification property~\eqref{e.identif},
%the aggregation property~\eqref{e.aggreg.step} and~\eqref{e.shared-infin.1}, 
% \[
%r_{j}=\rg^{k+1}_{j}(o'_{k+1})([a_{k}B'_{k,j},(a_{k}+1)B'_{k,j}-1])
% = \rg^{k}_{j}(o'_{k+1}+a_{k}B'_{k,j})=\rg^{k}_{j}(o'_{k})=\xi^{k}_{k}(o_{k}).\F^{k}_{j}.
% \]
%  By definition, $\xi^{k}_{k}(o_{k})=\gg_{k}(\bigcc_{j\le k}\rg^{k}(o_{k}))$ which proves the
%statement. 
%  Now we compute $\X_{j}(y)$.
%  Let
% \[
%   \lg_{k,j} = \begin{cases}
%  1 &\text{if $k < j$}
%\\0 &\text{otherwise.}
%	     \end{cases}
% \]
%  For all $k$, every integer $y$ can be represented uniquely in the
%form
% \begin{equation}\label{e.number-repr.many-field}
%  y = \sum_{m=1}^{k-1}(y'_{m,j}-a_{m})B'_{m,j} + y''_{k}B'_{k,j}
% \end{equation}
%  where $0\le y'_{m,j}< q_{m,j}$.
%  Let 
% \[
%  \X_{j}(y,i;k) = \sum_{m=i}^{k-1} B_{m,j} (y'_{m,j} - a_{m} + \lg_{m,j}q_{m})
% + y''_{k,j}B_{k,j},
% \]
% and continue like in~\eqref{e.shared.X^{i}}.
%  Define $\X'(y,i;k)$ again by replacing $B'_{\cdot,\cdot}$ with
%$B_{\cdot,\cdot}$ here.
%  Then $\X'_{j}(0,i)=0$, $\X'_{j}(y,1)=y$ and
% \[
%  \X_{j}(0,1) = q_{1} + q_{2}p_{1} + \cdots + q_{j-1}p_{1}\cdots p_{j-2},
% \]
%  i.e.~$\X_{1}(0,1)=0$.
%  The relation~\eqref{e.shared-infin.comput} for $\X_{j}(y)=\X_{j}(y,1)$
%can be proved now analogously to the proof of Proposition
%~\ref{p.shared}.%
%\end{proof}% shared-infin


 \subsection{The active level}\label{ss.amp.tkdn}

  In the (preliminary) definition of error-correction in Subsection
~\ref{ss.gen-sim}, we used a code $\fg_{**}\preceq\fg_{*}$.
  Let us discuss the typical structure of the codes $\fg_{k**}$
belonging to a hierarchical code.

  If $\fg_{k**}$ coincides with $\fg_{k*}$ over the field $\F^{k}$,
i.e.~for all $k,s,a$ we have
$\fg_{k**}(s)(a).\F^{k}=\fg_{k*}(s)(a).\F^{k}$ then we will say that
$(\F^{k})$ are \df{broadcast fields} resp.~\df{shared fields} with
respect to $\fg_{k**}$, too, whenever they are such in the code
$\fg_{k*}$.
  Next, we give a slight refinement of this notion for the case of
reliable computation.

  The definitions given here are only needed if the cellular automata are
also meant to be used for computation: they are not strictly needed if the
goal is only information storage.
  However, it will be convenient to use them even in that case.

  For a shared field, essentially the same space can be used to store
the track $\F^{k}$ as the one used for $\F^{k+1}$ since the
information on the two tracks is the same.
  Therefore these fields cannot be used by the different levels
independently of each other for computation.
  The mechanism enforcing this is the error-correction property which
restricts the value of $\F^{k}$ by the value of $\F^{k+1}$ (with which
it is identified).
  Thus, changing the information in track $\F^{k}$ we change it on all
levels below.
  We should therefore know which level is the ``active'' one, the one
being changed directly rather than as a consequence of the code
constraints.
  This level should not be disturbed by error-correction coming from higher
levels.

  The active level will be marked in the following way.
  Let us be given, for $k=1,2,\ldots$, new fields
$\G^{k}$\glo{g.cap@$\G^{k}$} with $|\G^{k}|=2$.
  The four possible values of $\G^{k}$ will be identified with
$-1,0,1,*$.
  We will say that $(\F^{k},\G^{k})$ define a sequence of \df{guarded
shared fields}\index{field!shared!guarded} if the following properties
hold:
 \begin{cjenum}
  \item  For all $0\le a < Q$,
 \[
 \fg_{k**}(s)(a).\G^{k} = \begin{cases}
   -1    &\text{if $s.\G^{k+1} \le 0$,}
\\ {*}   &\text{otherwise;}
  \end{cases}
 \]
  \item
 \begin{equation}\label{e.guarded-hier}
  \fg_{k**}(s)([0,q_{k}-1]).\F^{k} = \begin{cases}
   s.\F^{k+1} &\text{if $s.\G^{k+1} \le 0$,}
\\ {*\cdots *}&\text{otherwise.}
  \end{cases}
 \end{equation}
 \end{cjenum}
  Notice that since $\fg_{k**}\preceq\fg_{k*}$, this also imposes some
conditions on $(\fg_{k*})$.

  Typically, for a certain $k$ we will have $\xi^{i}(\cdot).\G^{i}>0$ for
all $i>k$, $\xi^{k}(\cdot).\G^{k} = 0$, and $\xi^{i}(\cdot).\G^{i}<0$ for
$i<k$.
  This distinguished $k$ will show the ``active'' level\index{active
level}, on which the field $\F^{k}$ can be changed: $\G^{k}$ shows whether
we are on, below or above the active level.
  The fact $\xi^{k+1}(\cdot).\G^{k+1}>0$ will imply that the level
$(k+1)$ does not restrict us from changing $\xi^{k}(x).\F^{k}$ (e.g.~by
computation).
  The levels below the active one are the ones subject to error-correction
coming from $\F^{k}$ since
the properties imply that the $\F^{i}$ for all $i<k$ behaves like a
shared field in code $(\fg_{i**})$ just as it does in code
$(\fg_{i*})$.
  The guard field $\G^{k+1}$ is broadcast whenever it is negative.

  With a guarded shared field, if the active level is $k$ then the
definition of $\Gg(u_{1};k)=\xi^{1}_{k}$ in~\eqref{e.Gg.primi} will always
imply the additional property
 \begin{equation}\label{e.Gg.guarded}
  \xi^{k}_{k}(x).\G^{k}=0
 \end{equation}
  for all $x$.
  Subsequent codings by $\fg_{(k-1)*}$, etc.~imply $\xi^{i}_{k}.\G^{i}=-1$
for $i<k$.
  The active level $\infty$ will mean $\xi^{k}_{k}(x).\G^{k}=-1$ for all
$k$.
  All propositions in the present section about the existence of encoded
configurations, can be enhanced to include a guard field, with an
arbitrarily chosen active level (possibly $\infty$).

 \begin{remarks}
 \begin{enumerate}
  \item All the tracks $\F^{k}$ for different $k$ ``can use the same
space'' since $\G^{k+1}$ has the information showing the way $\F^{k}$
depends on $\F^{k+1}$.
  However, each track $\G^{k}$ must be represented in new space since
$\G^{k}$ is not identified with $\G^{k+1}$.
  \item The only place in the present paper where the possibility of
changing the $G^{k}$ field is exploited is~\ref{sss.active}.
 \end{enumerate}
 \end{remarks}


\subsection{Major difficulties}\label{ss.trouble}

  The idea of a simulation between two perturbed cellular automata is,
unfortunately, flawed in the original form: the mapping defined in the
naive way is not a simulation in the strict sense we need.
  The problem is that a group of failures can destroy not only the
information but also the organization into colonies in the area where
it occurs.
  This kind of event cannot therefore be mapped by the simulation into
a transient fault unless destroyed colonies ``magically recover''.
  The recovery is not trivial since ``destruction'' can also mean
replacement with something else that looks locally as legitimate as
healthy neighbor colonies but is incompatible with them.
  One is reminded of the biological phenomena of viruses and cancer.
  Rather than give up hope let us examine the different kinds of
disruption that the faults can cause in a block simulation 
by a perturbed cellular automaton $M_{1}$.

  Let us take as our model the informally described automaton of
Subsection ~\ref{ss.ftol-block}.
  The information in the current state of a colony can be divided into
the following parts:
 \begin{itemize}
  \item ``information'': an example is the content of the $\Info$
track.
  \item ``structure'':  the $\Addr$ and $\Age$ tracks.
  \item ``program'':  the $\fld{Prog}$ track.
 \end{itemize}
  More informally, the ``structure'' does not represent any data for
the decoding but is needed for coordinating cooperation of the colony
members.
  The ``program'' determines which transition function will be
simulated.
  The ``information'' determines the state of the simulated cell: it
is the ``stuff'' that the colony processes.

  Disruptions are of the following kinds (or a combination of these):
 \begin{djenum}
  \item \label{i:info} Local change in the ``information'';
  \item \label{i:loc} Locally recognizable change in the
``structure'';
  \item \label{i:prog} Program change;
  \item \label{i:glob} Locally unrecognizable change in
``structure'';
 \end{djenum}

  A locally recognizable structure change would be a change in the
address field.
  A locally unrecognizable change would be to erase two neighbor
colonies based, say, at $BQ$ and $2BQ$ and to put a new colony in the
middle of the gap of size $2BQ$ obtained this way, at position
$1.5BQ$. 
  Cells within both the new colony and the remaining old colonies will
be locally consistent with their neighbors; on the boundary, the cells
have no way of deciding whether they belong to a new (and wrong)
colony or an old (and correct) one.

  The only kind of disruption whose correction can be attempted along
the lines of traditional error-correcting codes and repetition is the
first one: a way of its correction was indicated in Subsection
~\ref{ss.ftol-block}. 
  The three other kinds are new and we will deal with them in
different ways.

  To fight locally recognizable changes in the structure, we will use
the method of destruction and rebuilding.
  Cells that find themselves in structural conflict with their
neighbors will become vacant.
  Vacant cells will eventually be restored if this can be done in a
way structurally consistent with their neighbors.

  To fight program changes, our solution will be that the simulation will
not use any ``program'' or, in other words,
``hard-wire''\index{hard-wiring} the program into the transition function
of each cell.
  We will not lose universality this way: the automata will still be
universal, i.e.~capable of simulating every other automaton by appropriate
block simulation; but this particular simulation will differ from the
others in that the transition function will perform it without looking at
any program.

\begin{figure}
 \setlength{\unitlength}{1mm}
 \[
 \begin{picture}(100, 50)(-30,0)
    \put(-2,20){\makebox(0,20)[r]{$\fg^{2*}$}}
    \put(0,25){\vector(0,1){10}}
    \put(0,20){\makebox(0,0){$M_{2}$}}
    \put(5,20){\vector(1,0){10}}
    \put(20,20){\makebox(0,0)[l]{$\var{Univ}$}}
    \put(0,5){\vector(0,1){10}}
    \put(-2,0){\makebox(0,20)[r]{$\fg^{1*}$}}
    \put(0,0){\makebox(0,0){$M_{1}$}}
    \put(5,0){\vector(1,0){10}}
    \put(20,0){\makebox(0,0)[l]{$\var{Univ}$}}
 \end{picture}
 \]
 \caption[An amplifier in which the simulations $\fg^{k*}$ are
``hard-wired'']{An amplifier in which the simulations $\fg^{k*}$ are
``hard-wired''.
  Universality is not lost since each medium $M_{k}$ also
simulates some universal cellular automaton.}
 \label{f.hard-wired}
\end{figure}

  To fight locally unrecognizable changes, we will ``legalize'' all
the structures brought about this way.
  Consider the example where a single colony sits in a gap of size $2BQ$.
  The decoding function is defined even for this configuration.
  In the decoded configuration, the cell based at site 0 is followed by a
cell at site $1.5BQ$ which is followed by cells at sites $3BQ,4BQ$, etc.
  Earlier, we did not have any use for these illegal configurations.
  We must legalize them now.
  Indeed, since they can be eliminated only with their own active
participation, we must have rules (trajectory conditions) applying to
them.
  This is the real reason for the introduction of generalized cellular
automata.

  The generalized cellular automaton actually needed will be called a
\df{robust medium}.
  The generalization of the notion of the medium does not weaken the
original theorem: the fault-tolerant cellular automaton that we
eventually build is a cellular automaton in the old sense.
  The more general media are only needed to make rules for all the
structures that arise in simulations by a random process.

intr.tex
\section{Introduction}

  A \emph{cellular automaton} is a homogenous array of identical, locally
communicating finite-state automata.
  The model is also called \df{interacting particle system}.
  Fault-tolerant computation and information storage in cellular automata
is a natural and challenging mathematical problem but there are also some
arguments indicating an eventual practical significance of the subject
since there are advantages in uniform structure for parallel computers.

  Fault-tolerant cellular automata (FCA) belong to the larger
category of reliable computing devices built from unreliable
components, in which the error probability of the individual
components is not required to decrease as the size of the device
increases.
  In such a model it is essential that the faults are assumed to be
transient: they change the local state but not the local transition
function.

  A fault-tolerant computer of this kind must use massive parallelism.
  Indeed, information stored anywhere during computation is subject to
decay and therefore must be actively maintained.
  It does not help to run two computers simultaneously, comparing
their results periodically since faults will occur in both of them
between comparisons with high probability.
  The self-correction mechanism must be built into each part of the
computer.
  In cellular automata, it must be a property of the transition function
of the cells.

  Due to the homogeneity of cellular automata, since large groups of errors
can destroy large parts of any kind of structure, ``self-stabilization''
techniques are needed in conjunction with traditional error-correction.


\subsection {Historical remarks}

  The problem of reliable computation with unreliable components was
addressed in ~\cite{VonNeum56} in the context of Boolean circuits.
  Von Neumann's solution, as well as its improved versions in
~\cite{DobrOrtyUp77} and \cite{PippRelBool85}, rely on high
connectivity and non-uniform constructs.
  The best currently known result of this type is in
~\cite{SpielmanFTPrl96} where redundancy has been substantially decreased
for the case of computations whose computing time is larger than the
storage requirement.

  Of particular interest to us are those probabilistic cellular
automata in which all local transition probabilities are positive (let
us call such automata \df{noisy}), since such an automaton is
obtained by way of ``perturbation'' from a deterministic cellular
automaton.
  The automaton may have e.g.~two distinguished initial configurations: say
$\xi_{0}$ in which all cells have state 0 and $\xi_{1}$ in which all have
state 1 (there may be other states besides 0 and 1).
  Let $p_{i}(x,t)$ be the probability that, starting from initial
configuration $\xi_{i}$, the state of cell $x$ at time $t$ is $i$.
  If $p_{i}(x,t)$ is bigger than, say, $2/3$ for all $x,t$ then we can say
that the automaton remembers the initial configuration forever.

  Informally speaking, a probabilistic cellular automaton is called
\df{mixing} if it eventually forgets all information about its
initial configuration.
  Finite noisy cellular automata are always mixing.
  In the example above, one can define the ``relaxation time'' as the time
by which the probability decreases below $2/3$.
  If an infinite automaton is mixing then the relaxation time of the
corresponding finite automaton is bounded independently of size.
  A minimal requirement of fault-tolerance is therefore that the
infinite automaton be non-mixing.
%   (We hope to also explore the relation to quantitative indicators of
% mixing, like the second largest eigenvalue.)

  The difficulty in constructing non-mixing noisy one-dimensional cellular
automata is that eventually large blocks of errors which we might call
islands will randomly occur.
  We can try to design a transition function that (except for a small
error probability) attempts to decrease these islands.
  It is a natural idea that the function should replace the state of each
cell, at each transition time, with the majority of the cell states
in some neighborhood.
  However, majority voting among the five nearest neighbors (including the
cell itself) seems to lead to a mixing transition function, even in two
dimensions, if the ``failure'' probabilities are not symmetric with respect
to the interchange of 0's and 1's, and has not been proved to be non-mixing
even in the symmetric case.
  Perturbations of the one-dimensional majority voting function were
actually shown to be mixing in~\cite{Gray82} and \cite{Gray87}.

  Non-mixing noisy cellular automata for dimensions 2 and higher were
constructed in~\cite{Toom80}.
  These automata are also \df{non-ergodic}: an apparently stronger
property (see formal definition later).
  All our examples of non-mixing automata will also be non-ergodic.
  The paper~\cite{GacsReif3dim88} applies Toom's work~\cite{Toom80} to
design a simple three-dimensional fault-tolerant cellular automaton that
simulates arbitrary one-dimensional arrays.
  The original proof was simplified and adapted to strengthen these
results in~\cite{BermSim88}.  

\begin{remark}
  A three-dimensional fault-tolerant cellular automaton cannot be built to
arbitrary size in the physical space.
  Indeed, there will be an (inherently irreversible) error-correcting
operation on the average in every constant number of steps in each cell.
  This will produce a steady flow of heat from each cell that needs
therefore a separate escape route for each cell.
 \end{remark}

  A simple one-dimensional deterministic cellular automaton
eliminating finite islands in the absence of failures was defined in
~\cite{GacsKurdLevIslands78} (see also ~\cite{DeSaMaes92}).
  It is now known (see ~\cite{ParkThes96}) that perturbation (at least, in a
strongly biased way) makes this automaton mixing.


\subsection {Hierarchical constructions}\label{ss.hier-constr}

  The limited geometrical possibilities in one dimension suggest that
only some non-local organization can cope with the task of
eliminating finite islands.
  Indeed, imagine a large island of 1's in the 1-dimensional ocean of
0's.
  Without additional information, cells at the left end of this
island will not be able to decide locally whether to move the
boundary to the right or to the left.
  This information must come from some global organization that,
given the fixed size of the cells, is expected to be hierarchical.
  The ``cellular automaton'' in ~\cite{Tsir77} gives such a
hierarchical organization.
  It indeed can hold a bit of information indefinitely.
  However, the transition function is not uniform either in space or time:
the hierarchy is ``hardwired'' into the way the transition function
changes.

  The paper ~\cite{Gacs1dim86} constructs a non-ergodic one-dimensional
cellular automaton working in discrete time, using some ideas from
the very informal paper ~\cite{Kurd78} of Georgii Kurdyumov.
  Surprisingly, it seems even today that in one dimension, the keeping
of a bit of information requires all the organization
needed for general fault-tolerant computation.
  The paper ~\cite{Gacs2dim89} constructs a two-dimensional fault-tolerant
cellular automaton.
  In the two-dimensional work, the space requirement of the reliable
implementation of a computation is only a constant times greater than
that of the original version.
  (The time requirement increases by a logarithmic factor.)

  In both papers, the cells are organized in blocks that perform a
fault-tolerant simulation of a second, generalized cellular automaton.
  The cells of the latter automaton are also organized in blocks,
simulating even more reliably a third generalized automaton, etc.
  In all these papers (including the present one), since all this
organization is in ``software'', i.e.~ it is encoded into the states of the
cells, it must be under repair all the time from breakdown caused by
errors.
  In the two-dimensional case, Toom's transition function simplifies the
repairs.

\subsubsection {Asynchrony}
  In the three-dimensional fault-tolerant cellular automaton of
~\cite{GacsReif3dim88}, the components must work in discrete time and switch
simultaneously to their next state.
  This requirement is unrealistic for arbitrarily large arrays.
  A more natural model for asynchronous probabilistic cellular automata
is that of a continuous-time Markov process.
  This is a much stronger assumption than allowing an adversary
scheduler but it still leaves a lot of technical problems to be
solved.
  Informally it allows cells to choose whether to update at the present
time independently of the choice their neighbors make.

  The paper ~\cite{BermSim88} gives a simple method to implement
arbitrary computations on asynchronous machines with otherwise
perfectly reliable components.
  A two-dimensional asynchronous fault-tolerant cellular automaton
was constructed in ~\cite{Wang90}.
  Experiments combining this technique with the error-correction
mechanism of ~\cite{GacsReif3dim88} were made, among others, in
~\cite{BenGriHeJayMuk90}.

  The present paper constructs a one-dimensional asynchronous
fault-tolerant cellular automaton, thus completing the refutation of
the so-called Positive Rates Conjecture in ~\cite{Liggett85}.

\subsubsection{Self-organization}
  Most hierarchical constructions, including ours, start from a complex,
hierarchical initial configuration (in case of an infinite system, and
infinite hierarchy).
  The present paper presents some results which avoid this.
  E.g., when the computation's goal is to remember a constant amount of
information, (as in the refutation of the positive rates conjecture) then
we will give a transition function that performs this task even if each
cell of the initial configuration has the same state.
  We call this ``self-organization'' since the hierarchical organization
will still emerge during the computation.

\subsubsection {Proof method simplification}
  Several methods have emerged that help managing the complexity of a large
construction but the following two are the most important.
 \begin{itemize}
  \item 
  A number of ``interface'' concepts is introduced (generalized
simulation, generalized cellular automaton) helping to separate the
levels of the infinite hierarchy, and making it possible to speak
meaningfully of a single pair of adjacent levels.

  \item
  Though the construction is large, its problems are presented one at
a time.
  E.g.~the messiest part of the self-stabilization is the so-called
Attribution Lemma, showing how after a while all cells can be attributed to
some large organized group (colony), and thus no debris is in the way of
the creation of new colonies.
  This lemma relies mainly on the Purge and Decay rules, and will be
proved before introducing many other major rules.
  Other parts of the construction that are not possible to ignore are
used only through ``interface conditions'' (specifications).
 \end{itemize}
  
  We believe that the new result and the new method of presentation
will serve as a firm basis for other new results.
  An example of a problem likely to yield to the new framework is the
\emph{growth rate of the relaxation time} as a function of the size of a
finite cellular automaton.
  At present, the relaxation time of all known cellular automata either
seems to be bounded (ergodic case) or grows exponentially.
  We believe that our constructions will yield examples for other,
intermediate growth rates.


 \subsubsection{Overview of the paper}
 \begin{itemize}

  \item
  Sections~\ref{s.CA}, \ref{s.codes}, \ref{s.hier} are an informal
discussion of the main ideas of the construction, along with some formal
definitions, e.g.
  \begin{itemize}
   \item block codes, colonies, hierarchical codes;

   \item \df{abstract media}, which are a generalization of cellular
automata;

   \item \df{simulations};

   \item \df{amplifiers}: a sequence of media with simulations between each
and the next one;

  \end{itemize}

  \item
  Section~\ref{s.lat} formulates the main theorems for discrete time.
 
  It also explains the main technical problems of the construction and the
ways to solve them:
  \begin{itemize}
   \item correction of structural damage by destruction followed by
rebuilding from the neighbors;
   \item a ``hard-wired'' program;
   \item ``legalization'' of all locally consistent structures;
  \end{itemize}

  \item
  Section ~\ref{s.med} defines \df{media}, a specialization of abstract
media with the needed stochastic structure.
  Along with media, we will define \df{canonical simulations}, whose form
guarantees that they are simulations between media.
  We will give the basic examples of media with the basic simulations
between them.

  The section also defines variable-period media and formulates the main
theorems for continuous time.

  \item 
  Section ~\ref{s.sim} develops some simple simulations, to be used either
directly or as a paradigm.
  The example transition function defined here will correct any set of
errors in which no two errors occur close to each other.

  We also develop the language used for defining our transition function in
the rest of the paper.

  \item 
  A class of media for which nontrivial fault-tolerant simulations
exist will be defined in Section ~\ref{s.rob}.
  In these media, called ``robust media'', cells are not necessarily
adjacent to each other.
  The transition function can erase as well as create cells.

  There is a set of ``bad'' states.
  The set of space-time points where bad values occur is called the
``damage''.
  The Restoration Property requires that at any point of a trajectory, damage
occurs (or persists) only with small probability
($\eps$)\glo{e.greek@$\eps$}.
  The Computation Property requires that the trajectory obey the
transition function in the absence of damage.

  It is possible to tell in advance how the damage will be defined in a
space-time configuration $\eta^{*}$\glo{y.greek@$\eta^{*}$} of a medium
$M_{2}$\glo{m.cap@$M_{k}$} simulated by some space-time configuration
$\eta$\glo{y.greek@$\eta$} of a medium $M_{1}$.
  Damage is said to occur at a certain point $(x,t)$ of $\eta^{*}$ if
within a certain space-time rectangle in the past of $(x,t)$, the damage of
$\eta$ cannot be covered by a small rectangle of a certain size.
  This is saying, essentially, that damage occurs at least ``twice'' in
$\eta$.
  The Restoration Property for $\eta$ with $\eps$ will then guarantee
that the damage in $\eta^{*}$ also satisfies a restoration property with
with $\approx \eps^{2}$.

 \item Section ~\ref{s.amp} introduces all notions for the formulation of
the main lemma.
  First we define the kind of amplifiers to be built and a set of
parameters called the \df{amplifier frame}.
  The main lemma, called the Amplifier Lemma, says that amplifiers exist
for many different sorts of amplifier frame.
  The rest of the section applies the main lemma to the proof of the
main theorems.

  \item 
  Section ~\ref{s.sorg} defines self-organizing amplifiers, formulates the
lemma about their existence and applies it to the proof of the existence of
a self-organizing non-ergodic cellular automaton.

  \item 
  Section ~\ref{s.plan} gives an overview of an amplifier.
  As indicated above, the restoration property will be satisfied
automatically.
  In order to satisfy the computation property, the general framework of the
program will be similar to the outline in Section ~\ref{s.sim}.
  However, besides the single-error fault-tolerance property achieved
there, it will also have a
\df{self-stabilization}\index{self!stabilization} property.
  This means that a short time after the occurrence of arbitrary damage,
the configuration enables us to interpret it in terms of colonies.
  (In practice, pieces of incomplete colonies will eliminate themselves.)
  In the absence of damage, therefore, the colony structure will recover
from the effects of earlier damage, i.e.~predictability in the simulated
configuration is restored.

  \item 
  Section ~\ref{s.kill} gives the rules for killing, creation and
purge.
  We prove the basic lemmas about space-time paths connecting live cells.

  \item
  Section ~\ref{s.gaps} defines the decay rule and shows that a large
gap will eat up a whole colony.

  \item
  Section ~\ref{s.attrib} proves the Attribution Lemma that traces back
each non-germ cell to a full colony.
  This lemma expresses the ``self-stabilization'' property mentioned above.
  The proof starts with Subsection ~\ref{ss.bad} showing that if a gap
will not be healed promptly then it grows.

  \item 
  Section ~\ref{s.heal} proves the Healing Lemma, showing how the effect of
a small amount of damage will be corrected.
  Due to the need to restore some local clock values consistently with
the neighbors, the healing rule is rather elaborate.

  \item
  Section ~\ref{s.comp} introduces and uses the error-correcting
computation rules not dependent on communication with neighbor
colonies.

  \item
  Section ~\ref{s.commun} introduces and applies the communication
rules needed to prove the Computation Property in simulation.
  These are rather elaborate, due to the need to communicate with not
completely reliable neighbor colonies asynchronously.

  \item 
  Section ~\ref{s.germs} defines the rules for germs and shows that these
make our amplifier self-organizing.

 \end{itemize}

  The above constructions will be carried out for the case when the cells
work asynchronously (with variable time between switchings).
  This does not introduce any insurmountable difficulty but makes life
harder at several steps: more care is needed in the updating and correction
of the counter field of a cell, and in the communication between neighbor
colonies.
  The analysis in the proof also becomes more involved.

\subsubsection*{Acknowledgement}
  I am very thankful to Robert Solovay for reading parts of the paper and
finding important errors.
  Larry Gray revealed his identity as a referee and gave generously of his
time to detailed discussions: the paper became much more readable (yes!) as
a result.


\section{Cellular automata}\label{s.CA}

  In the introductory sections, we confine ourselves to one-dimensional
infinite cellular automata.

\subsubsection*{Notation}
  Let $\RR$ be the set of real numbers, and
 $\ZZ_{m}$\glo{z.cap.z@$\ZZ_{m}$}  the set of remainders modulo $m$.
  For $m=\infty$, this is the set $\ZZ$ of integers.
  We introduce a non-standard notation for intervals on the real line.
  Closed intervals are denoted as before: $[a,b]=\setof{x:a\le x\le
b}$. 
  But open and half-closed intervals are denoted as follows:
\glo{[@$[a+,b]$}%
\begin{align*}
   [a+,b] &= \setof{x:a<x\le b},
\\\relax [a,b-] &= \setof{x:a\le x < b},
\\\relax [a+,b-] &= \setof{x:a< x < b}.
\end{align*}
  The advantage of this notation is that the pair $(x,y)$ will not be
confused with the open interval traditionally denoted $(x,y)$ and that
the text editor program will not complain about unbalanced
parentheses.
  We will use the same notation for intervals of integers: the context
will make it clear, whether $[a,b]$ or $[a,b]\cap \ZZ$ is understood.
  Given a set $A$ of space or space-time and a real number $c$, we
write
 \[
  c A = \setof{cv : v\in A}.
 \]
  If the reader wonders why lists of assertions are sometimes denoted by
(a), (b), $\ldots$ and sometimes by (1), (2), $\ldots$, here is the
convention I have tried to keep to.
  If I list properties that all hold or are required (conjunction) then the
items are labeled with (a),(b), $\ldots$ while if the list is a list of
several possible cases (disjunction) then the items are labeled with (1),
(2), $\ldots$.

  Maxima and minima will sometimes be denoted by $\vee$ and
$\wedge$\glo{"+@$\vee,\wedge$}.
  We will write $\log$\glo{log@$\log$} for $\log_{2}$.


\subsection{Deterministic cellular automata}\label{ss.det-ca}

  Let us give here the most frequently used definition of cellular
automata.
  Later, we will use a certain generalization.
  The set $\bC$\glo{c.cap@$\bC$} of
 \df{sites}\index{site} has the form $\ZZ_{m}$ for finite or infinite $m$.
  This will mean that in the finite case, we take \df{periodic boundary
conditions}.
  In a space-time vector $(x,t)$, we will always write the space coordinate
first.
  For a space-time set $E$, we will denote its space- and time projections
by \glo{p.greek@$\prs, \prt$}
 \begin{equation}\label{e.proj}
 \prs E, \prt E
 \end{equation}
  respectively.
  We will have a finite set $\SS$\glo{s.cap.s@$\SS$} of states, the potential
states of each site.
 A \df{(space) configuration}\index{configuration} is a function
 \glo{x.greek@$\xi(x)$}
 \[ 
   \xi(x)
 \]
  for $x\in\bC$.
  Here, $\xi(x)$ is the state of site $x$.

  The time of work of our cellular automata will be the interval
$[0,\infty-]$.
  Our \df{space-time} is given by 
 \glo{v.cap@$\bV$}%
 \[
 \bV=\bC\times[0,\infty-].
 \]
  A \df{space-time configuration}\index{configuration!space-time} is a
space-time function $\eta(x,t)$\glo{y.greek@$\eta(x,t)$} which for each $t$
defines a space configuration.
  If in a space-time configuration $\eta$ we have $\eta(x,v)=s_{2}$ and
$\eta(x,t)=s_{1}\ne s_{2}$ for all $t<v$ sufficiently close to $v$ then we
can say that there was a
 \df{switch}\index{switch} from state $s_{1}$ to state $s_{2}$ at time
$v$.
  For ordinary discrete-time cellular automata, we allow only space-time
configurations in which all switching times are natural numbers
$0,1,2,\ldots$.
  The time 0 is considered a switching time.
  If there is an $\eps$ such that $\eta(c,t)$ is constant for
$a-\eps<t<a$ then this constant value will be denoted by
 \glo{-@$\eta(c, a-)$}
 \begin{equation} \label{e.a.minus} 
  \eta(c, a-).
 \end{equation}
  The \df{subconfiguration} $\xi(D')$ of a configuration $\xi$
defined on $D\sps D'$ is the restriction of $\xi$ to $D'$.
  Sometimes, we write
 \[
  \eta(V)
 \]
 for the sub-configuration over the space-time set $V$.

  A
 \df{deterministic cellular automaton}\index{cellular automaton!deterministic}%
 \glo{ca@$\CA(\trans, \bC)$}%
 \[
   \CA(\trans, \bC).
 \]
  is determined by a 
  transition function\index{transition function}
 $\trans:\SS^{3}\to\SS$\glo{tr@$\trans, \ol\trans$} and the set $\bC$ of
sites.
  We will omit $\bC$ from the notation when it is obvious from the
context.
  A space-time configuration $\eta$ is a
 \df{trajectory}\index{trajectory!deterministic cellular automaton} of this
automaton if 
 \[
   \eta(x,t)=\trans(\eta(x-1,t-1), \eta(x,t-1), \eta(x+1,t-1))
 \]
 holds for all $x,t$ with $t>0$.
  For a space-time configuration $\eta$ let us write
 \begin{equation}\label{e.trans}
   \ol\trans(\eta, x,t)=\trans(\eta(x-1,t), \eta(x,t), \eta(x+1,t)).
 \end{equation}
  Given a configuration $\xi$ over the space $\bC$ and a transition
function, there is a unique trajectory $\eta$ with the given transition
function and the initial configuration $\eta(\cdot,0)=\xi$.


\subsection{Fields of a local state}\label{ss.fields}

  The space-time configuration of a deterministic cellular automaton can be
viewed as a ``computation''.
  Moreover, every imaginable computation can be performed by an
appropriately chosen cellular automaton function.
  This is not the place to explain the meaning of this statement if
it is not clear to the reader. 
  But it becomes maybe clearer if we point out that a better known model of
computation, the Turing machine\index{Turing machine}, can be considered a
special cellular automaton.

  Let us deal, from now on, only with cellular automata in which the set
$\SS$ of local states consists of binary strings of some fixed length
$\nm{\SS}$\glo{"|@$\nm{\SS}$} called the
 \df{capacity}\index{capacity}  of the sites.
  Thus, if the automaton has 16 possible states then its states can be
considered binary strings of length 4.
  If $\nm{\SS}>1$ then the information represented by the state can be
broken up naturally into parts.
  It will greatly help reasoning about a transition rule if it assigns
different functions to some of these parts; a typical ``computation'' would
indeed do so.
  Subsets of the set $\{0,\ldots,\nm{\SS}-1\}$ will be called
 \df{fields}\index{field}.
  Some of these subsets will have special names.
  Let \glo{all@$\All$}
 \[
   \All = \{0,\ldots,\nm{\SS}-1\}.
 \]
  If $s=(s(i): i\in\All))$ is a bit string and $\F=\{i_{1},\ldots,i_{k}\}$
is a field with $i_{j}<i_{j+1}$ then we will write \glo{.@$s.\F$}
 \[
   s.\F=(s(i_{1}),\ldots,s(i_{k}))
 \]
  for the bit string that is called \df{field} $\F$ of the state.

  \begin{example}
  If the capacity is 12 we could subdivide the interval $[0,11]$ into
subintervals of lengths 2,2,1,1,2,4 respectively and call these fields
the input, output, mail coming from left, mail coming from right,
memory and workspace.
  We can denote these as
 $\Input$\glo{input@$\Input$},
 $\Output$\glo{output@$\Output$},
 $\Mail_{j}$\glo{mail@$\Mail$} ($j=-1,1$),
 $\fld{Work}$\glo{work@$\fld{Work}$} and
 $\Memory$\glo{memory@$\Memory$}.
  If $s$ is a state then $s.\Input$ denotes the first two bits of $s$,
$s.\Mail_{1}$ means the sixth bit of $s$, etc.
 \end{example}

 \begin{remark}
  Treating these fields differently means we may impose some useful
restrictions on the transition function.
  We might require the following, calling $\Mail_{-1}$ the ``right-directed
mail field'':
 \begin{quote}
  The information in $\Mail_{-1}$ moves always to the right.
  More precisely, in a trajectory $\eta$, the only part of the state
$\eta(x,t)$ that depends on the state $\eta(x-B,t-T)$ of the left
neighbor is the right-directed mail field $\eta(x,t).\Mail_{-1}$.
  This field, on the other hand, depends only on the right-directed
mail field of the left neighbor and the workspace field
$\eta(x,t-T).\fld{Work}$.
  The memory depends only on the workspace.
 \end{quote}
  Confining ourselves to computations that are structured in a similar
way make reasoning about them in the presence of faults much easier.
  Indeed, in such a scheme, the effects of a fault can propagate only
through the mail fields and can affect the memory field only if the
workspace field's state allows it.
 \end{remark}

  Fields are generally either disjoint or contained in each other.
  When we join e.g.~the input fields of the different sites we can speak
about the input \df{track}\index{track}, like a track of some magnetic
tape.

\subsubsection{Bandwidth and separability}\label{sss.bandwidth}

  Here we are going to introduce some of the fields used later in the
construction.
  It is possible to skip this part without loss of understanding and to
refer to it later as necessary.
  However, it may show to computer scientists how the communication model
of cellular automata can be made more realistic by introducing a new
parameter $\bw$\glo{w@$\bw$} and some restrictions on transition functions.
  The restrictions do not limit information-processing capability but
 \begin{itemize}
  \item limit the amount of information exchanged in each transition;
  \item limit the amount of change made in a local state in each transition;
  \item restrict the fields that depend on the neighbors immediately;
 \end{itemize}
  A transition function with such structure can be simulated in such a way
that only a small part of the memory is used for information processing,
most is used for storage.
  For a fixed \df{bandwidth}\index{bandwidth} $\bw$, we will use the
following disjoint fields, all with size $\bw$:
 \glo{inbuf@$\Inbuf$}
 \glo{outbuf@$\Outbuf$}
 \glo{pointer@$\Pointer$}
 \begin{equation}\label{e.display}
   \Inbuf=[0, \bw - 1],\qq \Outbuf,\qq \Pointer.
 \end{equation}
  Let 
 \glo{buf@$\Buf$}%
 \[
  \Buf = \Inbuf \cup \Outbuf, \qq \Memory = \All \xcpt \Inbuf.
 \]
  Note that the fields denoted by these names are not disjoint.
  For a transition function $\trans:\SS^3\to\SS$, for an integer
$\cei{\log \nm{\SS}}\le \bw \le\nm{\SS}$, we say that $\trans$ is
 \df{separable with bandwidth}\index{separability} $\bw$ if there is a
function%
 \glo{tr@$\trans^{(\bw)}$}%
 \begin{equation}\label{e.bandwidth}
 \trans^{(\bw)} : \{0,1\}^{7\bw} \to \{0,1\}^{5\bw}
 \end{equation}
 determining $\trans$ in the following way.
  For states $r_{-1},r_{0},r_{1}$, let $\a = r_{0}.\Pointer$, (a binary
number), then with
 \begin{equation}\label{e.trans-b-in}
 p = \trans^{(\bw)}(r_{-1}.\Buf,
	 r_{0}.(\Buf \cup [\a, \a + \bw-1]), r_{1}.\Buf),
 \end{equation}
  we define
 \begin{equation}\label{e.trans-b-out}
  \trans(r_{-1},r_{0},r_{1}).(\Buf\cup\Pointer) = p.[0, 3\bw-1].
 \end{equation}
  The value $\trans(r_{-1},r_{0},r_{1})$ can differ from $r_{0}$ only in
$\Buf\cup\Pointer$ and in field $[\n, \n + \bw - 1]$ where
 $\n = p.[4\bw, 5\bw - 1]$
(interpreted as an integer in binary notation) and then
 \[
  \trans(r_{-1},r_{0},r_{1}).[\n, \n + \bw - 1] = p.[3\bw, 4\bw - 1].
 \]
  It is required that only $\Inbuf$ depends on the neighbors directly:
 \begin{equation}\label{e.trans-b-legal}
 \trans(r_{-1},r_{0},r_{1}).\Memory = \trans(\Vac,r_{0},\Vac).\Memory,
 \end{equation}
  where $\Vac$ is a certain distinguished state.
  Let%
 \glo{legal@$\legal$}%
 \[
   \legal^{\trans}(u,v) = \begin{cases}
         1 &\text{if $v.\Memory = \trans(\Vac,u,\Vac).\Memory$,}
\\       0 &\text{otherwise.}
    \end{cases}
 \]
  Thus, sites whose transition function is separable with bandwidth $\bw$
communicate with each other via their field $\Buf$ of size $2\bw$.
  The transition function also depends on $r_{0}.[\a, \a + \bw - 1]$ where
$\a = r_{0}.\Pointer$.
  It updates $r_{0}.(\Buf\cup\Pointer)$ and $r_{0}.[\n + \bw - 1]$ where
$\n$ is also determined by $\trans^{(\bw)}$.

 \begin{remark}
  These definitions turn each site into a small ``random access machine''.
 \end{remark}

  When designing a cellular automaton with small bandwidth for theoretical
purposes, the guiding principle is to put almost everything into $\Buf$, so
that we do not have to worry about communication with neighbors.
  All the fields having to do with computation and administration will be
small.
  The only exception is the bulk of the information that the cell is
supposed to store.
  But even here, the redundant part of the information used for
error-correcting purposes will be small and can be in $\Buf$.


  \subsection{Probabilistic cellular automata}\label{ss.PCA}

  A \df{random space-time
configuration}\index{configuration!space-time!random} is a pair
$(\mu,\eta)$\glo{m.greek@$\mu$} where $\mu$ is a probability measure over some
measurable space\index{measurable space}
 $(\Og,\cA)$\glo{o.greek@$\Og,\og$}\glo{a.cap@$\cA,\cA(W),\cA_{t}$}
 together with a measurable function $\eta(x,t,\og)$
 which is a space-time configuration for all $\og\in\Og$.
  We will generally omit $\og$ from the arguments of $\eta$.
  When we omit the mention of $\mu$ we will use $\Prob$\glo{prob@$\Prob$}
to denote it.
  If it does not lead to confusion, for some property of the form
$\setof{\eta\in R}$, the quantity
 $\mu\setof{\og: \eta(\cdot,\cdot,\og)\in R}$ will be written as usual, as
 \[
   \mu\setof{\eta\in R} .
 \]
  We will denote the expected value of $f$ with respect to $\mu$ by
 \glo{e.cap @$\bE_{\mu} f$}
 \[
   \bE_{\mu} f
 \]
  where we will omit $\mu$ when it is clear from the context.
  A function $f(\eta)$ with values 0, 1 (i.e.~an indicator function) and
measurable in $\cA$ will be called an
 \df{event function}\index{event function}  over $\cA$.
  Let $W$ be any subset of space-time that is the union of some rectangles.
  Then 
 \[
  \cA(W)
 \]
  denotes the $\sg$-algebra generated by events of the form
 \[
  \setof{\eta(x,t)=s \for t_{1}\le t < t_{2}}
 \]
 for $s\in\SS$, $(x,t_{i})\in W$.
  Let
 \[
  \cA_{t}=\cA(\bC\times[0,t]).
 \]
  A
 \df{probabilistic cellular automaton}\index{cellular
automaton!probabilistic}%
 \glo{PCA@$\PCA(\bP, \bC)$}%
 \[
  \PCA(\bP, \bC)
 \]
  is characterized by saying which random space-time configurations are
considered \df{trajectories}\index{trajectory}.
  Now a trajectory is not a single space-time configuration (sample path)
but a distribution over space-time configurations that satisfies the
following condition.
  The condition depends on a \df{transition matrix}\index{transition matrix}
$\bP(s, (r_{-1},r_{0},r_{1}))$\glo{p.cap@$\bP(s, (r_{-1},r_{0},r_{1}))$}.
  For an arbitrary space-time configuration $\eta$, and space-time point 
$(x,t)$, let 
 \begin{equation}\label{e.Trans-prob}
 \ol\bP(\eta, s, x, t)
    = \bP(s, (\eta(x-1,t),\eta(x,t),\eta(x+1,t))).
 \end{equation}
  We will omit the parameter $\eta$ when it is clear from the context.
  The condition says that the random space-time configuration $\eta$ is a
trajectory if and only if the following holds.
  Let $x_{0},\ldots,x_{n+1}$ be given with $x_{i+1}=x_{i}+1$.
  Let us fix an arbitrary space-time configuration $\zg$ and an arbitrary
event $\cH\ni\zg$ of positive probability in
$\cA_{t-T}$.
  Then we require
 \begin{multline*}
 \Prob\left\{\bigcap_{i=1}^{n}\{\eta(x_{i},t)=\zg(x_{i},t)\}\bigm|
  \cH\cap\bigcap_{i=0}^{n+1}\{\eta(x_{i},t-1)=\zg(x_{i},t-1)\}\right\}
 \\ =\prod_{i=1}^{n} \ol\bP(\eta, \zg(x_{i},t), x_{i}, t-1).
 \end{multline*}
  A probabilistic cellular automaton is \df{noisy}\index{noisy} if
$\bP(s,\br)>0$ for all $s,\br$.
  Bandwidth can be defined for transition probabilities just as for
transition functions.

 \begin{example}\label{x.rand-gen}
  As a simple example, consider a deterministic cellular automaton
with a ``random number generator''.
  Let the local state be a record with two fields, $\Det$\glo{det@$\Det$}
and $\Rand$ where $\Rand$\glo{rand@$\Rand$} consists of a single bit.
  In a trajectory $(\mu,\eta)$, the field $\eta.\Det(x,t+1)$ is
computed by a deterministic transition function from $\eta(x-1,t)$,
$\eta(x,t)$, $\eta(x+1,t)$, while $\eta.\Rand(x,t+1)$ is obtained by
``coin-tossing''.
 \end{example}

  A trajectory of a probabilistic cellular automaton is a discrete-time
Markov process.
  If the set of sites consists of a single site then $\bP(s, \br)$ is the
transition probability matrix of this so-called finite Markov
chain\index{Markov!chain}.
  The Markov chain is finite as long as the number of sites is finite.


\subsection{Continuous-time probabilistic cellular automata}
 \label{ss.Markov}

  For later reference, let us define here (1-dimensional)
probabilistic cellular automata in which the sites make a random
decision ``in each moment'' on whether to make a transition to another
state or not.
  These will be called \df{continuous-time interacting particle
systems}\index{interacting particle system}.
  A systematic theory of such systems and an overview of many results
available in 1985 can be found in ~\cite{Liggett85}.
  Here, we show two elementary constructions, the second one of which is
similar to the one in ~\cite{Gray82}.
  The system is defined by a matrix
 $\bR(s, \br)\ge 0$\glo{r.cap@$\bR(s, \br)$} of transition
rates\index{transition rate} in which all ``diagonal'' elements
 $\bR(r_{0}, (r_{-1},r_{0},r_{1}))$ are 0.


\subsubsection{Discrete-time approximation}\label{sss.discr-time-approx}
  Consider a generalization $\PCA(\bP, B, \dg, \bC)$ of probabilistic
cellular automata in which the sites are at positions $iB$ for some fixed
$B$ called the \df{body size} and integers $i$, and the switching times are
at $0,\dg,2\dg,3\dg,\ldots$ for some small positive $\dg$\glo{d.greek@$\dg$}.
  Let $M_{\dg}=\PCA(\bP,1,\dg)$\glo{m.cap@$M_{\dg}$} with
$\bP(s,\br)=\dg\bR(s,\br)$ when
 $s\ne r_{0}$ and $1-\dg\sum_{s'\ne r_{0}}\bR(s',\br)$ otherwise.
  (This definition is sound when $\dg$ is small enough to make the last
expression nonnegative.)
  With any fixed initial configuration $\eta(\cdot,0)$, the trajectories
$\eta_{\dg}$ of $M_{\dg}$ will converge (weakly) to a certain random
process $\eta$ which is the continuous-time probabilistic cellular
automaton with these rates, and which we will denote
 \glo{cca@$\CCA(\bR, \bC)$}
 \[
   \CCA(\bR, \bC).
 \]
  The process defined this way is a Markov process\index{Markov!process},
i.e.~if we fix the past before some time $t_{0}$ then the conditional
distribution of the process after $t_{0}$ will only depend on the
configuration at time $t_{0}$.
  For a proof of the fact that $\eta_{\dg}$ converges weakly to $\eta$, see
~\cite{Liggett85}, \cite{Gray82} and the works quoted there.
  For a more general definition allowing simultaneous change in a
finite number of sites, see ~\cite{Liggett85}.
  A continuous-time interacting particle system is \df{noisy} if 
$\bR(s,\br)>0$ for all $s\ne r_{0}$.


\subsection{Perturbation}\label{ss.perturb}

 \subsubsection{Discrete time}
  Intuitively, a deterministic cellular automaton is fault-tolerant if
even after it is ``perturbed'' into a probabilistic cellular
automaton, its trajectories can keep the most important properties of
a trajectory of the original deterministic cellular automaton.
  We will say that a random space-time configuration $(\mu,\eta)$ is a
\df{trajectory} of the $\eps$-\df{perturbation}\index{perturbation}
 \glo{cae@$\CA_{\eps}(\trans, \bC)$}
 \[
  \CA_{\eps}(\trans, \bC)
 \] 
  of the transition function $\trans$ if the following holds.
  For all $x_{0},\ldots x_{n+1},t$ with $x_{i+1}=x_{i}+1$ and events $\cH$
in $\cA_{t-1}$ with $\mu(\cH)>0$, for all $0<i_{1}<\cdots<i_{k}<n$,
 \[
 \mu\left\{\bigcap_{j=1}^{k}
    \{\eta(x_{i_{j}},t)\ne\ol\trans(\eta, x_{i_{j}},t-1)\}\bigm|
  \cH\cap\bigcap_{i=0}^{n+1}\{\eta(x_{i},t-1)=s_{i}\}\right\}\le \eps^{k}.
 \]
  Note that $\CA_{\eps}(\trans, \bC)$ is not a probabilistic cellular
automaton.
  If we have any probabilistic cellular automaton $\PCA(\bP, \bC)$ such
that $\bP(s,\br, \bC)\le 1-\eps$ whenever $s=\trans(\br)$ then the
trajectories of this are trajectories of $\CA_{\eps}(\trans, \bC)$;
however, these do not exhaust the possibilities.
  We may think of the trajectory of a perturbation as a process created by
an ``adversary'' who is trying to defeat whatever conclusions we want to
make about the trajectory, and is only restricted by the inequalities that
the distribution of the trajectory must satisfy.


 \subsubsection{Continuous time}
  By the \df{$\eps$-perturbation} of a continuous-time interacting particle
system with transition rates given by $\bR(s,\br)$, we understand the
following: in the above construction of a process, perturb the matrix
elements $\bR(s,\br)$ by some arbitrary amounts smaller than $\eps$.
  Note that this is a more modest kind of perturbation since we
perturb the parameters of the process once for all and the perturbed
process is again a continuous-time interacting particle system.


 \subsubsection{Remembering a few bits}
  Suppose that the bit string that is a local state has some field $\F$
(it can e.g.~be the first two bits of the state).
  We will say that $\trans$ \df{remembers}\index{remembering} field $\F$ if
there is an $\eps>0$ such that for each string $s\in\{0,1\}^{|\F|}$ there
is a configuration $\xi_{s}$ such that for an infinite $\bC$, for all
trajectories $(\mu,\eta)$ of the $\eps$-perturbation
 $\CA_{\eps}(\trans, \bC)$ with $\eta(\cdot,0)=\xi_{s}$, for all $x,t$ we
have
 \[
  \mu\setof{\eta(x,t).\F=s}>2/3.
 \]
  We define similarly the notions of remembering a field for a
probabilistic transition matrix $\bP$ and a probabilistic
transition rate matrix $\bR$.

  One of the main theorems in ~\cite{Gacs1dim86} says:

 \begin{theorem}[1-dim, non-ergodicity, discrete time]
\label{t.1dim.nonerg}\ \\
  There is a one-dimensional transition function that remembers a
field.
 \end{theorem}

  One of the new results is the following 

 \begin{theorem}[1-dim, non-ergodicity, continuous time]
\label{t.1dim.nonerg.cont}\ \\
  There is a one-dimensional transition-rate matrix that remembers a
field.
 \end{theorem}



lat.tex
\section {Main theorems in discrete time}
 \label{s.lat}

  Some theorems starting with the present section will have names of
the form ``(FCA,[description])'' where [description] gives a
shorthand characterization of the properties of the automaton
constructed.


\subsection {Relaxation time and ergodicity}
 \label{ss.toom}

 
\subsubsection{Ergodicity}
  Let\glo{s.cap.s@$\SS_{n}$}
 \[
   \SS_{n}=\SS^{([-n,n]\cap \ZZ)^{d}}
 \] 
 be the set of configurations on the segment $[-n,n]\cap \ZZ$.
  Then we can view $\bs\in\SS_{n}$ as the vector
$(s_{-n},\ldots,s_{n})$.
  For a measure $\nu$ over configurations, let%
 \glo{n.greek@$\nu(\bs)$}%
 \begin{equation}\label{e.nu(s)}
  \nu(\bs)= \nu\{\xi(i) = s_{i},\ i=-n,\ldots,n\}.
 \end{equation}
  For $n=0$, we have the special case
 $\nu(s)=\nu\{\xi(0)=s\}$.
  A sequence $\nu_{k}$ of measures
 \df{weakly converges}\index{weak convergence} to measure $\nu$ if for for
all $n$, for each $\bs\in\SS_{n}$ we have $\lim_{k}\nu_{k}(\bs)=\nu(\bs)$.

  If $(\mu,\eta)$ is a random trajectory of a probabilistic cellular
automaton then let $\mu^{t}$\glo{m.greek@$\mu^{t}$} be the distribution of the
configuration $\eta(\cdot,t)$.
  Then there is a linear operator $P$\glo{p.cap@$P$} (called the
 \df{Markov operator}\index{Markov!operator}) determined by the transition
function $\bP(s,\br)$ such that $\mu^{t+1}=P\mu^{t}$.
  To show this it is enough to show how $\mu^{1}(\bs)$ is determined
by $\mu^{0}$.
  According to the definition of a trajectory, we have
 \begin{equation}\label{e.P.def}
  \mu^{1}(\bs)= \sum_{\mathbf{r}}
  \prod_{j=-n}^{n} \bP(s_{j},(r_{j-1},r_{j},r_{j+1})) \mu^{0}(\br)
 \end{equation}
 where the summation goes over all possible strings
 $\mathbf{r}\in\SS_{n+1}$.
 
  We call a measure $\ag$ over configurations
\df{invariant}\index{measure!invariant} if $P\ag=\ag$.
  It is well-known and easy to prove using standard tools (see a
reference in ~\cite{Toom80}) that each continuous linear operator over
probability measures has an invariant measure.
  The invariant measures describe the possible limits (in any
reasonable sense) of the distributions $\mu^{t}$.  
  A probabilistic cellular automaton is called \df{ergodic}\index{ergodic}
if it has only one invariant measure.
  It is called \df{mixing}\index{mixing} if also for every possible measure
$\mu^{0}$ over configurations, $\mu^{t}=P^{t} \mu^{0}$ converges to one and
the same invariant measure.
  Intuitively, if a process is mixing then the distributions $\mu^{t}$
will look more and more like the invariant measure and contain less
and less information about the initial distribution $\mu^{0}$.
  In other words, all information about the initial configuration will
be eventually lost.

 \begin{remark}
  Consider a discrete-time Markov process over a compact space.
  For an initial distribution $\mu$, let $P_{\mu}$ be the measure for the
whole process.
  Let us define the translation operators: $(T'\eta)(x,t) = \eta(x,t+1)$
for space-time configurations, $(Tg)(\eta) = g(T'\eta)$ for functions over
space-time configurations.
  Traditionally, the process with initial distribution $\mu$ is called
\df{mixing} if for each time $t$, each pair of continuous functions $f,g$
where $f$ is defined over the $<t$ sigma-algebra, we have
 \[
 \int f T^s g dP_{\mu} - \int f dP_{\mu} \int T^s g dP_{\mu} \to 0.
 \]
  as $s\to\infty$.
  It can be seen that a probabilistic cellular automaton is mixing in our
sense if each process obtained from it by choosing some initial
distribution is mixing in this traditional sense.
 \end{remark}

  A noisy cellular automaton, whenever the set of sites is finite, is a
finite Markov chain with all positive transition probabilities.
  This is mixing by a well-known elementary theorem of probability theory.
  If the set of sites is infinite then noisiness does not imply even
ergodicity.

  \begin{remark}
  No examples are known of noisy cellular automata over an infinite space
that are ergodic and not mixing.
  \end{remark}

  The first example of a non-ergodic noisy cellular automaton was given
by Toom.
  (See e.g.~\cite{Toom80}.)
  One of the simplest deterministic cellular automata
$R$\glo{r.cap@$R$}\index{Toom rule} given by Toom can be defined as follows.
  We start from a two-dimensional deterministic cellular automaton $R$
with set of states $\{0,1\}$, by the neigh\-bor\-hood $H=$
$\{(0,0),(0,1),(1,0)\}$.
  The transition function $\trans_R(x_{1},x_{2},x_{3})$ is the majority of
$x_{1},x_{2},x_{3}$.
  Thus, in a trajectory of $R$, to obtain the next state of a cell,
take the majority among the states of its northern and eastern
neighbors and itself.
  Toom showed that the rule $R$ remembers a field (namely the whole
state of the cell) in the sense defined in Subsection ~\ref{ss.perturb}
and is hence non-ergodic.

\begin{figure}
 \setlength{\unitlength}{0.55mm}
 \[
\begin{picture}(100,100)
  \put(0,0){\line(1,0){100}}
  \put(0,0){\line(0,1){100}}
  \put(100,0){\line(-1,1){100}}
  \put(80,0){\line(-1,1){80}}
  \multiput(90,10)(-10,10){9}{\vector(-1,-1){7}}
\end{picture}
 \]
 \caption{The Toom rule's effect on a large triangular island}
 \label{f.Toom}
\end{figure}

\begin{remark}
  The notion of ergodicity was defined only for trajectories of $R_{\eps}$
that are also trajectories of some probabilistic cellular automaton $R'$
(as defined in Subsection ~\ref{ss.PCA}) such that $R'\sbs R_{\eps}$,
i.e.~that all trajectories of $R'$ are trajectories of $R_{\eps}$.
  The difference between $R_{\eps}$ and $R'$ is that the local
transition probabilities of a trajectory of $R'$ are fixed and the
same everywhere in space-time, while $R_{\eps}$ requires them
only to be within some range.
  Toom's theorem implies that no such $R'$ is ergodic.
 \end{remark}


\subsubsection{Relaxation time: a measure of information loss}
  Some readers, computer scientists in particular, may want to know
already now what relevance can results on inifinite cellular automata 
have on have on the possibilities of computation or information
storage in finite systems.
  We will try to answer this question here.
  To stay in the context of the Toom rule, let us consider a (finite
or infinite) two-dimensional space $\bC$.
  With an extension of the notation~\eqref{e.nu(s)} to two dimensions
(where $\bs$ is now the array $(s_{ij}: -n\le i,j\le n)$), for any
fixed $\bs$, let us define the variation distance for $\mu$ and $\nu$
when the latter are restricted to $\SS_{n}$:%
 \glo{d@$d^{n}(\mu, \nu)$} 
 \[
 d^{n}(\mu,\nu) = \sum\setof{|\mu(\bs)-\nu(\bs)|: \bs\in\SS_{n}}.
 \]
  Of course, $0\le d_{n}(\mu,\nu)\le 2$.
  Distance 2 means that the two measures have disjoint support.
  Consider a set of sites%
 \glo{c.cap@$\bC_{m}$}%
 \[
 \bC_{m}=\ZZ_{m}\times\ZZ_{m}
 \]
  where $m$ can be finite or infinite.
  Suppose that for some $m$, the local transition matrix (for
simplicity, with nearest-neighbor interaction) gives rise to a
mixing Markov process with Markov operator $P_{m}$\glo{p.cap@$P_{m}$}.
  Let%
 \glo{d.cap@$D^{n}_{m}(t)$}
 \[
 D^{n}_{m}(t) = \bigvee_{\mu,\nu} d^{n}_{m}(P_{m}^{t}\mu, P_{m}^{t}\nu).
 \]
  \begin{remark}
  It is easy to see that this is equal to 
 \[
   \bigvee_{\br,\bs} d^{n}_{m}(P_{m}^{t}\nu_{\br},\nu_{\bs})
 \]
  where $\nu_{\bs}(\bs)=1$\glo{n.greek@$\nu_{\bs}$}, i.e.~$\nu_{\bs}$ is the
measure concentrated on configuration $\bs$.
  \end{remark}

  Notice that $D^{n}_{m}(t)$ is monotonically decreasing in $t$ since
 \[
   d^{n}_{m}(P_{m}^{t+u}\nu,\mu_{m})= d^{n}_{m}(P_{m}^{t}(P_{m}^u\nu),\mu_{m}).
 \]
  $P_{m}$ is mixing if and only if for each $\bs,\nu$ we have
$P_{m}^{t}\nu(\bs)\to \mu_{m}(\bs)$.
  By the weak compactness of the space of measures, this is equivalent
to saying that
  \[
   \lim_{t} D^{n}_{m}(t)=0
  \]
  holds for all $n$.
  The mixing of $P_{m}$ implies that there is an integer function%
 \glo{r@$r_{m}(n,\dg)$}%
 \[
  r_{m}(n,\dg)
 \]
  with $D^{n}_{\infty}(t)<\dg$ for all $t\ge r_{m}(n,\dg)$.
  We will call $r_{m}(n,\dg)$ the \df{relaxation time}\index{relaxation
time} .
  This is obviously an increasing function of $n$ (defined only for
$n\le (m-1)/2$) and a decreasing function of $\dg$.
  In the cases we are interested in, the order of magnitude of
$r_{m}(n,\dg)$ as a function of $n$ does not change fast with the
change of $\dg$: $r_{m}(n,0.1)$) is not much larger than $r_{m}(n,1.9)$.
  This means that once $\mu_{m}$ is not separated well from any
$P_{m}^{t}\nu$ it soon becomes fairly close to all of them.
  Therefore we will generally consider $\dg$ fixed.

\subsubsection{Relaxation time as a function of space size}
  If $m<\infty$ then the medium is always mixing.
  Assume now that the medium is also mixing for $m=\infty$: we try to
understand the implications of this fact for finite $m$.
  We have the following relation:

 \begin{lemma}\label{l.unif}
  For all $n<(m-1)/2$, for all $\dg$ with $r_{\infty}(n,\dg)<(m-1)/2-n$
we have
  \[
   r_{m}(n,\dg)\le r_{\infty}(n,\dg).
  \]
 \end{lemma}
  This means that if the medium is mixing for $m=\infty$ then increasing
$m$ in the case of $m<\infty$ does not increase the relaxation time
significantly for any fixed $n$: in each segment of length $n$ of any
finite medium, information is being lost at least as fast as in the
infinite medium.
 \begin{proof}
  Take $m,n,\dg$ satisfying the above conditions and let
$r=r_{\infty}(n,\dg)$.
  Due to the monotonicity of $D^{n}_{m}(t)$, it is enough to prove that 
$D^{n}_{m}(r)\le D^{n}_{\infty}(r)$.
  Take a measure $\nu$ over configurations of $\bC_{m}$, this will give
rise to some measure $\nu_{\infty}$ over configurations of period $m$ in
$\bC_{\infty}$ in a natural way, where $\nu_{\infty}$ is such that for all
$n<(m-1)/2$ and all $\bs\in\SS_{n}$ we have $\nu_{\infty}(\bs)=\nu(\bs)$.
  Then, $r<(m-1)/2-n$ implies $2n+1+2r<m$ and therefore via~\eqref{e.P.def}
we have
 \[
  P_{m}^r\nu(\bs)=P_{\infty}^r\nu_{\infty}(\bs).
 \]
\end{proof}
 
  We found that mixing of $P_{\infty}$ implies a kind of
 \df{uniform forgetfulness}\index{forgetful!uniformly} in the sense that
increasing the size $m$ of the space does not help increasing the
relaxation time beyond $r_{\infty}(n,\dg)$.

% \begin{remark}
%  When the condition $r_{\infty}(n,\dg)<(m-1)/2-n$ is not satisfied
%the finiteness of the space may manifest itself.
%  It might happen that the rule is such that not all local transition
%probabilities are positive: e.g.~all local transitions preserve the
%parity of $\sum_{x\in\bC_{m}}\xi(x)$.
%  Then the process $P_{m}$ is not ergodic, but $P_{\infty}$ may still be
%ergodic (a specific example would be useful).
% \end{remark}


\subsubsection{Forgetfulness: a variant of ergodicity}
 Non-ergodicity does not express quite adequately the losing of all
information about the initial configuration in case of cellular automata,
where namely the space-time is translation-symmetric (this was noticed by
Charles Radin and Andrei Toom).

  Let $\xi_{0}$ be the configuration over the one-dimensional integer
lattice that is 0 in the even places and 1 in odd places, and $\xi_{1}$
that is 1 in the even places and 0 in the odd places.
  Let $\mu_{i}$ be the measure concentrated on $\xi_{i}$ and let $P$ be
some linear operator obtained from a transition function.
  Suppose that the measures $P^{n}\mu_{0}$ converge to some measure
$\nu_{0}$.
  Then the measures $P^{n}\mu_{1}$ converge to some measure $\nu_{1}$.
  Even if $\nu_{1}$ is different from $\nu_{0}$ they differ only by a
translation in space.
  If the translations of $\nu_{0}$ are the only invariant measures of
$P$ then we would still say that in some sense, $P$ loses all
information about the initial configuration: we might say, it loses
all ``local'' information.
  Indeed, a cell has no way of knowing whether it has even or odd
coordinates.

%  Similarly, we may have an operator $P$ with only one invariant
%measure but also four more measures $\mu_{0},\mu_{1}$ and $\nu_{0},\nu_{1}$
%with
% \begin{align*}
%     P\mu_{0} &= \mu_{1},\ P\mu_{1}=\mu_{0} , 
% \\  P\nu_{0} &= \nu_{1},\ P\nu_{1}=\nu_{0} . 
% \end{align*}
%  Then this rule does not really forget all information.
%  (A real example would be better here.)

  We can say that $P$ is
 \df{strongly not forgetful}\index{forgetful!strongly not} if it has two
disjoint (weakly) closed translation-invariant sets of measures.
  Our non-ergodic examples all have this property.


 \subsection{Information storage and computation in various dimensions}
 \label{ss.1dim.comp}

  Let us be given an arbitrary one-dimensional transition function
$\trans$ and the integers $N,L$.
  We define the three-dimensional transition function $\trans'$ as
follows.
  The interaction neighborhood is $H\times\{-1,0,1\}$ with the
neighborhood $H$ defined in Subsection ~\ref{ss.toom} above.
  The transition function $\trans'$ says: in order to obtain your state at
time $t+1$, first apply the transition function $R$ in each plane defined by
fixing the third coordinate.
  Then, apply transition function $\trans$ on each line obtained by fixing
the first and second coordinates.
 (The papers ~\cite{GacsReif3dim88} and \cite{Gacs2dim89} use a
neighborhood instead of $H$ that makes some proofs easier: the
northern, south-eastern and south-western neighbors.)

  For an integer $m$, we define the space $\bC =\ZZ_{N} \times \ZZ_{m}^{2}$.
  For a trajectory $\xi$ of $\CA(\trans)$ on $\ZZ_{N}$, we define the
trajectory $\zeta$ of $\CA(\trans')$ on $\bC$ by
 \begin{equation} \label{e.reifCode} 
	\zeta(i,j,n,t)=\xi(n,t).
 \end{equation} 
  Thus, each cell of $\CA(\trans)$ is repeated $m^{2}$ times, on a whole
``plane'' (a torus for finite $m$) in $\bC$.

  Then it is proved in earlier work that there are constants
$\eps_{0},c_{1},d_{1}>0$ such that the following holds.
  For all $N,L$, and $m=c_{1} \log(NL)$, for any trajectory $\xi$ of
$\CA(\trans)$ over $\ZZ_{N}$, if the trajectory $\zeta$ of
$\CA(\trans')$ is defined by~\eqref{e.reifCode} then for any
$\eps<\eps_{0}$, any trajectory $(\mu,\eta)$ of $\CA_{\eps}(\trans')$
such that $\eta(\cdot,0)=\zeta(\cdot,0)$ we have for all $t$ in
$[0,L]$ and all $w\in \bC$
 \[ 
  \mu\setof{ \eta(w,t)\ne  \zeta(w,t) } \le d_{1}\eps .
 \]
  This theorem says that in case of the medium $\CA_{\eps}(\trans')$ and
the trajectories $(\mu,\zeta)$, the probability of
deviation\index{deviation} can be uniformly bounded by $d_{1}\eps$.
  The trajectories $\eta$ encode (by~\eqref{e.reifCode}) an arbitrary
computation (e.g.~a universal Turing machine), hence this theorem
asserts the possibility of reliable computation in three-dimensional
space.
  The coding is repetition $O(\log^{2}(NL))$ times, i.e.~it depends on the
\df{size}\index{computation!size} $N\cdot L$ of the computation.
  The decoding is even simpler: if a plane of $\bC$ represents a state
$s$ of a cell of $\CA(\trans)$ then each cell in this plane will be in
state $s$ with large probability.
  The simulation occurs in ``real time''.

  The original proof of a slightly weaker version of this result used a
sparsity\index{sparsity} technique borrowed from ~\cite{Gacs1dim86}.
  In its current form, the theorem was proved in ~\cite{BermSim88}
using an adaptation of the techniqe of ~\cite{Toom80}.

  Theorem ~\ref{t.1dim.nonerg} shows that one-dimensional noisy and
strongly not forgetful probability operators exist.
  The proof of that theorem seems to require almost the whole complexity of
the constructions of the present paper (though the continuous-time case adds
some additional nuisance to each part of the proof).
  Once the basic structure (an amplifier, as asserted in
Lemma~\ref{l.abstr-amp}) is in place, the simulations in it support
arbitrary computational actions and allow the formulation of several other
theorems.

  The following theorem asserts the possibility of storing much more
information.
  For the finite version, recall the definition of $\var{Visible}(k,N)$ in
~\eqref{e.Visible}.

 \begin{theorem}[FCA, 1-dim, storage, discrete time] \label{t.1dim.stor}
  There is
 \begin{itemize}

  \item a transition function $\trans'$ with a statespace having a field
$\F^{1}$;

  \item a hierarchical code $\Psi$ with a shared field $(\F^{k})$ as
in~\eqref{e.shared} such that $|\var{Visible}(K(N),N)| = N$;

  \item constants $d_{1},c_{2}>0$;

 \end{itemize}
  such that for $h_{2}(n) = n^{c_{2}/\log \log n}$, for all $\eps>0$,
$t>0$, for any configuration $\rg$ with states in $\SS.\F^{1}$, trajectory
$\eta$ of $\CA_{\eps}(\trans')$ over $\bC=\ZZ_{N}$ (for finite or infinite
$N$) with initial configuration $\Gg(\rg;\Psi)$, for all $y$ in
$\var{Visible}(K(N),N)$, we have
 \[
 \Prob\setof{\rg(y) \ne \eta(\X(y;\Psi),t).\F^{1}}
 < d_{1}\eps + t\eps^{h_{2}(N)}.
 \]
  The code can be chosen to have $\X(y; \Psi)=y$.
  \end{theorem}

  The function $\eps^{h_{2}(N)}$ shows the length of time for which a
space of size $N$ can hold information.

  A fault-tolerant computation is the trajectory of some perturbed
medium $\CA_{\eps}(\trans')$ simulating the trajectory of an arbitrary
deterministic medium.
  The simulated transition function $\trans$ is arbitrary, but we
might as well choose it to be a fixed universal cellular automaton.
  Then $\CA(\trans')$ can be called a ``universal fault-tolerant
cellular automaton''.
  The exact form of the theorems formulating the possibility of reliable
computation is somewhat arbitrary.
  It may seem more natural if the input of the computation is not given in
the initial configuration but is being fed through some cell throughout the
time of the computation.
  There are several choices also concerning simplicity, the tradeoffs of
space- and time-redundancy, etc.
  These theorems should be considered therefore as just illustrations of
the possible use of the amplifiers of Lemma~\ref{l.abstr-amp}.

  The basic idea is to implement a large but finite computation of $\univ$
by choosing the ``active level'' $k$ mentioned above so large that during
the planned computation, it is unlikely that there will be any fault at all
in the work of medium $M_{k}$.
  If the computation involves $N$ cells and $L$ steps then this means
that we should have, say, $NL\eps_{k}<1/3$.
  Theorem ~\ref{t.1dim.comp} realizes this idea.
  In it, there are still several choices: simpler encoding at the price of
larger space redundancy, or more complex encoding at the proce of less
space redundancy and more time redundancy.

  To formulate the theorems exactly, let $\trans$ be any deterministic
transition function with distinguished fields $\Input$, $\Output$ in the
standard alphabet.
  We say that $\trans$ has \df{monotonic output}\index{monotonic output} if
for all trajectories $\eta$ of $\CA(\trans)$ we have
 \[
  \eta(x,t).\Output \preceq \eta(x,t+1).\Output.
 \]
  We call the transition function $\trans$, all of whose fields have even
size
(i.e.~they are in the standard alphabet) together with some
distinguished fields $\Input$, $\Output$, a
\df{standard computing transition function} if it
 \begin{cjenum} 
  \item is a separable transition function as defined in
~\ref{sss.bandwidth};

  \item never changes $\Input$;

  \item has monotonic output;

  \item never changes anything if one of the three arguments is vacant or
if the middle argument has all $\#$'s in its input field, or if all three
arguments have $*$ in all their fields.

 \end{cjenum}
 \begin{remark}
  The $\Input$ and $\Output$ fields here have nothing to do with the
$\Inbuf$ and $\Outbuf$ fields introduced in ~\ref{sss.bandwidth}.
  These are input and output of a certain large-scale computation, while 
$\Inbuf$ and $\Outbuf$ concern the step-for-step interaction of a cell with
its neighbors.
 \end{remark}
 
  Let $\SS$ be the set of states for $\trans$, and let
$\rg\in(\SS.\Input)^{\ZZ}$ be an
 ``input configuration''\index{configuration!input}.
  Then the configuration%
 \glo{init@$\Init(\rg)$} 
	\begin{equation}\label{e.Init}
   \zg=\Init(\rg) 
    	\end{equation}
  with states in $\SS$, is constructed as follows.
 \begin{cjenum}

  \item
  For all $x\in\ZZ$, $\zg(x).\Input=\rg(x)$ and $\zg(x).\Output$ is
filled with $*$;

  \item
  For all $x\in\ZZ$, all other fields of $\zg(x)$ are filled with $*$;

  \item
  For all $x\not\in\ZZ$, we have $\zg(x)=\Vac$.

 \end{cjenum}
  If $\rg$ is a configuration in $\SS^{\ZZ}$ where $\nm{\SS}$ is even,
i.e.~elements of $\SS$ can be viewed as strings in the standard alphabet,
then we say that $\rg$ is \df{supported by} interval $I$ if
$\rg(x)=*\cdots *$ or vacant for all $x\not\in I$.
  The \df{support}\index{support@support} of $\rg$ is defined to be the smallest
interval supporting $\rg$ and containing 0.
  Let%
 \glo{supp@$\var{Supp}(\rg)$}% 
 \begin{equation}\label{e.support.config}
   \var{Supp}(\rg)
 \end{equation}
  be the support of $\rg$.
  For a space-time configuration $\zg$ of a standard computing medium, let
 \begin{equation}\label{e.support.evol}
  \var{Supp}(\zg,t) = \bigcup_{u\le t}\var{Supp}(\zg(\cdot,u)).
 \end{equation}
 
 \begin{theorem}[FCA, 1-dim, discrete time, known bounds]
 \label{t.1dim.comp}
  Let $\trans$ be a standard computing transition function.
  There is
 \begin{itemize}
  \item a transition function $\trans'$ with a statespace having a field
$\Output^{1}$;
  \item constants $d_{1},c_{0},c_{1}>0$;
  \item a hierarchical code with a shared field defined by $\Psi$ as
in~\eqref{e.shared} 
 \end{itemize}
 such that for $h_{0}(t) =  \log\log t + c_{0}$,
 $h_{1}(t) = t\cdot(c_{1}\log t)^{5\log\log\log t}$,
 for all $\eps,s,t>0$, 
 for any trajectory $\zg$ of $\trans$ over $\ZZ$ with $\zg(\cdot,0)$
 of the form $\Init(\rg)$ (see~\eqref{e.Init}),
 satisfying $2|\var{Supp}(\zg,t)|\le s$,
 for any finite $K\ge h_{0}(t)$ and possibly infinite $N$ satisfying
 $\var{Supp}(\zg, t)\sbs\var{Visible}(K, N)$,
 for any trajectory $\eta$ of $\CA_{\eps}(\trans')$ over $\bC=\ZZ_{N}$ with
initial configuration $\Gg(\rg; K, \Psi)$,
 for all $y\in\var{Supp}(\zg, t)$, we have
 \[
 \Prob\setof{\zg(y, t).\Output \not\preceq 
 \eta(\X(y; K, \Psi), h_{1}(t)).\Output^{1}} < d_{1}\eps.
 \]
  The code can be chosen to have $\X(y; K,\Psi)=y$ and
$|\var{Visible}(K,N)| = N$. 
  \end{theorem}

  Thus, to find a computation result $\zg(y,u)$ of $\CA(\trans)$, from
some input, we must do the following.
  Find a bound $s$ on $2|\var{Supp}(\zg, t)|$ (the amount of space required
by the computation if we put the origin somewhere into the input), then the
level $K\ge h_{0}(t)$ on which the trajectory $\eta$ of the
fault-tolerant automaton $\CA_{\eps}(\trans')$ carries out the computation
to the desired stage $u$ with the desired reliability until step $t$.
  Embed the input into a configuration $\rg$ whose support contains 0.
  Encode $\rg$ into an initial configuration $\Gg(\zg(\cdot,0); K)$ in a
space whose size $N$ is large enough to have
$\var{Supp}(\zg,t)\sbs\var{Visible}(K, N)$.
  ``Run'' the trajectory $\eta$ until time $h_{1}(t)$, (it will be
programmed to keep the active level at $K$), and finally look up the result
in site $\X(y; K)$.
  Due to monotonic output, it is always possible to look up the result
later.
  If you look at it too early the worst thing that can happen is that it
will still be undefined.

  The function $h_{1}(t)/t$ measures
 \df{time redundancy}\index{redundancy!time} while $\X(y; h_{0}(t))/y$
measures \df{space redundancy} (which, as the theorem says, can be made
constant).

  The above theorem strengthens the result of ~\cite{Gacs1dim86} by
eliminating the need for the decoding of the computation result: we just
have to look in the right place for it.
  In two dimensions such a construction was given in
~\cite{Gacs2dim89}.
  The time redundancy in that paper is $O(\log^{2+\dg}(NL))$ where
$N,L$ are the upper bounds on the space and time requirements of the
computation.
  We believe that this two-dimensional time redundancy can be reduced
to $\log^{1+\dg}(NL)$.


\subsubsection{Adaptive encoding}\label{sss.active}
  Theorem ~\ref{t.1dim.comp} is not entirely satisfactory since its initial
encoding (the active level) depends on the knowledge of a time and space
bound on the whole computation.
  It is possible to remove this limitation.
  Instead of formulating the theorem, we just describe the idea of the
construction.
  The initial encoding populates the space with cells of $M_{k}$ for all
$k < K(N)$ where $N$ is the space size.
  Chose a level $k_{1}$ of encoding for the computation input depending
only on the size of the input.
  For an appropriately chosen (universal) increasing sequence $(\L_{k})$,
after $\L_{k}$ computation steps have been simulated, the active level will
be raised from $k$ to $k+1$.
  The parameters $k_{1}$ and $(\L_{k})$ are chosen to guarantee with high
probability that none of level $k$ cells involved in the actual computation
will fail before the level will be raised to $k+1$.


\subsubsection{Self-organization}
  In the just-discussed hierarchical fault-tolerant computations, the
initial configuration is highly non-uniform since it encodes the
hierarchy of simulations described above.
  If we forgo this initialization then the hierarchy must apparently
be built up spontaneously.
  Initially, all sites in the media $M_{2},M_{3},\ldots$ could be
vacant but cells could emerge spontaneously, as lower-level cells
organize themselves (with the help of some randomness) into colonies
simulating higher-level cells.
  We call this feature \emph{self-organization}\index{self!organization},
but postpone its formal definition a few sections later.

plan.tex
\section{General plan of the program} \label{s.plan}

  Our eventual goal is to prove Lemma ~\ref{l.amp} (Amplifier).
  The medium $M_{k+1}$ to be simulated has reach 1.
  The simulation is the composition of two simulations.
  First, we simulate $M_{k+1}$ by a medium $M'_{k}$ having reach 2, and
then we simulate $M'_{k}$ by a medium $M_{k}$ having the same cells but
with reach 1.
  The latter simulation uses the construction in Theorem
~\ref{t.reach}.
  The bulk of the work is in the first simulation, to which now we
proceed. 
  From now on, we fix the level $k$ of the simulation hierarchy,
refer to medium $M'_{k}$ as $M$ and to medium $M_{k+1}$ as $M^{*}$.
  The subscript will be deleted from all parameters in $M$ and a
superscript $*$ will be added to all parameters of $M^{*}$.
  We will refer to cells of $M$ as \df{small cells}, or simply \df{cells},
and to cells of $M^{*}$ as \df{big cells}.

  According to the definition of an amplifier frame, the medium $M$ has two
special fields called $\Rider$ and $\Guard$, and can also have other
fields.
  These two fields will be subfields of the field $\Info$ in our medium.
  In what follows we define the function $\var{Sim-trans}$ only: the
function $\var{Rd-trans}$ is given in advance.
  The updating of $\Rider$ and $\Guard$ is determined by the rule
~\eqref{e.combined}.
  Thus, $\var{Sim-trans}$ determines the next value of $\Rider$ only in
case of $\Guard\ne 0$, and the next value of $\Guard$ in case of
 $\Guard<0$.
  We will not point out always that what we define is only
$\var{Sim-trans}$ but this is to be understood.
  In particular, when our program requires to update $\Info$ then in the
subfield $\Rider$ this will be actually carried out only if
 $\Guard\ne 0$.

  For simplicity, the proof will only be given for $q_{k}=Q_{k}$ (see
~\ref{sss.hier.infin-seq}).
  The general case is not more difficult, but would need extra notation.
  The track $\Info$ of a colony contains the string that is the state
of the represented cell, encoded via an error-correcting code.
  $\Info$ consists of two subfields,
$\Info.\Main$\glo{info.main@$\Info.\Main, \Info.\Redun$} and
$\Info.\Redun$.
  The track $\Info.\Main$ contains the intended original information,
including $\Rider$\glo{rider@$\Rider^{k}$} and
$\Guard$\glo{guard@$\Guard^{k}$}.
  The track $\Info.\Redun$ contains ``parity checks'' for the string on
track $\Info.\Main$, but contains only 0 in cell 1 (due to the ``controlling''
property).
  Since $\Rider$ must control cell 1 of the colony in the sense of
~\ref{sss.controlling}, the track $\Redun$ does not use cell 1.
  For the error-correcting code, the field $\Info.\Main$ will be subdivided
into ``packets'' such that the parity check bits for each packet will be
computed separately.
  The fields $\Rider^{*}$ and $\Guard^{*}$ will occupy packets disjoint
from the other fields and therefore the error-correction for the other
fields will proceed without difficulty even if e.g.~the error-correction
for $\Rider^{*}$ is prevented by $\Guard^{*}=0$.

  The program will be described in a semi-formal way; the present section
overviews it.
  Later sections restrict the program more and more by giving 
some rules and conditions, and prove lemmas along the way.
  The typical condition would say that certain fields can only be changed
by certain rules.
  The language for describing the rules is an extension of the one given in
Subsection ~\ref{ss.simp-sim}.
  We will introduce a fair number of fields but they are all relatively
small.

  All fields but $\Info.\Main$ are contained in $\Buf$ (see
~\ref{sss.bandwidth}) and hence are visible by neighbor cells and
changeable immediately even by the separable transition function.
  Cells have an address field which determines the only \df{colony}
($Q$-colony) to which the cell belongs.
  A colony $\cC(y)$\glo{c.cap@$\cC(y)$} has base $y$.
  All properties and relations defined for colonies are automatically
defined for the sites of potential big cells at their bases and vice versa.
  The $\Age$ field of a cell, called its \df{age}, can have values in
$[0,U-1]$, but the upper bound will typically not be reached.


\subsection{Damage rectangles}\label{ss.damage-rect}

  The damage map of the simulation $\fg=\fg_{k}$ was defined in
Subsection ~\ref{ss.rob.damage}.
  Let us write
 \[
  \Damage=\Damage(\eta) ,\qq \Damage^{*}=\Damage(\eta^{*}) . 
 \]
  Lemma ~\ref{l.sim-damage} proves the Restoration Property for
$\eta^{*}=\fg^{*}(\eta)$ whenever $\eta$ is a trajectory of $M$.
  In the Computation Property applied to a cell $x$ of $\eta^{*}$, we are
given a rational number $a$ satisfying $\f_{1}(x,a,\eta)=1$, i.e.~
throughout the rest of the construction, \emph{it is assumed that
$\Damage^{*}$ does not intersect the set}
 \[
  W^{*}_{1}(x,a) = [x-2QB,x+3QB-]\times[a-\Tl^{*}/2+,a+2\Tu^{*}]
 \]
  (where we used the fact that the reach of $\eta^{*}$ is 1).
  Recall some definitions from  Subsection ~\ref{ss.rob.damage}.
  We had $V = [-B/4, B/4-]\times [-\Tl/4+,0]$.
  We have $\eta^{*}(x,t)\in\Bad$ iff $\Damage(\eta)$ contains at least two
points $u,v$ such that $u+2V$, $v+2V$ are disjoint and even $u+3V,v+3V$ are
contained in $(x,t)+4V^{*}+(B^{*}/2,0)$ (see Figure~\ref{f.damage-cause}).
  Let%
 \glo{v.cap@$V'$}%
 \begin{equation}\label{e.V'}
   V'=\setof{u : u+3V\in V^{*}+(QB/2,0)}.
 \end{equation}
  The later definitions ~\eqref{e.Q-req-1}, \eqref{e.end-period} imply %check!
$Q > 10$, $\Tl^{*} > 6\Tl$.
  This guarantees that the space projection of $V'$ is at least
$1.5QB$ and the time projection is at least $\Tl^{*}/2$.  %check!
  We have $\eta^{*}(x,t)\notin \Bad$ if{f} there
is a rectangle of the form $(y,u)+2V$ covering $\Damage\cap (x,t)+V'$.
  It is easy to see that if $\Damage^{*}$ does not intersect $W^{*}_{1}$
then there is a finite set of small rectangles of this latter form
covering $\Damage\cap W^{*}_{1}$ such that each rectangle of the form
$(z,w)+V'$ intersects at most one of them.
  We will call these small rectangles the
 \df{damage rectangles}\index{damage!rectangle}.

  Let us say that the damage \df{affects} $(x,t_{0})$
\df{directly}\index{affecting!directly} unless one of the following occurs:
 \begin{djenum}

  \item $\{x\}\times[t_{0}-2\Tu-\Tl/2+,t_{0}] $ is disjoint from the
damage rectangle;

  \item There is a dwell period $[t_{1},t_{2}]$ of $x$ with
 $t_{0}-2\Tu< t_{2}\le t_{0}$ such that $\{x\}\times[t_{1}-\Tl/2+,t_{0}]$ is
disjoint from the damage rectangle; 

  \item There is a switching time $t_{2}$ of $x$ with
 $t_{0}-2\Tu< t_{2}\le t_{0}$ such that $\{x\}\times [t_{2}-\Tu-\Tl/2+,t_{0}]$
is disjoint from the damage rectangle;

 \end{djenum}
  This definition encompasses the cases when damage prevents the
application of parts ~\eqref{ax.comput.rnd}, \eqref{ax.comput.dwell-pd-bd},
\eqref{ax.comput.legal-comp} or \eqref{ax.comput.legal-birth} of the
Computation Property for concluding about $(x,t_{0})$.

  We will say that $(x,t_{0})$ is affected
 \df{via neighbors}\index{affecting!via neighbors} if in the above
definition, one of the conditions does not hold with the interval
$[x-2B,x+3B-]$ in place of $\{x\}$.
  This encompasses the cases when damage prevents the application of parts
~\eqref{ax.comput.trans}, \eqref{ax.comput.creator},
\eqref{ax.comput.newborn} or \eqref{ax.comput.no-birth}
\eqref{ax.comput.no-birth} of the Computation Property.
  Thus the damage can affect more cells via neighbors but only during
the same time interval.

  By the definition of $V$, the (half-open) damage rectangle has width $B$
and duration $\Tl/2$; therefore it can affect at most one cell directly,
for less than $2\Tu+\Tl/2$ time units.
  For each damage rectangle we define a corresponding \df{extended} damage
rectangle\index{damage!rectangle!extended}, an upper bound on the set of
points affected directly.
  Generally, such a rectangle will be denoted by the Cartesian
product  
 \begin{equation}\label{e.u-1}
  [a_{0},a_{1}-]\times [u_{0}+,u_{1}-]
 \end{equation}
  with $a_{1}-a_{0}=B$, $u_{1}-u_{0} = 2\Tu+\Tl$.

 \begin{lemma}\label{l.damage-altern}
  Suppose that $(x,u)$ is not affected directly by damage but is
affected via neighbors.
  Then $x$ is not affected directly during $[u-5\Tu,u]$ and not
affected even via neighbors during $[u-5\Tu,u-3\Tu]$.
  If $(x,u)$ is the end of a dwell period then $x$ is not affected via
neighbors during $[u-5\Tu,u-2\Tu]$.
 \end{lemma}
 \begin{proof}
  Some damage occurs near $x$ but not in $x$ at some time $t_{1}$ during
$[u-2\Tu-\Tl/2+,u]$.
  When $(x,u)$ is the end of a dwell period then, since $x$ is
affected via neighbors, $t_{1}\ge u-\Tu-\Tl/2$
  Then it does not affect $x$ directly at all.
  Clearly, no other damage rectangle affects directly $x$ during
$[u-5\Tu,u]$, and this damage rectangle does not affect $x$
before $t_{1}-\Tl/2$.
 \end{proof}


\subsection{Timing}\label{ss.timing}

  Let%
 \glo{l.greek@$\lg$}%
 \begin{equation}\label{e.def.lg}
  \lg=\Tu/\Tl.
 \end{equation}
  Different actions of the program will be carried out with different
speeds.
  We introduce some delay constants:%
 \glo{p@$\p_{i}$}%
 \begin{equation} \label{e.p_{0}}
  4\lg <  \p_{0} < \p_{1} < \p_{2} 
 \end{equation}
  whose value will be defined later.
  The slowdown uses a subdivision of the state into the following
fields:%
 \glo{wait@$\Wait$}%
 \glo{cur@$\Cur$}%
 \glo{fut@$\Fut$}%
 \[
   \Wait,\Cur,\Fut.
 \]
  Here, $\Wait$ takes values $1,\ldots,\p_{2}$, and $\Cur,\Fut$ have equal
size.
  We will work almost exclusively with the field $\Cur$, which represents
the ``current state''.
  Its subfields $\Cur.\F$, will simply be written as $\F$.
  An assignment will typically have the form%
 \glo{:=@$:=_{\p}$}% 
 \[
  \F:=_{\p} v.
 \]
  This means that $\F.\Fut$ gets value $v$ and $\Wait$ gets value $\p$.
  The default change of $\Wait$ is to decrease it by 1 if it is
different from 1.
  When $\Wait=1$ then $\Fut$ will be copied into $\Cur$.
  Missing subscript in the assignment means $\p=1$.
  Thus, all examined fields are understood to be the corresponding
subfields of $\Cur$ and all changed fields are understood to be the
corresponding subfields of $\Fut$.

 \begin{condition}[Waiting]\index{condition@Condition!Waiting}\ 
 \begin{cjenum}

  \item A field $\Cur.\F$ can only be changed when $\Wait.\F=1$,
in which case it is set to $\Fut.\F$.

  \item A field $\Wait.\F$ can only either decrease by 1 until it reaches 0
or stay 0, or be set to one of the values $1,\ldots,\p_{2}$.

  \item If $\Fut.\F$ changes then $\Wait.\F$ will be set to one of the
values $1, \ldots,\p_{2}$.

  \end{cjenum}
  \end{condition}

  E.g., the proper reading of rule
 \begin{program}
  cond \0{
\\  ? $\Addr=0$ and $\Addr^{1}=0$
\\  ! $\Kind:=_{\p}\Latent$
\\  }
 \end{program}
  is that if $\Cur.\Addr(\x)=0$ and $\Cur.\Addr(\x+B)=0$ then
$\Fut.\Kind(\x)$ must be set to $\Latent$ and $\Wait.\Kind(\x)$ must
be set to $\p$.

  We will have $\Cur\cap\Inbuf=\eset$ where $\Inbuf$ was defined in
~\ref{sss.bandwidth}.
  Thus, $\Cur$ will never be changed in one step in response to a change in
a neighbor cell.


\subsection{Cell kinds}

  The values of the address field $\Addr$ will vary in $[-Q,2Q-1]$.
  The cells whose colony is their originating colony, will be called
\df{inner cells}\index{cell!inner}, the other ones will be called
 \df{outer cells}\index{cell!outer}.
  Cells will be of a few different kinds\index{cell!kind}, distinguished by
the field%
 \glo{kind@$\Kind$}%
 \[
  \Kind
 \]
  with possible values (for $j\in\{-1,1\}$) $\Vac$,
$\Latent$\glo{latent@$\Latent$}, $\Channel_{j}$\glo{channel@$\Channel$},
$\Growth_{j}$\glo{growth@$\Growth_{j}$}, $\Member$\glo{member@$\Member$},
$\Germ$\glo{germ@$\Germ$}.
 \index{cell!vacant}%
 \index{cell!latent}%
 \index{cell!germ}%
 \index{cell!channel}%
 \index{cell!growth}%
 \index{cell!member}%
  The kind of a non-germ, non-latent cell is determined by $\Age$ and
$\Addr$.
 The kinds of cells are ordered by \df{strength}\index{cell!strength}, as
follows:
 \[
  \Vac< \Latent < \Germ < \Channel_{j} < \Growth_{j} < \Member.
 \]
  Stronger cells prevail over weaker ones in conflicts about who should
create a neighbor.
  The relation $\Kind(x,t)=\Vac$ means that there is no cell at
site $x$ at time $t$.
 
 \begin{condition}[Latent Cells]\label{cond.vac-to-lat}
 \index{condition@Condition!Latent Cells}\
  \begin{cjenum}
   \item A vacant cell can only turn into a latent one.
   \item A latent cell has $\Guard=-1$ (else it is bad).
  \end{cjenum}
   \end{condition}
 
  A cell will be called \df{dead}\index{cell!dead} if it is vacant or
latent, and \df{live}\index{cell!live} otherwise.
  \df{Killing}\index{killing} a cell $x$ means turning it latent: only when
place must be vacated for a new nonadjacent cell whose body intersects the
body of $x$ will it be turned vacant.
  This will imply Condition ~\ref{cond.cling} (Cling-to-Life).
  Members have addresses in $[0,Q-1]$.
  They are the strongest kind in order to maintain the integrity of
colonies.

  A right outer cell has (by definition) addresses $>Q$, and a left outer
cell has addresses $<0$.
  Germ cells have addresses in $[-Q, 2Q-1]$.


\subsection{Refreshing}\label{ss.refreshing}

  Since several damage rectangles can occur during a work period, a rule
called $\Refresh$\glo{refresh@$\Refresh$} will be performed several times
during the work period and will attempt to correct information by global
decoding-encoding.
  The last step of each invocation of $\Refresh$ will be called a
\df{refreshing step}\index{refreshing step}.
  The number of steps between invokations of $\Refresh$ will be%
 \glo{refresh-time@$\cns{refresh-time}$}%
 \begin{equation}\label{e.refresh-time}
  \cns{refresh-time} = \Tl^{*}/\Tu
 \end{equation}
  making sure that at most one damage rectangle may occur between
refreshings.

  Certain fields, called
 \df{locally maintained fields}\index{field!locally maintained}, will be
kept constant over the colony, for most of the work period.
  Here are some of these.
  The field $\Doomed$\glo{doomed@$\Doomed$} is 1 if the represented big
cell must be removed (the site to become vacant), and 0 otherwise.
  Cells with $\Doomed=1$ are called \df{doomed}\index{cell!doomed}.
  Cells will have fields%
 \glo{creating@$\Creating_{j}$}%
 \glo{growing@$\Growing_{j}$}%
 \[
  \Creating_{j},\Growing_{j}\ (j\in\{-1,1\})
 \]
  with values 0 or 1.
  $\Creating_{j}=1$ will mean that a cell is a creator in the sense of
Condition ~\ref{cond.creation} (Creation).
  $\Creating_{j}$ of a big cell will be broadcast into $\Growing_{j}$ of
its small cells.
  $\Growing_{j}=1$ signifies the collective decision of the colony to
grow a new neighbor colony in direction $j$.
  The track%
 \glo{control@$\Control_{k}$} %
 \[
   \Control_{0.1j}
 \]
  controls the retrieval of information from neighbor colonies.
  It will be updated periodically by the subrule
$\Retrieve$\glo{retrieve@$\Retrieve$}.

  The globally maintained field%
 \glo{end@$\End$}%
 \[
  \End
 \]
  will be locally updated by the rule%
 \glo{find-end@$\rul{Find-end}$}%
 \[
 \rul{Find-end}.
 \]
  The work period will end when $\Age=\End$.
  This will help setting the absolute duration of the work period more
predictably.
  The default value of $\End$ is $U-1$ and we will always have
$\End\ge\Age$.

    Each locally maintained field $\F$ has some
 \df{update ages}\index{update!age}: ages when $\F$ will be recomputed.
  An interval of size $4Q$ around each of these ages will be called an
\df{update interval}\index{update!interval} for $\F$.
 

 \subsection{A colony work period}

  The main stages are as follows:%
 \glo{idle@Idle}%
 \glo{extend@$\rul{Extend}$}%
 \glo{compute@$\Compute$}%
 \glo{grow@$\Grow$}%
 \glo{finish@$\rul{Finish}$}%
 \begin{program}
      \cmt{Idle};
 \\   $\rul{Extend}$;
 \\   \cmt{Idle};
 \\   $\Retrieve$;
 \\   $\Compute$;
 \\   \cmt{Idle};
 \\   $\rul{Find-end}$;
 \\   $\Grow$;
 \\   \cmt{Shrink};
 \\   $\rul{Finish}$;
 \end{program}
  The numbers%
 \glo{compute-start@$\cns{compute-start}$}%
 \glo{idle-start@$\cns{idle-start}$}%
 \glo{grow-start@$\cns{grow-start}$, $\cns{grow-end}$}%
 \begin{multline*}
   \cns{compute-start} < \cns{idle-start} < \cns{grow-start} <
\cns{grow-end} < \End
 \end{multline*}
  define the ages starting or ending important stages of this program and
will be defined later.
  The idle stages make sure that
 \begin{itemize}

  \item the computation and communication times are positioned
correctly;

  \item faults in one part have limited effect on other parts.

 \end{itemize}
  The numbers up to $\cns{idle-start}$ (i.e.~ $\cns{compute-start}$ and
$\cns{idle-start}$) are constant, and the numbers $\End-\cns{grow-start}$
and $\End-\cns{grow-end}$ are also constant.
  The difference $\cns{grow-start}-\cns{idle-start}$ is not constant since
$\End$ will be a computed value.
  Here is a short description of the major stages.
\begin{description}

 \item[Extension]
  The subrule $\rul{Extend}$ tries to extend some arms of the colony
left and right, to use in communicating with a possible non-adjacent
neighbor colony.
  In direction $j$, if it is not adjacent to another colony it will
extend an arm of cells of kind $\Channel_{j}$.
  In channel cells in the positive direction, the $\Addr$ field
continues its values through
 \[
  Q,Q+1,\ldots,2Q-1.
 \]
  Similarly in channel cells in the negative direction.
  Channel cells are weaker than member cells, so the growth of a
channel does not normally damage another colony.
  The channels will be killed at the end of the computation.

 \item[Retrieval]
  Retrieval starts at age $\cns{compute-start}$.
  During this, the colony tries to retrieve the state represented by
it and its neighbor colonies.
  The neighbor colonies will cooperate in this, having a dedicated mail
track and control track for serving each neighbor.
  Atomicity will be guaranteed by waiting, similarly to the proof of
Theorem \ref{t.reach} (Reach Extension).

 \item[Computation ]
  The subrule $\Compute$ computes the output of the simulated transition
function and stores it on the track $\Hold$\glo{hold@$\Hold$}.
  It will put $\Doomed=1$ into each cell of the colony if the represented
cell is to be erased.
  We will always set $\Doomed=0$ at $\Age=\cns{compute-start}$.
  

 \item[Idling]
  After the computation, some idling puts sufficient time between it and
the end of the work period to make sure that the retrieval falls into the
observation part of the work period.
  Procedure $\rul{Find-end}$ computes $\End$.

 \item[Growth]
  If $\Growing_{j}=1$ then, between values $\cns{grow-start}$ and
$\cns{grow-end}$, the colony tries to extend an arm of length at most $Q$
in direction $j$.
  These cells are of kind $\Growth_{j}$, or \df{growth cells}.

 \item[Birth]
  A latent cell $x$ turns immediately into a germ cell with address $-Q$
and age 0.
  The germ thus started begins to grow to the right, trying to fill 3
colonies until age
$\cns{germ-grow-end}$\glo{germ-grow-end@$\cns{germ-grow-end}$}.
  At%
 \glo{germ-end@$\cns{germ-end}$}%
 \[
  \Age=\cns{germ-end}-1, %?
 \]
 germ cells turn into member cells.

  Germs will implement the self-organizing property of the medium.

 \item[Shrinking]
  When they reach the end of their growth period\index{period!growth},
growth and germ cells stop producing offshoot.
  In what follows, all edges whose existence is not justified by these
processes (these edges will be called ``exposed'')\index{cell!exposed} will
be subject to the process $\Decay$\glo{decay@$\Decay$}.
  Therefore normally, a growth either disappears before the end of the work
period or it covers a whole new colony by that time.
  Similarly, germ cells are required to cover 3 neighbor colonies.

 \item[Finish]
  Rule $\rul{Finish}$ will be called when $\Age=\End$.
  It reduces the addresses of growth cells mod $Q$.
  Outer cells and inner germ cells turn into members.
  If the colony is doomed it will be erased, (starting from the right end,
since a doomed right endcell will be considered inconsistent with its
neighbors).
  Otherwise, the information from the $\Hold$ track will be copied into the
corresponding locations on the $\Info$ track.
  This final rule will take only a single step, and will also be called the
\df{cut}\index{cut}.
 \end{description}

  
\subsection {Local consistency} \label{ss.heal}

  The basic structural soundness of a colony will be expressed by some
local consistency conditions.
  Two cells locally consistent with each other will be called
\df{siblings}\index{sibling}.
  For $j\in\{-1,1\}$, let%
 \glo{sib@$\Sib$}%
 \[
  \Sib(j)=1
 \]
 if cell $\x$ is a sibling of its adjacent neighbor in direction $j$,
and $\Sib(j)=0$ otherwise.
  Sometimes, rules refer to the relation $\Sib()$ but can be understood
without going into the details of the definition of this relation itself.


\subsubsection{Siblings}
  Two aligned cells $x$ and $x+iB$ will be called
 \df{space-consistent}\index{consistent!space-} if
$\Addr(x+iB)-\Addr(x)\equiv i\pmod Q$.
  
  Let us consider cells $x$ and $y=x+jB$ for $j=-1,1$, with 
$|\Addr(x)|<|\Addr(y)|$.
  These two cells belong to the
 \df{same work period}\index{period!work} if
 \[
  0 \le \Age(x)-\Age(y) \le 1.
 \]
  They
 \df{straddle a work period boundary}
 \index{period!work!boundary} if $\Age(x)=0$, $\Age(y)=\End$.
  They are \df{siblings} if one of the following two properties
holds. 
 \begin{djenum}

   \item\label{i.sib.doomed}
  $x,y$ belong to the same work period, originate at the same colony,
either are both germ cells or neither of them is, and $x$ is not a doomed
right endcell with $0<\Age<\cns{compute-start}$.

  \item $x,y$ belong to the same colony, and straddle a work period
boundary.

  \end{djenum}
  Of course, siblings are space-consistent.
  An interval of cells in which the neighboring cells are siblings will be
called a \df{domain}\index{domain}.
  A domain of size $n$ will also be called a
\df{$n$-support}\index{support@support!$n$-} of its members.
  Let us call two cells \df{relatives}\index{relatives} if they can be
embedded into a common domain but are not necessarily in one.
  A colony with starting cell $x$ will be called
\df{full}\index{colony!full} if it is covered by a domain in such a way
that $\Addr(x+iB)\equiv i\pmod Q$.


\subsubsection{Age updating}\label{sss.age-updating}
  The rule for updating age is similar to the ``marching
soldiers''\index{marching soldiers} rule for updating $\Age$ in Subsection
~\ref{ss.asynch-sim}.
  As seen from the definition of siblings above, we impose some extra
order on age: the age of all cells in the same extended colony must be
non-increasing as they become more distant from the cell with
$\Addr=0$.
  Also, there will be a bit%
 \glo{frozen@$\Frozen$}\index{cell!frozen}%
 \[
  \Frozen
 \]
  with the property that when $\Frozen=1$ then $\Age$ will not be
changed.
  Here is the basic updating rule for age:%
 \glo{march@$\rul{March}$}%
 \begin{program}
  rule $\rul{March}$ \0{
\\   cond \0{
\\     ? \2{ $\Frozen=0$ and $\Age<\End$ and $\forall j\in\{-1,1\}$ 
         $\thg_{j}(\x)$ \cmt{is dead or the}
\\        \cmt{the increase of $\Age$ does not break the sibling relation 
          with $\thg_{j}(\x)$}
          }
\\     ! $\Age :=_{\p_{1}} \Age + 1$
\\     }}
 \end{program}
 
  \begin{condition}[Address and Age]\label{cond.addr-age}
 \index{condition@Condition!Address and Age}\
 \begin{cjenum}

  \item
  Only $\rul{Finish}$ can change $\Addr$ of a live cell;

  \item
  Only $\rul{March}$ and $\rul{Finish}$ change $\Age$ of a live cell;

 \end{cjenum}
  \end{condition}

\subsubsection{Repairs}  
  The rule $\Purge$\glo{purge@$\Purge$} eliminates isolated cells.
  The rule $\Heal$\glo{heal@$\Heal$} repairs a small hole.
  An unrepaired hole will be enlarged by the rule
$\Decay$\glo{decay@$\Decay$}: this will eventually eliminate partial
colonies.

  The damage rectangle can destroy the information represented on its space
projection, therefore the information representation on the $\Info$ track
will be a redundant, error-correcting code.
  Information will be decoded before computation and encoded after it.
  The damage can also disrupt the computation itself therefore the
decoding-computation-encoding sequence will be repeated several times.
  The result will be temporarily stored on the track $\Hold$.


\subsubsection{New colonies}\label{sss.new-colony}
  The following condition helps enforce that newly created cells in the
simulation are latent.
  
 \begin{condition}[Outer Info]\label{cond.outer-info}
 \index{condition@Condition!Outer Info}
  Suppose that $\fg^{*}(\eta)(x,t)\notin\Bad$, and the colony with base $x$
at time $t$ is full and is covered with member cells belonging to the same
work period, and is not intersected by the extended damage rectangle.
  Then $\fg^{*}(\eta)(x,t)$ depends only on the $\Info$ track of this
colony via some decoding function $\ag^{*}$.
  If the colony is covered with germ or outer cells then the state that
would be decoded from this track is latent.
 \end{condition}


\subsection{Plan of the rest of the proof}\label{ss.plan-proof}

  In order to preserve intelligibility and modularity, rules and conditions
belonging to the program will only be introduced as they are needed to
prove some property.

  The crucial Lemma ~\ref{l.attrib} (Attribution) says that soon after the
disappearence of the big damage $\Damage^{*}$, all live non-germ cells not
immediately arising from $\Damage$ can be attributed (via a path of
ancestors) to some nearby colonies (all disjoint from each other).
  Thus, this lemma enables us to reason about the process over this area in
terms of big cells.
  The lemma is important e.g.~ in seeing that a big cell can grow a
neighbor if no other cell is nearby.
  In terms of colonies, this means that if no other colony is nearby, then
a colony can grow and create a neighbor colony.
  This is not obvious since there could be ``debris'': earlier damage could
have left bits and pieces of larger colonies which are hard to override
locally.
  The Attribution Lemma will guarantee that those bits and pieces are not
there anymore at the time when they could be an obstacle, since whatever is
there is attributable to a big cell.

  The Attribution Lemma also plays a role in healing.
  Most local healing is performed by the rule $\Heal$\glo{heal@$\Heal$}.
  However, if the damage occurs at the end of some colony $\cC$ then it
is possible in principle that foreign material introduced by damage is
connected to something large outside.
  The Attribution Lemma will imply that the foreign matter is weaker and
can therefore be swept away by the regrowth of the member cells of $\cC$.

  The idea of the proof of the Attribution Lemma is the following.
  Suppose that $(x_{0},t_{0})$ is a cell whose origin we want to trace.
  We will be able to follow a steep path $(x_{i},t_{i})$ of ``ancestors''
backward in time until time $t_{n}=t_{0}-mQ$ with some large coefficient $m$.
  Lemma \ref{l.ancestor} (Ancestor)\index{lemma@Lemma!Ancestor} shows that
it is possible to lead a path around a damage rectangle.
  The attribution consists of showing that $(x_{n},t_{n})$ belongs to
a domain covering a whole colony.
  To prove this, we will show that the rule $\Decay$, which eliminates
partial colonies, would eventually cut through the steep path unless the
latter ends in such a domain.
  In actual order, the proof proceeds as follows:
 \begin{itemize}

  \item
  Some of the simpler killing and creating rules and conditions will
be introduced, and some lemmas will be proved that support the
reasoning about paths and domains.

  \item
  We prove the Ancestor Lemma.
  Lemma \ref{l.rn-gap} (Running Gap)\index{lemma@Lemma!Running Gap} says
that if a gap is large enough then the process $\Decay$ propagates it fast,
even in the presence of some damage.

  \item
  Lemma \ref{l.bad-gap-infr} (Bad Gap Inference)
 \index{lemma@Lemma!Bad Gap Inference} shows that (under certain conditions
and in the absence of damage), if there is a gap at all then it is large
enough in the above sense.
 
  \item
  The above lemmas are used to prove the Attribution Lemma.

 \end{itemize}


  Here is a summary of the roles of different delays:\glo{p@$\p_{i}$}
 \begin{description}
 \item[$\p_{0}$] Default;
 \item[$\p_{1}$] Decay and computation;
 \item[$\p_{2}$] Growth;
 \end{description}
  Here is a summary of the rest of the proof.\
 \begin{itemize}

  \item
  We define those computation rules not dependent on communication
with neighbor colonies.

  \item
  Lemma \ref{l.legality} (Legality)\index{lemma@Lemma!Legality} shows that
the computation terminates gracefully independently of the success of
communication.

  \item
  The development of colony $\cC$ will be followed forward to the present
in Lemma \ref{l.pres-attrib} (Present Attribution)
 \index{lemma@Lemma!Present Attribution}.

  \item
  Finally, the retrieval rules will be defined and the remaining part of
the Computation Property will be proved.
 \end{itemize}


rob.tex
%\begin{verse}
%   \'En f\"oln\'eztem az est al\'ol         
%\hfill From below the night, I looked
%\\ az egek fogaskerek\'ere ---        
%\hfill upon the gear of the skies ---
%\\ csill\'o v\'eletlen sz\'alaib\'ol
%\hfill threads of glossy chance weaved
%\\ t\"orv\'enyt sz\H{o}tt a m\'ult sz\"ov\H{o}sz\'eke
%\hfill into law on the loom of the past 
%\\ \'es megint f\"oln\'eztem az \'egre      
%\hfill and I looked up again from below
%\\ \'almaim g\H{o}zei al\'ol,               
%\hfill the vapors of my dreams
%\\ s l\'attam, a t\"orv\'eny sz\"oved\'eke    
%\hfill  and beheld that the fabric of the law
%\\ mindig f\"olfeslik valahol.        
%\hfill always unravels somewhere.
%\\\hfill \emph{(Non-rhyming in last line unintended.)}
%\\ \ 
%\\ \emph{Attila J\'ozsef, 1905-1937}
%\end{verse}

\section {Robust media}\index{medium!robust}
 \label{s.rob}

  This section defines a special type of one-dimensional medium called
\df{robust}.
  From now on, when we talk about a medium with no qualification we
will always mean a robust medium.
  For help in understanding the definition can be compared to the
primitive variable-period media in Subsection ~\ref{ss.asynch}.
  The media defined in the present section have some features 
distinguishing them from cellular automata: non-lattice cells, damage,
communication among non-nearest neighbors.
  The need for non-lattice cells was explained in Subsection
~\ref{ss.trouble}.


\subsection{Damage}\index{damage}
 \label{ss.rob.damage}
  Robust media have a special set of states $\Bad\sbs\SS$\glo{bad@$\Bad$}.
  For a space-time configuration $\eta$ we define the \df{damage set}%
 \glo{damage@$\Damage$}%
 \[
  \Damage(\eta)=\setof{ (x,t) : \eta(x,t)\in\Bad} .
 \]
  For a space configuration, the damage is defined similarly.
  The interpretation of the set $\Damage(\eta)$ is that when
$(x,t)\in\Damage(\eta)$ then in the neighborhood of $(x,t)$, we will
not be able to make any predictions of $\eta$, i.e.~in some sense,
$\eta$ behaves completely ``lawlessly'' there.
  When $\eta(x,t)\in\Bad$ then it is irrelevant whether we regard site
$x$ occupied by a cell or not.
  For a cell $x$ a time interval $I$ is \df{damage-free}\index{damage-free}
if $\eta(x,\cdot)$ is not in $\Bad$ during $I$.

 \begin{remark} \label{r.damage-nec}
  In all cellular media concerned with our \emph{results} we could
require $\Damage(\eta)=\eset$.
  The damage concept is necessary only in a trajectory $\eta_{2}$ of a
medium $M_{2}$ obtained by simulation from a trajectory $\eta_{1}$ of some
medium $M_{1}$.
  Such a simulation typically requires some structure in $\eta_{1}$.
  When noise breaks down this structure the predictability of $\eta_{2}$
suffers and this will be signalled by the occurrence of damage in
$\eta_{2}$.

  However, for convenience, we will define damage even in the media used on
the lowest level, as a violation of a certain transition rule.
 \end{remark}

  According to the general definition of a medium, the set of trajectories
will be defined by a pair $\b(\cdot),\g(\cdot,\cdot,\cdot)$ where $\b(\ag)$
give the probability bound belonging to type $\ag$ and $g(\ag,W,\eta)$ is
the event whose probability is bounded.
  We formulate these in terms of ``properties''.
  For a medium with cellsize $B$, let%
 \glo{v.cap@$V$}%
 \begin{equation}\label{e.W-V}
  V  = [-B/4, B/4-]\times [-\Tl/4+, 0].
 \end{equation}
  The Computation Property\index{axiom@Property!Computation} constrains the kinds
of events that can occur under the condition that the damage does not
intersect certain larger rectangles.
  One condition type $\ag(\var{restor})$ will be called the Restoration
Property\index{axiom@Property!Restoration}: it bounds the probability of
occurrence of damage in the middle of some window $(x,t)+2V$.
  The Restoration Property, which depends on a new parameter
$\eps$\glo{e.greek@$\eps$}, says that the probability of the damage is small:
even if other damage occurs at the beginning of a window it will be
eliminated with high probability.
\begin{figure}
 \setlength{\unitlength}{0.6mm}
 \[
 \begin{picture}(60,70) 
 \put(0, 0){\framebox(40, 60){}}
 \put(10, 30){\framebox(20, 30){}}

 \put(60, 20){\vector(0,1){20}}
 \put(64, 30){\makebox(0,0)[l]{time}}

 \put(0, 62){\makebox(0,0)[b]{$-B/2$}}	
 \put(40,62){\makebox(0,0)[b]{$B/2$}}	

 \put(42, 0){\makebox(0,0)[l]{$-\Tl/2$}}	
 \end{picture}
 \]
 \caption{The Restoration Property}
 \label{f.restor}
\end{figure}
\begin{condition}[Restoration Property] \label{ax.restor}
  Let $\b(\ag(\var{restor}))=\eps$.
  Further, for any rational pair $(x,t)$ let
 \[
   \g\bigparen{\ag(\var{restor}), (x,t)+2V, \eta}
 \]
  be the event function for the event that there is damage in
$\eta((x,t)+V)$.
 \end{condition}

  The Restoration axiom says that damage, i.e.~the occasional obstacle to
applying the Computation Property, disappears soon after its occurrence:
namely, it has very small conditional probability of occurrence in the
inner half of any rectangle $(x,t)+2V$.

  The axiom will be automatically satisfied on the lowest level by the
property of the medium that the transition rule is only violated with small
probability.

\begin{remark}
  In the model of ~\cite{Gacs2dim89}, the restoration axiom is weaker.
  There, damage does not necessarily disappear in a short time but if
it is contained in a certain kind of triangle at the beginning of the
window then, with high probability, it is contained in a smaller
triangle of the same kind later in the window.
 \end{remark}

  Damage helps us present a hierarchical construction as a sequence of
simulations.
  When a large burst of faults destroys the fabric of these nested
simulations, then $\eta^{k+1}$ cannot be explained just in terms of the
$\eta^{k}$ from which it is decoded.
  The damage set will cover those lower-level details of the mess that
we are not supposed to see as well as the mechanism of its removal.
  Damage points can be viewed as holes in the fabric of the lawful
parts of a trajectory
\begin{figure}
 \setlength{\unitlength}{1mm}
 \[
 \begin{picture}(60,70) 
 \put(0, 0){\framebox(40, 60){}}

 \put(60, 20){\vector(0,1){20}}
 \put(64, 30){\makebox(0,0)[l]{time}}

 \put(0, 62){\makebox(0,0)[b]{$x-0.5B^{*}$}}	
 \put(10, 60){\circle*{1}}	
 \put(10, 58){\makebox(0,0)[t]{$x$}}	
 \put(40, 62){\makebox(0,0)[b]{$x+1.5B^{*}$}}	

 \put(50, 60){\makebox(0,0)[l]{$t$}} 
 \put(50, 0){\makebox(0,0)[l]{$t-\Tl$}} 

 \put(5, 40){\framebox(4,6){}}
 \put(7, 38){\makebox(0,0)[t]{$u+2V$}}

 \put(25, 10){\framebox(4,6){}}
 \put(27, 8){\makebox(0,0)[t]{$v+2V$}}
 \end{picture}
 \]
 \caption{Cause for damage in point $(x,t)$ of the simulated trajectory}
 \label{f.damage-cause}
\end{figure}
  Consider a simulation $\eta^{*}=\Fg^{*}(\eta)$ between two robust
media. 
  Let us define the damage set of $\eta^{*}$ to be used in almost all
such simulations.
  As usual, let us mark by ${}^{*}$ the corresponding quantities in the
simulated medium when some simulation is fixed.
 We will define $\eta^{*}(x,t)\in\Bad$ iff $\Damage(\eta)$ contains at
least two points $u,v$ such that $u+2V$, $v+2V$ are disjoint and even
$u+3V,v+3V$ are contained in $(x,t)+4V^{*}+(B^{*}/2,0)$.

  The value of $s$, provided it is not in $\Bad$, will be essentially
defined by a block code $\fg$ as
 \[
  \fg^{*}(\eta(x+[0,QB-1],t)).
 \]
  However, there will be some look-back in time for stabilization, i.e.~the
simulation will not be memoryless.
  The goal of the damage definition is to relieve us of the need of
simulating a transition function if there is too much damage in the big
rectangle $(x,t)+4V^{*}+(B^{*}/2,0)$.

\begin{lemma}[Simulation Damage Probability Bound]\label{l.sim-damage}
 \index{lemma@Lemma!Simulation Damage Probability Bound}
  Let $M$, $M^{*}$ be media with parameters $\eps$, $\eps^{*}$ whose local
condition system is defined by the Restoration Property.
  Let a simulation $\Fg^{*}$ be defined between them which assigns damage
in $M^{*}$ according to the above damage map.
  If 
 \[
  \eps^{*}\ge 25((B^{*}/B)(\Tl^{*}/\Tl)\eps)^{2}
 \]
  then, $\Fg^{*}$ is a deterministic canonical simulation map as defined in
~\ref{sss.canonical}.
 \end{lemma}

  This lemma says that small bursts of damage that are not too close
to each other behave in the medium $M$ as if they were independent,
therefore the probability of the occurrence of two such bursts can be
estimated by $\eps^{2}$ times the number of such pairs in a rectangle
$V^{*}$.

\begin{proof}
  It is enough to show an expression of the form ~\eqref{e.canonical} for
local conditions of type $\var{restor}$ in $M^{*}$.
  Let $x_{1},t_{1}$ be the sizes of the space and time projections of $V$.
  We define the following lattice of points:
 \[
   \cV=\setof{(ix_{1},jt_{1}): i,j\in\ZZ}.
 \]
  Then the rectangles $v+V$ for $v\in\cV$ form a partition of the
space-time.
  For each $u$ in space-time, let $v(u)$ be the $v\in\cV$ with
 $u\in v+V$. 
  Let $\eta$ be a trajectory of $M$.
  It is enough to consider the rectangle $2V^{*}$.
  If $\Damage(\eta^{*})$ intersects $V^{*}$ then there are some points
$u_{1},u_{2}$ in $\Damage(\eta)$ such that $u_{i}+2V$ are disjoint and even
$u_{i}+3V$ are in $5V^{*}+(B^{*}/2,0)$.
  Then it is easy to see that even $v(u_{i})+2V$ are disjoint from each
other and are contained in $5V^{*}+(B^{*}/2,0)$.
  Let $n$ be the number of pairs $v_{1},v_{2}$ in $\cV$ with this property.
  We found $n$ pairs of rectangles $u_{i,j}+2V$ ($i=1,\ldots,n$, $j=1,2$)
such that $u_{i,1}+2V\cap u_{i,2}+2V=\eset$, and that if
$\Damage(\eta^{*})$ intersects $V^{*}$ then there is an $i$ such that
$\Damage(\eta)$ intersects $u_{i,j}+V$ for $j=1,2$.
  We found
 \[
 \g^{*}(\var{restor},2V^{*},\eta^{*}) 
  \le \sum_{i}\prod_{j} \g\bigparen{\var{restor},u_{i,j}+2V,\eta}.
 \]
  To complete the proof, observe that
 \[
   \sum_{i}\prod_{j} \b(\var{restor})\le n\eps^{2}
 \]
  Since counting shows $n<25((B^{*}/B)(\Tl^{*}/\Tl))^{2}$ and the
assumption of the lemma says
$25((B^{*}/B)(\Tl^{*}/\Tl))^{2}\eps^{2}<\eps^{*}$
  both conditions of a deterministic canonical simulation are satisfied.
\end{proof}


\subsection{Computation}\label{ss.rob.comput}

\subsubsection{Neighborhood structure}
  Before giving the Computation Property, let us introduce some details of the
structure of a robust medium.
  Cells sometimes have to be erased (killed) in a trajectory since
cells created by the damage may not be aligned with the original ones.
  At other times, the creation of a live cell at a vacant site will be
required.
  Most of the trajectory requirements of a robust medium will be
expressed by a transition function $\trans$, desribed later.
  Killing and creation may be indicated by some special values of this
function.

  Although we permit non-lattice configurations we could still use a
transition function that restricts the new state of a cell only as a
function of adjacent cells.
  It is, however, convenient to allow nearby cells to see each other
regardless of whether they are on the same lattice or not.
  We extend the notation $\thg_{j}(x)$\glo{th.greek@$\thg_{j}(x)$} introduced in
Subsection ~\ref{ss.rule-lang}.
  Let us fix $\eta$.
  For a vacant site $x$ at time $t$ there is at most one cell at
distance greater than 0 but less than $B$ to the right of $x$: if it
exists and there is no damage between it and $x$ then we denote it by
$\thg_{0.5}(x,t,\eta)$.
  Otherwise, $\thg_{0.5}(x,t,\eta)$ is undefined.
  The notation $\thg_{-0.5}$ is defined analogously.
  We will omit $\eta$, and sometimes even $t$, from the arguments when
it is obvious from the context.
  By convention, whenever $\thg_{j}(x,t,\eta)$ is undefined then let
 \[
   \eta(\thg_{j}(x,t,\eta),t)=\Vac.
 \]
  For a (nonvacant) cell $x$ there is at most one cell at distance
greater than $B$ but smaller than $2B$ to the right of $x$: if it
exists and there is no damage between it and $x$ then we denote it by
 \[
  \thg_{1.5}(x).
 \]
  Otherwise, this value is undefined.
  The corresponding cell to the left is denoted by $\thg_{-1.5}(x)$.
  The medium depends on a parameter $r$ called the \df{reach}, determining
the maxiumum distance of the neighbors that a cell is allowed to depend on
directly.
  (We will only use two possible reaches: $r=1$ and $r=3$.)
  Let%
 \glo{nb-ind@$\Nb-ind$}%
 \begin{equation}
    \Nb-ind_{r} = \{-1.5,1.5\}\cup\{-r,-r+1,\ldots,r-1,r\}.
 \end{equation}
  A function $\bu\colon\Nb-ind_{r}\to\SS$ will be called an
\df{assignment}.
  For an assignment $\bu$, we will write $u_{j}$ for the value of $\bu$
on $j$.
  The transition function in a robust medium has the form $\trans(\bu)$
where $\bu$ runs over assignments.
   In analogy with ~\eqref{e.trans}, let%
 \glo{tr@$\ol\trans$}%
 \[
   \ol\trans(\eta,x,t)=\trans(\bu)
 \]
  where $\bu$ is the assignment defined by $u_{j}=\eta(\thg_{j},t)$ with
$\thg_{j}=\thg_{j}(x,t,\eta)$ except that if $\thg_{j}$ is defined for
some noninteger $j$, then then $u_{\lg j}=\Vac$ for all $\lg>1$.
  Thus, when a closest neighbor $\thg_{j}$ is not adjacent then the
transition function does not depend on any farther neighbors in that
direction.
  $\eta$ will be omitted from $\trans(\eta,x,t)$ when it is obvious
from the context.

\subsubsection{Properties of the transition function}
  A robust medium will be denoted by%
 \glo{rob@$\Rob$}%
 \[
 \Rob(\trans^{(\bw)}, B,\Tl,\Tu,\eps,\eps',r).
 \]
  The set $\SS$ of states is implicit in the transition function.
  Similarly, the subset $\Bad$ of states will be defined implicity by the
transition function: this will be the states such that if any
argument of the transition function is in this set, the function value is
not defined.
  The first bit of the state of a cell will be called $\Rand$ and we write
$\Det=\All\xcpt\Rand$.
  There is also a subfield $\Color\sbs\Det$\glo{color@$\Color$} defined
implicitly by the transition function: this is, say, the set of those first
bits of $\Det$ that turn to 0 when $\trans$ is applied to the vector with
all $\Vac$ values.
  (Color plays role in self-organization.)

  The transition function, a mapping from assignments to $\SS$, describes
the goal for the deterministic part $s.\Det$ of the value $s$ of the state
after transition.
  We will see that the field $\Color$ will not necessarily obey the
transition function.
  We will assume that $\trans$ is separable in the sense of
~\ref{sss.bandwidth} with some bandwidth $\bw$.
  Let the fields $\Rand$ and $\Color$ be part of $\Inbuf$: thus, they can
be seen by a neighbor cell in a single step.
  The separability requirement also defines a predicate
$\legal^{\trans}(u,v)$.

  Our transition functions in robust media will also have the following
properties:

\begin{condition}[Time Marking]\label{cond.time-mark}
 \index{condition@Condition!Time Marking}
  If $s\ne \Vac$ then $\legal(s,s)=0$.
\end{condition}

  This condition is similar to ~\eqref{e.prim-time-mark} and says that a
nonvacant cell always tries to change its state.
  It is necessary for nontrivial media with a strict dwell period upper
bound.

  Let us call a pair $(j,v)\in\{-1,1\}\times\SS$, a
 \df{potential creator}\index{creator!potential} of state $s\ne\Vac$ if
$s=\trans(\bu)$ provided $u_{i}=v$ for $i=j$ and $\Vac$ otherwise.
  In a space-time configuration $\eta$, at a switching time $\sg$ of cell
$x$ when $\eta(x,t)$ turns from vacant to non-vacant, we call
$y=\thg_{j}(x,\sg-)$ a \df{creator}\index{creator} of $x$ for time $\sg$ if
$(j,\eta(\thg_{j}(x,\sg-)))$ is a potential creator of $\eta(x,\sg)$ and
further $\eta(x,t)=\Vac$, $\eta(y,t)=\eta(y,\sg-)$ for
$t\in[\sg-\Tl/2+,\sg-]$.


 \begin{condition}[Creation]\label{cond.creation}
 \index{condition@Condition!Creation}\hfill\\
  Let $\bu$ be an assignment such that $u_{0}=\Vac$,
$\trans(\bu).\Det\ne\Vac.\Det$ and in which there is a $j$ in $\{-1,1\}$
with $u_{j}\ne\Vac$.
  Then there is a $j\in \{-1,1\}$ such $(j,u_{j})$ is a potential creator
of $\trans(\bu)$.
 \end{condition}

  This condition says that if, for some $t_{1}<t_{2}$, a vacant cell $x$
comes to life at time $t_{2}$ due to ``observation'' at some time $t_{1}$
when there is a neighbor $\thg_{j}(x,t_{1})$ nearby then an adjacent
neighbor at time $t_{1}$ can be made completely responsible for the state
of the new cell at time $t_{2}$: the state would be the same even if all
other sites in the neighborhood were vacant.

  If $\bu$ is the neighborhood state assignment vector consisting of all
vacant states then let
$\var{Newborn}=\trans(\bu)$\glo{newborn@$\var{Newborn}$} be the \df{canonical
newborn state}\index{state!newborn!canonical}.
  A state $s$ is a \df{newborn state}\index{state!newborn} if
 \[
   s.(\Det\xcpt\Color)=\var{Newborn}.(\Det\xcpt\Color).
 \]
  Note that a newborn state is allowed to be somewhat less determined than
others: this property will be used in self-organization.


 \begin{condition}[Cling to Life]\label{cond.cling}
 \index{condition@Condition!Cling to Life}
  If $\trans(\eta,x,t)=\Vac$ then $\eta(\thg_{j}(x,t),t)\ne\Vac$ for
some $j\in\{-1.5,1.5\}$.
 \end{condition}

  Thus a cell will only be erased if it may disturb a close non-aligned
neighbor.


\subsubsection{The computation axiom}
  The condition called the Computation Property has a form similar to the
definition of primitive variable-period media in Subsection
~\ref{ss.asynch}.
  For a space-time configuration $\eta$, cell $x$ and rational number $a>0$
let
 \[
  \sg_{1},\sg_{2},\sg_{0}
 \]
  be defined as follows.
  $\sg_{1},\sg_{2}$ are the first two switching times of $x$ after $a$ but
defined only if $\eta(x,\sg_{1})\ne\Vac$.
  On the other hand, $\sg_{0}$ is the first switching time of $x$ after
$a+\Tu$ but defined only if $\eta(x,a+\Tu)=\Vac$.
  Whenever we have an event function $\g(\ag,W,\eta)$ in whose definition
$\sg_{2}$ occurs, this function is always understood to have value 0 if
$\sg_{2}$ is not defined (similarly with $\sg_{0}$).
\begin{figure}
 \setlength{\unitlength}{1mm}
 \[
 \begin{picture}(60,70) 
 \put(0, 0){\framebox(50, 60){}}

 \put(75, 20){\vector(0,1){20}}
 \put(79, 30){\makebox(0,0)[l]{time}}

 \put(0, 52){\makebox(8,8){$W_{1}$}}	
 \put(0, 62){\makebox(0,0)[b]{$x-2B$}}	
 \put(20, 60){\circle*{1}}	
 \put(20, 0){\line(0,1){60}}	
 \put(20, 52){\makebox(8,8){$W_{0}$}}	
 \put(20, 62){\makebox(0,0)[b]{$x$}}	
 \put(50, 62){\makebox(0,0)[b]{$x+3B$}}	

 \put(55, 60){\makebox(0,0)[l]{$a+2\Tu$}} 
 \put(55, 35){\makebox(0,0)[l]{$\sg_{2}$}} 
 \put(55, 30){\makebox(0,0)[l]{$\sg_{2}-\Tl/2$}} 
 \put(55, 15){\makebox(0,0)[l]{$\sg_{1}$}} 
 \put(55, 5){\makebox(0,0)[l]{$a$}} 
 \put(55, 0){\makebox(0,0)[l]{$a-\Tl/2$}} 

 \put(20, 15){\framebox(10, 20){}}
 \put(20, 30){\line(1,0){10}}

 \end{picture}
 \]
 \caption[To the computation axiom]{To the computation axiom.
  The large rectangle is $W_{1}(x,a)$.
  The rectangle of the same height but width 0 at point $x$ is
$W_{0}(x,a)$.
  The small rectangle between times $\sg_{1}$ and $\sg_{2}$ is the cell work
period under consideration.  Its lower part is the 
 observation period\index{period!observation}.}
 \label{f.comput-ax}
\end{figure}
  Let%
 \glo{w.cap@$W_{0}(x, a), W_{1}(x, a)$}%
 \begin{align*}
    W_{0}(x,a) &= \{x\}\times[a-\Tl/2+,a+2\Tu],
\\  W_{1}(x,a) &= [x-(r+1)B,x+(r+2)B-]\times[a-\Tl/2+,a+2\Tu],
\\  \f_{j}(x,a,\eta) &= \text{the event function for }
 \setof{\Damage(\eta)\cap W_{j}(x,a) = \eset} \qq (j=0,1).
 \end{align*}
 \begin{condition}[Computation Property]  \label{ax.comput}\
  This axiom consists of several condition types.
  For each type $\ag$ used in this axiom except $\ag(\var{rand},j)$, we
have $\b(\ag)=0$, i.e. the corresponding events $\g(\ag(),W,\eta)$ are
simply prohibited in the trajectory.
  On the other hand,
 \[
  \b(\ag(\var{rand},j))=0.5+\eps'\quad (j=0,1).
 \]
  \begin{cjenum}

 \item\label{ax.comput.rnd}
  This condition requires coin-tossing, for $j=0,1$:
 \[
   \g\bigparen{\ag(\var{rand},j),\;W_{0}(x,a),\;\eta} = \f_{0}(x,a,\eta)
 \{\eta(x,\sg_{2}).\Rand=j\}.
 \]

  \item\label{ax.comput.dwell-pd-bd}
  This prohibits dwell periods shorter than $\Tl$ or longer than $\Tu$.
  Let
 \[
 \g\bigparen{\var{dw-p-bd},\; W_{0}(x,a),\; \eta} = \f_{0}(x,a,\eta)
  \h(\var{dw-p-bd},x,a,\eta)
 \]
  where $\h(\var{dw-p-bd},x,a)=1$ if $\eta$ has a dwell period shorter than
$\Tl$ in $W_{0}(x,a)$ or has a dwell period longer than $\Tu$ there
(and, as always, 0 otherwise).

 \item\label{ax.comput.legal-comp}
  This says that whenever $W_{0}(x,a)$ is damage-free the transition at
$\sg_{2}$ is a legal one.
  Let
 \[
   \g\bigparen{\var{legal-comp},\; W_{0}(x,a),\; \eta} 
 = \f_{0}(x, a, \eta)
    (1-\legal(\eta(x,\sg_{2}-), \eta(x,\sg_{2}))).
 \]

 \item\label{ax.comput.legal-birth}
  This says that whenever $W_{0}(x,a)$ is damage-free the transition in
$\sg_{0}$ is a legal one.
  Let
 \[
   \g\bigparen{\var{legal-birth},\; W_{0}(x,a),\; \eta} = \f_{0}(x, a, \eta)
    (1-\legal(\eta(x,\sg_{0}-), \eta(x,\sg_{0}))).
 \]

 \item\label{ax.comput.trans}
  This says that whenever $W_{1}(x,a)$ is damage-free the transition
function applies, at least as much as it can, based on observation at a
certain time during the observation period (``atomicity'')\index{atomicity}.
  Let
 \[
   \g\bigparen{\var{trans},\; W_{1}(x,a),\; \eta} = \f_{1}(x, a, \eta)
 \h(\var{trans}, x, a, \eta)
 \]
  where $\h(\var{trans}, x, a, \eta)=1$ unless there is a
 $t'\in [\sg_{1}+,\sg_{2}-\Tl/2]$ with
 \[
    \eta(x,\sg_{2}).\Det = \trans(\eta,x,t').\Det.
 \]

 \item\label{ax.comput.creator}
  This says that if $x$ always has a neighbor during the whole interval of
interest before its birth then it has a creator.
  Let
 \[
   \g\bigparen{\var{creator},\; W_{1}(x,a),\; \eta} = \f_{1}(x, a, \eta)
 \h(\var{creator}, x, a, \eta)
 \]
  where $\h(\var{creator}, x, a, \eta)=1$ unless either $x$ has a creator
for time $\sg_{0}$ or there is a $t'\in[a+,\sg_{0}]$ such that
$\eta(\thg_{j}(x,t'),t')=\Vac$ for all $j\in\{-1,1\}$.

  \item\label{ax.comput.newborn}
  This says that if $x$ does not have a creator accounting for its birth
then it is a newborn with vacant neighbors at some time shortly before
birth.
  Let
 \[
   \g\bigparen{\var{newborn},\; W_{1}(x,a),\; \eta} = \f_{1}(x, a, \eta)
 \h(\var{newborn}, x, a, \eta)
 \]
  where $\h(\var{newborn}, x, a, \eta)=1$ if $x$ has no creator for time
$\sg_{0}$, and either $\eta(x,\sg_{0})$ is not newborn state or there is no
$t$ in $[\sg_{0}-\Tl/2,\sg_{0}-]$ with $\eta(\thg_{j}(x,t),t)=\Vac$ for all
$j\in\Nb-ind$.

  \item \label{ax.comput.no-birth}
  This says that $x$ cannot stay vacant if it has would-be creators for a
long time and has no neighbor blocking creation.
  Let
 \[
   \g\bigparen{\var{no-birth},\; W_{1}(x,a),\; \eta} = \f_{1}(x, a, \eta)
 \h(\var{no-birth}, x, a, \eta)
 \]
  where $\h(\var{no-birth}, x, a, \eta)=1$ if
   \begin{cjenum}
    \item $\eta(x,t)=\Vac$ for all $t\in[a+,a+2\Tu]$;
    \item for each $t\in [a+,a+2\Tu]$ there is a
$j\in\{-1,1\}$ such that $(j,\thg_{j}(x,t))$ is a potential creator of some
(non-vacant) state;
    \item there is no $(y,t)$ with $0<|y-x|<B$, $t\in[a+,a+2\Tu]$,
 $\eta(y,t)\ne\Vac$;
   \end{cjenum}
  \end{cjenum}
 \end{condition}


\begin{example}[Special cases]
  To obtain a constant-period medium as a special case of robust media
set $\Tl=\Tu$, $r=1$.
  To obtain a deterministic cellular automaton, set also $\eps=0$, require
that the space-time configurations have empty damage and that the
transition function does not give a vacant value.

  The connection between primitive variable-period media and robust
media will be set up using a trivial simulation.
  Let $M_{1}=\Prim-var(\trans,B,\Tl,\Tu,\eps)$.
  We define a simple simulation $\Fg^{*}$ by this medium of the robust
medium
 \[
  M_{2}=\Rob(\trans, B, \Tl, \Tu, \eps, \eps, 1).
 \]
  $M_{2}$ has almost the same state set as $M_{1}$ except that it also has
at least one extra state, making the set $\Bad$ nonempty.
  We give the definition of $s=\eta^{*}(x,t)=\Fg^{*}(\eta)(x,t)$ for each
$\eta$.
  If $x$ is not an integer multiple of $B$ then $s=\Vac$.
  Else $s=\eta(x,t)$ unless $\eta$ violates the Computation Property of
$M_{2}$ at $x$ with $\sg_{2}=t$: in that case, it is in $\Bad$.
  It can be verified that this is indeed a simulation.
 \end{example}


 \subsubsection{Error-correction}\label{sss.trickle} 
  The error-correction property can be defined here just as in
~\ref{sss.error-correction}, replacing $T_{i}$ with $\Tl_{i}$.
  Then a lemma analogous to Lemma ~\ref{l.abstr-amp} can be formulated, and
a proof for Theorem~\ref{t.1dim.nonerg.var} can be provided that is
analogous to the proof of Theorem~\ref{t.1dim.nonerg}.


 \subsection{Simulating a medium with a larger reach}\label{ss.reach}

\begin{theorem}[Reach Extension]\label{t.reach}
 \index{theorem@Theorem!Reach Extension}
  For all $r$ and all $\trans_{2}$ with reach $r$, for all $\Tl\le\Tu$ let
$\lg = \cei{\Tu/\Tl}$,
 \[
  U =   64\lg ((\lg + 1) r + 1 )(r + 2).
 \]
  There is a set $\SS_{1}$, a one-to-one mapping $s\mapsto s_{*}$ from
$\SS_{2}$ to $\SS_{1}$ giving rise to the code
$\fg_{*}(\xi)(x)=(\xi(x))_{*}$, functions $\trans_{1}()$ of reach 1, and
for all $B,\eps,\eps'$, a decoding $\Fg^{*}$ such that $(\Fg^{*},\fg_{*})$
is a simulation of
 \[
 M_{2} = \Rob(\trans_{2}, B, U\Tl, U\Tu, U\eps, UR\eps',r)
 \]
  by 
 \[
  M_{1} = \Rob(\trans_{1}, B, \Tl, \Tu, \eps, \eps',1).
 \]
 \end{theorem}

  The basic idea is of the proof is to replicate the state of a whole
reach-$r$ neighborhood of a cell of $M_{2}$ in a single cell of $M_{1}$.
  It will take then a work period size $U$ that is at least proportional to
$r$ for a cell of $M_{1}$ to simulate a step of a cell of $M_{2}$ since the
cell must learn about neighbors $r$ steps away.
  In fact, due to asynchrony, the work period will be significantly
larger.
  Some complication is due to the need to achieve the ``atomicity''
property, namely that a single observation time can be assigned to a
transition of $M_{1}$ even though the observation occurs over an extended
period of time.
  The solution for this is to make sure that the observed values coming
from the neighbor cells do not come from near the end of the work period of
those cells.


sim.tex
\section{Some simulations}\label{s.sim}

\subsection{Simulating a cellular automaton by a variable-period medium}
 \label{ss.asynch-sim}

  The random nature of the switching times of a variable-period medium is a
tame kind of nondeterminism; any deterministic cellular automaton can be
simulated by a variable-period medium.
  To prove this we first introduce an auxiliary concept.
  Let us define the \df{totally asynchronous cellular
automaton}\index{cellular automaton!totally asynchronous}%
 \glo{aca@$\ACA$}% 
 \[
  \ACA(\trans)=\ACA(\trans,1,1)
 \]
  associated with transition function $\trans$ as follows: $\eta$ is a
trajectory if for all $x,t$ we have either $\eta(x,t+1)=\eta(x,t)$ or the
usual
 \[
   \eta(x,t+1)=\trans(\eta(x-1,t),\eta(x,t),\eta(x+1,t)).
 \]
  A site $x$ is \df{free}\index{site!free} in a configuration $\xi$ if
 $\trans(\xi(x-1),\xi(x),\xi(x+1))\ne \xi(x)$.
  The set of free sites will be denoted by $L(\xi)$\glo{l.cap@$\L(\xi)$}. 
  For a space configuration $\xi$ and a set $E$ of sites, let us define the
new configuration $\trans(\xi,E)$\glo{tr@$\trans(\xi,E)$} by
 \[
  \trans(\xi,E)(x) = \begin{cases}
    \trans(\xi(x-1),\xi(x),\xi(x+1)) 	&\text{if $x\in E$}
\\  \xi(x) 				&\text{otherwise.}
  \end{cases}
 \]
  Now we can express the condition that $\eta$ is a trajectory of
$\ACA(\trans)$ by saying that for every $t$ there is a set $U$ with
 \begin{equation}\label{e.asynch.traj}
 \eta(\cdot,t+1)=\trans(\eta(\cdot,t),U).
 \end{equation}
  Let the \df{update set}\index{update!set}%
 \glo{u.cap@$U(t,\eta)$}%
 \begin{equation}\label{e.asynch-sim.ute}
  U(t,\eta)
 \end{equation}
 be the set of sites $x$ with $\eta(x,t+1)\ne \eta(x,t)$.
  The initial configuration and the update sets $U(t,\eta)$ determine
$\eta$.
  For any set $A$, let us use the indicator function%
 \glo{h.greek@$\chi(x,A)$}%
 \[
   \chi(x,A)=\begin{cases}
   1 &\text{if $x\in A$,}
\\ 0 &\text{otherwise.}
	     \end{cases}
 \]
  For given $\eta$ we define the function
 $\tau(x,t)=\tau(x,t,\eta)$\glo{t.greek@$\tau(x,t)$} as follows:
 \begin{equation}\label{e.tau-x-t}
 \begin{aligned}
	\tau(x,0)   &= 0,
\\ 	\tau(x,t+1) &= \tau(x,t)+ \chi(x,U(t,\eta)).
 \end{aligned}
 \end{equation}
  We can call $\tau(x,t)$ the \df{effective age}\index{age!effective} of
$x$ in $\eta$ at time $t$: this is the number of effective updatings that
$x$ underwent until time $t$.
  Given a transition function $\trans$ and an initial configuration $\xi$,
we say that the function \df{has invariant histories}\index{invariant
histories} if there is a function $\zg(x,u)=\zg(x,u,\xi)$ such that for all
trajectories $\eta(x,t)$ of $\ACA(\trans)$ with $\eta(\cdot,0)=\xi$ we have
 \begin{equation}\label{e.t.commut}
   \eta(x,t) = \zg(x,\tau(x,t,\eta),\xi).
 \end{equation}
  This means that after eliminating repetitions, the sequence
$\zg(x,1),\zg(x,2),\ldots$ of values that a site $x$ will go through during
some trajectory, does not depend on the update sets, only on the initial
configuration (except that the sequence may be finite if there is only a
finite number of successful updates).
  The update sets influence only the delays in going through this
sequence.
  Let
 \[
   \trans(\xi,E,F)=\trans(\trans(\xi,E),F).
 \]
  We call a transition function $\trans$
 \df{commutative}\index{transition function!commutative} if for all
configurations $\xi$ and all distinct pairs $x,y\in L(\xi)$ we have
$\trans(\xi,\{x\},\{y\}) = \trans(\xi,\{y\},\{x\})$.
  The paper ~\cite{GacsCommut95} proves the theorem that if a transition
function is commutative then it has invariant histories.
  In Theorem ~\ref{t.asynch-sim} below, we will give a simple example
of a universal commutative transition function.
  For that example, the theorem can be proved much easier.

%{\small
% \begin{remark}
%  For a nearest-neighbor one-dimensional function $\trans$ the condition
%is equivalent to saying that if $\trans(r_{0},r_{1},r_{2})\ne r_{1}$ and
%$\trans(r_{1},r_{2},r_{3})\ne r_{2}$ then
% \begin{align*}
%   \trans(\trans(r_{0},r_{1},r_{2}),r_{2},r_{3}) &= \trans(r_{1},r_{2},r_{3})
%\\ \trans(r_{0},r_{1},\trans(r_{1},r_{2},r_{3})) &= \trans(r_{0},r_{1},r_{2}).
% \end{align*}
%\end{remark}
%}%small

  Below, we will use the smallest absolute-value remainders%
 \glo{amod@$\amod$}%
 \begin{equation}\label{e.amod}
  b \amod m
 \end{equation}
 with respect to a positive integer $m>2$, defined by the requirement
$-m/2< b \amod m \le m/2$.

\begin{theorem}[Commutative Simulation]\label{t.asynch-sim}
 \index{theorem@Theorem!Asynchronous Simulation}
  Let $\trans_{2}$ be an arbitrary transition function with state space
$\SS_{2}$.
  Then there is a commutative transition function $\trans_{1}$ with state
space $\SS_{1}=\SS_{2}\times R$ (for an appropriate finite set $R$) with
the following property.
  Each state $s\in \SS_{1}$ can be represented as $(s.\F,s.\G)$ where
$s.\F\in \SS_{2}$, $s.\G\in R$.
  Let $\xi_{2}$ be an arbitrary configuration of $\SS_{2}$ and let $\xi_{1}$
be a configuration of $\SS_{1}$ such that for all $x$ we have
$\xi_{1}(x).\F=\xi_{2}(x)$, $\xi_{1}(x).\G=0\cdots 0\in R$.
  Then for the trajectory $\eta_{1}$ of $\CA(\trans_{1})$, with initial
configuration $\xi_{1}$, the function $\eta_{1}(x,t).\F$ is a trajectory of
$\CA(\trans_{2})$.
  Moreover, in $\eta_{1}$, the state of each cell changes in each step.
 \end{theorem}

  In other words, the function $\trans_{1}$ behaves in its field $\F$ just
like the arbitrary transition function $\trans_{2}$, but it also supports
asynchronous updating.

\begin{proof}
  Let $U>2$ be a positive integer and%
 \glo{cur@$\Cur$}%
 \glo{prev@$\Prev$}%
 \[
  \Cur,\Prev,\Age
 \]
  be three fields of the states of $\SS_{1}$, where $\F=\Cur$,
$\G=(\Prev,\Age)$.
  The field $\Age$ represents numbers mod $U$.
  It will be used to keep track of the time of the simulated cells mod
$U$, while $\Prev$ holds the value of $\Cur$ for the previous value of
$\Age$.

  Let us define $s' = \trans_{1}(s_{-1},s_{0},s_{1})$.
  If there is a $j\in\{-1,1\}$ such that
 $(s_{j}.\Age-s_{0}.\Age) \amod U < 0$ (i.e.~some neighbor lags behind)
then $s'=s_{0}$ i.e.~there is no effect.
  Otherwise, let $r_{0}=s_{0}.\Cur$, and for $j=-1,1$, let $r_{j}$ be equal
to $s_{j}.\Cur$ if $s_{j}.\Age=s_{0}.\Age$, and $s_{j}.\Prev$ otherwise.
 \begin{align*}
     s'.\Cur  &= \trans_{2}(r_{-1},r_{0},r_{1}),
 \\  s'.\Prev &= s_{0}.\Cur,
 \\  s'.\Age  &= s_{0}.\Age + 1 \bmod U.
 \end{align*}
  Thus, we use the $\Cur$ and $\Prev$ fields of the neighbors
according to their meaning and update the three fields according to
their meaning.
  It is easy to check that this transition function simulates $\trans_{2}$
in the $\Cur$ field if we start it by putting 0 into all other fields.

  Let us check that $\trans_{1}$ is commutative.
  If two neighbors $x,x+1$ are both allowed to update then neither of them
is behind the other modulo $U$, hence they both have the same $\Age$ field.
  Suppose that $x$ updates before $x+1$.
  In this case, $x$ will use the $\Cur$ field of $x+1$ for
updating and put its own $\Cur$ field into $\Prev$.
  Next, since now $x$ is ``ahead'' according to $\Age$, cell $x+1$
will use the $\Prev$ field of $x$ for updating: this was the $\Cur$
field of $x$ before.
  Therefore the effect of consecutive updating is the same as that of
simultaneous updating.%
\end{proof}

  The commutative medium of the above proof will be called the
 \df{marching soldiers}\index{marching soldiers} scheme since its handling
of the $\Age$ field reminds one of a chain of soldiers marching ahead in
which two neighbors do not want to be separated by more than one step. %?
\begin{figure}
 \setlength{\unitlength}{1mm}
 \[
 \begin{picture}(100, 35)(15, 0)
    \put(0,0){\circle*{1}}
    \put(0,0){\line(1,1){5}}
    \put(5,5){\circle*{1}}
    \put(5,5){\line(1,1){5}}
    \put(10,10){\circle*{1}}
    \put(10,10){\line(1,1){5}}
    \put(15,15){\circle*{1}}
    \put(15,15){\line(1,1){5}}
    \put(20,20){\circle*{1}}
    \put(20,20){\line(1,-1){5}}
    \put(25,15){\circle*{1}}
    \put(25,15){\line(1,-1){5}}
    \put(30,10){\circle*{1}}
    \put(30,10){\line(1, 0){5}}
    \put(35,10){\circle*{1}}
    \put(35,10){\line(1, 0){5}}
    \put(40,10){\circle*{1}}
    \put(40,10){\line(1, 1){5}}
    \put(45,15){\circle*{1}}
    \put(45,15){\line(1, 0){5}}
    \put(50,15){\circle*{1}}
    \put(50,15){\line(1, -1){5}}
    \put(55,10){\circle*{1}}
    \put(55,10){\line(1, -1){5}}
    \put(60, 5){\circle*{1}}
    \put(60, 5){\line(1,  1){5}}
    \put(65,10){\circle*{1}}
    \put(65,10){\line(1, -1){5}}
    \put(70, 5){\circle*{1}}
    \put(70, 5){\line(1,  1){5}}
    \put(75, 10){\circle*{1}}
    \put(75, 10){\line(1, 0){5}}
    \put(80, 10){\circle*{1}}
    \put(80, 10){\line(1, 0){5}}
    \put(85, 10){\circle*{1}}
    \put(85, 10){\line(1, 1){5}}
    \put(90, 15){\circle*{1}}
    \put(90, 15){\line(1, 1){5}}
    \put(95, 20){\circle*{1}}
    
    \put(105, 0){\vector(0,1){30}}
    \put(108, 15){\makebox(0,0)[l]{effective age}}

 \end{picture}
 \]
 \caption[The Marching Soldiers scheme]{The Marching Soldiers scheme.
  The effective age of neighbor sites differs by at most 1.}
\end{figure}
 \label{f.marching}
\begin{remark}
  In typical cases of asynchronous computation, there are more efficient
ways to build a commutative transition function than to store the whole
previous state in the $\Prev$ field.
  Indeed, the transition function typically has a bandwidth (see
~\ref{sss.bandwidth}) smaller than $\nm{\SS}$.
  \end{remark}

\begin{corollary}[Variable-period simulation]\label{c.var-sim}
  For every deterministic transition function $\trans_{2}$ over some
state-space $\SS_{2}$, there is a set of states $\SS_{1}$, a transition
function $\trans_{1}$ \\
 over $\SS_{1}$, and a code that for any values $\Tl_{1}\le\Tu_{1}$,
is a simulation of $\CA(\trans_{2})$ by
$\Prim-var(\trans_{1},1,\Tl_{1},\Tu_{1},0)$.
 \end{corollary}

\begin{proof}
  Let $\trans_{1}$ be the commutative transition function given by
Theorem ~\ref{t.asynch-sim}, with the fields $\F,\G$.
  Let $\xi_{2}$ be an arbitrary configuration of $S_{2}$ and let $\xi_{1}$
be a configuration of $S_{1}$ defined in the statement of the same
theorem. 
  Let $\eta_{1}$ be a trajectory of
$\Prim-var(\trans_{1},1,\Tl_{1},\Tu_{1},0)$, with the starting configuration
$\xi_{1}$.

  An update set $U(t,\eta_{1})$ similar to~\eqref{e.asynch-sim.ute} can be
defined now for the trajectory $\eta_{1}$ as follows: $x$ is in
$U(t,\eta_{1})$ iff $t$ is a switching time of $\eta_{1}$.
  Similarly, $\tau(x,t,\eta_{1})$ can be defined as in~\eqref{e.tau-x-t}: 
 \begin{align*}
	\tau(x,0)   &= 0,
\\ 	\tau(x,t)   &= \tau(x,t-)+ \chi(x,U(t,\eta_{1})).
 \end{align*}
 With these, let us define
 \begin{align*}
      \sg(x,s,\xi) &= \bigwedge\setof{t:\tau(x,t,\eta')=s},
\\ \eta_{2}(x,s,\xi) &= \eta_{1}(x,\sg(x,s)).\F
 \end{align*}
  By the cited theorem, $\eta_{2}$ is a trajectory of $\CA(\trans_{2})$.%
\end{proof}

  The simulation in this theorem is not a local
one\index{simulation!non-local} in the sense defined in Subsection
~\ref{ss.gen-sim} since it changes the time scale.
  For an analysis of such simulations, see ~\cite{BermSim88}.


\subsection {Functions defined by programs}
 \label{ss.func-prog}

  Let us recall the definition of a standard computing transition function
as introduced in Subsection ~\ref{ss.1dim.comp}, and let us call a cellular
automaton with such a transition function a
 \df{standard computing medium}\index{medium!standard computing}.
  For a standard computing transition function $\trans$, integers $s$ and $t$
and string $X$ consider a trajectory $\eta$ of $\CA(\trans)$ over the rectangle
$[0,s]\times[0,t]$ with an initial configuration in which
$\eta(0,0)=\eta(s,0)=\#\cdots \#$, further $X$ is on the input track on
$[1,s-1]$ (padded with $*$'s to fill up $[1,s-1]$), $*$'s on the output
track and 0's on the other tracks.
  This defines a trajectory $\eta$ since the $\#$'s on the input field
in cells 0 and $s$ imply that the cells outside the interval $[0,s]$
will have no effect.

  Assume that at time $t$, the $\Output$ track has no $*$ on
$[1, s-1]$.
  Then the output never changes anymore (it is monotonic in standard
computing media).
  The string $w$ on the $\Output$ track on $[1,s-1]$ will be called the
\df{result}\index{computation!result} of the computation, denoted by%
 \glo{tr@$\trans(X; s, t)$}%
 \[
  w= \trans(X; s, t).
 \]
\begin{figure}
  \setlength{\unitlength}{1mm}
  \[
   \begin{picture}(100, 100)
  \put(40, 0){\framebox(60, 80){$\nearrow\uparrow\nwarrow \trans$}}
  \put(45,0){\line(0, 1){80}}
  \put(95,0){\line(0, 1){80}}

  \put(45,0){\makebox(50, 5){$X$ on $\var{Input}$}}
  \put(45,5){\line(1, 0){50}}

  \put(45, 75){\makebox(50, 5){$\trans(X; s, t)$ on $\var{Output}$}}
  \put(45, 75){\line(1, 0){50}}

  \multiput(40, 0)(0, 5){3}{\makebox(5, 5){\#}}
  \multiput(40, 75)(0, -5){3}{\makebox(5, 5){\#}}

  \multiput(95,0)(0, 5){3}{\makebox(5, 5){\#}}
  \multiput(95, 75)(0, -5){3}{\makebox(5, 5){\#}}

  \multiput(40, 40)(55, 0){2}{\makebox(5, 5){$\vdots$}}

  \put(42.5, -4){\makebox(0,0)[t]{0}}
  \put(97.5, -4){\makebox(0,0)[t]{$s$}}

  \put(36, 2.5){\makebox(0,0)[r]{0}}
  \put(36, 77.5){\makebox(0,0)[r]{$t$}}

  \put(0, 30){\vector(0, 1){20}}
  \put(4, 40){\makebox(0,0)[l]{time}}

   \end{picture}
 \]
 \caption{Definition of $\text{\rmfamily\slshape\mdseries trans}(X; s, t)$}
 \label{f.def-of-tr-X}
\end{figure}


\subsubsection{Efficient universality} \label{sss.effic-univ}
  We say that the standard computing transition function $\trans_{0}$ is
 \df{efficiently universal\/}\index{transition function!universal!efficiently}
if for every standard computing transition function $\trans$, there is a
string $\rul{prog}$ and constant $c$ such that for all strings $X$ and
positive integers $s,t$ we have%
 \glo{prog@$\rul{prog}$}% 
 \[
     \trans(X; s, t) = \trans_{0}(\rul{prog}\cc X; c s, c(s+t))
 \]
  whenever the left-hand side is defined.
  In other words, $\trans_{0}$ can simulate the computation of any other
standard computing transition $\trans$ if we prepend a ``program of
$\trans$''\index{transition function!program of}.
  The space and time needed for this simulation can only be a constant
factor greater than those of the simulated computation.

 \begin{theorem}
 There are efficiently universal standard computing transition functions.  
 \end{theorem}

\begin{proof}[Sketch of the proof]
  This theorem can be proven similarly to Theorem ~\ref{t.univ}.
  The main addition to the construction is that before $\trans_{0}$ starts
a block simulation of $\trans$ the input will be distributed bit-by-bit to
the colonies simulating the cells of $\trans$.
  At the end, the output will be collected from these colonies.%
\end{proof}
 
  We fix an efficiently universal standard computing transition function%
 \glo{univ@$\univ$}%
 \begin{equation}\label{e.univ}
   \univ
 \end{equation}
  for the definition of various string functions.
  In view of Theorem ~\ref{t.asynch-sim}, we can (and will) also assume that
$\univ$ is commutative.
  For a string function $f(X)$ defined over some domain $E$ we will say
that $\rul{prog}$ is a program for $f$ with
 \df{time complexity bound $t$ and space complexity bound $s$ over $E$} if
we have
 \[
  \univ(\rul{prog}\cc X;s,t) = f(X).
 \]
  It is often convenient to define a finite function (like a
transition function of some medium, or a code) by its program (for
$\univ$) rather than its transition table, since for many interesting
functions, the program can be given in a more concise form.


\subsection{The rule language}\label{ss.rule-lang}

  This subsection defines a language for describing a transition function
that is more convenient than giving a complete transition table.
  A transition function will generally be defined by a set of
 \df{rules}\index{rule} which impose some conditions on it.
  In case some rules are contradictory and no precedence is stated between
them then rules given later override the ones given earlier.
  Rules are sometimes associated with certain fields.
  The lowest-priority rule referring to a field is called the
 \df{default}\index{rule!default}.

  Some rules will not be applicable directly, but will rather be used by
other rules: these will be called \df{subrules}\index{rule!sub-}.
  A subrule $\rul{R}$ is just like other rule, except that, typically,
there is some other rule saying in which time interval of the work period
to invoke $\rul{R}$.

  Our use of the rule language will not be completely formal but it will be
evident how to make it formal.
  In a semi-formal description of a rule, $\x$\glo{x@$\x$} refers to the
cell to which it is applied.
  This is only a convenient shorthand that can be replaced with references
to fields of the cell and its neighbors.
  We will write%
 \glo{th.greek@$\thg_{j}(x)$}%
 \[
 \thg_{j}(x) = x + jB
 \]
 for the site $j$ steps from $x$.
  In the condition as well as the action of the rule, a field $\F(\x)$
will simply be written as $\F$.
  We will often write%
 \glo{f.cap@$\F^{j}$}%
 \[
  \F^{j}=\eta.\F(\thg_{j}(\x)) .
 \]
  For example, for field $\Addr$, instead of writing
 ``\texttt{if $\eta.\Addr(\x)=0$ and $\Addr(\thg_{j}(\x))=1$}'' we will write
 ``\texttt{if $\Addr=0$ and $\Addr^{j}=1$}''.

  The simplest possible rule is an assignment of the form
$\F:=g$\glo{:=@$:=$} where $\F$ is a field and $g$ is a function of some
fields, e.g.~$\F:=G^{-1}+H^{1}$.
  Another possible rule is the conditional:%
 \glo{cond@\texttt{cond}}%
 \glo{?@\texttt{?,"!,?"!}}%
 \begin{program}
    cond\0{
\\    ? $C_{1}$
\\    ! $A_{1}$
\\    $\ldots$
\\    ? $C_{k}$
\\    ! $A_{k}$
\\\relax [?! $A_{k+1}$]
\\    }
 \end{program} 
  Here, $C_{1},C_{2},\ldots$ are \df{conditions}: inequalities and equations in
terms of the states of $\thg_{j}(\x)$, and $A_{1},\ldots,A_{k+1}$ are possible
\df{actions} each of which can be another rule.
  We can use logical connectives, even (finite) quantifiers in the
conditions.
  The above rule says that if condition $C_{1}$ is satisfied then the
action $A_{1}$ must be performed. 
  Else if $C_{2}$ holds then action $A_{2}$ must be performed, etc.
  Finally, and optionally, (this is meant by ``[,]'') if all
conditions fail then we may require a default action $A_{k+1}$ to be
performed.
  The symbols \texttt{?}, \texttt{!}, \texttt{?!} abbreviate
\df{condition}, \df{action} and \df{default} respectively.
  An alternative way of writing would be
 \begin{program}
    if $C_{1}$ \0{
\\    then $A_{1}$
\\    else if $C_{2}$
\\    then $A_{2}$
\\    $\ldots$
\\    else $A_{k+1}$
\\    }
 \end{program} 
 \begin{remark}
  We prefer the first form (borrowed from the programming language LISP)
only in order to put all conditions formally on the same level.
 \end{remark}
  The rule%
 \glo{"+@$\texttt{;},\prl$}%
 \[
  \rul{R}_{1}\prl \rul{R}_{2}
 \]
  is a combination of two rules.  
  It says that both rules must be carried out simultaneously.
  In case the two rules are just two assignments we will sometimes omit the
sign $\prl$.
  The rule
 \[
  \rul{R}_{1};\rul{R}_{2}
 \]
  asks for carrying out the rules $\rul{R}_{1}$ and $\rul{R}_{2}$
consecutively.
  This informal notation can be understood in terms of a field $\Age$ which
we are always going to have and can be replaced with a conditional.
  E.g., whenever we write
 \begin{program}
   $\Retrieve$;
\\ $\Eval$
 \end{program}
  then this can be replaced, using appropriate constants $t_{i}$, with
 \begin{program}
    cond \0{
\\    ? $t_{1}\le\Age< t_{2}$
\\    ! $\Retrieve$
\\    ? $t_{2}\le\Age< t_{3}$
\\    ! $\Eval$
\\    }
 \end{program}
  We will also use the construct%
 \glo{for@\texttt{for}}%
  \begin{program}
  for $i=a$ to $b$ $\ang{\text{ some rule referring to } i}$.
  \end{program}
  The construct%
 \glo{repeat@\texttt{repeat}}%
  \begin{program}
  repeat $k$ times $\ang{\cdots}$
  \end{program}
  is a special case.

  A subrule can have parameters (arguments).
  Subrule $P(i)$ with parameter $i$ can be viewed as a different rule for
each possible value of $i$.
  An example could be a simple subrule $\rul{Read-Mail}(j)$ which for
$j\in\{-1,1\}$ has the form
 \[
 \Mail:=\Mail^{j}
 \]
 for the field $\Mail$.  
  We will also have \df{functions}: these are defined by the
information available in the arguments of the transition function, and can
always be considered a shorthand notation: e.g., we could denote
 \[
  f(i)=\Addr+\Age^{i}.
 \]
  The construct%
  \glo{let@\texttt{let}}%
 \begin{program}
 let $k=\ldots$
 \end{program}
 can be understood as notational shorthand (though could also be
incorporated into the rule language).

\begin{example}
  Here is a description of the transition function given in the proof
of Theorem ~\ref{t.asynch-sim} (Asynchronous Simulation).%
 \glo{march@$\rul{March}$}%
 \begin{program}
   rule $\rul{March}$ \0{
\\   for $j\in\{-1,0,1\}$, \0{
\\     let $r(j)=\Cur^{j}$ if $\Age^{j}=\Age$, and $\Prev^{j}$ otherwise;
       }
\\   cond \0{
\\     ? $\forall j\in\{-1,1\}$ $(\Age^{j}-\Age) \amod U \ge 0$
\\     ! \0{
\\       $\Prev := \Cur$;
\\       $\Cur := \trans_{2}(r(-1),r(0),r(1))$ \prl
\\       $\Age := \Age + 1 \bmod U$
\\       }}}
 \end{program}
 \end{example}
  We will also have a field $\Addr$.
  A \df{colony}\index{colony} is a segment of cells with addresses growing
from 0 to $Q-1$ modulo some constant $Q$.

  A \df{location}\index{location} is a pair $(\F,I)$ where $\F$ is a field,
and $I$ is an interval of addresses in the colony.
  We will denote it as%
 \glo{f.cap@$\F(I)$}%
 \[
   \F(I).
 \]
  As an element of the language, of course, a location is simply a triple
consisting of the field, and the numbers determining the endpoints of the
interval.
  A location is meant to specify a sequence of symbols on track $\F$.
  If a shorthand name is given a location, this will generally begin with a
minus sign, like%
 \glo{info@$\fld{-Info}$}%
 \[
   \fld{-Info}.
 \]
  \begin{remark}
  Occasionally, we may treat the union of two or three locations as one.
  It is easy to generalize the rules dealing with locations to this case.
  \end{remark}
  
  Let us be given a string $S$ consisting of a constant number of runs
of the same symbol.
  For example, $0^{m}1^{n}$ has one run of 0's and a run of 1's.
  Let us also be given a location $\loc$.
  Then a rule $\Write(S,\loc)$\glo{write@$\Write$}, writing the string $S$
to the location $\loc$, can be written as a conditional rule, as long as
there are runs of 0's and 1's:
 \begin{program}
 subrule $\Write(0^{m}1^{n},\F([a,a+m+n-1]))$\0{
\\ cond \0{
\\   ? $a\le\Addr < Q\wedge(a+m)$
\\   ! $\F:=0$
\\   ? $a+m\le\Addr < Q\wedge(a+m+n)$
\\   ! $\F:=1$
\\   }}
\end{program}
  The rule language can contain some definitions of names for constant
strings of symbols, of the form%
 \glo{param@$\Param$}%
 \begin{equation}\label{e.Param}
 \Param_{0} = s_{0}, \Param_{1}=s_{1},\;\Param_{2}=s_{2},\ldots.
 \end{equation}
  where $s_{i}$ are some strings.
  The names $\Param_{i}$ are allowed to be used in the rules.
  Let us even agree that the whole program is nothing but a sequence of
such definitions, where the first string $s_{0}$ is the sequence of all the
rules.
  In this case, using the name $\Param_{0}$ in the rules is a kind of
self-reference\index{self!reference}, but its interpretation is clear since
it denotes a definite string.

 \begin{theorem}[Rule Language]\label{t.rule-lang}
 \index{theorem@Theorem!Rule Language}
  There is a string $\rul{Interpr}$\glo{interpr@$\rul{Interpr}$} and an
integer $\cns{interpr-coe}$\glo{interpr@$\cns{interpr-coe}$} such that the
following holds.
  If string $P$ is a description of a transition rule $\trans$ over state
set $\SS$ in the above language (along with the necessary parameters) then
the machine $\univ$ defined in~\eqref{e.univ} computes
$\trans(r_{-1},r_{0},r_{1})$ (possibly padded with $*$'s) from
 \[
   \rul{Interpr}\cc P\cc r_{-1}\cc r_{0}\cc r_{1}
 \]
 within computation time $\cns{interpr-coe}(|P|+1)^{2}\nm{\SS}$ and space
$\cns{interpr-coe}(|P|+\nm{\SS}+1)$.
 \end{theorem}

\begin{proof}[Sketch of proof]
  A detailed proof would be tedious but routine.
  Essentially, each line of a rule program is some comparison involving
some fields: substrings of a state argument $r_{i}$.
  We have $(|P|+1)$ squared in the time upper bound since we may have to
look up some parameter repeatedly.
 \end{proof}

  From now on, by a \df{rule program}\index{program!rule}
$\rul{Trans-prog}$\glo{trans-prog@$\rul{Trans-prog}$} of the transition
function $\trans$, we will understand some string to be interpreted by
$\rul{Interpr}$.


\subsection {A basic block simulation}
 \label{ss.simp-sim}

  The simulation described here is used just to demonstrate the use of the
notation and to introduce some elements of the later construction in a
simple setting.
  Let a transition function $\trans_{2}$ be given.
  We want to define a cellular automaton $M_{1}=\CA(\trans_{1})$, whose
trajectories simulate the trajectories of $M_{2}=\CA(\trans_{2},Q,U)$,
with appropriate $Q,U$.
  Of course, there is a trivial simulation, when $M_{1}=M_{2}$, but a 
more general scheme will be set up here.
  This simulation is not one of the typical simulations by a universal
medium: the cell-size of $M_{1}$ depends on $M_{2}$ as in Example
~\ref{x.block-code}.
  The construction will be summarized in Theorem ~\ref{t.simp-sim}
below.

  In the construction, we introduce some more notation that can be
considered a shorthand in writing the rules but can also be incorporated
into the rule language (without invalidating Theorem ~\ref{t.rule-lang} (Rule
Language)).

\subsubsection{Overall structure}
  The transition function $\trans_{2}:\SS_{2}^3\to\SS_{2}$ to be simulated is
given by a rule program $\rul{Trans-prog}_{2}$.
  To perform a simulated state transition of $M_{2}$, a colony of $M_{1}$
must do the following:
 \begin{description}
  \item[Retrieve] Retrieve the states of the represented neighbor
cells from the neighbor colonies;
  \item[Evaluate] Compute the new state using $\trans_{2}$;
  \item[Update] Replace the old represented state with the new one.
 \end{description}

  The field $\Addr$ holds a number between 0 and $Q-1$, as discussed
in Subsection ~\ref{ss.col}.
  The default operation is to keep this field unchanged.
  The time steps within a work period of a colony are numbered
consecutively from 0 to $U-1$.
  The field $\Age$ holds a number between 0 and $U-1$ intended to be
equal to this number.
  The default operation is to increase this by 1 modulo $U$.
  These default operations will not be overridden in the simple,
fault-free simulations.
  Using these fields, each cell knows its role at the current stage of
computation.

  On the track $\Info$\glo{info@$\Info$}, each colony holds a binary string of
length $\nm{\SS_{2}}$.
  For a string $S\in\SS_{1}^{Q}$, the decoded value $\fg^{*}(S)$ is obtained by
taking this binary string.  The encoding will be defined later.
  The default operation on the information field is to leave it
unchanged.
  It will be overridden only in the last, updating step.
  For simplicity, let us take $|\Info|=2$, i.e.~the $\Info$ track contains
only symbols from the standard alphabet.
  The field $\Cpt$\glo{cpt@$\Cpt$} will be used much of the time like the
cells of a standard computing medium, so its size is the capacity
$|\univ|=\nm{\SS_{\univ}}$ of the fixed efficiently universal standard
computing medium.
  It has subfields $\Input$, $\Output$.
  The field $\Cpt.\Input$ is under the control of the rule
$\Retrieve$\glo{retrieve@$\Retrieve$}, while rest of $\Cpt$ is under the
control of the rule $\Eval$\glo{eval@$\Eval$}.

  The whole program can be summarized as%
 \glo{update@$\rul{Update}$}%
 \begin{program}
      $\Retrieve$;
 \\   $\Eval$;
 \\   $\rul{Update}$
\end{program}


\subsubsection{Mail movement}\label{sss.mail-movement}
  Let $x$ be the base of the current colony under consideration.
  For $i=-1,0,1$, we will indicate how to write a subrule%
 \glo{copy@$\Copy$}%
 \[
 \Copy(i,\loc_{1},\loc_{2})
 \]
 that copies, from the colony with base $x-iQ$, the location
$\loc_{1}$\glo{loc@$\loc$} to location $\loc_{2}$ of the current colony.

 \begin{remark}\label{r.narrow-mail}
  In the present section, for convenience, we assume that the tracks in
$\loc_{1}$ and $\loc_{2}$ have the same width.
  Similarly, we assume that the mail track is at least as wide than any of
the tracks that it serves during copying.
  This assumption might not be valid if the transition function we are
designing is separable with some small bandwidth (as in
~\ref{sss.bandwidth}) since the mail field must be part of $\Buf$.

  Copying can be organized also without the assumption.
  Suppose e.g. that the mail track and $\loc_{2}$ is narrow, and the track
of $\loc_{1}$ is wider by a factor $k_{1}$ than these.
  Then $\loc_{1}$ can be considered to be the union of $k_{1}$ locations of
smaller width and the copying of $\loc_{1}$ into $\loc_{2}$ will need
$k_{1}$ separate copying operations.
 \end{remark}

  With the help of this rule, we will have, with appropriate locations
 $\fld{-Retrieved}_{m}$\glo{retrieved@$\fld{-Retrieved}_{m}$},
 \begin{program}
  subrule $\Retrieve$ \0{
\\  for $m\in\{-1,0,1\}$ do \0{
\\    $\Copy(m, \fld{-Info}, \fld{-Retrieved}_{m})$
\\    }}
 \end{program}
  here $\fld{-Info}$\glo{info@$\fld{-Info}$} is the location on the $\Info$
track containing the represented string.
  For the rule $\Copy$ we use a framework a little more general than what
would be needed here, with a variable-time version in mind.
  Let%
 \glo{nb-ind@$\Nb-ind$}%
 \glo{mail-ind@$\var{Mail-ind}$}%
 \begin{align}\label{e.nb-ind.1}
                       \Nb-ind          &= \{-1,0,1\},
\\\label{e.Mail-ind}     \var{Mail-ind} &= \{-1.1,-0.1,0.1,1.1\}.
 \end{align}
  In colony with base $x$, track
 \[
  \Mail_{k},\ k\in\var{Mail-ind}.
 \]
  is for passing information to colony with base $x+\sign(k)\flo{|k|} B$,
in direction $\sign(k)$.
  Field $\Mail_{k}$ has subfields%
 \glo{fromaddr@$\Fromaddr$}%
 \glo{fromnb@$\Fromnb$}%
 \glo{status@$\Status$}%
 \[
  \Fromaddr, \Fromnb, \Info, \Status.
 \]
  For simplicity, let $|\Mail_{k}.\Info|=|\Info|$.
  The field $\Status$ can have the symbolic values%
 \glo{normal@$\var{Normal}$}%
 \glo{undef@$\Undef$}%
 \[
   \var{Normal}, \Undef.
 \]
  The default value of $\Mail_{k}.\Status$ is $\var{Normal}$.
  When $\Mail_{k}.\Status=\Undef$ then the other subfields of $\Mail_{k}$
will play no role therefore we will, informally, also write
$\Mail_{k}=\Undef$.
  For adjacent cells $x,y$ with $j=y-x$, and their colonies $x^{*}$ and
$y^{*}$ (defined from their $\Addr$ field) we define the predicate%
 \glo{edge@$\Edge_{j}(x)$}%
 \[
  \Edge_{j}(x)=\begin{cases}
        0 &\text{if $x^{*}=y^{*}$,}
\\ 1 &\text{if $x$ and $y$ are endcells of two adjacent colonies,}
\\ \infty &\text{otherwise.}
  \end{cases}
 \]
  The mail track\index{track!mail} $\Mail_{k}$ of cell $x$ will cooperate,
in direction $j$, with mail track $\peer(k,j)$ where%
 \glo{peer@$\peer(k, j)$}
 \[
   \peer(k,j) = k - j\Edge_{j}(x)
 \]
 if the latter is in $\var{Mail-ind}$.
  For $j = -\sign(k)$, we define 
 \[
   \var{Mail-to-receive}(k) = \Mail_{\peer(k,j)}^{j}.
 \] 
  as the mail to be received into $\Mail_{k}$ provided
$\peer(k,j)\in\var{Mail-ind}$ and $\Undef$ otherwise.
  The one-step rule $\rul{Move-mail}$ gets mail from the neighbor cell:%
 \glo{move-mail@$\rul{Move-mail}$}%
 \begin{program}
 subrule $\rul{Move-mail}$ \0{
 \\   pfor $k$ in $\var{Mail-ind}$ do \0{
 \\     $\Mail_{k}:=\var{Mail-to-receive}(k)$
\\      }}
 \end{program}
  Here, $\texttt{pfor}$\glo{pfor@$\texttt{pfor}$} is a ``parallel
$\texttt{for}$'': the rule is carried out simultaneously for all $k$
(i.e.~for all fields indexed by $k$).
  A cell will typically copy the information to be sent into
$\Mail_{k}.\Info$ and at the same time, its own address into
$\Mail_{k}.\Fromaddr$, and $-\sign(k)\flo{|k|}$ into $\Mail_{k}.\Fromnb$.
  In the copy rule here, $i\in\{-1,0,1\}$ refers to the direction of the
sending colony as seen from the receiving colony.
  The next argument is the location of origin in the sending colony, the
one following is the location to receive the information in the receiving
colony.
 \begin{program}
     subrule $\Copy(i,\F_{1}([a_{1}, a_{1} + n - 1]),
                   \F_{2}([a_{2}, a_{2} + n - 1]))$ \0{
\\     let $k=1.1i$ if $i\ne 0$ and $0.1\sign(a_{2}-a_{1})$ otherwise
\\     let $l=0.1\sign(k)$
\\     $\Mail_{k}.\Fromaddr := \Addr$
\\     \prl $\Mail_{k}.\Fromnb := -i$
\\     \prl $\Mail_{k}.\Info := \F_{1}$;
\\     repeat $2Q$ times \0{
\\       $\rul{Move-mail}$
\\       \prl cond \0{
\\         ? $\Addr\in[a_{2},a_{2}+n-1]$ and \2{
\\           $\Addr - a_{2} = \Mail_{l}.\Fromaddr - a_{1}$ and
               $-i = \Mail_{l}.\Fromnb$
             }
\\         ! $\F_{2}:=\Mail_{l}.\Info$
\\           }}}
 \end{program} 
\begin{figure}
 \setlength{\unitlength}{0.2mm}
 \[
 \begin{picture}(600,150)
    \put(0, 0){\framebox(600, 120){}}

    \put(300, 0){\line(0, 1){120}}

    \put(0,20){\line(1,0){600}}

    \put(610, 0){\makebox(0,20)[l]{$\var{Mail}$}}
    \put(610, 40){\makebox(0,20)[l]{$\var{F}_{1}$}}
    \put(610, 60){\makebox(0,20)[l]{$\var{F}_{2}$}}

    \put(30, 40){\framebox(140, 20){}}
    \put(370, 60){\framebox(140, 20){}}

    \put(30, 125){\makebox(0,0)[b]{$a_{1}$}}	
    \put(170, 125){\makebox(0,0)[b]{$a_{1}+n$}}	
    \put(370, 125){\makebox(0,0)[b]{$a_{2}$}}	
    \put(510, 125){\makebox(0,0)[b]{$a_{2}+n$}}

    \multiput(20, 0)(60,0){10}{\makebox(20,20){$\to$}}
 \end{picture}
 \]
 \caption{$\text{\rmfamily\slshape\mdseries Copy}(-1,
                   F_{1}([a_{1}, a_{1} + n - 1]),
                   F_{2}([a_{2}, a_{2} + n - 1]))$}
\end{figure}
 \label{f.Copy}
 \begin{remark}[Indirectly given locations]\label{r.indirect-copy}
  The description $\F_{1}([a_{1},a_{2}])$ of a location can fit into a
single field $\F_{0}$ of some cell.
  We will allow that some argument $\loc_{j}$ of the rule
$\Copy(i,\loc_{1},\loc_{2})$ is given by a field $\F_{0}$ this way.
  This will be done only if $i=0$, i.e.~the copying proceeds within one
colony.
  When executing the copy rule, it will be assumed that field $\F_{0}$ of
each cell of the colony contains the same information $\loc_{j}$.
  Therefore the rule can be written just as above, except that 
some of its parameters are read now from $\F_{0}$.
 \end{remark}


\subsubsection {The evaluation rule} \label{sss.block-sim-eval}
  The subrule $\Eval$ controls the track $\Cpt\xcpt\Cpt.\Input$.
  The first steps of $\Eval$ write the interpreter, and the program of the
transition function to be simulated into appropriate locations on the
$\Cpt.\Input$ track, followed by writing the program $\rul{Trans-prog}_{2}$
found as $\Param_{1}$ after the present rules (see ~\eqref{e.Param}):%
 \glo{prog@$\fld{-Prog}$}%
 \glo{interpr@$\fld{-Interpr}$}%
 \begin{program}
     $\Write(\rul{Interpr}, \fld{-Interpr})$;
\\   $\Write(\Param_{1}, \fld{-Prog})$.
\proglb{pg.Prog-loc}
 \end{program}
  (If $\trans_{1}=\trans_{2}$ (self-simulation) is desired then write
$\Write(\Param_{0}, \fld{-Prog})$ in part ~\eqref{pg.Prog-loc} above, and
$\Param_{1}$, after it.)
  Then $\Param_{2}, \ldots$ will be written after $\Param_{1}$.
  Next, the rule $\Eval$ executes%
 \glo{arg@$\fld{-Arg}_{m}$}%
 \[
    \Copy(0,\fld{-Retrieved}_{m}, \fld{-Arg}_{m})
 \]
 for $m\in\Nb-ind$ where $\fld{-Arg}_{m}$ are locations for the
arguments of the transition function on the $\Cpt.\Input$ track.
  For initialization, the rule writes $*\cdots *$ to the $\Output$ track
and the rest of the cells (including the endcells) of the $\Cpt.\Input$
track, and 0's to the track $\Cpt\xcpt(\Cpt.\Input\cup\Cpt.\Output)$.
  Then for a sufficient number of steps, the transition function $\univ$
will be applied to the $\Cpt$ track.
  According to Theorem ~\ref{t.rule-lang} (Rule Language), the computation
finishes in
 \[
  \cns{interpr-coe}(|\rul{Trans-prog}_{2}|+1)^{2}\nm{\SS_{2}}
 \]
  steps, so this number of iterations is sufficient.

\begin{remark}\label{r.target-addr}
  If the transition function to be simulated is separable as defined in
~\ref{sss.bandwidth} then what has been computed is not $\trans_{2}$ but
the auxiliary function $\trans_{2}^{(\bw)}$.
  In this, the meaning of field $[3\bw, 4\bw - 1]$ is an address, of a target
field to be changed in the simulated cell.
  The evaluation rule will broadcast this number into the field
$\fld{Target-addr}$\glo{target-addr@$\fld{Target-addr}$} of each cell of
the colony (it fits into a single field) to be used eventually in
$\rul{Update}$.
  \end{remark}
  
  The subrule 
 \[
  \rul{Update}
 \]
 copies the track $\Cpt.\Output$ into track $\Info$.

 \begin{remark}
  When the transition rule $\trans_{2}$ to be simulated is separable (as in
~\ref{sss.bandwidth}) then the appropriate locations of $\Cpt.\Output$ must
be copied to the appropriate locations of $\Info$.
  Some of this copying uses locations defined in an indirect way as in
Remark ~\ref{r.indirect-copy}, using the field $\fld{Target-addr}$
mentioned in Remark ~\ref{r.target-addr}.
 \end{remark}


\subsubsection{Summary in a theorem}
  The encoding $\fg_{*}$ of a cell state $v$ of $M_{2}$ into a colony of
$M_{1}$ is defined as follows.
  The string $v$ is written into $\fld{-Info}$.
  The $\Cpt$ track and the mail tracks are set to all 1's.
  Each $\Age$ field is set to 0.  
  For all $i$, the $\Addr$ field of cell $i$ of the colony is set to
$i$.

  The theorem below states the existence of the above simulation.
  As a condition of this theorem, the parameters
 \begin{equation}\label{e.sim-params}
 \rul{Trans-prog}_{2}, \nm{\SS_{1}}, \nm{\SS_{2}}, Q, U
 \end{equation}
  will be restricted by the following inequalities.
 \begin{description}

  \item[Cell Capacity Lower Bound]\index{lower@Lower Bound!Cell Capacity}
 \[
    \nm{\SS_{1}} \ge c_{1}\cei{\log U}+ |\univ| + c_{2}
 \]
  where $c_{1},c_{2}$ can be easily computed from the following
consideration. 
  What we really need is 
 $\nm{\SS_{1}} \ge |\Addr|+|\Age|+|\Info|+|\Mail|+|\Cpt|$ where the following
choices can be made:
 \begin{align*}
      |\Info|    &= 2,
  \\  |\Mail_{i}|  &= |\Mail_{i}.\Fromaddr| + |\Mail_{i}.\Fromnb|
       + |\Mail_{i}.\Info| = \cei{\log Q} + 2 + 2,
  \\  |\Cpt|     &= |\univ|,
  \\  |\Addr|    &= |\Age| = \cei{\log U}.
 \end{align*}

 \item[Colony Size Lower Bound]\index{lower@Lower Bound!Colony Size}
  \[
   Q \ge \cns{interpr-coe}(\nm{\SS_{2}} + |\rul{Trans-prog}_{2}|
	 + \log U + 1).
  \]
 With the field sizes as agreed above, this provides sufficient space in
the colony for information storage and computation.

  \item[Work Period Lower Bound]\index{lower@Lower Bound!Work Period}
 \[
   U \ge 3Q+\cns{interpr-coe}(|\rul{Trans-prog}_{2}| + 1)^{2}\nm{\SS_{2}}.
 \]
 With the field sizes above, this allows sufficient time for the above
program to be carried out.
 \end{description}

  It is not difficult to find parameters satisfying the above inequalities
since $\log Q\ll Q$.

\begin{theorem}[Basic Block Simulation] \label{t.simp-sim}
 \index{theorem@Theorem!Basic Block Simulation}
  There are strings $\rul{Sim-prog}_{0}$\glo{sim-prog@$\rul{Sim-prog}$},
$\rul{Sim-prog}_{1}$ such that the following holds.
  If $\rul{Trans-prog}_{2}$, $\nm{\SS_{1}}$, $\nm{\SS_{2}}$, $Q$ , $U$ satisfy
the above inequalities then
 \begin{align*}
     \Param_{0} &= \rul{Sim-prog}_{1},\qq \Param_{1}=\rul{Trans-prog}_{2},
\\   \Param_{2} &= \nm{\SS_{1}},\qq \Param_{3}=\nm{\SS_{2}},
\\   \Param_{4} &= Q,\qq \Param_{5}=U
 \end{align*}
 is a rule program of a transition function $\trans_{1}$ such that
$\CA(\trans_{1})$ has a block simulation of $\CA(\trans_{2},Q,U)$.
  Also, if $\nm{\SS_{1}},\nm{\SS_{2}},Q,U$ satisfy the above inequalities
with $\SS_{1}=\SS_{2}$ and $\rul{Trans-prog}_{2}=\rul{Sim-prog}_{0}$ then
 \begin{align*}
     \Param_{0} &= \rul{Sim-prog}_{0},\qq \Param_{1}=\text{empty string},
\\   \Param_{2} &= \nm{\SS_{1}},\qq \Param_{3}=\nm{\SS_{1}},
\\   \Param_{4} &= Q,\qq \Param_{5}=U
 \end{align*}
 is a rule program of a transition function $\trans_{1}$ such that
$\CA(\trans_{1})$ has a block simulation of $\CA(\trans_{1},Q,U)$.
\end{theorem}

  The given construction is essentially the proof.
  Its complete formalization would yield $\var{Sim-prog}_{0}$ and
$\var{Sim-prog}_{1}$ explicitly.



hd.bbl
\ifx\undefined\bysame
\newcommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\,}
\fi
\begin{thebibliography}{10}

\bibitem{AizenIsing80}
Michael Aizenman, {\em Translation invariance and instability of phase
  coexistence in the two-dimensional {I}sing system}, Comm. Math. Phys {\bf 73}
  (1980), no.~1, 83--94.

\bibitem{BenGriHeJayMuk90}
Charles~H. Bennett, G.~Grinstein, Yu~He, C.~Jayaprakash, and David Mukamel,
  {\em Stability of temporally periodic states of classical many-body systems},
  Physical Review A {\bf 41} (1990), 1932--1935.

\bibitem{BennGriIrrev85}
Charles~H. Bennett and Geoffrey Grinstein, {\em Role of irreversibility in
  stabilizing complex and nonergodic behavior in locally interacting discrete
  systems}, Physical Review Letters {\bf 55} (1985), 657--660.

\bibitem{BerlConwGuy82}
E.~R. Berlekamp, J.~H. Conway, and R.~K. Guy, {\em Winning ways for your
  mathematical plays}, Academic Press, New York, 1982.

\bibitem{BermSim88}
Piotr Berman and Janos Simon, {\em Investigations of fault-tolerant networks of
  computers}, Proc. of the 20-th Annual ACM Symp. on the Theory of Computing,
  1988, pp.~66--77.

\bibitem{BezuidenhoutGrimmett90}
C.~Bezuidenhout and G.~Grimmett, {\em The critical contact process dies out},
  Annals of Probability {\bf 18} (1990), 1462--1482.

\bibitem{Blahut83}
R.~E. Blahut, {\em Theory and practice of error-control codes}, Addison-Wesley,
  Reading, MA, 1983.

\bibitem{DeSaMaes92}
Paula~Gonzaga de~S\'a and Christian Maes, {\em The {G}\'acs-{K}urdyumov-{L}evin
  {A}utomaton revisited}, Journal of Statistical Physics {\bf 67} (1992),
  no.~3/4, 607--622.

\bibitem{DobrOrtyUp77}
R.~L. Dobrushin and S.~I. Ortyukov, {\em Upper bound on the redundancy of
  self-correcting arrangements of unreliable elements}, Problems of Information
  Transmission {\bf 13} (1977), no.~3, 201--208.

\bibitem{Gacs1dim86}
Peter G\'acs, {\em Reliable computation with cellular automata}, Journal of
  Computer System Science {\bf 32} (1986), no.~1, 15--78.

\bibitem{Gacs2dim89}
\bysame, {\em Self-correcting two-dimensional arrays}, Randomness in
  Computation (Greenwich, Conn.) (Silvio Micali, ed.), Advances in Computing
  Research (a scientific annual), vol.~5, JAI Press, Greenwich, Conn., 1989,
  pp.~223--326.

\bibitem{GacsCommut95}
\bysame, {\em Deterministic parallel computations whose history is independent
  of the order of updating}, Tech. report, Boston University, Department of
  Computer Science, Boston, MA 02215, 1995.

\bibitem{GacsKurdLevIslands78}
Peter G\'acs, Georgii~L. Kurdyumov, and Leonid~A. Levin, {\em One-dimensional
  homogenuous media dissolving finite islands}, Problems of Inf. Transm. {\bf
  14} (1978), no.~3, 92--96.

\bibitem{GacsReif3dim88}
Peter G\'acs and John Reif, {\em A simple three-dimensional real-time reliable
  cellular array}, Journal of Computer and System Sciences {\bf 36} (1988),
  no.~2, 125--147.

\bibitem{GKLMEquil86}
Sheldon Goldstein, Roelof Kuik, Joel~L. Lebowitz, and Christian Maes, {\em From
  {PCA}'s to equilibrium systems and back}, Commun. Math. Phys. {\bf 125}
  (1989), 71--79.

\bibitem{Gray82}
Lawrence~F. Gray, {\em The positive rates problem for attractive nearest
  neighbor spin systems on {{\bf Z}}}, Z.\ Wahrscheinlichkeitstheorie verw.\
  Gebiete {\bf 61} (1982), 389--404.

\bibitem{Gray87}
\bysame, {\em The behavior of processes with statistical mechanical
  properties}, Percolation Theory and Ergodic Theory of Infinite Particle
  Systems, Springer-Verlag, 1987, pp.~131--167.

\bibitem{ItkisLevin94}
Gene Itkis and Leonid Levin, {\em Fast and lean self-stabilizing asynchronous
  protocols}, Proc. of the IEEE Symp. on Foundations of Computer Science, 1994,
  pp.~226--239.

\bibitem{Kurd78}
G.~L. Kurdyumov, {\em An example of a nonergodic homogenous one-dimensional
  random medium with positive transition probabilities}, Soviet Mathematical
  Doklady {\bf 19} (1978), no.~1, 211--214.

\bibitem{Liggett85}
Thomas~M. Liggett, {\em Interacting particle systems}, Grundlehren der
  mathematischen Wissenschaften, vol. 276, Springer Verlag, New York, 1985.

\bibitem{Neveu64}
Jacques Neveu, {\em Bases mathematiques du calcul des probabilit\'es}, Masson
  et Cie, Paris, 1964.

\bibitem{ParkThes96}
Kihong Park, {\em Ergodicity and mixing rate of one-dimensional cellular
  automata}, Ph.D. thesis, Boston University, Boston, MA 02215, 1996.

\bibitem{PippRelBool85}
Nicholas Pippenger, {\em On networks of noisy gates}, Proc. of the 26-th IEEE
  FOCS Symposium, 1985, pp.~30--38.

\bibitem{Radin91}
Charles Radin, {\em Global order from local sources}, Bull. Amer. Math. Soc.
  {\bf 25} (1991), 335--364.

\bibitem{SpielmanFTPrl96}
Daniel~A. Spielman, {\em Highly fault-tolerant parallel computation}, Proc. of
  the 37th IEEE FOCS Symposium, 1996, pp.~154--163.

\bibitem{TofMarg87}
Tommaso Toffoli and Norman Margolus, {\em Cellular automata machines},
  (Cambridge, MA.), MIT Press, Cambridge, MA., 1987.

\bibitem{Toom80}
Andrei~L. Toom, {\em Stable and attractive trajectories in multicomponent
  systems}, Multicomponent Systems (New York) (R.~L. Dobrushin, ed.), Advances
  in Probability, vol.~6, Dekker, New York, 1980, Translation from Russian,
  pp.~549--575.

\bibitem{Tsir77}
B.~S. Tsirel'son, {\em Reliable information storage in a system of locally
  interacting unreliable elements}, Interacting Markov Processes in Biology
  (Pushchino) (V.~I.~Kryukov R.~L.~Dobrushin and A.~L. Toom, eds.), Scientific
  Centre of Biological Research, Pushchino, 1977, In Russian. Translation by
  Springer., pp.~24--38.

\bibitem{VonNeum56}
John von Neumann, {\em Probabilistic logics and the synthesis of reliable
  organisms from unreliable components}, Automata Studies (Princeton, NJ.)
  (C.~Shannon and McCarthy, eds.), Princeton University Press, Princeton, NJ.,
  1956.

\bibitem{Wang90}
Weiguo Wang, {\em An asynchronous two-dimensional self-correcting cellular
  automaton}, Ph.D. thesis, Boston University, Boston, MA 02215, 1990, Short
  version: {\it Proc. 32nd IEEE Symposium on the Foundations of Computer
  Science}, 1991.

\end{thebibliography}
