Domino Problem Under Horizontal Constraints

The Domino Problem on Z 2 asks if it is possible to tile the plane with a given set of Wang tiles; it is a classical decision problem which is known to be undecidable. The purpose of this article is to parameterize this problem to explore the frontier between decidability and undecidability. To do so we ﬁx some horizontal constraints H on the tiles and consider a new Domino Problem DP H : given a vertical constraint, is it possible to tile the plane? We characterize the nearest-neighbor horizontal constraints where DP H is decidable using graphs combinatorics


Introduction
The Domino Problem is a classical decision problem introduced by Wang [20] to study satisfaction procedures for some fragments of first-order logic.Considering a finite set of tiles that are squares with colored edges, called Wang tiles, we ask if it is possible to tile the plane with shifted copies of these tiles so that contiguous edges have the same color.This question is also central in symbolic dynamics.A Z d -subshift of finite type is a set of colorings of Z d by a finite alphabet, called configurations, and a finite set of patterns that are forbidden to appear in those configurations.The set of tilings obtained when we tile the plane with a Wang tile set is an example of Z 2 -subshift of finite type.In this setting, the Domino Problem becomes: given a finite set of forbidden patterns, is the associated subshift of finite type empty?

26:3
makes A Z d a compact space.A pattern p is a finite configuration p ∈ A Pp where P p ⊂ Z d is finite.We say that a pattern p ∈ A Pp appears in a configuration x ∈ A Z d -or that x contains p -if there exists k ∈ Z d such that for every ∈ P p , σ k (x) = p .A Z d -subshift associated to a set of patterns F, called set of forbidden patterns, is defined by that is, X F is the set of all configurations that do not contain any pattern from F. Note that there can be several sets of forbidden patterns defining the same subshift X.A subshift can equivalently be defined as a closed set under both the topology and the shift map.If X = X F with F finite, then X is called a Subshift of Finite Type, SFT for short.
For Z-subshifts, we will talk about nearest-neighbor SFTs if F ⊂ A {0,1} .For Z 2 -subshifts, the most well-known nearest-neighbor SFTs are the Wang shifts, defined by a finite number of squared tiles with colored edges that must be placed matching colors called Wang tiles.Formally, these tiles are quadruplets of symbols (t e , t w , t n , t s ).A Wang shift is described by a finite Wang tile set, and local rules x(i, j) e = x(i + 1, j) w and x(i, j) n = x(i, j + 1) s for all integers i, j.
Note that Wang shifts are enough to encode any Z 2 -SFT, albeit changing the underlying local rules and alphabet, so that a Z 2 -SFT is empty if and only if the corresponding Wang shift is.

One-dimensional SFTs as graphs
As explained in [16], a nearest-neighbor SFT X = X F ⊂ A Z , with F ⊂ A 2 , can be described as an oriented graph G = (V, E) with V = A and (a, b) ∈ E ⇔ ab / ∈ F. This graph, that encodes the allowed patterns, depends on A and F, thus two different descriptions of the same SFT will yield different graphs.
However one graph can be canonically associated to a nearest neighbor SFT from any other description of said SFT.It is the only one obtained by iterated suppression of all vertices with no incoming edge or no outgoing edge, and so there only remain biinfinite paths in the graph, that correspond to proper tilings of the line.This graph, denoted by G(X), is called the Rauzy graph (of order 1) of X.Note that a Rauzy graph can be made of one or several strongly connected components, SCC for short.In case it has several SCCs it can also contain transient vertices, that are vertices with no path from themselves to themselves.
Example 1.The two subshifts that are X = X {10,20,21,11,30,31,32,33} ⊂ {0, 1, 2, 3} Z and Y = Y {10,20,21,11} ⊂ {0, 1, 2} Z are the same SFT.They have the same Rauzy graph made of two SCCs {0} and {2}, and one transient vertex 1 (vertex 3 has been deleted from G(X) else it would be of out-degree 0).This technique that algorithmically associates a graph to an SFT will be of great use in Section 4, because it means that our proof can mostly focus on combinatorics over graphs to describe all nearest-neighbor one-dimensional SFTs.

The Domino Problem
Define DP (Z d ) = {< H >| H is a nonempty Z d -SFT} where < H > is the encoding of the SFT H using a finite alphabet and a finite set of forbidden patterns.DP (Z d ) is a language called the Domino Problem on Z d .As for any language, we can ask if it is algorithmically S TA C S 2 0 2 0 26:4 Domino Problem Under Horizontal Constraints decidable, i.e. recognizable by a Turing Machine.Said otherwise, is it possible to find a Turing Machine that takes as input any finite set of patterns F ⊂ A Z d of rules and answers YES if X F contains at least one configuration, and NO if it is empty?
It is widely known that DP (Z) is decidable, because the problem can be reduced to the emptiness of nearest-neighbor Z-SFTs, and finding a valid configuration in a nearest-neighbor SFT is equivalent, via what precedes, to finding a biinfinite path -hence a cycle -in a finite oriented graph.On the contrary, DP (Z 2 ) is undecidable [5,19,17,14], and so is any DP (Z d ) for d ≥ 2 by reduction to the undecidability of DP (Z 2 ).

Framework
Definition 2. Let H, V ⊂ A Z be subshifts.The two-dimensional subshift is called the combined subshift of H and V , and uses H as horizontal rules and V as vertical rules.
Remark.The projection of the horizontal configurations that appear in X H,V does not necessarily recover all of H; we may simply have a subset of it.Indeed, all configurations in H will not necessarily appear because some of them may not be legally extended vertically.
An easy instance of this is choosing A = {0, 1}, H nearest-neighbor and forbidding 00 and 11, and V non-nearest-neighbor and forcing to alternate a 0 and two 1s: the resulting X H,V is empty, although neither H nor V are.In some sense, said H and V are incompatible.
The previous remark motivates the main problem we will study in the rest of this article: understanding when two one-dimensional SFTs are compatible to build a two-dimensional SFT, and by extension where the frontier between decidability and undecidability lies.This question is notably reflected by the following adapted version of the Domino Problem: Definition 3. Let H ⊂ A Z be an SFT.The Domino Problem depending on H is the language Remark.It is important to understand that this Domino Problem is defined for a given H, and its decidability depends on such a H we choose beforehand.Subshifts can be conjugate, this being defined as a continuous bijection that commutes with the shift maps.Although it allows to identify structurally identical subshifts from a dynamical point of view, these subshifts remain different in how they can encode information.Indeed, some SFT H 1 and H 2 may be conjugate with DP H1 decidable but DP H2 undecidable.Consider for instance the following Rauzy graphs and applications on finite words (extensible to biinfinite words): These graphs describe conjugate SFTs through these applications, with φ(x) i+1 = φ(x i x i+1 ).However, as we will see in Section 3, the first graph has decidable DP H and the second has not.

Main result: frontier between decidability and undecidability
To understand where our future decidability conditions stem from, we study three examples: Example 4. Consider the following Rauzy graphs: G(H 3 ) Let us consider a "vertical" Z-SFT V .As long as one can build a single column respecting the rules of V , this column can legally be juxtaposed with itself in X H1,V since any element of H 1 can be horizontally juxtaposed with itself due to the self-loop at each vertex.Conversely, if X H1,V contains a configuration, then in particular it contains a single column respecting the rules of V .Hence checking if X H1,V is empty is tantamount to checking if V is empty.Since DP (Z) is decidable, DP H1 is easily decidable in this case.
The same reasoning can be applied to the two other cases: for H 2 any pair of columns, and for H 3 any triplet of columns, can be juxtaposed with itself.This finite number of columns makes the decidability of our Domino Problem at stake depend on the decidability of DP (Z).The extensive proof of this fact is located below Theorem 6.
With these three examples, we briefly saw how these three kinds of graphs yielded a decidable DP H .The rest of this article will produce a proper proof of this and, more importantly, will show that these three rather natural categories are in fact the only ones where decidability appears.

Definition 5. We say that an oriented graph G = (V, E) verifies condition D (for "Decidable") if all its SCCs have a type in common among the following list. A SCC S can be of none, one or several of these types:
for all vertices v ∈ S, we have (v, v) ∈ E) (we say that S is of reflexive type); for all vertices v = w ∈ S such that (v, w) ∈ E, we have (w, v) ∈ E (we say that S is of symmetric type; note that S = {v} a single vertex with a loop is also symmetric); ] with i meant modulo the number of classes (we say that S is of state-split cycle type in reference to a term used in [16]; note that a partition with one unique class V 0 causes S to be a single vertex with self-loop).
Theorem 6.Let H be a nearest-neighbor Z-SFT.
Proof.Proof of ⇐: assume G(H) verifies condition D. Then its SCCs share a common type, be it reflexive, symmetric, or state-split cycle.For each of these three cases, we produce an algorithm that takes as input a Z-SFT V ⊂ A Z , and that returns YES if X H,V is nonempty, and NO otherwise.
Let M be the maximal size of forbidden patterns in F V (since V is an SFT, such an integer exists).
If Finally, if G(H) has reflexive type SCCs, the construction is even simpler than before.Build a rectangle R of size 1 × M (|A| M + 1); the rest of the reasoning is identical.Proof of ⇒ is postponed to Section 4, and is done by contraposition.If G(H) does not verify condition D, then for any Wang shift W we can algorithmically build some Z-SFT V W such that X H,V W reproduces all configurations in W .If we were able to solve DP H , then there would exist a Turing Machine M able to tell us if X H,V is empty for any Z-SFT V .But then we could build a Turing Machine N taking as input any Wang shift W , building the corresponding V W after the following construction, and by running M, N would be able to tell us if X H,V W is empty or not.Then it could answer if W is empty or not; but determining the emptiness or nonemptiness of every Wang shift is equivalent to DP (Z 2 ) being decidable, which is false.Hence, since DP (Z 2 ) is undecidable, DP H is too.

Encoding a Wang shift under horizontal constraints
We begin this section by presenting the core idea of our algorithmic construction to prove the direct implication by contraposition.Then, we introduce the vertical patterns needed to achieve it in a generic case, said generic case being based on a set of conditions C. Finally, we show that most graphs that do not verify condition D do verify condition C, and those which don't only need a slight adaptation of our generic construction.

Core idea
We have a one-dimensional nearest-neighbor SFT H ⊂ A Z ("horizontal") that does not verify condition D, and we fix a Wang shift W with a set of N tiles τ = {τ 1 , ..., τ N }.
The idea is to introduce a well-chosen one-dimensional SFT V ⊂ A Z ("vertical") depending on W so that X H,V encodes the full shift on N elements.Then, we refine V by adding conditions on forbidden patterns, thus encoding exactly the configurations in W .Such a construction is done with the use of two main parts, that we will obtain by some carefully chosen forbidden patterns in V .Figure 1 Steps of the core idea to reach the generic construction.Not to scale: the sync part will be much bigger than the code part.
First, there are parts of synchronization, also called sync parts, that give some rigidity to our tilings.They precise where the actual coding parts can be, which letters of the alphabet can be used and where in these coding parts, and they ensure that you cannot glue patches together in an unexpected way.They are the frame of our construction.Second comes the filling: the coding parts.A given coding part simply codes a number between 1 and N , possibly several times.
In Figure 1a (our first rough attempt to encode a full shift on an alphabet of size N ), we suppose that our sync parts properly maintain this global structure.We notice that it offers an interesting opportunity to transmit information vertically.Since our coding parts are exactly aligned, once we have encoded the full shift over an alphabet of size N , it will suffice to add vertical conditions to our V to precise whether a coding part can be above another one.
However, horizontally Figure 1a overlooks two problems: Since we must respect the horizontal conditions given by H, we cannot put any coding part next to any other one if we do not put some kind of buffer between the two; Even with this, we have no control on the horizontal transfer of information.The idea is to transmit this horizontal information vertically, since we can add vertical constraints.We can fix the first problem by setting a buffer (see Figure 1b) between two coding parts, a portion of column that contains no coding and which can be next to any coding part.Of course, we must ensure that this buffer cannot be anywhere in a configuration but obediently remains between two coding parts.The sync parts will be designed to handle this.
However, this does not solve our need for horizontal transmission of information.Hence a new idea: altering our coding parts so that they transmit information diagonally.We put several consecutive lines of them, shifted little by little, as illustrated in Figure 1c.That way, we can encode horizontal forbidden patterns vertically, because we can see vertically which coding part is on the right of the one we are considering.For instance, by looking vertically we can know that the encoding of T 1,1 is next to T 2,1 and above T 1,0 , and thus restrict the content of these codings.
In what follows, we will build Figure 1c in details, although some technicalities will be needed to preserve the integrity of our sync parts and to ensure that the coding of a tile of W is well transmitted.This construction will indeed encode the full shift over τ , the tile set     of W .Then, it can easily be refined by adding vertical rules so that the local rules of W are ensured.Consequently, our newly built X H,V will properly simulate all configurations of W , allowing us to perform the rest of the proof of Theorem 6.

Generic construction
In this section, we describe a set of conditions on a nearest-neighbor SFT H that allows to build formally what we described informally in Section 4.1.In all that follows, we denote elements of cycles with an index that is written modulo the length of the corresponding cycle.The following definitions are illustrated in Figure 2. Definition 8. Let H ⊂ A Z be a one-dimensional nearest-neighbor SFT.We say that H verifies condition C if G(H) = (V, E) contains two cycles C 1 and C 2 , of elements denoted respectively c 1 i and c 2 j , with the following properties:

) (there cannot be both an attractive vertex and a repulsive vertex for
The rest of the subsection is devoted to proving this result. Let H with G(H) verifying condition C. We focus on encoding a full shift on an alphabet τ of cardinality N .Then, the possibility to add vertical rules will allow us to encode any Wang shift W using this alphabet, that is, to simulate the configurations of W as described in Section 4.1.
For the rest of the construction, we will name M := lcm(|C 1 |, |C 2 |) and K := 2|C 1 | + |C 2 | + 3. We suppose that N ≥ 2 and do not focus on the trivial instance of W being a monotile Wang shift.
We refer to Figure 3a in all that follows.We use the term slice as a truncation of a column: it is a part of width 1 and of finite height.We use the following more specific denominations for the various scales of our construction: A macro-slice is of height KM N .Any column is merely made of a succession of some specific macro-slices called ordered macro-slices (see below).
A meso-slice is of height M N .An ordered macro-slice is made of various meso-slices that ensure it carries information and is correctly aligned with neighboring ordered macro-slices (of neighboring columns).
A micro-slice is of height N .This subdivision is used inside code meso-slices (see below).Although any scale of slice could denote any truncation of column of the right size, we will only focus on specific slices that are meaningful because of what they contain, so that we can assemble them precisely.They are: An (i, j) k-coding micro-slice is a micro-slice composed of N − 1 symbols c 1 i and one symbol c 2 j at position k.It encodes the kth tile of alphabet τ , unless c 1 i = c 2 j : it is then called a buffer and encodes nothing.An (i 0 , j 0 )-code meso-slice is made of M successive coding micro-slices starting with a (i 0 , j 0 ) coding micro-slice (that can encode anything).We add the vertical constraint that if c 1 i = c 2 j , then the (i, j) k-coding micro-slice is vertically followed by the (i + 1, j + 1) k-coding micro-slice.If c 1 i = c 2 j , the (i, j) k-coding micro-slice can be vertically followed by any (i + 1, j + 1) l-coding micro-slice.Note that there can be at most one such rupture in the coding since C 1 and C 2 contain a good pair; k is then called the main-coded tile, and l the side-coded tile.An i-border meso-slice is made of M |C 1 | N times the vertical repetition of elements of the cycle C 1 , starting at c 1 i .A c 1 i meso-slice is made of M N times the vertical repetition of element c 1 i , denoted (c 1 i ) M N in Figure 3a.Same for a c 2 j meso-slice.The succession of a c 1 i meso-slice, then a c 1 i+1 meso-slice, ..., then a Finally, a (i, j)-ordered macro-slice is the succession of a i-border meso-slice, a i C 1 -slice, a second i C 1 -slice, a j C 2 -slice, a i-border meso-slice, and finally a (i, j)-code meso-slice.Now, the patterns we authorize in V are exactly the cyclic permutations of (i 0 + k, j 0 + k)ordered macro-slices with some good pair (i 0 , j 0 ) and k ∈ {0, . . ., M − 1}.As a consequence, a given column is simply the repetition of a given (i, j)-ordered macro-slice.We prove below that it is enough for our resulting X H,V to simulate a full shift on τ .
We say that two legally adjacent columns are aligned if they are subdivided into ordered macro-slices exactly on the same lines.We say that two adjacent and aligned columns are synchronized if any (i, j)-ordered macro-slice of the first one is followed by a (i + 1, j + 1)ordered macro-slice in the second one.Proposition 10.In this construction, two legally adjacent columns are aligned up to a vertical translation of size at most 2|C 1 | − 1 of one of the columns.
Proof.If two columns, call them K 1 and K 2 , can be legally juxtaposed such that they are not aligned even when vertically shifted by 2|C 1 | − 1 elements, it means that one of the border meso-slices of K 1 has at least 2|C 1 | vertically consecutive elements that are horizontally followed by something that is not a border meso-slice in K 2 (see Figure 3b).

Figure 3
The generic construction.
Since 2|C 1 | < M N , at least |C 1 | successive elements among the ones of the border meso-slice are horizontally followed by elements that are part of the same meso-slice.If this is a code meso-slice, simply consider the other border meso-slice of K 1 (the first you can find, above or below, before repeating the pattern cyclically): this one must be in contact with a c 1 i or c 2 j meso-slice instead.Either way, we obtain that a border meso-slice has at least |C 1 | successive elements that are horizontally followed by some t meso-slice made of a single element t.Hence if we suppose that juxtaposing K 1 and K 2 this way is legal, it means that in H all the elements of C 1 lead to t, i.e t is an attractive vertex.Either this is forbidden, or the "reverse" reasoning where we focus on the borders of K 2 proves that there is also an element p used in a C j slice of K 1 that leads to every element of C 1 ; that is, a repulsive vertex.We forbade any graph that had both, hence we reach a contradiction here.We obtain the proposition we announced.
Proposition 11.In this construction, two legally adjacent columns are always aligned and synchronized.
Proof.Proposition 10 states that two adjacent columns K 1 and K 2 are always, in some sense, approximately aligned (up to a vertical translation of size at most 2|C 1 | − 1).If the two columns are indeed slightly shifted, then any meso-slice of the C 1 slice of K 1 (consisting only of the repetition of some c 1 i ) is horizontally followed by two different meso-slices in K 2 .Being different, at least one of them is not c 1 i+1 but some c 1 i+k , k ∈ {2, ..., |C 1 |}.This is true with the same k for all values of i because all meso-slices representing c 1 i are repeated twice so that there is no "border effect".We obtain something that contradicts our assumption that C 1 has no uniform shortcut.Hence there is no vertical shift at all between two consecutive columns.Thus our construction ensures that two adjacent columns are always aligned.
It is easy to see that a meso-slice made only of c 1 i in column K 1 is horizontally followed, because the columns are aligned, by a meso-slice made only of c 1 i+k in column K 2 .This k is once again independent of the i because inside a macro-slice, meso-slices respect the order of cycle C 1 .But because C 1 has no uniform shortcut, we must have k = 1.The reasoning is the same for the C 2 slice, and we use the fact that C 2 has no shortcut either.Hence our columns are synchronized.
With these properties, we have ensured that our structure is rigid: our ordered macroslices are aligned just as we expected.The last fact to check is the transmission of information between horizontally aligned code meso-slices (since, by the structure of a code meso-slice, the vertical transmission is guaranteed).
We have to ensure that, every M horizontally aligned coding micro-slices, we have a succession of buffers (a (i, j)-coding micro-slice that does not encode information because c 1 i = c 2 j ) then of non-buffers.Furthermore, we ask that all the buffers follow each other so that we get some distinct "coding zone" and "buffer zone".This is actually simply deduced from the fact that we only authorized as ordered macro-slices the ones based on the orbit of a good pair (see Definition 7).Now, in which situation can there be a problem of horizontal transmission of the encoded tile between two micro-slices?Suppose we have a (i, j) micro-slice then a (i + 1, j + 1) micro-slice.A problem of transmission would mean that c 1 i can be followed by c 2 j+1 , and c 2 j by c 1 i+1 .A problem of transmission also assumes that we transmit something, hence we don't consider buffer micro-slices: necessarily c 1 i = c 2 j and c 1 i+1 = c 2 j+1 .Then we would contradict assumption (iv) "no cross-bridge" (which was assumed precisely to prevent this case).
As a consequence of all this, every M micro-slices starting with a buffer micro-slice, horizontally successive coding micro-slices encode exactly one element of τ , since there is one single coding zone and the coded tile is correctly transmitted.In the end, we proved that if we were able to find such C 1 and C 2 complying with condition C, they would be enough to build the construction we desire: a full shift on N elements.Then, to encode only configurations that are valid in W , we forbid the following additional vertical patterns: the code meso-slices that would contain both the main-coded kth tile and the side-coded lth tile if tile k cannot be horizontally followed by tile l in W ; and the vertical succession of two ordered macro-slices that would contain code meso-slices with two main-coded tiles that cannot be vertically successive in W .With this, we proved Proposition 9.

Proof of Theorem 6 for one strongly connected component
We suppose that H ⊂ A Z is a one-dimensional nearest-neighbor SFT such that its Rauzy graph does not verify condition D and is made of only one SCC.
Note that G(H), since it does not verify condition D, contains at least one loopless vertex, and one unidirectional edge.
The idea is to divide the possible graphs into various cases.This way, one has a standard procedure to find convenient C 1 and C 2 inside any graph to perform the generic construction.Of course, for some specific cases, we won't meet condition C even if H does not verify condition D. However, we will punctually adapt the generic construction to these specificities.new classes (W i ) i∈I , with some elements of S 3 that possibly appear in several of these.Let c be any vertex in S 3 that appears at least twice with the least difference of indices between two classes where it appears; say c ∈ W i and c ∈ W i+k .Since S is state-split, all elements in W i+1 are exactly the elements of S 3 to which c leads.But it is the same for W i+k+1 .Hence W i+1 = W i+k+1 .From this we deduce that W i = W i+k for any i, using the fact that indices are modulo |I|.Since k is the smallest possible distance between classes having a common element, classes from (W i ) i∈{0,...,k−1} are all disjoint; and they obviously contain all vertices from S 3 .Now simply consider these classes W 0 to W k−1 : you get the proof that S 3 is state-split.

Perspectives
Nearest-neighbor conditions are strong constraints, hence it is rather coherent that apart from some very simple graphs the undecidability of DP H is systematic.Investigation has begun about non-nearest-neighbor constraints, for which there seem to be more graphs with a decidable Domino Problem, this set of graphs possibly being non-recursive.For instance, the graph below is of decidable Domino Problem.
Basic depiction of sync parts and coding parts that represent tiles of W (not to scale; actually unrealizable)Improved construction: we encode vertically the horizontal restrictions between tiles of W .A tile of W (here T2,1) is represented in bold.
C 1 and C 2 (in red) have a good pair (i, j).

C 1 (
b) C 1 and C 2 (in red) have no good pair.(c)A cycle with uniform shortcuts (in green).

C 2 C 1 (
d) A cross-bridge (in green) between cycles C 1 and C 2 .
An attractive vertex t and a repulsive vertex p.

Figure 2
Figure 2 Cases of compliance or not with elements of Condition C.
Columns allowed, for (i, j) in the orbit of a good pair.Herec 1 i−3 = c 2 j−3 and c 1 i−2 = c 2 j−2 ,forming buffers in the code meso-tile. border Faulty alignment of adjacent columns.

Figure 4
Figure 4 Some Rauzy graph and several associated code meso-slices for |τ | = 3.Here are horizontally successively encoded τ3, τ1, τ2 and τ2, the number being indicated by the location of the line of c's.
be to generalize these results to Z d : we fix restrictions on a Z k -SFT with k < d and look at the consequent decidability for Z d -SFTs.It is immediate that if d − k ≥ 2 then we can reduce to DP (Z 2 ) so this new problem is always undecidable.However, the d − k = 1 case -that is, fixing a hyperplane -is still open.

2 0 26:6 Domino Problem Under Horizontal Constraints
P can also be horizontally juxtaposed with itself (without overlap).Indeed, one line of P uses only elements of one SCC of H (since elements of two different SCCs cannot be juxtaposed horizontally, and we banned transient elements).Since L is a multiple of the length of all cycle classes, the first element in a given line can follow the last element in the same line.Hence all lines of P can be juxtaposed with themselves.
G(H) has state-split cycle type SCCs: let L be the LCM of the number of V i s in each component.If there is no rectangle of size L × M (|A| LM + 1) (width × height) respecting local rules of X H,V and containing no transient element, then answer NO.Indeed, any configuration in X H,V contains valid rectangles as large as we want that do not contain S TA C S 2 0 transient elements.If there is such a rectangle R, then by the pigeonhole principle it contains at least twice the same rectangle R of size L × M .To simplify the writing, we assume that the rectangle that repeats is the one of coordinates[1, L] × [1, M ] inside R where [1, L] and [1, M ] are intervals of integers, and that it can be found again with coordinates [1, L] × [k, k + M − 1].Else, we simply truncate a part of R so that it becomes true.Define P := R| [1,L]×[1,k+M −1].Since V has forbidden patterns of size at most M , and since R respects our local rules and begins and ends with R , P can be vertically juxtaposed with itself (overlapping on R ).As a conclusion, P is a valid patch that can tile Z 2 periodically.Therefore, X H,V is nonempty; return YES.If G(H) has symmetric type SCCs the construction is similar, but this time build a rectangle R of size 2 × M (|A| 2M + 1).Either we cannot find one and return NO; or we can find one and from it extract a patch that tiles the plane periodically and return YES.

Table 1
Table of the main cases, each of them illustrated with an example (the C 2 on which we perform the generic construction is in red).