Improved lower and upper bounds on the tile complexity of uniquely self-assembling a thin rectangle non-cooperatively in 3D
aa r X i v : . [ c s . D S ] J u l Improved lower and upper bounds on the tilecomplexity of uniquely self-assembling a thin rectanglenon-cooperatively in 3D
David Furcy ∗ Scott M. Summers † Logan Withers ‡ Abstract
We investigate a fundamental question regarding a benchmark class of shapes in one of the simplest,yet most widely utilized abstract models of algorithmic tile self-assembly. More specifically, we study thedirected tile complexity of a k × N thin rectangle in Winfree’s ubiquitous abstract Tile Assembly Model,assuming that cooperative binding cannot be enforced (temperature-1 self-assembly) and that tiles areallowed to be placed at most one step into the third dimension (just-barely 3D). While the directed tilecomplexities of a square and a scaled-up version of any algorithmically specified shape at temperature 1in just-barely 3D are both asymptotically the same as they are (respectively) at temperature 2 in 2D, the(loose) bounds on the directed tile complexity of a thin rectangle at temperature 2 in 2D are not currentlyknown to hold at temperature 1 in just-barely 3D. Motivated by this discrepancy, we establish new lowerand upper bounds on the directed tile complexity of a thin rectangle at temperature 1 in just-barely 3D.On our way to proving our lower bound, we develop a new, more powerful type of specialized WindowMovie Lemma that lets us derive our lower bound via a counting argument, where we upper bound thenumber of “sufficiently similar” ways to assign glues to a set (rather than a sequence) of fixed locations.Consequently, our lower bound, Ω ( N k ) , is an asymptotic improvement over the previous state of theart lower bound and is more aesthetically pleasing since it eliminates the non-constant term k that usedto divide N k . The proof of our upper bound is based on the construction of a novel, just-barely 3Dtemperature-1 counter, organized according to “digit regions”, which affords it roughly fifty percent moredigits for the same target rectangle compared to the previous state of the art counter. This increase indigit density results in an upper bound of O ( N ⌊ k ⌋ + log N ) , that is an asymptotic improvement overthe previous state of the art upper bound and roughly the square of our lower bound. A key objective in algorithmic self-assembly is to characterize the extent to which an algorithm can beconverted to an efficient self-assembling system comprised of discrete, distributed and disorganized unitsthat, through random encounters with and locally-defined reactions to each other, coalesce into a terminalassembly having a desirable form or function. In this paper, we study a fundamental question regardinga benchmark class of shapes in one of the simplest yet most popular abstract models of algorithmic self-assembly.Ubiquitous throughout the theory of algorithmic self-assembly, Erik Winfree’s abstract Tile AssemblyModel (aTAM) [12] is a discrete mathematical model of DNA tile self-assembly [9] that augments classicalWang tiling [11] with a mechanism for automatic growth. In the aTAM, a DNA tile is represented by a unitsquare (or cube) tile type that may neither rotate, reflect, nor fold. Each side of a tile type is decorated witha glue consisting of both a non-negative integer strength and an alpha-numeric label. A tile set is a finite ∗ Computer Science Department, University of Wisconsin Oshkosh, Oshkosh, WI 54901, USA, [email protected] . † Computer Science Department, University of Wisconsin Oshkosh, Oshkosh, WI 54901, USA, [email protected] . ‡ Computer Science Department, University of Wisconsin Oshkosh, Oshkosh, WI 54901, USA, [email protected] . N × N square at temperature 2 in 2D is O ( log N log log N ) , matching a correspondinglower bound for all Kolmogorov-random N and all positive temperature values, set by Rothemund andWinfree [8]. Both of these bounds hold for temperature-1 self-assembly in just-barely 3D. The lower boundis an easy generalization of the latter and the upper bound was established by Furcy, Micka and Summers [4]via their discovery of a just-barely 3D, optimal encoding construction at temperature 1. Just-barely 3D,optimal encoding at temperature 1 was inspired by, achieves the same result as, but is drastically differentfrom the 2D optimal encoding at temperature 2 developed by Soloveichik and Winfree [10], who proved thatthe directed tile complexity of a scaled-up version of any algorithmically specified shape X at temperature 2is Θ ( K ( X ) log K ( X ) ) , where K ( X ) is the size of the smallest Turing machine that outputs the list of points in X .This tight bound for temperature-2 self-assembly in 2D was shown to hold for temperature-1 self-assemblyin just-barely 3D by Furcy and Summers [5]: they combined just-barely 3D optimal encoding at temperature1 with a modified version of a just-barely 3D, temperature-1 Turing machine simulation by Cook, Fu andSchweller [3].Another benchmark shape is the k × N rectangle, where k < log N log log N − log log log N , making it “thin”. Athin rectangle is an interesting testbed because its restricted height creates a limited channel through whichtiles may propagate information, for example, the current value of a self-assembling counter. In fact, Ag-garwal, Cheng, Goldwasser, Kao, Moisset de Espan´es and Schweller [2] used an optimal, base- ⌈ N k ⌉ counterthat uniquely self-assembles within the restricted confines of a thin rectangle to derive an upper bound of O ( N k + k ) on the directed tile complexity of a k × N thin rectangle at temperature 2 in 2D. They thenleveraged the limited bandwidth of a thin rectangle in a counting argument for a corresponding lower boundof Ω ( N k k ) . The previous theory for a square and an algorithmically specified shape would suggest that thesethin rectangle bounds should hold at temperature 1 in just-barely 3D. Yet, we currently do not know if this isthe case. Thus, the power of temperature-1 self-assembly in just-barely 3D resembles that of temperature-2self-assembly in 2D, with respect to the directed tile complexities of a square and a scaled-up version of anyalgorithmically specified shape, but not a thin rectangle.Motivated by this theoretical discrepancy, we prove new lower and upper bounds on the directed tilecomplexity of a thin rectangle at temperature 1 in just-barely 3D. See Tables 1 and 2 for a quick summaryof our results and how they compare with previous state of the art results. Our lower bound is: Theorem 1.
The directed tile complexity of a k × N thin rectangle at temperature 1 in just-barely 3D is Ω ( N k ) . Theorem 1 is an asymptotic improvement over the corresponding previous state of the art lower bound:2D Temperature 2 Just-barely 3D Temperature 1Lower bound Upper bound Lower bound Upper bound N × N Square Θ ( log N log log N ) Same as 2D Temperature 2Algorithmically-defined shape X Θ ( K ( X ) log K ( X ) ) Same as 2D Temperature 2 k × N rectangle Ω ( N k k ) O ( N k + k ) Ω ( N k k ) O ( N ⌊ k ⌋ + log N ) Table 1: State-of-the-art directed tile complexity for the self-assembly of benchmark shapes in the aTAM,where K ( X ) is the size of the smallest Turing machine that outputs the list of points in X .2D Temperature 2 Just-barely 3D Temperature 1Lower bound Upper bound Lower bound Upper bound k × N rectangle N/A N/A Ω ( N k ) O ( N ⌊ k ⌋ + log N ) Table 2: Our improved lower and upper bounds on the directed tile complexity of rectangles are highlightedin this table as the two main contributions of this paper. Note that, for a thin rectangle, the additive termsin this table and Table 1 are eliminated.
Theorem.
The directed tile complexity of a k × N thin rectangle at temperature 1 in just-barely 3D is Ω ( N k k ) . Technically, the previous lower bound is not explicitly proved (or even stated) and therefore cannot bereferenced, but it can be derived via a straightforward adaptation of the counting argument given in theproof of the lower bound for a thin rectangle for general temperature values in 2D. This proof would basicallyuse a counting argument that upper bounds the number of ways to assign glues (of tiles) to a sequence offixed locations abutting a plane. The idea is that, if two assignments are similar, in that they, respectively,assign the same glues at the fixed locations in the same order, but off by translation, then it is possibleto self-assemble something other than the target rectangle (giving a contradiction). In such a Pigeonholecounting argument, since N is fixed at the beginning of the proof, a larger lower bound on the number oftypes of glues is required in order to avoid a contradiction arising from two similar assignments. On our wayto proving Theorem 1, we prove Lemma 2, which is essentially a new, more powerful type of Window MovieLemma [7] for temperature-1 self-assembly within a just-barely 3D, rectangular region of space. We establishour lower bound via a counting argument, but unlike the previous example, our new technical machinerylets us merely upper bound the number of “sufficiently similar” ways to assign glues to a fixed set (ratherthan a sequence) of locations abutting a plane. Intuitively, two assignments are sufficiently similar if, up totranslation, they respectively agree on: the set of locations to which glues are assigned, the local order inwhich certain consecutive pairs of glues appear, and the glues that are assigned to a certain set (of roughlyhalf) of the locations. Our lower bound is also aesthetically pleasing because only a hidden constant termdivides “ N k ”, making it roughly the square root of our upper bound, which is: Theorem 2.
The directed tile complexity of a k × N rectangle at temperature 1 in just-barely 3D is O ( N ⌊ k ⌋ + log N ) . Theorem 2 is an asymptotic improvement over the corresponding previous state of the art upper bound:
Theorem (Furcy, Summers and Wendlandt [6]) . The directed tile complexity of a k × N rectangle at tem-perature 1 in just-barely 3D is O ( N ⌊ k ⌋ + log N ) . The previous upper bound is based on the self-assembly of a just-barely 3D counter that uniquely self-assembles at temperature 1, but whose base M depends on the dimensions of the target rectangle. Moreover,3ach digit in the previous counter is represented geometrically and in binary within a just-barely 3D region ofspace comprised of Θ ( log M ) columns and 3 rows. In any kind of construction like this, the number of rowsused to represent each digit affects the base of the counter, which, for a thin rectangle, is directly proportionalto and the asymptotically-dominating term in the tile complexity. For example, in the previous construction,the number of rows per digit is 3, so the base must be set to Θ ( N ⌊ k ⌋ ) . Intuitively, “squeezing” more digitsinto the counter for the same rectangle of height k will result in a decrease in the base and therefore thetile complexity. Our construction for Theorem 2 is based on the self-assembly of a just-barely 3D countersimilar to the previous construction, but the geometric structure of our counter is organized according todigit regions, or just-barely 3D regions of space comprised of Θ ( log M ) columns and 4 rows in which twodigits are represented. So, on average, each digit in our counter is represented within a just-barely 3D regionof space comprised of Θ ( log M ) columns, but only 2 rows, resulting in a roughly fifty percent increase in digitdensity for the same rectangle of height k , compared to the counter for the previous result. This increasein digit density is the main reason why the “3” from the previous upper bound is replaced by a “2” inTheorem 2. In this section, we briefly sketch a strictly 3D version of Winfree’s abstract Tile Assembly Model.All logarithms in this paper are base-2. Fix an alphabet Σ. Σ ∗ is the set of finite strings over Σ. Let Z , Z + , and N denote the set of integers, positive integers, and nonnegative integers, respectively.A grid graph is an undirected graph G = ( V, E ) , where V ⊂ Z , such that, for all {⃗ a, ⃗ b } ∈ E , ⃗ a − ⃗ b is a3-dimensional unit vector. The full grid graph of V is the undirected graph G f V = ( V, E ) , such that, for all ⃗ x, ⃗ y ∈ V , {⃗ x, ⃗ y } ∈ E ⇐⇒ ∥⃗ x − ⃗ y ∥ =
1, i.e., if and only if ⃗ x and ⃗ y are adjacent in the 3-dimensional integerCartesian space.A 3-dimensional tile type is a tuple t ∈ ( Σ ∗ × N ) , e.g., a unit cube, with six sides, listed in somestandardized order, and each side having a glue g ∈ Σ ∗ × N consisting of a finite string label and a nonnegativeinteger strength . We assume a finite set of tile types, but an infinite number of copies of each tile type, eachcopy referred to as a tile . A tile set is a set of tile types and is usually denoted as T .A configuration is a (possibly empty) arrangement of tiles on the integer lattice Z , i.e., a partial function α ∶ Z ⇢ T . Two adjacent tiles in a configuration bind , interact , or are attached , if the glues on their abuttingsides are equal (in both label and strength) and have positive strength. Each configuration α induces a binding graph G b α , a grid graph whose vertices are positions occupied by tiles, according to α , with an edgebetween two vertices if the tiles at those vertices bind.An assembly is a connected, non-empty configuration, i.e., a partial function α ∶ Z ⇢ T such that G fdom α is connected and dom α ≠ ∅ . Given τ ∈ Z + , α is τ -stable if every cut-set of G b α has weight at least τ , wherethe weight of an edge is the strength of the glue it represents. When τ is clear from context, we say α is stable . Given two assemblies α, β , we say α is a subassembly of β , and we write α ⊑ β , if dom α ⊆ dom β and,for all points ⃗ p ∈ dom α , α (⃗ p ) = β (⃗ p ) .A 3-dimensional tile assembly system (TAS) is a triple T = (
T, σ, τ ) , where T is a tile set, σ ∶ Z ⇢ T isthe τ -stable, seed assembly , with ∣ dom σ ∣ = τ ∈ Z + is the temperature .Given two τ -stable assemblies α, β , we write α → T β if α ⊑ β and ∣ dom β / dom α ∣ =
1. In this casewe say α T -produces β in one step . If α → T β , dom β / dom α = {⃗ p } , and t = β (⃗ p ) , we write β = α +(⃗ p ↦ t ) . The T -frontier of α is the set ∂ T α = ⋃ α → T β ( dom β / dom α ), i.e., the set of empty locations atwhich a tile could stably attach to α . The t -frontier of α , denoted ∂ T t α , is the subset of ∂ T α defined as { ⃗ p ∈ ∂ T α ∣ α → T β and β (⃗ p ) = t } . Let A T denote the set of all assemblies of tiles from T , and let A T <∞ denote the set of finite assembliesof tiles from T . A sequence of k ∈ Z + ∪ { ∞ } assemblies ⃗ α = ( α , α , . . . ) over A T is a T -assembly sequence if, A cut-set is a subset of edges in a graph which, when removed from the graph, produces two or more disconnected subgraphs.The weight of a cut-set is the sum of the weights of all of the edges in the cut-set. ≤ i < k , α i − → T α i . The result of an assembly sequence ⃗ α , denoted as res (⃗ α ) , is the unique limitingassembly (for a finite sequence, this is the final assembly in the sequence). We write α → T β , and we say α T -produces β (in 0 or more steps), if there is a T -assembly sequence α , α , . . . of length k = ∣ dom β / dom α ∣ + α = α , (2) dom β = ⋃ ≤ i < k dom α i , and (3) for all 0 ≤ i < k , α i ⊑ β . If k is finite then it isroutine to verify that β = α k − .We say α is T -producible if σ → T α , and we write A [ T ] to denote the set of T -producible assemblies.An assembly α is T -terminal if α is τ -stable and ∂ T α = ∅ . We write A ◻ [ T ] ⊆ A [ T ] to denote the set of T -producible, T -terminal assemblies. If ∣ A ◻ [ T ]∣ = T is said to be directed .In general, a 3-dimensional shape is a set X ⊆ Z . We say that a TAS T self-assembles X if, for all α ∈ A ◻ [ T ] , dom α = X , i.e., if every terminal assembly produced by T places a tile on every point in X anddoes not place any tiles on points in Z / X . We say that a TAS T uniquely self-assembles X if A ◻ [ T ] = { α } and dom α = X .In the spirit of [8], we define the tile complexity of a shape X at temperature τ , denoted by K τSA ( X ) ,as the minimum number of distinct tile types of any TAS in which it self-assembles, i.e., K τSA ( X ) = min { n ∣ T = ( T, σ, τ ) , ∣ T ∣ = n and X self-assembles in T } . The directed tile complexity of a shape X at tem-perature τ , denoted by K τUSA ( X ) , is the minimum number of distinct tile types of any TAS in which ituniquely self-assembles, i.e., K τUSA ( X ) = min { n ∣ T = ( T, σ, τ ) , ∣ T ∣ = n and X uniquely self-assembles in T } . In this section, we prove our main impossibility result, namely Theorem 1. For k, N ∈ Z + , we say that R k,N ⊆ Z is a 3D k × N rectangle if { , , . . . , N − } × { , , . . . , k − } × { } ⊆ R k,N ⊆ { , . . . , N − } × { , . . . , k − } × { , } . Then, Theorem 1 says that K USA ( R k,N ) = Ω ( N k ) . Our proof of Theorem 1 relieson the following unquestionable observation regarding temperature-1 self-assembly. Observation 1. If T = ( T, σ, ) is a directed TAS, in which some shape X self-assembles and α is the uniqueelement of A ◻ [ T ] , then, for each simple path s in G b α from the location of σ to some location in X , there isa unique assembly sequence ⃗ α that follows s by placing tiles on and only on locations in s . Our proof technique for Theorem 1 is based on a Pigeonhole counting argument, justified by noveltechnical machinery. Basically, we upper bound the number of ways that glues can be placed between twoadjacent just-barely 3D columns of R k,N by an assembly sequence that follows a simple path. Thus, weget a lower bound on the tile complexity of a sufficiently large thin rectangle. We first give some notationthat will be used throughout the remainder of this section. For the sake of consistency, the next paragraphcontains definitions that were taken directly from [7].A window w is a set of edges forming a cut-set of the full grid graph of Z . Given a window w and anassembly α , a window that intersects α is a partitioning of α into two configurations (i.e., after being splitinto two parts, each part may or may not be disconnected). In this case we say that the window w cuts theassembly α into two non-overlapping configurations α L and α R , satisfying, for all ⃗ x ∈ dom α L , α (⃗ x ) = α L (⃗ x ) ,for all ⃗ x ∈ dom α R , α (⃗ x ) = α R (⃗ x ) , and α (⃗ x ) is undefined at any point ⃗ x ∈ Z / ( dom α L ∪ dom α R ) .Given a window w , its translation by a vector ⃗ ∆, written w + ⃗ ∆ is simply the translation of each one of w ’s elements (edges) by ⃗ ∆. All windows in this paper are assumed to be induced by some translation of the yz -plane. Each window is thus uniquely identified by its x coordinate or, more precisely, its distance fromthe x axis.For a window w and an assembly sequence ⃗ α , we define a glue window movie M to be the order of place-ment, position and glue type for each glue that appears along the window w in ⃗ α . Given an assembly sequence ⃗ α and a window w , the associated glue window movie is the maximal sequence M ⃗ α,w = (⃗ v , g ) , (⃗ v , g ) , . . . of pairs of grid graph vertices ⃗ v i and glues g i , given by the order of appearance of the glues along win-dow w in the assembly sequence ⃗ α . We write M ⃗ α,w + ⃗ ∆ to denote the translation by ⃗ ∆ of M ⃗ α,w , yielding (⃗ v + ⃗ ∆ , g ) , (⃗ v + ⃗ ∆ , g ) , . . . . If s is a simple path and ⃗ α follows s by placing tiles on all and only the loca-tions that belong to s , then the notation M ⃗ α,w ↾ s denotes the restricted glue window submovie ( restricted to (a) A subassembly of α and a window w in-duced by a translationof the y -axis. (b) A portion of thesimple path s through G bα . ~v ~v ~v ~v w ~v ~v ~v ~v ~v ~v ~v ~v ~v (c) The glue windowmovie M ⃗ α,w . w (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (d) The restrictedglue window submovie M ⃗ α,w ↾ s Figure 1: An assembly, a simple path, and two types of glue window movies in 2D. s ), which consists of only those steps of M ⃗ α,w that place glues that eventually form positive-strength bondsat locations belonging to the simple path s .Let ⃗ v denote the location of the starting point of s (i.e., the location of σ ). Let ⃗ v i and ⃗ v i + denote twoconsecutive locations in M ⃗ α,w ↾ s that are located across w from each other. We say that these two locationsdefine a crossing of w , where a crossing has exactly one direction: we say that this crossing is away from ⃗ v (or away from σ ) if the x coordinates of ⃗ v and ⃗ v i are equal or the x coordinate of ⃗ v i is between the x coordinates of ⃗ v and ⃗ v i + . In contrast, we say that this crossing is toward ⃗ v (or toward σ ) if the x coordinatesof ⃗ v and ⃗ v i + are equal or the x coordinate of ⃗ v i + is between the x coordinates of ⃗ v and ⃗ v i .See Figure 1 for 2D examples of M ⃗ α,w and M ⃗ α,w ↾ s . In this figure, σ is located west of w and thelocations ⃗ v and ⃗ v form an away crossing, whereas the locations ⃗ v and ⃗ v form a crossing toward σ .We say that two restricted glue window submovies are “sufficiently similar” if they have the same (odd)number of crossings, the same set of crossing locations (up to horizontal translation), the same crossingdirections at corresponding crossing locations, and the same glues in corresponding “away crossing” locations. Definition 1.
Assume:
T = ( T, σ, ) is a 3D TAS, α ∈ A [ T ] , s is a simple path in G b α starting from thelocation of σ , ⃗ α is a sequence of T -producible assemblies that follows s , w and w ′ are windows, such that, ⃗ ∆ ≠ ⃗ is a vector satisfying w ′ = w + ⃗ ∆ , e and e ′ are two odd numbers, and M = M ⃗ α,w ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ′ = M ⃗ α,w ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e ′ , g ′ e ′ ) are both non-empty restricted glue window submovies. We saythat M and M ′ are sufficiently similar if the following conditions are satisfied:1. same number of crossings: e = e ′ ,2. same set of crossing locations (up to translation): { ⃗ v i + ⃗ ∆ ∣ ≤ i ≤ e } = { ⃗ v ′ j ∣ ≤ j ≤ e } ,3. same crossing directions at corresponding crossing locations: { ⃗ v i − + ⃗ ∆ ∣ ≤ i ≤ e + } = { ⃗ v ′ j − ∣ ≤ j ≤ e + } , and4. same glues in corresponding “away crossing” locations:for all ≤ i, j ≤ e + , if ⃗ v ′ j − = ⃗ v i − + ⃗ ∆ , then g ′ j − = g i − .Note that, since e and e ′ are both odd, the x coordinates of w and w ′ must both be between the x coordinatesof the end points of s . Lemma 1.
Assume:
T = ( T, σ, ) is a 3D TAS, G is the set of all glues in T , k, N ∈ Z + , s is a simple pathstarting from the location of σ such that s ⊆ R k,N , ⃗ α is a sequence of T -producible assemblies that follows s , m ∈ Z + , for all ≤ l ≤ m , w l is a window, for all ≤ l < l ′ ≤ m , ⃗ ∆ l,l ′ ≠ ⃗ satisfies w l ′ = w l + ⃗ ∆ l,l ′ , andfor all ≤ l ≤ m , there is an odd ≤ e l < k such that M ⃗ α,w l ↾ s is a non-empty restricted glue windowsubmovie of length e l . If m > ∣ G ∣ k ⋅ k ⋅ k , then there exist ≤ l < l ′ ≤ m such that e l = e l ′ = e and M ⃗ α,w l ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ⃗ α,w l ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e , g ′ e ) are sufficiently similar non-emptyrestricted glue window submovies. The proof idea for Lemma 1 goes like this. We first count the number of ways to choose the set {⃗ v , . . . , ⃗ v e } . Then, we count the number of ways to choose the set {⃗ v i − ∣ ≤ i ≤ e + } . Finally, we countthe number of ways to choose the sequence ( g ⃗ x i ∣ i = , . . . , e + ) . After summing over all odd e , we get theindicated lower bound on m that notably neither contains a “factorial” term nor a coefficient on the “ k ” inthe exponent of “ ∣ G ∣ ”. See Section A for the full proof of Lemma 1.Our second technical result is the cornerstone of our lower bound machinery. It basically says that if,for some directed TAS T , two distinct restricted glue window submovies are sufficiently similar, then R k,N does not self-assemble in T . Lemma 2.
Assume: T is a directed, 3D TAS, k, N ∈ Z + , s ⊆ R k,N is a simple path from the location ofthe seed of T to some location in the furthest extreme column of R k,N , ⃗ α is a T -assembly sequence thatfollows s , w and w ′ are windows, such that, ⃗ ∆ ≠ ⃗ is a vector satisfying w ′ = w + ⃗ ∆ , and e is an odd numbersatisfying ≤ e < k . If M = M ⃗ α,w ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ′ = M ⃗ α,w ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e , g ′ e ) are sufficiently similar non-empty restricted glue window submovies, then R k,N does not self-assemble in T . See Figure 2 for a 2D example of Lemma 2.We now give some notation that will be useful for our discussion of the proof of Lemma 2. The definitionsand notation in the following paragraph are inspired by notation that first appeared in [7].For a T -assembly sequence ⃗ α = ( α i ∣ ≤ i < l ) , we write ∣ ⃗ α ∣ = l . We write ⃗ α [ i ] to denote ⃗ x ↦ t , where ⃗ x and t are such that α i + = α i + (⃗ x ↦ t ) . We write ⃗ α [ i ] + ⃗ ∆, for some vector ⃗ ∆, to denote (⃗ x + ⃗ ∆ ) ↦ t .If α i + = α i + (⃗ x ↦ t ) , then we write P os ( ⃗ α [ i ]) = ⃗ x and T ile (⃗ α [ i ]) = t . Assuming ∣⃗ α ∣ >
0, the notation ⃗ α = ⃗ α + (⃗ x ↦ t ) denotes a tile placement step , namely the sequence of configurations ( α i ∣ ≤ i < l + ) , where α l is the configuration satisfying, α l (⃗ x ) = t and for all ⃗ y ≠ ⃗ x , α l (⃗ y ) = α l − (⃗ y ) . Note that the “ + ” in a tileplacement step is different from the “ + ” used in the notation “ β = α + (⃗ p ↦ t ) ”. However, since the formeroperates on an assembly sequence, it should be clear from the context which operator is being invoked. Thedefinition of a tile placement step does not require that the sequence of configurations be a T -assemblysequence. After all, the tile placement step ⃗ α = ⃗ α + (⃗ x ↦ t ) could be attempting to place a tile at a locationthat is not even adjacent to (a location in the domain of) α l − . Or, it could be attempting to place a tileat a location that is in the domain of α l − , which means a tile has already been placed at ⃗ x . So we saythat such a tile placement step is correct if ( α i ∣ ≤ i < l + ) is a T -assembly sequence. If ∣ ⃗ α ∣ =
0, then ⃗ α = ⃗ α + (⃗ x ↦ t ) results in the T -assembly sequence ( α ) , where α is the assembly such that α (⃗ x ) = t and α (⃗ y ) is undefined at all other locations ⃗ y ≠ ⃗ x .In Figure 3, we define an algorithm that uses ⃗ α to construct a new assembly sequence ⃗ β such that thetile placement steps by ⃗ β on the far side of w ′ from the seed mimic a (possibly strict) subset of the tileplacements by ⃗ α on the far side of w from the seed. When ⃗ β is on the near side of w ′ to the seed, it mimics ⃗ α , although ⃗ β does not necessarily mimic every tile placement by ⃗ α on the near side of w ′ to the seed. When ⃗ β crosses w ′ , going away from the seed, by placing tiles at ⃗ v ′ j − and ⃗ v ′ j − in this order, then the tile it placesat ⃗ v ′ j − is of the same type as the tile that ⃗ α places at ⃗ v i − = ⃗ v ′ j − − ⃗ ∆. After ⃗ β crosses w ′ by placing a tileat ⃗ v ′ j − , ⃗ β places tiles that ⃗ α places along s from ⃗ v i − to ⃗ v i − , but the tiles ⃗ β places are translated to thefar side of w ′ from the seed. When ⃗ β is about to cross w ′ , going toward the seed, by placing a tile at ⃗ v ′ j − ,7 w ′ = w + (cid:1) ∆ (cid:1)α (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ a bc de fg h (a) The hypothesis. Note that ⃗ α follows a simple path s from the location of σ to a location in the furthest extremecolumn. The restricted glue window movies are sufficiently similar because their glues are at the same locations (upto translation), oriented in the same direction (away or toward σ ), and each pair of glues that are placed by ⃗ α atan “away crossing” of one of the windows is equal to its translated counterpart in the other window, e.g., the twotopmost glues that touch w and w ′ are both light gray. The same constraint holds for all glue pairs shown witha solid shade of gray or a striped pattern. On the other hand, the glues adjacent to w ′ that are placed by ⃗ α at a“toward crossing”, for example g ′ and g ′ , are decorated with a letter in order to represent the fact that we do notassume that these glues are equal to their translated counterparts that touch w (i.e., g and g ). w w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ ca ag g g (b) The conclusion. Given the fact that T is directed and the way ⃗ β is defined, every pair of glues that touch w must be equal to the corresponding pair of glues that touch w ′ (if any). Thus, e.g., the glue pairs labelled b and h inpart (a) must really be equal to the glue pairs a and g , respectively. After ⃗ β places a tile at location ⃗ v ′ , it will mimichow ⃗ α got from ⃗ v to the tile in the extreme column of R k,N , as depicted in part (a). Since ⃗ ∆ ≠ ⃗
0, this always resultsin at least one tile placement outside of R k,N . In this example, β also happens to exit R k,N earlier in its assemblysequence, i.e., in the sub-path from ⃗ v ′ to ⃗ v ′ . Figure 2: A 2D example of the hypothesis and conclusion of Lemma 2 for k =
10 and e =
9. Since theexample is 2D, we use R k,N = { , . . . , N − } × { , . . . , k − } , rather than R k,N .8hen, since T is directed, the type of tile that it places at this location is equal to the type of tile that ⃗ α places at ⃗ v ′ j − . This means that ⃗ β may continue to follow s but starting from ⃗ v ′ j . Eventually, ⃗ β will finishcrossing w ′ going away from the seed for the last time by placing a tile at ⃗ v e + ⃗ ∆. Then, ⃗ β places tiles that ⃗ α places along s , starting from ⃗ v e , but the tiles that ⃗ β places are translated to the far side of w ′ from theseed. Since ⃗ ∆ ≠ ⃗ ⃗ β will ultimately place a tile that is not in R k,N . Initialize j = k = ⃗ β = () while P os (⃗ α [ k ]) ≠ ⃗ v ′ j − do /* Loop 1 */ ⃗ β = ⃗ β + ⃗ α [ k ] k = k + while ⃗ v ′ j − ≠ ⃗ v e + ⃗ ∆ do /* Loop 2 */ Let i be such that 4 i − ⃗ v ′ j − − ⃗ ∆ in M Let k be such that P os (⃗ α [ k ]) = ⃗ v i − while P os (⃗ α [ k ]) ≠ ⃗ v i do /* Loop 2a */ ⃗ β = ⃗ β + (⃗ α [ k ] + ⃗ ∆ ) k = k + Let j ′ be such that 4 j ′ is the index of ⃗ v i + ⃗ ∆ in M ′ Let k be such that P os (⃗ α [ k ]) = ⃗ v ′ j ′ while P os (⃗ α [ k ]) ≠ ⃗ v ′ j ′ + do /* Loop 2b */ ⃗ β = ⃗ β + ⃗ α [ k ] k = k + j = j ′ + Let k be such that P os (⃗ α [ k ]) = ⃗ v e while k < ∣ ⃗ α ∣ do /* Loop 3 */ ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) k = k + return ⃗ β Figure 3: The algorithm for ⃗ β . Here, the variable “ k ” has no relation to the “ k ” used in R k,N .We illustrate the behavior of this algorithm in Figure 4, where we apply it to the assembly sequence ⃗ α shown in Figure 2(a).We must show that all of the tile placement steps executed by the algorithm for ⃗ β are correct. In addition,we must also prove that the tile placement steps executed by the algorithm for ⃗ β place tiles along a simplepath. Let ⃗ α = ⃗ α + (⃗ x ′ ↦ t ′ ) and ⃗ α = ⃗ α + (⃗ x ↦ t ) be consecutive tile placement steps executed by the algorithmfor ⃗ β and assume that the former is either the first tile placement step executed or it is correct. To showthat the latter is correct, we will show that:a the tile configuration that consists of t placed at ⃗ x and t ′ placed at ⃗ x ′ is a 1-stable assembly (notnecessarily T -producible) whose domain consists of two locations, andb the location ⃗ x is unoccupied before ⃗ α = ⃗ α + (⃗ x ↦ t ) is executed.The previous two conditions constitute a slightly stronger notion of “correctness” for a tile placement step,which we will call adjacently correct . After all, the two previous conditions imply that ⃗ α = ⃗ α + (⃗ x ↦ t ) iscorrect, but if ⃗ α = ⃗ α + (⃗ x ↦ t ) is correct, then condition b must hold but condition a need not because ⃗ x doesnot have to be adjacent to ⃗ x ′ . It suffices to prove that every tile placement step executed by the algorithmfor ⃗ β is adjacently correct. As a result, ⃗ β , like ⃗ α , will place tiles along a simple path.See Section A for the full proof of Lemma 2. We now have the necessary machinery for our lower bound,which is the following. 9 w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v σ (cid:1) v ′ (a) Right after Loop 1 has completed: The ⃗ α sub-pathfrom σ to ⃗ v ′ was used to initialize ⃗ β . w w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (b) Right after Loop 2a has completed for the first time:The ⃗ α sub-path from ⃗ v to ⃗ v was translated by ⃗ ∆ andappended to ⃗ β . w w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ c a (c) Right after Loop 2b has completed for the first time:The ⃗ α sub-path from ⃗ v ′ to ⃗ v ′ was appended to ⃗ β . w w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ c a g (d) Right after Loop 2a has completed for the secondtime: The ⃗ α sub-path from ⃗ v to ⃗ v was translated by ⃗ ∆ and appended to ⃗ β . w w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ ca ag g g (e) Right after Loop 2b has completed for the secondtime: The ⃗ α sub-path from ⃗ v ′ to ⃗ v ′ was appended to ⃗ β . w w ′ = w + (cid:1) ∆ (cid:1)β (cid:1) ∆ (cid:2) = (cid:1) R k,N (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v (cid:1) v σ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ (cid:1) v ′ ca ag g g (f) Right after Loop 3 (and the algorithm) has com-pleted: The ⃗ α suffix starting with ⃗ v was translated by ⃗ ∆ and appended to ⃗ β . Figure 4: The trace of the algorithm shown in Figure 3 when applied to the assembly sequence ⃗ α shownin Figure 2(a). In each sub-figure, the new sub-path is bolded and is a continuation of the sub-path in theprevious one. The last sub-figure above shows the same assembly sequence ⃗ β depicted in Figure 2(b).10 heorem 1. K USA ( R k,N ) = Ω ( N k ) . The proof idea for Theorem 1 is as follows. Assume
T = ( T, σ, ) is a directed, 3D TAS in which R k,N self-assembles. By Lemmas 1 and 2, N ≤ ⋅ ∣ G ∣ k ⋅ k ⋅ k , where G is the set of all glues in T . This meansthat ∣ T ∣ ≥ N k = Ω ( N k ) . See Section A for the full proof of Theorem 1.Theorem 1 says that temperature-1 self-assembly in just-barely 3D is no more powerful than temperature-2 self-assembly in 2D. Interestingly, our lower bound for K USA ( R k,N ) matches the lower bound for K SA ( R k,N ) by Furcy, Summers and Wendlandt [6] but our bound is much more interesting than theirs because ours isroughly the square root of the best known upper bound, to which we turn our attention. In this section, we give a construction that outputs aTAS in which a sufficiently large rectangle (of anyheight k ≥ R k,N uniquely self-assembles, testifying to our upper bound, which is roughly the square of ourlower bound. Theorem 2. K USA ( R k,N ) = O ( N ⌊ k ⌋ + log N ) . Assume that k >
3, otherwise the construction is trivial. We use a counter whose base depends on thedimensions of the target rectangle. Let w = ⌊ k ⌋ be the width (number of digits) of the counter. The base ofthe counter is M = ⌈( N ) w ⌉ . The value of each digit is represented in binary, using a series of m = ⌈ log M ⌉ bit bumps that protrude from a horizontal line of tiles. Each bit bump geometrically encodes one bit as acorresponding assembly of tiles.A novel and noteworthy feature of our construction is the organization of the digits of the counter intopairs of digits, where each pair of digits is contained within a rectangular digit region . We say that a digitregion is a general digit region if its dimensions are four rows by l = m +
22 columns. If k mod 4 =
0, theneach general digit region, of which there are w , contains two digits. We will use a special digit region withtwo rows and l columns to handle the case where k mod 4 =
2. Going forward, we will refer to a generaldigit region as simply a digit region. Throughout this section, we will assume k mod 4 = m
13 ( m + 1) 864 3 md d d d d d Figure 5: This example shows how the digits that comprise a value of the counter are organized into digitregions. The next value of the counter would have a similar organization, to the east of the current value(see Figure 7). In this example, since k =
12, the value of the counter has six digits, d through d , thelatter being the most significant digit and the former the least significant. Even (odd) digits have even (odd)subscripts. In this example, each digit is encoded using two bits. The extra bit for odd digits indicateswhether that digit is the most significant digit. Note that the least significant (westernmost) bit of d isdarkened to indicate that its value is 1, because d is the most significant digit. Although this is a specificexample, the general dimensions are given. Note that we include an “extra” Θ ( m ) columns in a general digitregion in order to contain the most significant digit of the counter within a “special” digit region comprisedof only two rows and l columns, in the case where k mod 4 = even , and its bit bumps face toward the south. Theeasternmost digit is odd , and its bit bumps face toward the north. The westernmost bit of each odd digitencodes whether that digit is the most significant digit that is contained in a general digit region. Figure 5shows a high-level overview of how the digits (that comprise a value) of the counter are organized into digitregions.A gadget , referred to by a name like Gadget , is a group of tiles that perform a specific task as theyself-assemble. Each gadget, except for the seed-containing gadget, has one input glue and at least one output glue. For each gadget, the placement of the input and output glues can be inferred from the way the newgadgets bind to the assembly shown in the preceding figure. Glues internal to the gadget are configuredto ensure unique self-assembly within the gadget. The strength of every glue is 1. If a glue contains someinformation x , this means that the glue label has a structure that contains the encoding of x , according tosome fixed, standard encoding scheme.We initialize the counter to start at a certain initial value s , padded out to w digits, with leading 0s. Inorder to choose the initial value, let n = ⌊ Nl ⌋ − s = M w − n to be the initial value. Then, once s is set, a tile assembly representation of s self-assembles via a series ofgadgets. Figure 6 shows a fully assembled example for s = s = z = z = z = z = z = z = z = O ( N mod l ) = O ( l ) filler tiles to fill in the remaining columns of the rectangle (we actually never explicitly specify this trivialstep in our construction). Figure 7 shows a high-level, artificial example of the behavior of the counter interms of its increment steps.The basic idea of the general self-assembly algorithm for incrementing the value of the counter is to readan even digit in the current digit region, write its result in the corresponding digit region, come back to thecurrent digit region and read the odd digit, write its result in the corresponding digit region. Then, do thesame thing in the digit region in which the next two most significant digits are contained and stop after themost significant digit was read and the result was written.The trick is to read each digit from the current digit region and write the respective result in the corre-sponding digit region without having to hard-code into the glues of the tiles both Θ ( m ) bits (representing thebinary representation of the value of the digit that was just read), as well as the relative location along a pathwhose length is Θ ( l ) . To accomplish this, we use gadgets whose names are prefixed with Repeating after
10 001 111 11 001 1111 0 0000 001 00 00 00011 1 111 111 111
Figure 7: In this artificial example, M = s = corresponding digit region.and Stopper after .In Figures 8 through 33, we create the gadgets that implement the general self-assembly algorithm thatincrements the value of the counter. Figures 8 through 33 also show an example assembly sequence, where,unless specified otherwise, each figure continues the sequence from the resulting assembly in the previously-numbered figure, unless explicitly stated otherwise.Figure 8: A
Read non MSB gadget is shown here. A
Read non MSB gadget reads the value of a bit that isnot the most significant bit of a digit. The depicted gadget is a
Read non MSB 0 gadget. For every digitregion except the southernmost one, the
Start digit region gadget in Figure 33 exposes output glues inboth the z = z = Read non MSB gadget self-assembles. Otherwise,for the southernmost digit region, a
Reset read even digit gadget is used (see Figure 30). The last tile ina
Read non MSB gadget guesses the value of the next bit. The input glue of a
Read non MSB gadget beingcreated here contains a binary string x ∈ { , } i , for 1 ≤ i < m , where the rightmost bit is the bit that thisgadget reads. The two output glues contain x followed by the value of the next bit that will be read, i.e., x x
1. The input glues of the
Read non MSB gadgets being created here also contain a bit set to 0, whichis the parity of the digit (even or odd) whose bits are being read, which, in this case, is even. This willallow us to use the general
Read non MSB gadgets to create specific gadgets to read the bits of both even andodd digits, respectively. In general, we create O ( ) Read non MSB gadgets for each x ∈ { , } i , for 1 ≤ i < m ,contributing O ( M ) tile types.Figure 9: A Read MSB gadget is shown here. A
Read MSB gadget reads the value of the most significant bitof a digit. The input glue of a
Read MSB gadget being created here contains a binary string x ∈ { , } m andits output glue will also contain x . The rightmost bit of x is the most significant bit of the digit that wasjust read. The input glues of the Read MSB gadgets being created here also contain a bit set to 0, whichis the parity of the digit (even or odd) whose bits were read, which, in this case, is even. This will allowus to use the general
Read MSB gadgets to create specific gadgets to read the MSBs of both even and odddigits, respectively. In general, we create O ( ) Read MSB gadgets for each x ∈ { , } m , contributing O ( M ) tile types. 13igure 10: A path of Repeating after even digit gadgets is shown here. The
Repeating after even digit gadget initiates the attachment of another
Repeating after even digit tile, continuing the self-assembly of a path of repeating tiles toward and ultimately blocked fromcontinuing by a
Stopper after odd digit gadget. We use
Repeating after even digit (and
Repeating after odd digit ) gadgets to propagate Θ ( m ) bits along an arbitrarily long path of tiles,without also having the glues of the tiles along the path contain the relative location of each tile withinthe path. All gadgets whose name starts with Repeating after essentially “forget” where they are andself-assemble in a line, until they cannot. In general, we create O ( ) Repeating after even digit gadgetsfor each x ∈ { , } m , contributing O ( M ) tile types.Figure 11: An At stopper after odd digit gadget is shown here. It has a fixed size. The
At stopper after odd digit gadget spans two adjacent digit regions. The black portion is in the cur-rent digit region and the gray portion is in the corresponding digit region. In general, if a gadget spans thecurrent and corresponding digit regions, then the portion in the latter is depicted in gray and the former inblack. The self-assembly of an
At stopper after odd digit gadget is initiated by the north-facing glue ofthe last
Repeating after even digit gadget to attach in the path in Figure 10. If x ∈ { , } m and c ∈ { , } are contained in the output glue of the latter, where c = c = m -bit binary representation of ( x + c ) mod M . If ( x + c ) mod M =
0, then c = O ( ) At stopper after odd digit gadgets for each x ∈ { , } m , contributing O ( M ) tile types.Figure 12: A series of two Write even digit gadgets is shown here. Intuitively,
Write gadgets “undo”what the
Read gadgets do. To that end, the input glue of a
Write even digit gadget being created herecontains a binary string bx , where b ∈ { , } , and x ∈ { , } i , for 0 ≤ i < m , its output glue contains x , andthe corresponding bit bump for b self-assembles. In general, we create O ( ) Write even digit gadgets foreach x ∈ { , } i , for 0 ≤ i < m , contributing O ( M ) tile types.14igure 13: A Stopper after even digit gadget is shown here. A
Stopper after even digit gadgetis used to stop a subsequent path of
Repeating after odd digit gadgets that will be propagating thevalue of an odd digit as they self-assemble. In general, we create O ( ) Stopper after even digit gadgets,contributing O ( ) tile types.Figure 14: A path of Single tile opposite gadgets is shown here. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length 3 m +
4, contributing O ( m ) tile types.Figure 15: A Between digit regions gadget, originating in the corresponding digit region (bottom)and terminating back in the current digit region (top), is shown here. In general, we create O ( ) Between digit regions , contributing O ( ) tile types.Figure 16: A path of Single tile opposite gadgets is shown here. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length 3 m +
7, contributing O ( m ) tile types.Figure 17: An At MSB of odd digit gadget is shown here. In general, we create O ( ) At MSB of odd digit gadgets, contributing O ( ) tile types. 15igure 18: A path of Single tile opposite gadgets is shown here. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length 3 ( m + ) , contributing O ( m ) tile types.Figure 19: A Start read odd digit gadget is shown here. A
Start read odd digit , like a
Start digit region gadget from Figure 33 does for an even digit, “guesses” the value of the most sig-nificant digit indicator bit in an odd digit by exposing output glues in both the z = z = O ( ) Start read odd digit gadgets, contributing O ( ) tile types. The Read gadgetsfor the odd digit that attach to this gadget (and are depicted in Figure 20) are created in a similar mannerand contribute the same number of tile types as the
Read gadgets for the even digits (see Figures 8 and 9),except the input glues of the former gadgets contain a bit set to 1, which is the parity of the digit whosebits were being read.Figure 20: A path of
Repeating after odd digit gadgets is shown here. This path is eventu-ally hindered by a
Stopper after even digit gadget (see Figure 13). In general, we create O ( ) Repeating after odd digit gadgets for each x ∈ { , } m + , contributing O ( M ) tile types.Figure 21: An At stopper after even digit gadget is shown here. It has a fixed size. The south-facingglue of the last
Repeating after odd digit gadget to attach in the path shown in Figure 20 will initiatethe self-assembly of an
At stopper after even digit gadget. If, for b ∈ { , } and x ∈ { , } m , bx and c ∈ { , } are contained in the output glue of the former, where c = c = b to the m -bitbinary representation of ( x + c ) mod M . If ( x + c ) mod M =
0, then c = O ( ) At stopper after even digit gadgets foreach bx ∈ { , } m + , contributing O ( M ) tile types. 16igure 22: A series of three Write odd digit gadgets is shown here. The input glue of a
Write odd digit gadget being created here contains a binary string bx , where b ∈ { , } , and x ∈ { , } i , for 0 ≤ i ≤ m , itsoutput glue contains x , and the corresponding bit bump for b will self-assemble. In general, we create O ( ) Write odd digit gadgets for each x ∈ { , } i , for 0 ≤ i ≤ m , contributing O ( M ) tile types.Figure 23: A path of Single tile gadgets is shown here. We create O ( ) Single tile gadgets for eachlocation in the general version of the depicted path of length 3 m +
3, contributing O ( m ) tile types.Figure 24: A Stopper after odd digit gadget is shown here. The
Stopper after odd digit gadgetgeometrically marks the location of (a constant distance from) the easternmost edge of the current digitregion in which it self-assembles. It will ultimately block a subsequent path of repeating tiles that will bepropagating the value of an even digit from the current digit region to the corresponding adjacent digitregion for the next value of the counter. In general, we create O ( ) Stopper after odd digit gadgets,contributing O ( ) tile types.Figure 25: A path of Single tile opposite gadgets is shown here. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length 1 + ( m + ) + ( + m − ) + O ( m ) tile types.Figure 26: A Between digits gadget is shown here. In general, we create O ( ) Between digits gadgets,contributing O ( ) tile types. 17igure 27: A path of Single tile opposite gadgets is shown here. If the odd digit that just self-assembledis the most significant digit and the value of the counter did not roll over to 0, then turn the corner (see the
Reset turn corner gadget in Figure 28) and return to execute another increment operation. If the valueof the counter rolled over to 0, which could have been detected by the last
Write odd digit gadget createdin Figure 22, then no further increment operations are executed. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length 3 m +
6, contributing O ( m ) tile types.Figure 28: A Reset turn corner gadget is shown here. In general, we create one
Reset turn corner gadget, contributing O ( ) tile types.Figure 29: A (beginning portion of a) path of Reset single tile gadgets is shown here. Note that a
Reset single tile gadget is comprised of a single tile whose input glue is always north-facing, and whoseoutput glue is always south-facing. We create one
Reset single tile gadget for each location in the generalversion of the depicted path of length k −
2, contributing O ( k ) tile types.Figure 30: The Reset read even digit gadget is shown here. The
Reset read even digit gadget initiatesthe execution of the next increment step. The
Reset read even digit gadget “guesses” the value of thefirst bit in the least significant digit by exposing output glues in both the z = z = Reset read even digit gadget, contributing O ( ) tile types.Figure 31: A Z1 to z0 gadget is shown here. If the odd digit that just self-assembled is not the mostsignificant digit, then proceed back to the current digit region and ultimately into the digit region in whichthe next two most significant digits are contained. This gadget transitions the path of
Single tile opposite gadgets from Figure 27 from the z = z = z = Reset single tile gadgets (see Figure 29). In general, we create O ( ) Z1 to z0 gadgets, contributing O ( ) tile types. 18igure 32: A path of Single tile opposite gadgets is shown here. A
Start digit region gadget (createdin Figure 33) binds to the west-facing glue of the last
Single tile opposite in the depicted path. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length3 m + + ( m + ) + + m + +
1, contributing O ( m ) tile types.Figure 33: A Start digit region gadget is shown here. A
Start digit region gadget “guesses” thevalue of the least significant bit in a non-least significant even digit by exposing output glues in both the z = z = Reset read even digit gadget created in Figure 30. In general, we create O ( ) Start digit region gadgets, contributing O ( ) tile types.If N is assumed to be sufficiently large, then the total number of tile types contributed by all thegadgets that were created in Figures 8 through 33 when k mod 4 =
0, is O ( M + m + k ) . Moreover, thetotal number of tile types contributed by all the gadgets that we use to self-assemble the initial value is O ( km ) (see Figures 35 through 44 in Section B.1). Note that km = k ⌈ log ⌈( N ) w ⌉⌉ = k ⌈ log ( N ) w ⌉ ≤ k log N w = kw log N = k ⌊ k ⌋ log N ≤ k k log N = O ( log N ) and M = ⌈( N ) w ⌉ = ⌈( N ) ⌊ k ⌋ ⌉ = O ( N ⌊ k ⌋ ) . Thus,the size of the tile set output by our construction, when k mod 4 =
0, is O ( N ⌊ k ⌋ + log N ) . Observethat, if R k,N is a thin rectangle, then k < log N log log N − log log log N < log N log log N − log log N = log N log log N , and we havelog N = log log N = ( N N ) log log N = N N log log N = O ( N k ) = O ( N k ) = O ( N ⌊ k ⌋ ) .The case of k mod 4 = l columns (see Section B.2).The cases where k mod 4 ∈ { , } can be handled by using O ( ) tiles that self-assemble into an additionalrow.The full details for our construction, in which all cases are handled, can be found in Section B.3. In this paper, we gave improved bounds on K USA ( R k,N ) . Specifically, our upper bound, O ( N ⌊ k ⌋ + log N ) ,is roughly the square of our lower bound, Ω ( N k ) . However, questions still remain, upon which we feel19uture work should be based. Is it the case that either K SA ( R k,N ) or K USA ( R k,N ) is equal to O ( N k + k ) ?If not, then what are tight bounds for K SA ( R k,N ) and K USA ( R k,N ) ? References [1] Leonard M. Adleman, Qi Cheng, Ashish Goel, and Ming-Deh A. Huang,
Running time and programsize for self-assembled squares , Proceedings of the Thirty-Third Annual ACM Symposium on Theory ofComputing (STOC), 2001, pp. 740–748.[2] Gagan Aggarwal, Qi Cheng, Michael H. Goldwasser, Ming-Yang Kao, Pablo Moisset de Espan´es, andRobert T. Schweller,
Complexities for generalized models of self-assembly , SIAM Journal on Computing(SICOMP) (2005), 1493–1515.[3] Matthew Cook, Yunhui Fu, and Robert T. Schweller, Temperature 1 self-assembly: Deterministic as-sembly in 3D and probabilistic assembly in 2D , Proceedings of the Twenty-Second Annual ACM-SIAMSymposium on Discrete Algorithms (SODA), 2011, pp. 570–589.[4] David Furcy, Samuel Micka, and Scott M. Summers,
Optimal program-size complexity for self-assembledsquares at temperature 1 in 3D , Algorithmica (2017), no. 4, 1240–1282.[5] David Furcy and Scott M. Summers, Optimal self-assembly of finite shapes at temperature 1 in 3D ,Algorithmica (2018), no. 6, 1909–1963.[6] David Furcy, Scott M. Summers, and Christian Wendlandt, New bounds on the tile complexity of thinrectangles at temperature-1 , Proceedings of the Twenty-Fifth International Conference on DNA Com-puting and Molecular Programming, (DNA 25), vol. 11648, 2019, pp. 100–119.[7] P.-E. Meunier, M. J. Patitz, S. M. Summers, G. Theyssier, A. Winslow, and D. Woods,
Intrinsicuniversality in tile self-assembly requires cooperation , Proceedings of the Twenty-Fifth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), 2014, pp. 752–771.[8] Paul W. K. Rothemund and Erik Winfree,
The program-size complexity of self-assembled squares (ex-tended abstract) , The Thirty-Second Annual ACM Symposium on Theory of Computing (STOC), 2000,pp. 459–468.[9] Nadrian C. Seeman,
Nucleic-acid junctions and lattices , Journal of Theoretical Biology (1982), 237–247.[10] David Soloveichik and Erik Winfree, Complexity of self-assembled shapes , SIAM Journal on Computing(SICOMP) (2007), no. 6, 1544–1569.[11] Hao Wang, Proving theorems by pattern recognition – II , The Bell System Technical Journal XL (1961),no. 1, 1–41.[12] Erik Winfree, Algorithmic self-assembly of DNA , Ph.D. thesis, California Institute of Technology, June1998. 20
Lower bound appendix
This section contains all the proofs related to our lower bound.
Lemma 1.
Assume:
T = ( T, σ, ) is a 3D TAS, G is the set of all glues in T , k, N ∈ Z + , s is a simple pathstarting from the location of σ such that s ⊆ R k,N , ⃗ α is a sequence of T -producible assemblies that follows s , m ∈ Z + , for all ≤ l ≤ m , w l is a window, for all ≤ l < l ′ ≤ m , ⃗ ∆ l,l ′ ≠ ⃗ satisfies w l ′ = w l + ⃗ ∆ l,l ′ , andfor all ≤ l ≤ m , there is an odd ≤ e l < k such that M ⃗ α,w l ↾ s is a non-empty restricted glue windowsubmovie of length e l . If m > ∣ G ∣ k ⋅ k ⋅ k , then there exist ≤ l < l ′ ≤ m such that e l = e l ′ = e and M ⃗ α,w l ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ⃗ α,w l ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e , g ′ e ) are sufficiently similar non-emptyrestricted glue window submovies.Proof. Let e be a fixed odd number such that 1 ≤ e < k . Let w be any window such that M = M ⃗ α,w ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) is a non-empty restricted glue window submovie. We will assume that e representsthe number of times that ⃗ α crosses w (going either away from or toward the seed) as it follows s . Here, e can be at most 2 k − w is a translation of the yz -plane and s ⊆ R k,N .1. First, we count the number of ways to choose the set {⃗ v , . . . , ⃗ v e } , or the set of locations of M . Clearly,there are ( k e ) ways to choose a subset of 2 e locations from a set comprised of 4 k locations. However,for M = M ⃗ α,w , since ⃗ α follows a simple path, it suffices to count the number of ways to choose the set {⃗ v i − ∣ i = , . . . , e } . This is because, once we choose a location of M , the location that is adjacentto the chosen location but on the opposite side of w is determined. There are ( ke ) ways to choose asubset of e elements from a set comprised of 2 k elements.2. Next, we count the number of ways to choose the set {⃗ v i − ∣ ≤ i ≤ e + } . Intuitively, this is the set oflocations at which ⃗ α finishes crossing w going away from the seed. Observe that each chosen location ⃗ v of M is either on the far side of w from the seed or on the near side of w to the seed. Furthermore, ⃗ v is paired up with a different chosen location ⃗ v ′ of M in the sense that ⃗ v is adjacent to but on theopposite side of w from ⃗ v ′ . Thus, choose e + locations from the set comprised of the e chosen locationsthat are on the far side of w from the seed. For each 1 ≤ i ≤ e + , there is a unique element in this setthat will be assigned to ⃗ v i − . There are ( e ( e + )/ ) ways to choose e + elements from a set comprised of e elements.3. Finally, observe that each location ⃗ x ∈ {⃗ v i − ∣ ≤ i ≤ e + } is associated with some glue g ⃗ x in M .Such an association is represented by the pair (⃗ x, g ⃗ x ) . Assume that { ⃗ v i − + ⃗ ∆ ∣ i = , . . . , e + } = {⃗ x , ⋯ , ⃗ x e + } , where the ⃗ x locations are listed in lexicographical order. In this last step, we count thenumber of ways to choose the sequence ( g ⃗ x i ∣ i = , . . . , e + ) . Since the sequence is comprised of e + glues, and each glue can be assigned in one of ∣ G ∣ possible ways, there are ∣ G ∣ e + ways to choose thesequence.By the above counting procedure, for all e = , . . . , k −
1, if M ⃗ α,w ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) , then thenumber of ways to choose the sets {⃗ v , . . . , ⃗ v e } and { ⃗ v i − ∣ ≤ i ≤ e + } and the sequence ( g ⃗ x i ∣ i = , . . . , e + ) is less than or equal to ∑ ≤ e < ke odd (( ke )( e ( e + )/ )∣ G ∣ e + ) . Then, we have ∑ ≤ e < ke odd (( ke )( e ( e + )/ )∣ G ∣ e + ) ≤ ∑ ≤ e < ke odd (( kk )( kk )∣ G ∣ k − + ) ≤ ∣ G ∣ k ∑ ≤ e < ke odd ( k ) = ∣ G ∣ k ∑ ≤ e < ke odd k = ∣ G ∣ k ⋅ k ⋅ k . Thus, if m > ∣ G ∣ k ⋅ k ⋅ k , then there are two numbers 1 ≤ l < l ′ ≤ m , such that, for e = e l = e l ′ , M = M ⃗ α,w l ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ′ = M ⃗ α,w l ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e , g ′ e ) are non-empty restrictedglue window submovies satisfying the following conditions:21. { ⃗ v i + ⃗ ∆ l,l ′ ∣ ≤ i ≤ e } = { ⃗ v ′ j ∣ ≤ j ≤ e } , and2. { ⃗ v i − + ⃗ ∆ l,l ′ ∣ ≤ i ≤ e + } = {⃗ v ′ j − ∣ ≤ j ≤ e + } and3. for all 1 ≤ i, j ≤ e + , if ⃗ v ′ j − = ⃗ v i − + ⃗ ∆ l,l ′ , then g ′ j − = g i − .Note that, since M and M ′ are both restricted to s , we have, for all 1 ≤ i ≤ e + , g i − = g i − . Thismeans that, for all 1 ≤ i, j ≤ e + , if ⃗ v ′ j − = ⃗ v i − + ⃗ ∆ l,l ′ , then g ′ j − = g i − , and it follows that M and M ′ aresufficiently similar. Lemma 2.
Assume: T is a directed, 3D TAS, k, N ∈ Z + , s ⊆ R k,N is a simple path from the location ofthe seed of T to some location in the furthest extreme column of R k,N , ⃗ α is a T -assembly sequence thatfollows s , w and w ′ are windows, such that, ⃗ ∆ ≠ ⃗ is a vector satisfying w ′ = w + ⃗ ∆ , and e is an odd numbersatisfying ≤ e < k . If M = M ⃗ α,w ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ′ = M ⃗ α,w ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e , g ′ e ) are sufficiently similar non-empty restricted glue window submovies, then R k,N does not self-assemble in T . Initialize j = k = ⃗ β = () while P os (⃗ α [ k ]) ≠ ⃗ v ′ j − do /* Loop 1 */ ⃗ β = ⃗ β + ⃗ α [ k ] k = k + while ⃗ v ′ j − ≠ ⃗ v e + ⃗ ∆ do /* Loop 2 */ Let i be such that 4 i − ⃗ v ′ j − − ⃗ ∆ in M Let k be such that P os (⃗ α [ k ]) = ⃗ v i − while P os (⃗ α [ k ]) ≠ ⃗ v i do /* Loop 2a */ ⃗ β = ⃗ β + (⃗ α [ k ] + ⃗ ∆ ) k = k + Let j ′ be such that 4 j ′ is the index of ⃗ v i + ⃗ ∆ in M ′ Let k be such that P os (⃗ α [ k ]) = ⃗ v ′ j ′ while P os (⃗ α [ k ]) ≠ ⃗ v ′ j ′ + do /* Loop 2b */ ⃗ β = ⃗ β + ⃗ α [ k ] k = k + j = j ′ + Let k be such that P os (⃗ α [ k ]) = ⃗ v e while k < ∣ ⃗ α ∣ do /* Loop 3 */ ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) k = k + return ⃗ β Figure 34: The algorithm for ⃗ β . Here, the variable “ k ” has no relation to the “ k ” used in R k,N . Overview of our proof of Lemma 2.
Our correctness proof for algorithm ⃗ β breaks down into sub-proofs w ′ while mimicking a prefix or suffix of ⃗ α , respectively. Sub-proof w ′ . To prove the correctness of Loop 2, we will define a 6-part invariant for it, andprove, in turn, the initialization, maintenance, and termination properties of this invariant. Establishing the22nitialization property will be straightforward. For the maintenance property, we will first prove that thefirst four parts of the invariant still hold at the end of Loop 2a (i.e., on Line 11). Second, we will prove thatthe first four parts of the invariant still hold at the end of Loop 2b (i.e., on Line 16). Third, we will completethe maintenance proof by showing that the last two parts of the invariant also hold right after Line 16 isexecuted. Finally, we will wrap up sub-proof m be an integer such that 1 ≤ m ≤ e + . The variable m will count the iterations of Loop 2. For1 ≤ l ≤ m , define j l to be the value of j prior to iteration l of Loop 2. Likewise, for 1 ≤ l ≤ m , define j ′ l to bethe value of j ′ after Line 11 executes during iteration l of Loop 2. We say that j m is the value of j in thealgorithm for ⃗ β prior to the current iteration of Loop 2. When it is clear from the context, we will simplyuse “ j ” in place of “ j m ” and “ j ′ ” in place of “ j ′ m ”. We define the following Loop 2 invariant :Prior to each iteration m of Loop 2:1. all previous tile placement steps executed by the algorithm for ⃗ β are adjacently correct,2. all tiles placed by ⃗ β on locations on the far side of w ′ from the seed are placed by tile placementsteps executed by Loop 2a,3. all tiles placed by ⃗ β on locations on the near side of w ′ to the seed are placed by tile placementsteps executed by Loop 1 or Loop 2b,4. if m >
1, then for all 1 ≤ l < m , j l ≠ j m ,5. the location at which ⃗ β last placed a tile (say t ) is ⃗ v ′ j m − , and6. the glue of t that touches w ′ is g ′ j m − . Proof.
Sub-proof ⃗ α is a T -assembly sequence that follows a simple path, the tile placement steps in Loop 1 areadjacently correct and only place tiles that are on the near side of w ′ to the seed. Note that Loop 1terminates with P os (⃗ α [ k ]) = ⃗ v ′ . By the definition of M ′ , ⃗ v ′ is the first location at which ⃗ α places a tile onthe far side of w ′ from the seed.Sub-proof m = w ′ . Part 4 of the invariant holds since m =
1. Part 5of the invariant holds because j m = j = ⃗ v ′ j m − = ⃗ v ′ , and the location at which ⃗ β last placed a tile t is ⃗ v ′ ,that is, the location that precedes ⃗ v ′ in ⃗ α . Finally, part 6 of the invariant holds because t is the tile that ⃗ α placed at ⃗ v ′ and, by the definition of M ′ , the glue of t that touches w ′ is g ′ j m − = g ′ .Sub-proof j is such that ⃗ v ′ j − = ⃗ v e + ⃗ ∆, then Loop 2 terminates. So, let j be such that ⃗ v ′ j − ≠ ⃗ v e + ⃗ ∆and assume that the Loop 2 invariant holds. We will first prove (by induction) that parts 1 through 4 of theinvariant still hold when Loop 2a terminates.Within the current iteration of Loop 2, Line 7 sets k to a value such that P os ( ⃗ α [ k ]) = ⃗ v i − , where i issuch that 4 i − ⃗ v ′ j − − ⃗ ∆ in M . For the base step of the induction, consider the tile placementstep executed in the first iteration of Loop 2a. To establish the first part of the invariant, we now prove thatthis tile placement step is adjacently correct. First, we prove that it places a tile that binds to the last tileplaced by the algorithm. Intuitively, this tile placement step is where ⃗ β finishes crossing from the near side23f w ′ to the seed over to the far side. Formally, we have: ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) = ⃗ β + (( P os ( ⃗ α [ k ]) + ⃗ ∆ ) ↦ T ile (⃗ α [ k ])) = ⃗ β + ((⃗ v i − + ⃗ ∆ ) ↦ T ile (⃗ α [ k ])) = ⃗ β + ((⃗ v ′ j − − ⃗ ∆ + ⃗ ∆ ) ↦ T ile (⃗ α [ k ])) = ⃗ β + (⃗ v ′ j − ↦ T ile (⃗ α [ k ])) , where the second-to-last equality follows from Line 6 in the algorithm for ⃗ β . This, together with part 5 ofthe invariant, shows that the location of this tile placement step is adjacent to, and on the opposite side of w ′ from, ⃗ v ′ j − . We now prove that the tile t = T ile (⃗ α [ k ]) this step places at ⃗ v ′ j − does bind to the tile t ′ that the algorithm just placed at ⃗ v ′ j − . By part 6 of the invariant, the glue of t ′ that touches w ′ is g ′ j − ,which, according to the follow reasoning, must be equal to the glue of t that touches w ′ . • Since ⃗ α follows the simple path s and M ′ is restricted to s , g ′ j − = g ′ j − . • By part 4 of sufficiently similar, g ′ j − = g i − . • Since ⃗ α follows a simple path and M is restricted to s , g i − = g i − . • Since t is the type of tile that ⃗ α placed at ⃗ v i − and the glue of t that touches w is g i − , the previouschain of equalities imply that the glue of t ′ that touches w ′ is equal to the glue of t that touches w ′ .Having shown that t binds to t ′ , we now prove that ⃗ β has not already placed a tile at P os ( ⃗ α [ k ]) + ⃗ ∆ = ⃗ v ′ j − before the tile placement step in the first iteration of Loop 2a is executed.According to part 2 of the invariant, all locations on the far side of w ′ from the seed at which tilesare placed by ⃗ β are filled by tile placement steps executed by Loop 2a. Since ⃗ v ′ j − is on the far side of w ′ from the seed, we only need to consider tile placement steps that place tiles at locations that are onthe far side of w ′ from the seed. Since we are assuming that ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) is the tile placementstep executed in the first iteration of Loop 2a, we know that any already completed tile placement step ⃗ β = ⃗ β + ( ⃗ α [ k ′ ] + ⃗ ∆ ) , for 0 ≤ k ′ < ∣ ⃗ α ∣ , is executed in some iteration of Loop 2a but in a past iteration of Loop 2.Define index ⃗ α (⃗ x ) to be the value of n such that P os (⃗ α [ n ]) = ⃗ x . Define the rule f ( j ) = i such that 4 i − ⃗ v ′ j − − ⃗ ∆ in M . Note that f is a valid function because, by part 3 of sufficiently similar,we have {⃗ v i − + ⃗ ∆ ∣ ≤ i ≤ e + } = {⃗ v ′ j − ∣ ≤ j ≤ e + } . Moreover, f is injective, because, intuitively, twodifferent locations in M ′ cannot translate with the same ⃗ ∆ to the same location in M . Formally, assumethat f ( a ) = f ( b ) and let c be such that 4 c − ⃗ v ′ a − − ⃗ ∆ in M and let d be such that 4 d − ⃗ v ′ b − − ⃗ ∆ in M . Since we are assuming f ( a ) = f ( b ) , then we have c = d . This means that4 c − = d − ⃗ v ′ a − − ⃗ ∆ in M . Likewise, 4 c − = d − ⃗ v ′ b − − ⃗ ∆ in M . Thenwe have ⃗ v ′ a − = ⃗ v c − + ⃗ ∆, and ⃗ v c − + ⃗ ∆ = ⃗ v ′ b − . In other words, we have ⃗ v ′ a − = ⃗ v ′ b − , which implies that a = b and it follows that f is injective. For all 1 ≤ l ≤ m , define i l to be the value of i computed in Line 6. Inother words, i l = f ( j l ) and i m is the value of i computed in Line 6 during the current iteration of Loop 2.Observe that k (on Line 7) satisfies index ⃗ α (⃗ v i m − ) ≤ k < index ⃗ α (⃗ v i m ) (1)because ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) is the tile placement step executed in the first iteration of Loop 2a, and, for some1 ≤ l < m , k ′ satisfies index ⃗ α (⃗ v i l − ) ≤ k ′ < index ⃗ α (⃗ v i l ) . (2)because ⃗ β = ⃗ β + (⃗ α [ k ′ ] + ⃗ ∆ ) is some tile placement step executed in Loop 2a but in a past iteration of Loop 2.In fact, in the first iteration of Loop 2a, k = index ⃗ α (⃗ v i m − ) < index ⃗ α (⃗ v i m ) . By part 4 of the invariant, for24ll 1 ≤ l < m , j m ≠ j l . Since f is injective, it follows that, for all 1 ≤ l < m , i m = f ( j m ) ≠ f ( j l ) = i l . Thenwe have three cases to consider. Case 1, where ⃗ v i m = ⃗ v i l − , is impossible, since these two locations are onopposite sides of w . In case 2, where index ⃗ α (⃗ v i m ) < index ⃗ α (⃗ v i l − ) , we have: index ⃗ α (⃗ v i m − ) ≤ k < index ⃗ α (⃗ v i m ) < index ⃗ α (⃗ v i l − ) ≤ k ′ < index ⃗ α (⃗ v i l ) .Finally, in case 3, where index ⃗ α (⃗ v i m ) > index ⃗ α (⃗ v i l − ) , we have: index ⃗ α (⃗ v i l − ) ≤ k ′ < index ⃗ α (⃗ v i l ) < index ⃗ α (⃗ v i m − ) ≤ k < index ⃗ α (⃗ v i m ) .In all possible cases, k ≠ k ′ . Thus, since ⃗ α follows a simple path, P os (⃗ α [ k ]) ≠ P os ( ⃗ α [ k ′ ]) , which implies P os (⃗ α [ k ]) + ⃗ ∆ ≠ P os (⃗ α [ k ′ ]) + ⃗ ∆. Therefore, P os ( ⃗ α [ k ]) + ⃗ ∆ is empty prior to the execution of ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) , i.e., no previous tile placement step placed a tile at that location before the first iteration ofLoop 2a. This means that the tile placement step ⃗ β = ⃗ β + (⃗ α [ k ] + ⃗ ∆ ) is adjacently correct. This concludesthe proof of correctness for the first iteration of Loop 2a (base step).We now show (inductive step) that the rest of the tile placement steps executed in Loop 2a within thecurrent iteration of Loop 2 are adjacently correct. Let ⃗ β = ⃗ β + ( ⃗ α [ k ] + ⃗ ∆ ) be a tile placement step executedin some (but not the first) iteration of Loop 2a and assume that all tile placement steps executed in pastiterations of Loop 2a are adjacently correct and place tiles at locations that are on the far side of w ′ from theseed (inductive hypothesis). In particular, assume that the tile placement step ⃗ β = ⃗ β + ( ⃗ α [ k − ] + ⃗ ∆ ) executedin Loop 2a, for the current iteration of Loop 2, is adjacently correct and places a tile at a location that is onthe far side of w ′ from the seed. Since ⃗ α follows a simple path, P os (⃗ α [ k ]) is adjacent to P os ( ⃗ α [ k − ]) andthe configuration consisting of a tile of type T ile (⃗ α [ k ]) placed at P os (⃗ α [ k ]) and a tile of type T ile (⃗ α [ k − ]) placed at P os (⃗ α [ k − ]) is stable. This means that P os ( ⃗ α [ k ]) + ⃗ ∆ is adjacent to P os ( ⃗ α [ k − ]) + ⃗ ∆ and theconfiguration consisting of a tile of type T ile (⃗ α [ k ]) placed at P os ( ⃗ α [ k ]) + ⃗ ∆ and a tile of type T ile (⃗ α [ k − ]) placed at P os (⃗ α [ k − ]) + ⃗ ∆ is stable, thus proving part a of adjacently correct. Now, when proving part b,two cases arise. The first case is where ⃗ β = ⃗ β + (⃗ α [ k ′ ] + ⃗ ∆ ) is executed in a past iteration of Loop 2a inthe current iteration of Loop 2. Here, we have k ≠ k ′ because, within Loop 2a, we are merely translating asegment of ⃗ α , which follows a simple path. The second case is where ⃗ β = ⃗ β + (⃗ α [ k ′ ] + ⃗ ∆ ) is executed in apast iteration of Loop 2. Here, using reasoning that is similar to the one we used to establish the correctnessof the first iteration of Loop 2a based on inequalities (1) and (2) above, we have k ≠ k ′ . In both cases, k ≠ k ′ implies P os (⃗ α [ k ]) ≠ P os (⃗ α [ k ′ ]) , which means that the location of the current tile placement step inLoop 2a is different from the location of any previous tile placement step that was executed in Loop 2a. Itfollows that P os (⃗ α [ k ]) + ⃗ ∆ ≠ P os (⃗ α [ k ′ ]) + ⃗ ∆. This proves part b, and therefore, the tile placement step ⃗ β = ⃗ β + (⃗ α [ k ] + ⃗ ∆ ) is adjacently correct. This concludes our proof that part 1 of the invariant holds at theend of Loop 2a.Since Loop 2a mimics the portion of ⃗ α between (and including) the points ⃗ v i m − and ⃗ v i m − which, bydefinition of M , is on the far side of w from the seed, it follows that P os ( ⃗ α [ k ]) is on the far side of w fromthe seed during every iteration of Loop 2a. This means that P os ( ⃗ α [ k ]) + ⃗ ∆ is on the far side of w ′ from theseed during every iteration of Loop 2a and thus part 2 of the invariant holds at the end of Loop 2a. For thesame reason, part 3 of the invariant also holds at that point. Finally, part 4 of the invariant trivially holdssince Loop 2a does not update j . This concludes our proof that the first four parts of the invariant holdwhen Loop 2a terminates. We will now prove that these four parts still hold when Loop 2b terminates.Loop 2b “picks up” where Loop 2a “left off”. Note that Loop 2a terminates with P os ( ⃗ α [ k ]) = ⃗ v i m ,with the last tile being placed at ⃗ v i m − + ⃗ ∆. Define the rule g ( i ) = j such that 4 j is the index of ⃗ v i + ⃗ ∆in M ′ . Note that g , like f , is a valid function because, by parts 2 & 3 of sufficiently similar, we have {⃗ v i + ⃗ ∆ ∣ ≤ i ≤ e − } = {⃗ v ′ j ∣ ≤ j ≤ e − } . Similarly, g , like f , is injective. Line 11 sets the value of j ′ m tobe such that 4 j ′ m is the index of ⃗ v i m + ⃗ ∆ in M ′ . In other words, Line 11 computes j ′ m = g ( i m ) and Line 12sets the value of k such that P os (⃗ α [ k ]) = ⃗ v ′ j ′ m . Intuitively, ⃗ v i m + ⃗ ∆ = ⃗ v ′ j ′ m is the location at which ⃗ β finishescrossing from the far side of w ′ from the seed back to the near side. Recall that Loop 2a “left off” by placinga tile (in its last iteration) at the location ⃗ v i m − + ⃗ ∆ = ⃗ v ′ j ′ m − .Now, for the base step of the induction we use to prove that part 1 of the invariant holds after Loop 2b,25onsider the tile placement step executed in the first iteration of Loop 2b. Formally, we have: ⃗ β = ⃗ β + ⃗ α [ k ] = ⃗ β + ( P os ( ⃗ α [ k ]) ↦ T ile (⃗ α [ k ])) = ⃗ β + (⃗ v ′ j ′ m ↦ T ile (⃗ α [ k ])) . Thus, the tile placement step executed in the first iteration of Loop 2b will place a tile at ⃗ v ′ j ′ m , which, bythe definition of M ′ , is adjacent to but on the opposite side of w ′ from ⃗ v ′ j ′ m − . Since T is directed, the typeof tile that ⃗ β places at ⃗ v ′ j ′ m − during the final iteration of Loop 2a must be the same as the type of the tilethat ⃗ α places at ⃗ v ′ j ′ m − . This is the only place in the proof where we use the fact that T is directed. Bythe definition of the tile placement step executed in the first iteration of Loop 2b, the type of tile that ⃗ β places at ⃗ v ′ j ′ m is the same as the type of tile that ⃗ α places at ⃗ v ′ j ′ m . This means that the glue of the tilethat ⃗ β places at ⃗ v ′ j ′ m and that touches w ′ is equal to the glue of the tile that ⃗ β places at ⃗ v ′ j ′ m − and thattouches w ′ . This proves part a of adjacently correct for ⃗ β = ⃗ β + ⃗ α [ k ] . So, in order to show that ⃗ β = ⃗ β + ⃗ α [ k ] is adjacently correct, it suffices to show that ⃗ β has not already placed a tile at P os ( ⃗ α [ k ]) , i.e., part b ofadjacently correct.By part 3 of the invariant, all tiles placed by ⃗ β on the near side of w ′ to the seed result from tile placementsteps belonging to either Loop 1 or Loop 2b. Since ⃗ v ′ j ′ m is on the near side of w ′ to the seed, we only needto consider tile placement steps in the algorithm for ⃗ β that place tiles at locations that are on the near sideof w ′ to the seed. Since we are assuming that ⃗ β = ⃗ β + ⃗ α [ k ] is the tile placement step executed in the firstiteration of Loop 2b, we must consider two cases for any already completed tile placement step ⃗ β = ⃗ β + ⃗ α [ k ′ ] with 0 ≤ k ′ < ∣ ⃗ α ∣ . In the case where ⃗ β = ⃗ β + ⃗ α [ k ′ ] is executed in some iteration of Loop 1 (before the firstiteration of Loop 2), we have k ′ < index ⃗ α (⃗ v ′ ) and index ⃗ α (⃗ v ′ ) ≤ k . In this case, index ⃗ α (⃗ v ′ ) < index ⃗ α (⃗ v ′ ) implies k ′ ≠ k . In the second case, namely when ⃗ β = ⃗ β + ⃗ α [ k ′ ] is executed in some iteration of Loop 2b butin a past iteration of Loop 2, k satisfies index ⃗ α (⃗ v ′ j ′ m ) ≤ k < index ⃗ α (⃗ v ′ j ′ m + ) (3)because ⃗ β = ⃗ β + ⃗ α [ k ] is the tile placement step executed in the first iteration of Loop 2b and, for some1 ≤ l < m , k ′ satisfies index ⃗ α (⃗ v ′ j ′ l ) ≤ k ′ < index ⃗ α (⃗ v ′ j ′ l + ) . (4)In order to show that k ≠ k ′ , since ⃗ α follows a simple path, it suffices to show that, for all 1 ≤ l < m , j ′ m ≠ j ′ l .By part 4 of the invariant, for all 1 ≤ l < m , j m ≠ j l . By definition, for all 1 ≤ l ≤ m , i l = f ( j l ) . Since f isinjective, we have, for all 1 ≤ l < m , i m ≠ i l . Since g is injective, we have, for all 1 ≤ l < m , g ( i m ) ≠ g ( i l ) . Bydefinition, for all 1 ≤ l ≤ m , j ′ l = g ( i l ) . Then, we have, for all 1 ≤ l < m , j ′ m = g ( i m ) ≠ g ( i l ) = j ′ l . So, in allcases, we have k ≠ k ′ , which implies that P os (⃗ α [ k ]) ≠ P os (⃗ α [ k ′ ]) . This means that part b is satisfied andtherefore the tile placement step ⃗ β = ⃗ β + ⃗ α [ k ] is adjacently correct. This concludes the proof of correctnessfor the first iteration of Loop 2b (base step).We now show (inductive step) that the rest of the tile placement steps executed in Loop 2b and withinthe current iteration of Loop 2 are adjacently correct. So, let ⃗ β = ⃗ β + ⃗ α [ k ] be a tile placement step executed insome (but not the first) iteration of Loop 2b and assume all tile placement steps executed in past iterationsof Loop 2b are adjacently correct and place tiles at locations that are on the near side of w ′ to the seed. Inparticular, the tile placement step ⃗ β = ⃗ β + ⃗ α [ k − ] executed in Loop 2b, for the current iteration of Loop 2,is adjacently correct and places a tile at a location that is on the near side of w ′ to the seed. Since ⃗ α followsa simple path, P os (⃗ α [ k ]) is adjacent to P os (⃗ α [ k − ]) and the configuration consisting of a tile of type T ile (⃗ α [ k ]) placed at P os (⃗ α [ k ]) and a tile of type T ile (⃗ α [ k − ]) placed at P os (⃗ α [ k − ]) is stable, thusproving part a of adjacently correct. Here, using reasoning that is similar to the one we used to establishthe correctness of the first iteration of Loop 2b based on inequalities (3) and (4) above, we have k ≠ k ′ .This means that P os (⃗ α [ k ]) ≠ P os (⃗ α [ k ′ ]) , thereby satisfying part b. It follows that the tile placement step26 β = ⃗ β + ⃗ α [ k ] is adjacently correct. This concludes our proof that part 1 of the invariant holds when Loop 2bterminates.Since ⃗ α follows a simple path and the portion of ⃗ α between (and including) ⃗ v ′ j ′ m and ⃗ v ′ j ′ m + is, bydefinition of M ′ , on the near side of w ′ to the seed, P os (⃗ α [ k ]) is on the near side of w ′ to the seed duringevery iteration of Loop 2b. This means that all tile placement steps executed by Loop 2b only place tilesat locations on the near side of w ′ to the seed. This concludes our proof that parts 2 and 3 of the invarianthold when Loop 2b terminates.We will now show that, for all 1 ≤ l ≤ m , j m + ≠ j l . We already showed above that, for all 1 ≤ l < m , j ′ m ≠ j ′ l . Then we have, for all 1 ≤ l < m , j ′ m + ≠ j ′ l +
1. Since Line 16 computes the value of j for the nextiteration of Loop 2 to be the value of j ′ +
1, we infer, for all 1 ≤ l < m , j m + ≠ j l + , or, equivalently, for all2 ≤ l ≤ m , j m + ≠ j l . Since j = j ′ (computed on Line 11) cannot be equal to 0, we have j m + ≠ j . Itfollows that, for all 1 ≤ l ≤ m , j m + ≠ j l . This concludes our proof that part 4 of the invariant holds whenLoop 2b terminates.Note that Line 11 computes j ′ m = g ( i m ) and Line 12 sets k to a value such that P os ( ⃗ α [ k ]) = ⃗ v ′ j ′ m .Subsequently, Loop 2b terminates with P os ( ⃗ α [ k ]) = ⃗ v ′ j ′ m + . This means that the location of the tile placedduring the last iteration of Loop 2b, which is also the location at which ⃗ β last placed a tile during thisiteration of Loop 2, and thus right before the next iteration of Loop 2, is ⃗ v ′ j ′ m + . Since Line 16 computes j m + = j ′ m +
1, we have ⃗ v ′ j ′ m + = ⃗ v ′ ( j m + − ) + = ⃗ v ′ j m + − . This concludes our proof that part 5 of the invariantholds when Loop 2b terminates.Let t be the tile that ⃗ β placed at location ⃗ v ′ j m + − . Since Loop 2b simply copies the portion of ⃗ α between(and including) the points ⃗ v ′ j ′ m and ⃗ v ′ j ′ m + , the glue of t that touches w ′ is g ′ j ′ m + = g ′ j m + − . This concludesour proof that part 6 of the invariant holds when Loop 2b terminates.In conclusion, all six parts of our invariant hold when Loop 2b terminates. Since no tile placements areperformed during the current iteration of Loop 2 after Loop 2b terminates, the invariant holds when iteration m terminates and thus prior to iteration m + ⃗ β will next place a tile is ⃗ v e + ⃗ ∆. By part 4 ofthe invariant, prior to each iteration of Loop 2, for all 1 ≤ l < m , j m ≠ j l . Since ∣ M ∣ = ∣ M ′ ∣ < ∞ , Loop 2 musteventually terminate with P os ( ⃗ α [ k ]) = ⃗ v e + ⃗ ∆.Sub-proof w ′ from the seed can be adapted to show that allof the tile placement steps executed by Loop 3 are adjacently correct and only place tiles at locations on thefar side of w ′ from the seed. Moreover, Loop 3 will terminate because ∣⃗ α ∣ < ∞ .Thus, every tile placement step executed by the algorithm for ⃗ β is adjacently correct. Since s ⊆ R k,N is apath from the location of the seed of T to some location in the furthest extreme column of R k,N and ⃗ ∆ ≠ ⃗ ⃗ β places at least one tile at a location that is not in R k,N .In other words, R k,N does not self-assemble in T .The following result combines Lemmas 1 and 2. Lemma 3.
Assume:
T = ( T, σ, ) is a 3D TAS, G is the set of all glues in T , k, N ∈ Z + , s ⊆ R k,N is a simplepath from the location of σ to some location in the furthest extreme column of R k,N , ⃗ α is a T -assemblysequence that follows s , m ∈ Z + , for all ≤ l ≤ m , w l is a window, for all ≤ l < l ′ ≤ m , ⃗ ∆ l,l ′ ≠ ⃗ satisfies w l ′ = w l + ⃗ ∆ l,l ′ , and for all ≤ l ≤ m , there is an odd ≤ e l < k such that M ⃗ α,w l ↾ s is a non-empty restrictedglue window submovie of length e l . If m > ∣ G ∣ k ⋅ k ⋅ k , then R k,N does not self-assemble in T .Proof. The hypothesis of Lemma 1 is satisfied. So there exist 1 ≤ l < l ′ ≤ m such that e = e l = e l ′ and M ⃗ α,w l ↾ s = (⃗ v , g ) , . . . , (⃗ v e , g e ) and M ⃗ α,w l ′ ↾ s = (⃗ v ′ , g ′ ) , . . . , (⃗ v ′ e , g ′ e ) are sufficiently similar non-emptyrestricted glue window submovies. Thus, the hypothesis of Lemma 2 is satisfied. It follows that R k,N doesnot self-assemble in T . 27 heorem 1. K USA ( R k,N ) = Ω ( N k ) .Proof. Assume that
T = ( T, σ, ) is a directed, 3D TAS in which R k,N self-assembles, with α ∈ A ◻ [ T ] satisfying dom α = R k,N . Let s be a simple path in G b α from the location of σ (the seed) to some locationin the furthest extreme (westernmost or easternmost) column of R k,N in either the z = z = ⃗ α that follows s . Assume N ≥
3. Since s is a simple path fromthe location of the seed to some location in the furthest extreme column of R k,N , there is some positiveinteger m ≥ ⌊ N ⌋ ≥ N such that, for all 1 ≤ l ≤ m , w l is a window that cuts R k,N , for all 1 ≤ l < l ′ ≤ m ,there exists ⃗ ∆ l,l ′ ≠ ⃗ w l ′ = w l + ⃗ ∆ l,l ′ , and for each 1 ≤ l ≤ m , there exists a corresponding oddnumber 1 ≤ e l < k such that M ⃗ α,w l ↾ s is a non-empty restricted glue window submovie of length 2 e l .Since R k,N self-assembles in T , (the contrapositive of) Lemma 3 says that m ≤ ∣ G ∣ k ⋅ k ⋅ k . We also knowthat N ≤ m , which means that N ≤ ∣ G ∣ k ⋅ k ⋅ k . Thus, we have N ≤ ⋅ ∣ G ∣ k ⋅ k ⋅ k and it follows that ∣ T ∣ ≥ ∣ G ∣ ≥ N k ( ⋅ k ⋅ k ) k ≥ N k ( k ⋅ k ⋅ k ) k = N k = Ω ( N k ) . B Upper bound appendix
This section contains the remaining details of our upper bound.
B.1 Initial value gadgets for k mod 4 = In Figures 35 through 44, we create the gadgets that self-assemble the initial value s of the counter when k mod 4 =
0. We will assume that d w − , . . . , d are the base- M digits of s , where d w − is the most significantdigit and d is the least significant digit.Figures 35 through 44 also show an example assembly sequence, where, in general, each figure continuesthe sequence from the resulting assembly in the previously-numbered figure, unless explicitly stated otherwise.In each figure, the black tiles belong to the gadget that is currently self-assembling, starting from the blacktile that connects to a white (or the seed) tile. Figure 6 shows a fully assembled example of the initial valueof the counter.Figure 35: The Seed start gadget is shown here. It is the only gadget that does not have an input glue.The westernmost tile in the
Seed start gadget is the seed tile type. In general, we create one
Seed start gadget, contributing O ( ) tile types. 28igure 36: A series of two Write even digit gadgets is shown here. Each bit of an even digit is representedby a corresponding
Write even digit gadget having its bump in the plane z = z =
1) if the bit beingrepresented is 0 (resp., 1). The gadgets depicted here are:
Write even digit 0 and
Write even digit 1 ,encoding the binary string 01, which we, in our construction, will interpret as the binary representation ofthe base-10 value 2. That is, the westernmost bit in a digit is its least significant bit. Since the digit regionin this example contains the seed tile, 2 is the value of the least significant digit. In general, we create aseries of
Write even digit gadgets for each digit d i , where i < w − O ( km ) tile types.Figure 37: A Seed even digit to odd digit gadget is shown here. In general, we create one
Seed even digit to odd digit gadget for each digit region of the initial value, contributing O ( k ) tile types.Figure 38: A series of three Write odd digit gadgets is shown here. Each bit of an odd digit is representedby a corresponding
Write odd digit gadget. A
Write odd digit gadget is similar to its
Write even digit counterpart, except the bit bumps of the latter face to the south while those of the former face to the north.An odd digit has an additional (westernmost) bit indicating whether the digit is the most significant digit.If k mod 4 =
2, then this extra bit indicates whether the digit is the second-most significant digit, or themost significant digit contained in a (general) digit region. The gadgets depicted here, from west to eastare:
Write odd digit 0 , Write odd digit 1 and
Write odd digit 1 , encoding the binary string 011, whichwe, in our construction, will interpret as the binary representation of the base-10 value 3, and this digit isnot the most significant digit, as indicated by its most significant digit indicator bit having the value 0. Ingeneral, we create a series of
Write odd digit gadgets for each digit d i , where i ≤ m − O ( km ) tile types.Figure 39: A path of Single tile gadgets is shown here. The non-constant length of this path, whichhas to stop exactly six tiles from the easternmost edge of the digit region, facilitates a special case digitregion that contains the most significant digit when k mod 4 =
2. Note that a
Single tile gadget iscomprised of a single tile whose input glue is always north-facing, and whose output glue is always south-facing. We create one
Single tile gadget for each location in the general version of the depicted path oflength ( + m + ) − ( + ) , for each digit region of the initial value, contributing O ( km ) tile types.29igure 40: A Stopper after odd digit gadget is shown here. The
Stopper after odd digit gadgetsbeing created here serve the same purpose as the
Stopper after odd digit gadgets that were created inFigure 24, but here, we create separate
Stopper after odd digit gadgets for each digit region. In general,we create one
Stopper after odd digit gadget for each digit region of the initial value, contributing O ( k ) tile types.Figure 41: A path of Single tile opposite gadgets is shown here. Note that a
Single tile opposite gadget is comprised of a single tile whose input glue is always north-facing, and whose output glue is alwayssouth-facing. We create one
Single tile opposite gadget for each location in the general version of thedepicted path of length 6 m +
9, for each digit region of the initial value, contributing O ( km ) tile types.Figure 42: A Between digits gadget is shown here. In general, we create one
Between digits gadget foreach digit region of the initial value, contributing O ( k ) tile types.Figure 43: A path of Single tile opposite gadgets is shown here. We create one
Single tile opposite gadget for each location in the general version of the depicted path of length 3 m +
6, for each digit region ofthe initial value, contributing O ( km ) tile types. Note that, if the most significant digit indicator bit is 1 (itis 0 in the depicted example), then the Reset turn corner gadget created in Figure 28 would attach to thelast
Single tile opposite gadget in the depicted path.Figure 44: A
Seed to next significant digit region gadget is shown here. In this example, the digitregion does not contain the most significant digit, so a
Seed to next significant digit region gadgetself-assembles into the digit region in which the next two most significant digits are contained. The nextgadget to self-assemble after a
Seed to next significant digit region would be a
Write even digit gadget (see Figure 36). In general, we create one
Seed to next digit region gadget for each digit regionthat does not contain the most significant digit, contributing O ( k ) tile types.30 .2 All gadgets for k mod 4 = We will now consider the case where k mod 4 =
2. For this case, it suffices to encode the most significantcounter digit using only two rows. To that end, we will use a special case digit region, which is a digit regionwhose dimensions are two rows by l columns, that contains one (most significant) even digit. Figure 45shows a high-level overview of how the digits (that comprise a value) of the counter are partitioned into digitregions when k mod 4 = m
13 ( m + 1) 864 3 md d d d d d d Figure 45: This example shows how the digits (that comprise a value) of the counter are partitioned intodigit regions when k mod 4 =
2. Recall that we include an “extra” Θ ( m ) columns in a general digit region(see Figure 5). We do this to accommodate the most significant (even) digit of the counter in a special casedigit region. Notice that we set the least significant indicator bit of the second-most significant digit to 1.Assume the existence of all the gadgets that were created in Figures 35 through 44 and Figure 30.In Figures 46 through 57, we create the gadgets that self-assemble the initial value of the counter, when k mod 4 =
2. Figures 46 through 57 also show an example assembly sequence, where, unless specified otherwise,each figure continues the sequence from the resulting assembly in the previously-numbered figure. A fullyassembled example of the initial value of the counter, when k mod 4 =
2, is shown in Figure 58.Figure 46: A
Seed to next significant digit region gadget is shown here. Note that this isthe same general gadget initiated in Figure 44, just with different glues. In general, we create one
Seed to next significant digit region gadget, replacing the
Reset turn corner from Figure 28 andcontributing O ( ) tile types. 31igure 47: A path of Single tile gadgets is shown here. We create one
Single tile gadget for eachlocation in the general version of the depicted path of length 3 m + + ( m + ) +
8, contributing O ( m ) tiletypes.Figure 48: A series of two Write even digit gadgets is shown here. In general, we create one
Write even digit gadget for each bit of the digit d w − , where w − O ( m ) tile types.Figure 49: A path of Single tile gadgets is shown here. The path starts in the current special casedigit region (top) and terminates in the corresponding special case digit region (bottom). We create one
Single tile gadget for each location in the general version of the depicted path of length 1 + + m + + ( m + ) +
3, contributing O ( m ) tile types.Figure 50: A Special stopper gadget is shown here. It is used exclusively within a special case digit regionfor hindering a repeating path of tiles propagating the value of the most significant digit when k mod 4 = Special stopper gadget, contributing O ( ) tile types.Figure 51: A path of Single tile opposite gadgets is shown here. We create one
Single tile opposite gadget for each location in the general version of the depicted path of length 4 + m + + ( m + ) + O ( m ) tile types. 32igure 52: A Special at MSB of most significant digit gadget is shown here. This is one example ofa gadget that is used exclusively for the self-assembly of a special case digit region that self-assembles inthe digit region in which the next least significant digits, relative to the current special digit region, arecontained. The east-facing input glue of the
Special at MSB of most significant digit gadget binds tothe west-facing output glue of the last
Single tile opposite gadget to attach in the path from Figure 51.In general, we create one
Special at MSB of most significant digit gadget, contributing O ( ) tile types.Figure 53: A path of Single tile opposite gadgets is shown here. These gadgets are examples of gadgetsthat are used exclusively for the self-assembly of a special case digit region that self-assembles in the digitregion in which the next least significant digits, relative to the current digit region, are contained. We createone
Single tile opposite gadget for each location in the general version of the depicted path of length6 + m , contributing O ( m ) tile types.Figure 54: An At MSB of odd digit gadget is shown here. This is the last example of a gadget that is usedexclusively for the self-assembly of a special case digit region that self-assembles in the digit region in whichthe next least significant digits, relative to the current digit region, are contained. In general, we create one
At MSB of odd digit , contributing O ( ) tile types.Figure 55: A path of Single tile opposite gadgets is shown here. We create one
Single tile opposite gadget for each location in the general version of the depicted path of length 2 + m + + ( m + ) + O ( m ) tile types. 33igure 56: A Reset turn corner gadget is shown here. The gadget being created here replaces the gadgetbeing created in Figure 28. In general, we create one
Reset turn corner gadget, contributing O ( ) tiletypes.Figure 57: A (beginning portion of a) path of Reset single tile gadgets is shown here. The gadgetsbeing created here replace the gadgets that were created in Figure 29. The
Reset read even digit gadgetcreated in Figure 30 attaches to the last
Reset single tile gadget in the series being created here. Wecreate one
Reset single tile gadget for each location in the general version of the depicted path of length k −
3, contributing O ( k ) tile types.Figure 58: A fully assembled example of the initial value of the counter, when k mod 4 =
2, showing thecurrent and corresponding special case digit regions.34n Figures 59 through 65, we create the gadgets that implement the self-assembly algorithm that incre-ments the value of the counter, when k mod 4 =
2. Figures 59 through 65 also show an example assemblysequence, where, unless specified otherwise, each figure continues the sequence from the resulting assemblyin the previously-numbered figure.Figure 59: A path of
Single tile opposite gadgets is shown here, originating in the corresponding digitregion (bottom) and terminating in the current digit region (top). If k mod 4 =
2, then we would not createthe
Reset turn corner gadget in Figure 56. Instead, we would create the
Z1 to z0 gadget in Figure 31, eventhough the odd digit would have its indicator bit set to 1, to which the first gadget in the general version ofthe depicted path of
Single tile opposite gadgets would attach. We create O ( ) Single tile opposite gadgets for each location in the general version of the depicted path of length 3 m +
2, contributing O ( m ) tile types.Figure 60: A Start digit region gadget is shown here. In general, we create O ( ) Start digit region gadgets, contributing O ( ) tile types.Figure 61: A Read non MSB gadget is shown here. In general, we create O ( M ) Read non MSB gadgets,contributing O ( M ) tile types. 35igure 62: A Read MSB gadget is shown here. In general, we create O ( M ) Read MSB gadgets, contributing O ( M ) tile types.Figure 63: A path of Repeating after even digit gadgets is shown here. We propagate the result ofreading the most significant digit along a path of
Repeating after even digit tiles, starting in the currentspecial case digit region (top) and terminating, by being hindered by the
Special stopper gadget, in thecorresponding special case digit region (bottom). In general, we create O ( M ) Repeating after even digit gadgets, contributing O ( M ) tile types.Figure 64: An At special stopper gadget is shown here. It has a fixed size. The north-facing glue ofthe last
Repeating after even digit gadget to attach in the path shown in Figure 63 will initiate the self-assembly of an
At special stopper gadget. If x ∈ { , } m and c ∈ { , } are contained in the output glue ofthe former, where c = c = m -bit binary representation of ( x + c ) mod M . If ( x + c ) mod M = c = O ( M ) At special stopper gadgets, contributing O ( M ) tile types.Figure 65: A series of Write even digit gadgets is shown here. After the last
Write even digit gad-get self-assembles, depending on whether the counter has rolled over to 0, the gadgets created in Fig-ures 49, 50, 51, 52, 53, 54, 55, 56,and 57 may self-assemble. In general, we create O ( M ) Write even digit gadgets, contributing O ( M ) tile types. 36 .3 Full details In this section, we give the full details of our construction.We say that a gadget is general if its input and output glues are undefined. If
Gadget is a general gadget,then we use the notation
Gadget ( a , b ) to represent the creation of the specific gadget , or simply gadget ,referred to as Gadget , with input glue label a and output glue label b (all positive glue strengths are 1). Ifa gadget has two possible output glues, then we will use the notation Gadget ( a , b , c ) to denote the specificversion of Gadget , where a is the input glue and b and c are the two possible output glues, listed in theorder north, east, south and west, with all of the z = z = Gadget ( a ) . We use the notation ⟨ ⋅ ⟩ to denote some standard encoding of the concatenation of a list of symbols.We group the general gadgets that we use in our construction into eight groups named Write (Figure 66),Read (Figure 67), Seed (Figure 68), Hardcoded-length spacer (Figure 69), Blocking-based spacer (Figure 70),Transition (Figure 71), Reset (Figure 72), and Special case (Figure 73). (a) Write even digit 0 (b)
Write even digit 1 (c)
Write odd digit 0 (d)
Write odd digit 1
Figure 66: The “Write” gadgets. These are the gadgets used in both the initial and all subsequent valuesof the counter to encode bits of a digit. Regardless of the parity of the digits, bits with a value of 0 areencoded using the z = z = (a) Read non MSB 0 (b)
Read non MSB 1 (c)
Read MSB 0 (d)
Read MSB 1
Figure 67: The “Read” gadgets. These gadgets are used by the counter to read the bits of a digit. Since abit with a value of 0 is encoded using the z = z = z = (a) Seed start (b)
Seed even digit to odd digit (c)
Seed to next significant digit region
Figure 68: The “Seed” or “initial value” gadgets. These gadgets are used exclusively in the self-assemblyof the initial value. 37 a) Single tile (b)
Single tile opposite
Figure 69: The “Hardcoded-length spacer” gadgets. These gadgets are single tile gadgets used throughoutthe construction. Except when used in the initial value, these gadgets never carry information about thebits of the counter, which is key because these gadgets self-assemble in a path whose length depends on m . (a) Repeating after even digit (b)
Stopper after odd digit (c)
Repeating after odd digit (d)
Stopper after even digit (e)
At stopper after odd digit (f)
At stopper after even digit
Figure 70: The “Blocking-based spacer” gadgets. These gadgets work together so that the gadgets inFigures a and c can self-assemble into arbitrary length paths until they are eventually blocked by thegadgets in Figures b and d, respectively. Once the gadgets in Figures a and c are blocked by the gadgets inFigures b and d, the gadgets in Figures e and f can self-assemble, respectively. (a)
Between digits (b)
Between digit regions (c)
At MSB of odd digit (d)
Start read odd digit (e)
Start digit region (f)
Z1 to z0
Figure 71: The “Transition” gadgets. These gadgets are used by the counter to transition after read-ing/writing one digit to begin reading/writing the next digit, within the same value. (a)
Reset turn corner (b)
Reset single tile (c)
Reset read even digit
Figure 72: The “Reset” gadgets. These gadgets reset the counter to begin the next increment step.38 a) At special stopper (b)
Special stopper (c)
Special at MSB of most significant digit
Figure 73: The “Special case” gadgets. These gadgets are used only if k mod 4 ∈ { , } , as they are specificto a special case digit region.We now create the tile types for our construction. What follows is a list of “Create” statements in whichspecific gadgets are instantiated from the general gadgets in Figures 66 through 73.Create Seed start (⟨ seed write even digit , , ⟩) from the general gadget shown in Figure 68a. This step creates the gadget shown in Figure 35. A singlegadget is created by this step.For each i = , . . . , ⌊ w ⌋ −
1, where i ranges over indices of the digit regions, • For each j = , . . . , m −
2, where j ranges over the indices of a digit’s bits (except for the most significantbit), create Write even digit 0 (⟨ seed write even digit , i, j ⟩ , ⟨ seed write even digit , i, j + ⟩) from the general gadget shown in Figure 66a, if the j th bit of d i (starting with j = Write even digit 1 (⟨ seed write even digit , i, j ⟩ , ⟨ seed write even digit , i, j + ⟩) from the general gadget shown in Figure 66b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 36. These are the non-most significant bits of the most significanteven digit. The total number of gadgets created by this step is O ( km ) . • Create
Write even digit 0 (⟨ seed write even digit , i, m − ⟩ , ⟨ seed even digit to odd digit , i ⟩) from the general gadget shown in Figure 66a, if the most significant bit of d i is 0, otherwise create Write even digit 1 (⟨ seed write even digit , i, m − ⟩ , ⟨ seed even digit to odd digit , i ⟩) from the general gadget shown in Figure 66b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 36. These are the most significant bits of the even digits. The totalnumber of gadgets created by this step is O ( k ) .For each i = , . . . , ⌊ w ⌋ −
1, create
Seed even digit to odd digit (⟨ seed even digit to odd digit , i ⟩ , ⟨ seed write odd digit , i + , − ⟩) O ( k ) .For each i = , . . . , ⌊ w ⌋ −
2, create
Write odd digit 0 (⟨ seed write odd digit , i + , − ⟩ , ⟨ seed write odd digit , i + , ⟩) from the general gadget shown in Figure 66c. This step creates gadgets that correspond to the first gadgetto self-assemble in Figure 38. These are the indicator bits for the non-most significant odd digits. The totalnumber of gadgets created by this step is O ( k ) .Create Write odd digit 1 ⎛⎝⟨ seed write odd digit , ⌊ w ⌋ − , − ⟩ , ⟨ seed write odd digit , ⌊ w ⌋ − , ⟩⎞⎠ from the general gadget shown in Figure 66d. This step creates the gadget that corresponds to the firstgadget to self-assemble in Figure 38, if the current digit region is the most significant (general) one, or thesecond most significant digit, if k mod 4 ∈ { , } . This is the indicator bit for the most significant odd digit.A single gadget is created by this step.For each i = , . . . , ⌊ w ⌋ − • For each j = , . . . , m −
2: create
Write odd digit 0 (⟨ seed write odd digit , i + , j ⟩ , ⟨ seed write odd digit , i + , j + ⟩) from the general gadget shown in Figure 66c, if the j th bit of d i + (starting with j = Write odd digit 1 (⟨ seed write odd digit , i + , j ⟩ , ⟨ seed write odd digit , i + , j + ⟩) from the general gadget shown in Figure 66d. This step creates gadgets that correspond to all but thefirst and last gadgets to self-assemble in Figure 38. These are the non-most significant bits of the odddigits. The total number of gadgets created by this step is O ( km ) . • Create
Write odd digit 0 (⟨ seed write odd digit , i + , m − ⟩ , ⟨ seed single tile 0 , i + , ⟩) from the general gadget shown in Figure 66c, if the most significant bit of d i + is 0, otherwise create Write odd digit 1 (⟨ seed write odd digit , i + , m − ⟩ , ⟨ seed single tile 0 , i + , ⟩) from the general gadget shown in Figure 66d. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 38. These are the most significant bits of the odd digits. The totalnumber of gadgets created by this step is O ( k ) .For each i = , . . . , ⌊ w ⌋ −
1: 40
For each j = , . . . , (( + m + ) − ( + )) −
2, create
Single tile (⟨ seed single tile 0 , i + , j ⟩ , ⟨ seed single tile 0 , i + , j + ⟩) from the general gadget shown in Figure 69a. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 39. The total number of gadgets created by this step is O ( km ) . • Create
Single tile (⟨ seed single tile 0 , i + , (( + m + ) − ( + )) − ⟩ , ⟨ seed stopper after odd digit , i + ⟩) from the general gadget shown in Figure 69a. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 39. The total number of gadgets created by this step is O ( k ) . • Create
Stopper after odd digit (⟨ seed stopper after odd digit , i + ⟩ , ⟨ seed single tile opposite 0 , i + , ⟩) from the general gadget shown in Figure 70b. This step creates a gadget that corresponds to the gadgetshown in Figure 40. The total number of gadgets created by this step is O ( k ) . • For each j = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ seed single tile opposite 0 , i + , j ⟩ , ⟨ seed single tile opposite 0 , i + , j + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 41. The total number of gadgets created by this step is O ( km ) . • Create
Single tile opposite (⟨ seed single tile opposite 0 , i + , ( m + ) − ⟩ , ⟨ seed between digits , i + ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 41. The total number of gadgets created by this step is O ( k ) . • Create
Between digits (⟨ seed between digits , i + ⟩ , ⟨ seed single tile opposite 1 , i + , ⟩) from the general gadget shown in Figure 71a. This step create a gadget that corresponds to the gadgetshown in Figure 42. The total number of gadgets created by this step is O ( k ) . • For each j = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ seed single tile opposite 1 , i + , j ⟩ , ⟨ seed single tile opposite 1 , i + , j + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 43. The total number of gadgets created by this step is O ( km ) .41or each i = , . . . , ⌊ w ⌋ − • Create
Single tile opposite (⟨ seed single tile opposite 1 , i + , ( m + ) − ⟩ , ⟨ seed to next significant digit region , i + ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 43. The total number of gadgets created by this step is O ( k ) . • Create
Seed to next significant digit region (⟨ seed to next significant digit region , i + ⟩ , ⟨ seed write even digit , ( i + ) , ⟩) from the general gadget shown in Figure 68c. This step creates a gadget that corresponds to the gadgetshown in Figure 44. The total number of gadgets created by this step is O ( k ) .Create Single tile opposite (⟨ seed single tile opposite 1 , w − , ( m + ) − ⟩ , ⟨ reset turn corner ⟩) from the general gadget shown in Figure 69b. This step creates the gadget that corresponds to the gadgetfrom which the gadget shown in Figure 28 self-assembles. A single gadget is created by this step.If k mod 4 ∈ { , } , create Reset turn corner (⟨ reset turn corner ⟩ , ⟨ reset single tile , ⟩) from the general gadget shown in Figure 72a. This step creates the gadget that corresponds to the gadgetshown in Figure 28. This step is conditional because we create a special Reset turn corner gadget when k mod 4 ∈ { , } . A single gadget is created by this step.If k mod 4 ∈ { , } , create Reset single tile (⟨ reset single tile , ⟩ , ⟨ reset single tile , ⟩) from the general gadget shown in Figure 72b. This step creates the gadget that corresponds to the firstgadget to self-assemble in Figure 29. This step is conditional because, when k mod 4 ∈ { , } , this gadget isnot used. A single gadget is created by this step.For each j = , . . . , ( k − ) −
2, create
Reset single tile (⟨ reset single tile , j ⟩ , ⟨ reset single tile , j + ⟩) from the general gadget shown in Figure 72b. This step creates gadgets that correspond to all but the lastgadget to self-assemble in Figure 29. The total number of gadgets created by this step is O ( k ) .Create Reset single tile (⟨ reset single tile , k − ⟩ , ⟨ reset read even digit ⟩) from the general gadget shown in Figure 72b. This step creates the gadget that corresponds to the lastgadget to self-assemble in Figure 29. A single gadget is created by this step.42f M =
2, create
Reset read even digit (⟨ reset read even digit ⟩ , ⟨ read MSB , , c, p ⟩ , ⟨ read MSB , , c, p ⟩) from the general gadget shown in Figure 72c, otherwise create Reset read even digit (⟨ reset read even digit ⟩ , ⟨ read non MSB , , c, p ⟩ , ⟨ read non MSB , , c, p ⟩) from the general gadget shown in Figure 72c, where c = p = O ( ) .We will now create the gadgets that self-assemble in a general digit region.For each c ∈ { , } : • For each x ∈ { , } i , for 1 ≤ i < m −
1, create
Read non MSB 0 (⟨ read non MSB , x, c, ⟩ , ⟨ read non MSB , x , c, ⟩ , ⟨ read non MSB , x , c, ⟩) from the general gadget shown in Figure 67a if x ends with 0, otherwise create Read non MSB 1 (⟨ read non MSB , x, c, ⟩ , ⟨ read non MSB , x , c, ⟩ , ⟨ read non MSB , x , c, ⟩) from the general gadget shown in Figure 67b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 8. The total number of gadgets created by this step is O ( M ) .Note that our geometric scheme used for the digits (both even and odd) positions the bits in Little-Endian order, i.e., with the least significant bit to the left. So, once a digit has been completely readby Read non MSB and
Read MSB gadgets, since each bit is appended to the right of the bits that werealready read, the end result is a binary string that preserves the original order of the bits, i.e., the bitsstay in Little-Endian. • For each x ∈ { , } m − , create Read non MSB 0 (⟨ read non MSB , x, c, ⟩ , ⟨ read MSB , x , c, ⟩ , ⟨ read MSB , x , c, ⟩) from the general gadget shown in Figure 67a if x ends with 0, otherwise create Read non MSB 1 (⟨ read non MSB , x, c, ⟩ , ⟨ read MSB , x , c, ⟩ , ⟨ read MSB , x , c, ⟩) from the general gadget shown in Figure 67b. This step creates gadgets that correspond to the lastgadget to self-assemble in Figure 8. The total number of gadgets created by this step is O ( M ) .43 For each x ∈ { , } m , create Read MSB 0 (⟨ read MSB , x, c, ⟩ , ⟨ repeating after even digit , x, c ⟩) from the general gadget shown in Figure 67c if x ends with 0, otherwise create Read MSB 1 (⟨ read MSB , x, c, ⟩ , ⟨ repeating after even digit , x, c ⟩) from the general gadget shown in Figure 67d. This step creates gadgets that correspond to the gadgetshown in Figure 9. The total number of gadgets created by this step is O ( M ) .For each c ∈ { , } : • For each x ∈ { , } m , create Repeating after even digit (⟨ repeating after even digit , x, c ⟩ , ⟨ at stopper after odd digit , x, c ⟩ , ⟨ repeating after even digit , x, c ⟩) from the general gadget shown in Figure 70a. This step creates gadgets that correspond to the gadgetshown in Figure 10. The total number of gadgets created by this step is O ( M ) .For each x ∈ { , } m : • Create
At stopper after odd digit (⟨ at stopper after odd digit , x, ⟩ , ⟨ write even digit , x, ⟩) from the general gadget shown in Figure 70e. Note that the last argument in the encodings for theinput and output glues corresponds to the value of c from the previous Repeating after even digit gadget. This step creates a gadget that corresponds to the gadget shown in Figure 11. The totalnumber of gadgets created by this step is O ( M ) . • When ( x + ) mod M =
0, create
At stopper after odd digit (⟨ at stopper after odd digit , x, ⟩ , ⟨ write even digit , m , ⟩) from the general gadget shown in Figure 70e. Otherwise, create At stopper after odd digit (⟨ at stopper after odd digit , x, ⟩ , ⟨ write even digit , z, ⟩) from the general gadget shown in Figure 70e, where z ∈ { , } m is the zero-padded binary representationof the value x +
1. This step creates a gadget that corresponds to the gadget shown in Figure 11. Thetotal number of gadgets created by this step is O ( M ) .For each c ∈ { , } : • For each x ∈ { , } i , for 1 ≤ i < m , create Write even digit 0 (⟨ write even digit , x, c ⟩ , ⟨ write even digit , x, c ⟩) Write even digit 1 (⟨ write even digit , x, c ⟩ , ⟨ write even digit , x, c ⟩) from the general gadget shown in Figure 66b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 12. The total number of gadgets created by this step is O ( M ) . • Create
Write even digit 0 (⟨ write even digit , , c ⟩ , ⟨ stopper after even digit , c ⟩) from the general gadget shown in Figure 66a. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 12, which is the most significant bit. The total number of gadgetscreated by this step is O ( ) . • Create
Write even digit 1 (⟨ write even digit , , c ⟩ , ⟨ stopper after even digit , c ⟩) from the general gadget shown in Figure 66b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 12, which is the most significant bit. The total number of gadgetscreated by this step is O ( ) .For each c ∈ { , } : • Create
Stopper after even digit (⟨ stopper after even digit , c ⟩ , ⟨ single tile opposite 0 , c, ⟩) from the general gadget shown in Figure 70d. This step creates gadgets that correspond to the gadgetshown in Figure 13. The total number of gadgets created by this step is O ( ) . • For each i = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ single tile opposite 0 , c, i ⟩ , ⟨ single tile opposite 0 , c, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 14. The total number of gadgets created by this step is O ( m ) . • Create
Single tile opposite (⟨ single tile opposite 0 , c, ( m + ) − ⟩ , ⟨ between digit regions , c ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 14. The total number of gadgets created by this step is O ( ) . • Create
Between digit regions (⟨ between digit regions , c ⟩ , ⟨ single tile opposite 1 , c, ⟩) from the general gadget shown in Figure 71b. This step creates a gadget that corresponds to the gadgetshown in Figure 15. The total number of gadgets created by this step is O ( ) .45 For each i = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ single tile opposite 1 , c, i ⟩ , ⟨ single tile opposite 1 , c, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 16. The total number of gadgets created by this step is O ( m ) . • Create
Single tile opposite (⟨ single tile opposite 1 , c, ( m + ) − ⟩ , ⟨ at MSB of odd digit , c ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 16. The total number of gadgets created by this step is O ( ) . • Create
At MSB of odd digit (⟨ at MSB of odd digit , c ⟩ , ⟨ single tile opposite 2 , c, ⟩) from the general gadget shown in Figure 71c. This step creates a gadget that corresponds to the gadgetin Figure 17 The total number of gadgets created by this step is O ( ) . • For each i = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ single tile opposite 2 , c, i ⟩ , ⟨ single tile opposite 2 , c, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 18. The total number of gadgets created by this step is O ( m ) . • Create
Single tile opposite (⟨ single tile opposite 2 , c, ( m + ) − ⟩ , ⟨ start read odd digit , c ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 18. The total number of gadgets created by this step is O ( ) .For each c ∈ { , } : • Create
Start read odd digit (⟨ start read odd digit , c ⟩ , ⟨ read non MSB , , c, ⟩ , ⟨ read non MSB , , c, ⟩) from the general gadget shown in Figure 71d. This step creates a gadget that corresponds to the gadgetshown in Figure 19. The total number of gadgets created by this step is O ( ) . • For each x ∈ { , } i , for 1 ≤ i < m , create Read non MSB 0 (⟨ read non MSB , x, c, ⟩ , ⟨ read non MSB , x , c, ⟩ , ⟨ read non MSB , x , c, ⟩) x ends with 0, otherwise create Read non MSB 1 (⟨ read non MSB , x, c, ⟩ , ⟨ read non MSB , x , c, ⟩ , ⟨ read non MSB , x , c, ⟩) from the general gadget shown in Figure 67b. This step creates gadgets that correspond to gadgetsthat are similar to all but the last gadget to self-assemble in Figure 8, but the gadgets being createdhere are for odd digits. The total number of gadgets created by this step is O ( M ) . • For each x ∈ { , } m , create Read non MSB 0 (⟨ read non MSB , x, c, ⟩ , ⟨ read MSB , x , c, ⟩ , ⟨ read MSB , x , c, ⟩) from the general gadget shown in Figure 67a if x ends with 0, otherwise create Read non MSB 1 (⟨ read non MSB , x, c, ⟩ , ⟨ read MSB , x , c, ⟩ , ⟨ read MSB , x , c, ⟩) from the general gadget shown in Figure 67b. This step creates gadgets that correspond to gadgetsthat are similar to the last gadget to self-assemble in Figure 8, but the gadgets being created here arefor odd digits. The total number of gadgets created by this step is O ( M ) . • For each x ∈ { , } m + , create Read MSB 0 (⟨ read MSB , x, c, ⟩ , ⟨ repeating after odd digit , x, c ⟩) from the general gadget shown in Figure 67c if x ends with 0, otherwise create Read MSB 1 (⟨ read MSB , x, c, ⟩ , ⟨ repeating after odd digit , x, c ⟩) from the general gadget shown in Figure 67d. This step creates gadgets that correspond to gadgetsthat are similar to the gadget shown in Figure 9, but the gadgets being created here are for odd digits.The total number of gadgets created by this step is O ( M ) .For each c ∈ { , } : • For each x ∈ { , } m + , create Repeating after odd digit (⟨ repeating after odd digit , x, c ⟩ , ⟨ repeating after odd digit , x, c ⟩ , ⟨ at stopper after even digit , x, c ⟩) from the general gadget shown in Figure 70c. This step creates gadgets that correspond to the gadgetsshown in Figure 20. The total number of gadgets created by this step is O ( M ) .For each x ∈ { , } m and each b ∈ { , } , where b corresponds to the indicator bit of an odd digit:47 Create
At stopper after even digit (⟨ at stopper after even digit , bx, ⟩ , ⟨ write odd digit , bx, ⟩) from the general gadget shown in Figure 70f. Note that the last argument in the encodings for theinput and output glues corresponds to the value of c from the previous Repeating after odd digit gadget. This step creates a gadget that corresponds to the gadget shown in Figure 21. The totalnumber of gadgets created by this step is O ( M ) . • When ( x + ) mod M =
0, create
At stopper after even digit (⟨ at stopper after even digit , bx, ⟩ , ⟨ write odd digit , b m , ⟩) from the general gadget shown in Figure 70d. Otherwise, create At stopper after even digit (⟨ at stopper after even digit , bx, ⟩ , ⟨ write odd digit , bz, ⟩) from the general gadget shown in Figure 70d, where z ∈ { , } m is the zero-padded binary representationof the value x +
1. This step creates a gadget that corresponds to the gadget shown in Figure 21. Thetotal number of gadgets created by this step is O ( M ) .For each c ∈ { , } : • For each x ∈ { , } m , create Write odd digit 0 (⟨ write odd digit , x, c ⟩ , ⟨ write odd digit , x, c, ⟩) from the general gadget shown in Figure 66c and create Write odd digit 1 (⟨ write odd digit , x, c ⟩ , ⟨ write odd digit , x, c, ⟩) from the general gadget shown in Figure 66d. This step creates gadgets that correspond to the firstgadget to self-assemble in Figure 22. The total number of gadgets created by this step is O ( M ) . Herewe introduce an additional value to the output glues of these gadgets, indicating whether this digit isthe most significant digit. We use a 1 to indicate that it is the most significant digit and a 0 otherwise.For each c ∈ { , } and each d ∈ { , } , where d is the most significant digit indicator that was introducedin the previous step: • For each x ∈ { , } i , for 1 ≤ i < m , create Write odd digit 0 (⟨ write odd digit , x, c, d ⟩ , ⟨ write odd digit , x, c, d ⟩) from the general gadget shown in Figure 66c and create Write odd digit 1 (⟨ write odd digit , x, c, d ⟩ , ⟨ write odd digit , x, c, d ⟩) from the general gadget shown in Figure 66d. This step creates gadgets that correspond to all but thefirst and last gadgets to self-assemble in Figure 22. The total number of gadgets created by this stepis O ( M ) . 48 Create
Write odd digit 0 (⟨ write odd digit , , c, d ⟩ , ⟨ single tile 0 , c, d, ⟩) from the general gadget shown in Figure 66c and create Write odd digit 1 (⟨ write odd digit , , c, d ⟩ , ⟨ single tile 0 , c, d, ⟩) from the general gadget shown in Figure 66d. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 22, which is the most significant bit. The total number of gadgetscreated by this step is O ( ) . • For each i = , . . . , ( m + ) −
2, create
Single tile (⟨ single tile 0 , c, d, i ⟩ , ⟨ single tile 0 , c, d, i + ⟩) from the general gadget shown in Figure 69a. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 23. The total number of gadgets created by this step is O ( m ) . • Create
Single tile (⟨ single tile 0 , c, d, ( m + ) − ⟩ , ⟨ stopper after odd digit , c, d ⟩) from the general gadget shown in Figure 69a. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 23. The total number of gadgets created by this step is O ( ) .For each c ∈ { , } and each d ∈ { , } : • Create
Stopper after odd digit (⟨ stopper after odd digit , c, d ⟩ , ⟨ single tile opposite 3 , c, d, ⟩) from the general gadget shown in Figure 70b. This step creates a gadget that corresponds to the gadgetshown in Figure 24. The total number of gadgets created by this step is O ( ) . • For each i = , . . . , ( + ( m + ) + ( + m − ) + ) −
2, create
Single tile opposite (⟨ single tile opposite 3 , c, d, i ⟩ , ⟨ single tile opposite 3 , c, d, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 25. The total number of gadgets created by this step is O ( m ) . • Create
Single tile opposite (⟨ single tile opposite 3 , c, d, ( + ( m + ) + ( + m − ) + ) − ⟩ , ⟨ between digits , c, d ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 25. The total number of gadgets created by this step is O ( ) .49 Create
Between digits (⟨ between digits , c, d ⟩ , ⟨ single tile opposite 4 , c, d, ⟩) from the general gadget shown in Figure 71a. This step creates a gadget that corresponds to the gadgetshown in Figure 26. The total number of gadgets created by this step is O ( ) . • For each i = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ single tile opposite 4 , c, d, i ⟩ , ⟨ single tile opposite 4 , c, d, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 27. The total number of gadgets created by this step is O ( m ) .For each c ∈ { , } : • Create
Single tile opposite (⟨ single tile opposite 4 , c, , ( m + ) − ⟩ , ⟨ z1 to z0 , c ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 27. The total number of gadgets created by this step is O ( ) . • Create
Z1 to z0 (⟨ z1 to z0 , c ⟩ , ⟨ single tile opposite 5 , c, ⟩) from the general gadget shown in Figure 71f. This step creates a gadget that corresponds to the gadgetshown in Figure 31. The total number of gadgets created by this step is O ( ) . • For each i = , . . . , ( m + + ( m + ) + + m + + ) −
2, create
Single tile opposite (⟨ single tile opposite 5 , c, i ⟩ , ⟨ single tile opposite 5 , c, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 32. The total number of gadgets created by this step is O ( m ) . • Create
Single tile opposite (⟨ single tile opposite 5 , c, ( m + + ( m + ) + + m + + ) − ⟩ , ⟨ start digit region , c ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 32. The total number of gadgets created by this step is O ( ) . • If M =
2, create
Start digit region (⟨ start digit region , c ⟩ , ⟨ read MSB , , c, ⟩ , ⟨ read MSB , , c, ⟩) Start digit region (⟨ start digit region , c ⟩ , ⟨ read non MSB , , c, ⟩ , ⟨ read non MSB , , c, ⟩) from the general gadget shown in Figure 71e. This step creates gadgets that correspond to the gadgetshown in Figure 33. The total number of gadgets created by this step is O ( ) .Here we create the Single tile opposite gadgets that correspond to the last gadget to attach in Fig-ure 27, and to which a
Reset turn corner gadget that corresponds to the gadget shown in Figure 28attaches. In the gadgets being created here, the value of an incoming arithmetic carry (the second argumentin the encoding of the input glue) is 0 and the value of the most significant digit indicator bit (the thirdargument in the encoding of the input glue) is 1. If k mod 4 ∈ { , } , create Single tile opposite (⟨ single tile opposite 4 , , , ( m + ) − ⟩ , ⟨ reset turn corner ⟩) from the general gadget shown in Figure 69b. Note that, if c =
0, then the counter should start self-assemblingback towards the least significant and initiate the next increment step. This step creates the gadget thatcorresponds to the last gadget to self-assemble in Figure 27. A single gadget was created by this step.If k mod 4 ∈ { , } , create Single tile opposite (⟨ single tile opposite 4 , , , ( m + ) − ⟩ , ⟨ purple monkey dishwasher ⟩) from the general gadget shown in Figure 69b. In this case, an arithmetic carry propagated through the mostsignificant digit, which means this gadget will have an output glue that does not match any other input glue,terminating the assembly (or initiating filler tiles). This step creates the gadget that corresponds to the lastgadget to self-assemble in Figure 27. A single gadget was created by this step.If k mod 4 ∈ { , } , then for each c ∈ { , } , create Single tile opposite (⟨ single tile opposite 4 , c, , ( m + ) − ⟩ , ⟨ special z1 to z0 , c ⟩) from the general gadget shown in Figure 69b. Since k mod 4 ∈ { , } , this gadget self-assembles after writingthe most significant odd digit, with the value of the arithmetic carry, c , propagating into the special casedigit region in which the most significant digit is contained. This step creates a gadget that corresponds tothe last gadget to self-assemble in Figure 27. The total number of gadgets created by this step is O ( ) .The following steps create gadgets for the special case, i.e., in each step it is assumed that k mod 4 ∈ { , } .Create Single tile opposite (⟨ seed single tile opposite 1 , w − , ( m + ) − ⟩ , ⟨ seed to next significant digit region , w − ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 27. A single gadget is created by this step.Create Seed to next digit region (⟨ seed to next significant digit region , w − ⟩ , ⟨ seed single tile 0 , w − , ⟩) i = , . . . , ( m + + ( m + ) + ) −
2, create
Single tile (⟨ seed single tile 0 , w − , i ⟩ , ⟨ seed single tile 0 , w − , i + ⟩) from the general gadget shown in Figure 69a. This step creates gadgets that correspond to all but the lastgadget to self-assemble in Figure 47. The total number of gadgets created by this step is O ( m ) .Create Single tile (⟨ seed single tile 0 , w − , ( m + + ( m + ) + ) − ⟩ , ⟨ seed single tile 0 , w − , ⟩) from the general gadget shown in Figure 69a. This step creates the gadget that corresponds to the lastgadget to self-assemble in Figure 47. A single gadget is created by this step.For each j = , . . . , m −
2, create
Write even digit 0 (⟨ seed write even digit , w − , j ⟩ , ⟨ seed write even digit , w − , j + ⟩) from the general gadget shown in Figure 66a, if the j th bit of d w − is 0, otherwise create Write even digit 1 (⟨ seed write even digit , w − , j ⟩ , ⟨ seed write even digit , w − , j + ⟩) from the general gadget shown in Figure 66b. This step creates gadgets that corresponds to all but the lastgadget to self-assemble in Figure 65. These are the non-most significant bits of the most significant evendigit. The total number of gadgets created by this step is O ( m ) .Create Write even digit 0 (⟨ seed write even digit , w − , m − ⟩ , ⟨ special single tile 1 , , ⟩) from the general gadget shown in Figure 66a, if the most significant bit of d w − is 0, otherwise create Write even digit 1 (⟨ seed write even digit , w − , m − ⟩ , ⟨ special single tile 1 , , ⟩) from the general gadget shown in Figure 66b. This step creates the gadget that corresponds to the lastgadget to self-assemble in Figure 65. These are the most significant bits of the even digits. A single gadgetis created by this step.For each i = , . . . , ( + + m + + ( m + ) + ) −
2, create
Single tile (⟨ special single tile 1 , i ⟩ , ⟨ special single tile 1 , i + ⟩) from the general gadget shown in Figure 69a. This step creates gadgets that correspond to all but the lastgadget to self-assemble in Figure 49. The total number of gadgets created by this step is O ( m ) .Create Single tile (⟨ special single tile 1 , ( + + m + + ( m + ) + ) − ⟩ , ⟨ special stopper ⟩) Special stopper (⟨ special stopper ⟩ , ⟨ special single tile opposite 3 , ⟩) from the general gadget shown in Figure 73b. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 50. A single gadget is created by this step.For each i = , . . . , ( + m + + ( m + ) + ) −
2, create
Single tile opposite (⟨ special single tile opposite 3 , i ⟩ , ⟨ special single tile opposite 3 , i + ⟩) from the general gadget shown in Figure 69b. This step creates all but the last gadget to self-assemble inFigure 51. The total number of gadgets created by this step is O ( m ) .Create Single tile opposite (⟨ special single tile opposite 3 , ( + m + + ( m + ) + ) − ⟩ , ⟨ special at MSB of most significant digit ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 51. A single gadget is created by this step.Create Special at MSB of most significant digit (⟨ special at MSB of most significant digit ⟩ , ⟨ special single tile opposite 1 , ⟩) from the general gadget shown in Figure 73c. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 52. A single gadget is created by this step.For each i = , . . . , ( + m ) −
2, create
Single tile opposite (⟨ special single tile opposite 1 , i ⟩ , ⟨ special single tile opposite 1 , i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but the lastgadget to self-assemble in Figure 53. The total number of gadgets created by this step is O ( m ) .Create Single tile opposite (⟨ special single tile opposite 1 , ( + m ) − ⟩ , ⟨ special at MSB of odd digit ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 53. A single gadget is created by this step.Create At MSB of odd digit (⟨ special at MSB of odd digit ⟩ , ⟨ special single tile opposite 2 , ⟩) from the general gadget shown in Figure 71c. This step creates a gadget that corresponds to the gadgetshown in Figure 54. A single gadget is created by this step.For each i = , . . . , ( + m + + ( m + ) + ) −
2, create
Single tile opposite (⟨ special single tile opposite 2 , i ⟩ , ⟨ special single tile opposite 2 , i + ⟩) O ( m ) .Create Single tile opposite (⟨ special single tile opposite 2 , ( + m + + ( m + ) + ) − ⟩ , ⟨ reset turn corner ⟩) from the general gadget shown in Figure 69b. This step creates the gadget that corresponds to the lastgadget to self-assemble in Figure 55. A single gadget is created by this step.Create Reset turn corner (⟨ reset turn corner ⟩ , ⟨ reset single tile , ⟩) from the general gadget shown in Figure 72a. The second argument in the encoding of the output glue is1, which allows Reset single tile gadgets that were previously created to self-assemble. This step createsthe gadget that corresponds to the gadget shown in Figure 28. A single gadget is created by this step.For each c ∈ { , } : • Create
Z1 to z0 (⟨ special z1 to z0 , c ⟩ , ⟨ special single tile opposite 0 , c, ⟩) from the general gadget shown in Figure 71f. This step creates a gadget that corresponds to the gadgetshown in Figure 31. The total number of gadgets created by this step is O ( ) . • For each i = , . . . , ( m + ) −
2, create
Single tile opposite (⟨ special single tile opposite 0 , c, i ⟩ , ⟨ special single tile opposite 0 , c, i + ⟩) from the general gadget shown in Figure 69b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 59. The total number of gadgets created by this step is O ( m ) . • Create
Single tile opposite (⟨ special single tile opposite 0 , c, ( m + ) − ⟩ , ⟨ special start digit region , c ⟩) from the general gadget shown in Figure 69b. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 59. The total number of gadgets created by this step is O ( ) . • If M =
2, create
Start digit region (⟨ special start digit region , c ⟩ , ⟨ special read MSB , , c ⟩ , ⟨ special read MSB , , c ⟩) from the general gadget shown in Figure 71e, otherwise create Start digit region (⟨ special start digit region , c ⟩ , ⟨ special read non MSB , , c ⟩ , ⟨ special read non MSB , , c ⟩) from the general gadget shown in Figure 71e. This step creates a gadget that corresponds to the lastgadget to self-assemble in Figure 60. The total number of gadgets created by this step is O ( ) .54 For each x ∈ { , } i , for 1 ≤ i < m −
1, create
Read non MSB 0 (⟨ special read non MSB , x, c ⟩ , ⟨ special read non MSB , x , c ⟩ , ⟨ special read non MSB , x , c ⟩) from the general gadget shown in Figure 67a if x starts with 0, otherwise create Read non MSB 1 (⟨ special read non MSB , x, c ⟩ , ⟨ special read non MSB , x , c ⟩ , ⟨ special read non MSB , x , c ⟩) from the general gadget shown in Figure 67b. This step creates gadgets that correspond to all but thelast gadget to self-assemble in Figure 61. The total number of gadgets created by this step is O ( M ) . • For each x ∈ { , } m − , create Read non MSB 0 (⟨ special read non MSB , x, c ⟩ , ⟨ special read MSB , x , c ⟩ , ⟨ special read MSB , x , c ⟩) from the general gadget shown in Figure 67a if x starts with 0, otherwise create Read non MSB 1 (⟨ special read non MSB , x, c ⟩ , ⟨ special read MSB , x , c ⟩ , ⟨ special read MSB , x , c ⟩) from the general gadget shown in Figure 67b. This step creates gadgets that corresponds to the lastgadget to self-assemble in Figure 61. The total number of gadgets created by this step is O ( M ) . • For each x ∈ { , } m , create Read MSB 0 (⟨ special read MSB , x, c ⟩ , ⟨ special repeating after even digit , x, c ⟩) from the general gadget shown in Figure 67c if x starts with 0, otherwise create Read MSB 1 (⟨ special read MSB , x, c ⟩ , ⟨ special repeating after even digit , x, c ⟩) from the general gadget shown in Figure 67d. This step creates gadgets that corresponds to the gadgetshown in Figure 62. The total number of gadgets created by this step is O ( M ) . • For each x ∈ { , } m , create Repeating after even digit (⟨ special repeating after even digit , x, c ⟩ , ⟨ at special stopper , x, c ⟩ , ⟨ special repeating after even digit , x, c ⟩) from the general gadget shown in Figure 70a. This step creates gadgets that correspond to gadgetshown in Figure 63. The total number of gadgets created by this step is O ( M ) .For each x ∈ { , } m : 55 Create
At special stopper (⟨ at special stopper , x, ⟩ , ⟨ special write even digit , x, ⟩) from the general gadget shown in Figure 73a. Note that the last argument in the encodings for theinput and output glues corresponds to the value of c from the previous Repeating after even digit gadget. This step creates a gadget that corresponds to the gadget shown in Figure 64. The totalnumber of gadgets created by this step is O ( M ) . • When ( x + ) mod M =
0, create
At special stopper (⟨ at special stopper , x, ⟩ , ⟨ special write even digit , m , ⟩) from the general gadget shown in Figure 73a. Otherwise, create At special stopper (⟨ at special stopper , x, ⟩ , ⟨ special write even digit , z, ⟩) from the general gadget shown in Figure 73a, where z ∈ { , } m is the zero-padded binary representationof the value x +
1. This step creates a gadget that corresponds to the gadget shown in Figure 64. Thetotal number of gadgets created by this step is O ( M ) .For each c ∈ { , } and each x ∈ { , } i , for 1 ≤ i < m , create Write even digit 0 (⟨ special write even digit , x, c ⟩ , ⟨ special write even digit , x, c ⟩) from the general gadget shown in Figure 66a and create Write even digit 1 (⟨ special write even digit , x, c ⟩ , ⟨ special write even digit , x, c ⟩) from the general gadget shown in Figure 66b. This step creates gadgets that correspond to all but the lastgadget to self-assemble in Figure 65. The total number of gadgets created by this step is O ( M ) .The following four steps create the gadgets that write the most significant bit of an even digit containedin the special case digit region. In each of the following steps, the third argument of the input glue for eachgadget is the value of the incoming arithmetic carry.Create Write even digit 0 (⟨ special write even digit , , ⟩ , ⟨ special single tile 1 , ⟩) from the general gadget shown in Figure 66a. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 65, when the most significant bit is 0 and the value of an incoming arithmeticcarry is 0. A single gadget was created in this step.Create Write even digit 1 (⟨ special write even digit , , ⟩ , ⟨ special single tile 1 , ⟩) from the general gadget shown in Figure 66b. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 65, when the most significant bit is 1 and the value of an incoming arithmeticcarry is 0. A single gadget was created in this step. 56reate Write even digit 0 (⟨ special write even digit , , ⟩ , ⟨ purple monkey dishwasher ⟩) from the general gadget shown in Figure 66a. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 65, when the most significant bit is 0 and the value of an incoming arithmeticcarry is 1. A single gadget was created in this step.Create Write even digit 1 (⟨ special write even digit , , ⟩ , ⟨ purple monkey dishwasher ⟩) from the general gadget shown in Figure 66b. This step creates a gadget that corresponds to the last gadgetto self-assemble in Figure 65, when the most significant bit is 0 and the value of an incoming arithmeticcarry is 1. A single gadget was created in this step.Note that the output glues of the gadgets created in the previous two steps have labels that do not matchthe label of any other glue.Each gadget has a fixed size, so the total number of tile types in the tile set output by our constructionis O ( M + km ))