<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Programming Self-Assembly of DNA Tiles</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marco Bellia</string-name>
          <email>bellia@di.unipi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Eugenia Occhiuto</string-name>
          <email>occhiuto@di.unipi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computing with DNA Tiles</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Informatica, Universita` di Pisa</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>SKI# is a Turing complete, language for programming in the aTAM model. A compilation technique provides a mapping from SKI# into finite sets of DNA Tiles that self-assemble in the aTAM model. Though such sets are always finite, the number of Tiles may be relevant, the construction of the Tiles may be heavy and the self-assembly can produce wrong molecular growth. In this paper we discuss the construction of a DNA Universal Machine as an aTAM interpreter for the entire Combinatory Logic, comparing it with the compiler based approach. Finally, Consensus is considered as a case study in distributed programming in the aTAM model and a further step in the design of SKI# and in the expressivity of aTAM (Wang Tiling) compared to Combinatory Logic and π-calculus.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>!"#$% !!!!!!!!!!!!!!!"#$%&amp;$%#%&amp;'!
% &amp;$%%
#$% %&amp;%</p>
      <p>
        #%
%
%
!"&amp;$%
%
%
other formalisms have been studied for providing languages for programming
Self-Assembly of DNA Tiles. Given any computable problem, these languages
must provide a development environment for formalizing a solution to the
problem and obtaining an aTAM program that Self-Assembles the Tiles according
to such a solution. In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] we considered these languages and proposed the new
language SKI#.
SKI# [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is a Turing complete, language designed for programming in the aTAM
model and its fundamental characteristic is that it is a proper subset of
Combinatory Logic (CL), hence it does not require variable symbols for dealing with
bound variables. As a consequence, it provides mechanisms for function
definition, application, composition without requiring support for variable scope,
binding and substitution. SKI# is the subset of CL consisting in all the
combinatory terms that can be computed using only a finite set of different redexes. Let
Σ = S|K|I|Π |X |ΣΣ be the monoid of Combinatory Logic. Let R = {Sabc, Kab,
Ia|a, b, c ∈ Σ}. A redex is any combinator u ∈ R. The reductum of u is denoted
by r(u) and is defined by: r(Sabc) = ac(bc), r(Kab) = a, r(Ia) = a. A
redexreductum pair is any pair (u, r(u)) for u ∈ R. A computation of a ∈ Σ is any
(possibly infinite, sequence) a0 →s0 . . . →sn−1 an where: (1) a = a0; (2) si ∈ O(ai);
(3) ai ↓ si ∈ R; (4) ai+1 = ai[si ← r(ai ↓ si)]. Each computation of a term a is
uniquely determined by the indexed sequence of paths to the selected redexes,
ρ
ρ = s0, . . . , sn−1, and is denoted by ρ or equally, by a0 →∗an. Let dom(ρ) be the
range of the indices of ρ and for i ∈ dom(ρ), ρ[i] be the i-th element of ρ. When
ρ
the computation is nonterminating, ρ is an infinite sequence and a →∗∞. Given
a ∈ Σ, the computation set is C(a) ≡ { } ∪ {ρ1.ρ2 | aρ→1∗b f or b = a ∧ ρ2 ∈ C(b)},
where is the empty computation such that b →∗b for all b ∈ Σ, and ”.” is the
sequence concatenation. C(a) is the set of all the computations of a. Let ρa ∈ C(a)
for a ∈ Σ. Then size(ρa) = n if ρa is a finite sequence of length n, size(ρa) = ∞
otherwise. Moreover, let Uρa ≡ {ai ↓si | ρa[i] = si} be the set of the selected
redexes in the computation ρa. Then, rank(ρa) is the cardinality of Uρa . Finally,
let C#(a) ≡ {ρ ∈ C(a) | rank(ρ) &lt; n ∈ N}.
      </p>
      <p>Introduction Tiles</p>
      <p>!
!</p>
      <p>!
a3
Application Fold Tiles
a1
a2
a3
a1a2 "* a3
!
a2
!
a2 "* a4
!
a4</p>
      <p>Terminal Tiles</p>
      <p>a2
!</p>
      <p>!
!
a2 "* a2*</p>
      <p>Application Unfold Tiles
a2</p>
      <p>a2
a1</p>
      <p>a4
! a3 a4 a3 a3
a1 "* a3a4 a1a2 "* a3a4 a1 "* a3a4
Connections Tiles
a1
!</p>
      <p>a4
!</p>
      <p>!
a1</p>
      <p>a3
a1 "* a3
a1</p>
      <p>a4
!
!
a1 "* a4
a2
a4
!</p>
      <p>!
a2 "* a4</p>
      <p>
        SKI# leads to the definition of a language of Tile, SKI-Tile, that has the 5
kinds of Tiles of Figure 2, and each kind is designed to support the emulation of
combinatory reduction. In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], we describe a compilation technique from SKI#
program SKI-Tile program and we apply it to the derivation of a finite Tile set
for computing applications of the factorial function. The computation
(simulation) in aTAM of the resulting SKI-Tile programs leads to computation grids
which grow as in Figure 3 and satisfy the grid computation property [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] which
states the condition to ensure that independent computations cannot overlap.
")!
!!
!
!
!
"&amp;"!#! "#!
"&amp;!
!!
(!
!(!
(!
!
"&amp;!
"&amp;!
!! "&amp;! "&amp;!
!!
!
!!
!
'(! !!!!!!!!"#! "#!
"%!
"%!
!"%!
(!
!!(!
(!
!
"%!
"%!
"%!
"$! "$! !!!!! '(! !!!! !!!!"$! "$!!
! ! !
Roughly speaking, this condition requires that the grid must have each
independent computations enclosed in a region delimited by a special dummy color. The
kernel of the compilation process is the mapping of each pair (u, r(u)), defining a
redex-reductum pair of the program, into a Tile of SKI-Tile. The object Tile has
sides (resp. sticky ends) colored (resp. configured) by the pair η(u) and η(r(u))
where η is an injection from the terms of SKI# into colors of Wang Tile (resp.
sticky ends of DNA Tiles).
3
      </p>
      <p>A DNA Universal Machine for Combinatory Logic
In this section we describe the definition of a DNA Universal Machine for the
programs of the entire Combinatory Logic, including SKI#. The machine consists
in a Turing Machine that interprets combinatory programs, and is expressed as
an aTAM system (program).</p>
      <p>
        The full machine is too complicated to be presented in this paper, hence we
show a simplified version in which the input combinatory term does not contain
brackets. Such a simplification allows to understand the fundamentals of the
interpretation process, without getting lost in complicated details for dealing
with combinators having non atomic arguments. Following [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], a TM is a 7-tuple
Q, Γ, #, I, δ, Start, F , where Q is the finite set of states, Γ is the finite set of
symbols, # is the blank symbol, I = Γ \ {#}, δ = Q \ F × Γ → Q × Γ × {L, R}
is the function that defines the transition rules that describe the behavior of the
machine, Start ∈ Q is the initial state. F ⊂ Q is the set of final or halting states.
Moreover, we use un, u∗, uw for a sequence of symbols of size n, of arbitrary
finite size and for an infinite denumerable sequence of symbols, respectively.
3.1
      </p>
      <p>The Structure of SKI-TM
The machine M we define is such that Γ = {S, K, I, }∪X ∪Π∪{$, ↓, , S, K, I(, )},
F = {Halt}, δ is defined in Table 2,3,4,5,6. The other components can be
derived from Table 2,3,4,5,6, in particular the set of states Q. The initial tape of
M is assumed to be constituted of blank symbols except for a finite sequence.
The sequence is supposed to consist of the combinatory program to be reduced,
in left associative form, LAF, (without brackets) and delimited by symbol $ (on
both sides). Table 1 defines the tape syntax. C are the combinator symbols (we
consider only the main combinators), V are constant and variable symbols, D
are all SKI symbols and M are markers. Markers include the blank symbol ,
but do not include $ since this symbol cannot appear in the sequence2 Initially
the machine is in Start and the head is pointing immediately after the leftmost
symbol $.
The notation for the rules resorts to the use of set expressions defining a finite
set of symbols. A set expression has the form e1 . . . ek (k ≥ 1), where ei is
either a single symbol of D ∪ M ∪ {$} or the letters c or v. Each single symbol
stands for the singleton containing itself, while c stands for the set {S, K, I} and
v for V. Finally, the set expression e1 . . . ek stands for the set union of the sets
denoted by e1 . . . ek. Hence rule (TK, cv) → (TKa, cv, R) in Table 3, is expressing
the set of rules {(TK, u) → (TKa, u, R) |∀u ∈ D}. Set expressions are also used in
expressing set of states. For instance TSc : cv is expressing any state in the set
{TSu | u ∈D}. As a matter of fact the rule (TSc : cv1, cv() → (TSc : cv1, cv(, L), in
Table 5 stands for the set of rules:</p>
      <p>
        (TSu1, u) → (TSu1, u, L) ∀u1 ∈ D ∧ u ∈ D ∪ {(}
2 Round brackets are included since though our assumption on the form of the input
program, non atomic arguments are introduced during reduction of combinator S.
Quintuples looking f or a K redex
(TK, $) → (FF, $, L) (Attempt f ails)
(TK, ) → (TK, , R) (Skip blanks)
(TK, cv) → (TKa, cv, R) (1st arg has been read)
(TKa, $) → (FF, $, L) (Attempt f ails)
(TKa, ) → (TKa, , R) (Skip blanks)
(TKa, cv) → (TKaE, , L) (Reduction 2nd Atomic arg)
(TKaE, cv )() → (TKaE, cv )(, L) (going back to K )
(TKaE, K) → (Start, , R) (M arker K is deleted)
Quintuples looking f or an I redex
(TI, $) → (FF, $, L) (attempt f ails)
(TI, ) → (TI, , R) (Skip blanks)
(TI, cv) → (TIE, cv, L) (arg has been f ound)
(TIE, ) → (TIE, , L) (Skip blanks)
(TIE, I) → (Start, , R) (M arker I is deleted)
Blank insertion is omitted
(TS, cv ) → (BKStart, cv , L) (A redex is f ound)
(BKend, cv) → (TSa, cv, R) (F irst argument f ound)
(TSa, ) → (TSb, ↓, R) (Insert marker f or third argument)
(TSb, cv) → (TSb : cv, (, R) (Substitute second argument with()
(TSb : cv, ) → (TSbc, cv, R) (Rewrite second argument af ter()
(TSbc, cv) → (TSbc1, cv, R) (T hird argument f ound)
(TSbc1, ) → (TSbc2, ), L) (Insert ) af ter third argument)
(TSbc2, cv) → (TSc : cv, cv, L) (Go lef t to marker f or the third argument)
(TSc : cv1, cv() → (TSc : cv1, cv(, L) (Skip second argument and ()
(TSc : cv, ↓) → (TSS, cv, L) (Substitute marker with third argument)
(TSS, cv) → (TSS, cv, L) (Skip f irst argument)
(TSS, ) → (BSend, , L) (Skip blank)
(BSend, S) → (Start, , R) (Delete marker f or S combinator)
The rules in Table 5 deal with the S-redex. In this case, the redex is firstly
transformed (by inserting/shifting #) into a more convenient form, then the
reduction applies to that form. Let ω $ uk S i a j b h c m un $ ω be
a the tape and S i a j b h c be the leftmost S-redex to be reduced. The
transformation modifies the tape into ω $ u˜k S a b c u˜n $ ω, where the
arguments of the S-redex are separated by exactly 1 blank symbol and u˜k and
uk are the same sequence provided that symbols are ignored. State BKstart
starts the transformation which ends in state BKend (if a S-redex is effectively
found. Otherwise, it ends in the state FF to deal with failure). Eventually, Table
5 contains the rules for computing the S-redex of the transformed form and omit
the rules of the transformation. The rules in Table 6 are concerned with the
state FF that deals with failures in the search of a redex and is responsible for
elimination of markers introduced in the attempt of reduction.
To use M , we need to compile it into a program (i.e. a DNA Tile system) for
aTAM. It can be accomplished (at least in principle) by using the technique
introduced in [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] which provide the stable, bio-chemical conditions for Tile
Self-Assembly (salt concentration, temperature thresholds), a robust structure
for constructing the Tiles (double, triple crossover) and the right content of the
finite Tile set to be used in the Self-Assembly process. Such a content consists
in the 4 values of the sticky ends of each Tile of the set. The content is obtained
by the mapping introduced in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], where a TM-rule is compiled into two pairs of
Wang Tiles which emulate the rule application on a tape which is represented by
a row of the c!omputation grid, where the sequence of rows emulates the sequence
of changes in the tape while the machine is running. The mapping is shown in
Fig.4 where (a),(b),(c) and (d) are all the possible combinations.
      </p>
      <p>&gt;8%'&amp;?! "#!
"#($!</p>
      <p>"!
&gt;.%'&amp;?! "!
$!
"#($!</p>
      <p>"+!
,!</p>
      <p>
        We conclude this section noting that a different way exists for implementing
SKI-TM in aTAM. It consists in compiling a Universal Turing Machine and then
provide for the encoding of SKI-TM into the program representation of such a
machine. This way is particularly interesting in view of [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
3.3
      </p>
      <p>Pros and Cons of M compared with SKI# and its compiler
Even if the compiler for SKI# has some remarkable aspects, its use has also,
some practical limitations which include:
– Deterministic growth. Since M uses a specific (complete) reduction strategy,
the grid grows deterministically using M . The same does not hold for the use
of the compiler. Even limiting the set of the redex-reductum pairs to those
of the outermost redexes we may have a pair that applies to a non-outermost
redex of an intermediate reduced term;
– Construction in aTAM, of all the Tiles in the object finite set. M requires
always the same set of Tiles. In SKI#, the number of different Tiles depends
on the specific program.
– Reuse and/or modification of programs. M requires always to change the
Tiles of the first row of the grid. SKI# programs are function applications
hence when the input changes the program must be re-compiled. However
the new Tile set may have a relevant set intersection with the previous
application.
– Errors due to the violation of the grid property. The computation grids of</p>
      <p>M do not need grid property.
– Control of the shape of the computation grid. The computation grid, in M ,
is very far from the source program and contains symbols of the emulator.
In the computation grids of SKI# the Tiles contain only terms of the source
programs.</p>
      <p>– Expressivity. M has the expressivity of CL, whilst SKI# of a subset of CL.
4</p>
      <p>
        Consensus in DNA Tile Self-Assembly
Starting from the definition of Consensus in DNA Tile Self-Assembly, we
consider distributed computation, extend our approach mixing SKI calculus with
process algebras, introduce an alternative compilation of SKI# into SKI-Tile.
We introduce and discuss it through the example of the algorithm of consensus
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We show how it could be expressed in the extended SKI calculus and then,
compiled into an aTAM system.
      </p>
      <p>
        In distributed computing, Consensus is the well known problem in which a
fixed number of agents require to agree on 1 among a finite set S of values.
In the version of [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ], it consists in a 3-state (one-way) population protocol
in which S={p,n,u} is the agent state set and agents cannot crash. Agents can
communicate in pairs for letting know the current value of their own state and
possibly, changing it according to the protocol rules. The rules state that two
communicating agents having: (1) same state, maintain such a state; (2) one
state p (for positive opinion), the other state n (for negative o.), both pass in
state u (undecided o.); (3) one state p (resp. N), the other state u, both pass
in state p (resp. N). We give below, two algebraic formulations of the protocol
using Milner’s π-calculus [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>P(c) := cp.c(x).P (c, x) + c(x).cp.P (c, x)</p>
      <p>P (c, x) := [x = p]P(c) + [x = n]U(c) + [x = u]P(c)
N(c) := cn.c(x).N (c, x) + c(x).cn.N (c, x)</p>
      <p>N (c, x) := [x = p]U(c) + [x = n]N(c) + [x = u]N(c)
U(c) := cu.c(x).U (c, x) + c(x).cu.U (c, x)</p>
      <p>U (c, x) := [x = p]P(c) + [x = n]N(c) + [x = u]U(c)</p>
      <p>A(c) := P(c) | . . . | P(c) | N(c) | . . . | N(c) | U(c) | . . . | U(c)
where, capital case symbols {P, P , N, N , U, U } are names for process definitions,
all lower case symbols {p, n, u} are names for process links/channels, finally x is
the only variable symbol. P+Q is the choice operator, P|Q is distributed operator,
[x=y]P is match operator, P:=Q is recursive process definition. Since it uses a
finite set of values, a re-formulation of A(c) in the system B below, can be
obtained. System B consists in a syntactic transliteration of A(c) which introduces
3 distinct channels for sending and receiving, and can execute without resorting
to the variable substitution mechanism.</p>
      <p>P := pp.P + np.U + up.P + p(x).P + n(x)U + u(x)P
N := pn.U + nn.N + un.N + p(x).U + n(x)N + u(x)N
U := pu.P + nu.N + uu.U + p(x).P + n(x)N + u(x)U</p>
      <p>B := P | . . . | P | N | . . . | N | U | . . . | U
The use of distinct channels allows an instantaneous state transition of both
the agents at each communication of an agent pair (the formulation B required
two distinct communications in sequence). Figure 6 contains a first
(uncompleted) formulation in DNA Tile of system B. Each process is expressed by 6
different Tiles, one for each of the 6 terms occurring in the + expression defining
a process in system B. In Figure 6, the east side of the tile is assumed to be used
for receiving whilst the west side for sending. This results into an asymmetry
in the communication of the agent pairs (which is not present in the latter
πformulation), in addition the computation grid of the aTAM model is too rigid
in ”selecting” the tiles to be considered for the grid growth (in contrast to the
terms of a | expression which can be coupled in any way). Figure 7 contains the
additional Tiles that a process requires to get in contact with any process in the
system and arbitrarily positioned in a column of the computation grid.</p>
      <p>Proving equivalence between the π-calculus formulation of system B and its
formulation in aTAM is out of the scope of the paper. However, we have shown
lines along which we can pass from algebraic formulations of some distributed
systems to the DNA Tiles for the execution of such systems by self-assembly in
ncpm</p>
      <p>P
U
(P2)
PU
UU2
(P5)
np
!
!
up</p>
      <p>P
P
(P3)
P
P
(P6)
up
!
P := p*p.P + n*p.P + u*p.U + p(x).P + n(x).U + u(x).P
N := p*n.U + n*n.N + u*n.N + p(x).U + n(x).N + u(x).N
U := p*u.P + n*u.N + u*u.U + p(x).P + n(x).N + u(x).U</p>
      <p>B = P | ... | P | N | ... | N | U | ... | U
the aTAM model. Figure 7 shows on its right part, the behavior of 3 contiguous
agents in a computation grid of the consensus system.</p>
      <p>!
pxn
!</p>
      <p>pxu
P
N
(P7)</p>
      <p>P
nxp !</p>
      <p>U
N
(P8)</p>
      <p>P
U
(P9)</p>
      <p>P
uxp !</p>
      <p>U
(P10)
!</p>
      <p>!
P
P
(P0)
… P</p>
      <p>U</p>
      <p>N
P9
U1 P6
P0 P2</p>
      <p>P? U?
… … …</p>
      <p>U10 N0</p>
      <p>N0
N5
U?
…
…
…</p>
      <p>
        We conclude the paragraph, recalling that concurrent computation is a mix of
distributed and parallel computation. Since the structure of programs (namely,
finite sets of DNA Tiles) and the properties of the basic computation mechanism
(namely, Tile self-assembly in a grid), the aTAM model copes with distributed
computation but it is a sequential computation model. This limitation is the
result of various considerations on some bio-chemical aspects of DNA molecular
interactions [
        <xref ref-type="bibr" rid="ref11 ref4">11, 4</xref>
        ]. Hence, the definition of a parallel, computation model for
DNA Tile self-assembly should reconsider such aspects. This is an interesting line
of investigations to allow concurrent computations in DNA Tile self-assembly.
5
      </p>
      <p>
        Conclusions
The paper introduced an aTAM Universal Machine for CL. Apart from the
interest in itself, its use is compared with the one of the language SKI# and of its
interpreter [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. SKI# is a Turing complete, language designed for programming
in the aTAM model and is a proper subset of CL. The comparison shows that
the use of the Universal Machine appears more convenient than the use of SKI
and its compiler, when the number of the required Tiles is considered. Moreover
the use of the Universal Machine does not require any checking for the grid
property. The paper discusses a formalization of the Consensus protocol in the
aTAM model. It should be interesting to compare it with the one given in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for
Strand Displacement Systems. Finally we note that the given formalization was
obtained by simplifying a previous one given in π-calculus and using variables.
The simplification was based on the removal of the variables that were ranging
on finite sets of values. This can lead to an integration of SKI# with operators
of a process algebra with variables ranging on finite sets of values.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Rothemund</surname>
            ,
            <given-names>P.W.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winfree</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>The Program Size Complexity of Self-Assembled Squares -</article-title>
          [revised may 20 - 2000]. In: ACM Symposium on
          <article-title>Theory of Computing (as Extended Abstract)</article-title>
          . (
          <year>2000</year>
          )
          <fpage>459</fpage>
          -
          <lpage>468</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Belia</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Occhiuto</surname>
            ,
            <given-names>M.E.: DNA</given-names>
          </string-name>
          <string-name>
            <surname>Tiles</surname>
          </string-name>
          ,
          <article-title>Wang Tiles and Combinators</article-title>
          .
          <source>In: Proc. of CS&amp;P'</source>
          <year>2013</year>
          . CEUR vol.
          <volume>1032</volume>
          (
          <year>2013</year>
          )
          <fpage>114</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Hopcroft</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motwani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
          </string-name>
          , J.:
          <article-title>Introduction to Automata Theory, Languages, and</article-title>
          <string-name>
            <surname>Computation.</surname>
          </string-name>
          <article-title>2nd edn</article-title>
          . AddisonWesley, Higher
          <string-name>
            <surname>Education</surname>
          </string-name>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Winfree</surname>
          </string-name>
          , E.:
          <article-title>Simulations of Computing by Self-Assembly</article-title>
          .
          <source>In: 4th DIMACS Meeting on DNA Based Computer</source>
          . (
          <year>June 1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Winfree</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wenzler</surname>
            ,
            <given-names>L.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seeman</surname>
            ,
            <given-names>N.C.</given-names>
          </string-name>
          :
          <article-title>Design and Self-Assembly of Two-Dimensional DNA Crystals</article-title>
          .
          <source>Nature</source>
          <volume>394</volume>
          (
          <year>1998</year>
          )
          <fpage>539</fpage>
          -
          <lpage>544</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Wang</surname>
          </string-name>
          , H.:
          <article-title>Dominoes and the AEA case of the Decision Problem</article-title>
          .
          <source>In: Symp. on Mathematical Theory of Automata</source>
          . (
          <year>1963</year>
          )
          <fpage>23</fpage>
          -
          <lpage>55</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Neary</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woods</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Four Small Universal Turing Mchines</article-title>
          .
          <source>In: Proc. of 5th. MCU. LNCS</source>
          <volume>4664</volume>
          (
          <year>2007</year>
          )
          <fpage>242</fpage>
          -
          <lpage>254</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Angluin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aspnes</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eisenstat</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>A simple population protocol for fast robust approximate majority</article-title>
          .
          <source>Distributed Computing</source>
          <volume>21</volume>
          (
          <year>2008</year>
          )
          <fpage>87</fpage>
          -
          <lpage>102</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.J.</given-names>
          </string-name>
          , et al:
          <article-title>Programmable chemical controllers made from dna</article-title>
          .
          <source>PNAS</source>
          <volume>97</volume>
          (
          <issue>3</issue>
          ) (
          <year>2000</year>
          )
          <fpage>984</fpage>
          -
          <lpage>989</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Milner</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parrow</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walker</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>A Calculus of Mobile Processes, I-II</article-title>
          .
          <source>Information and Computation</source>
          <volume>100</volume>
          (
          <year>1992</year>
          )
          <fpage>1</fpage>
          -
          <lpage>77</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Winfree</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seeman</surname>
          </string-name>
          , N.:
          <article-title>Universal Computation via Self-Assembly of DNA: Some Theory and Experiments</article-title>
          .
          <source>In: 2th DIMACS Meeting on DNA Based Computers. (June</source>
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>