Though it was not discussed in this thread, we (me & Ilkka Törmä) learned on Discord that people are also interested in whether there exists a finite configuration which admits a Game of Life -preimage, but does not admit a finite one. The answer is "yes", we proved this quite soon after our previous Game of Life paper. To see the pattern, called the American Dream, evolve this configuration one step and discard the topmost row.
Code:
Select all
x = 38, y = 71, rule = Life
bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbbbbbbbb$bbbbAbbbbbAbbbAbAbAbAbbbAbAbAbbbbbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbbbbbb$bbbbbAbbAbbbAbbbAbbbAbAbAbAbAAbbbAbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbAbbbAbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAAAAAbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAAbAAbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbbAAAAbbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAAbbbAbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAbAAbAbbbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbAbbAbAbAbbbb$bbbbbbbbAbAbAbAbbbAbbbAbbbbbAbAAAbbbbb$bbbbbbbbAbbbAbbbAbbbAbAbAbAAAAAbAAbbbb$bbbbbbbbbbAbbbAbAbAbAbbbAbbbAbAAAAbbbb$bbbbbbbAAbbAbAbbbbbbbbbbbAbbbbAAAbbbbb$bbbbbbAbbbAbbbbAAbAAbAAAbAbbAbbAAbbbbb$bbbbbbbbAbbbbAAbbbAAbAAbbbbAAAbAAAbbbb$bbbbbbbAbAAAbbbbAbbbAbbbbbAbAbbbAAbbbb$bbbbbbbbbbAbbAbbAbbbbbbAAAbbbbbbAbbbbb$bbbbbbAbAbbbAbAAbAAAAbbbAbAbAbAbAAbbbb$bbbbbbbbAbbAAbAbAbbbAAbbbbbbAbAbAAbbbb$bbbbbbbbAAbAbAbbAbbbbAbAAAbAAAAAAbbbbb$bbbbbbbAAAbbAbbbbAbAAbbAbbbbbAbAbAbbbb$bbbbAbAbAAbAAbAAbAAbbbAbbAbbbAbAbbbbbb$bbbbbbbbbAAAAAAAAbbbbbbbbbbbbbbbbAbbbb$bbbbAbAbAbAAbbAAbAbAbbbbbbbAbbbbbbbbbb$bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb$bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb$bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb$bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb$bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb$
The two rows of garbage are expected, since otherwise we would have a finite-support preimage configuration, which I'm claiming does not exist. To get an infinite support preimage configuration, just extend the top three rows upward periodically. Note that there are many preimages for this configuration, this one was produced by the PicoSAT solver with the constraint that the bottom, left and right borders should be zero. We did not clean up any obvious "garbage". What matters is the beam you see on top: we prove that every preimage has such an infinite beam.
The proof has two parts. The first one is human-checkable, let's start with that: Consider the pattern
Code: Select all
0101010100010001000
0100010001000101010
which you can see on the left side of the topmost two rows, in the shown preimage of the American Dream. There are a few extra 1s but you can just ignore those. This pattern contains the subpattern
This pattern has the following property: if you want to extend this upwards by one row of the same length so that the middle part maps to zeroes in the Game of Life local rule, then the
only possible extension is actually 0001000. To see this, we perform a simple case analysis: suppose the extension is
Since the leftmost 1 on the top row must map to 0, we must have a+b+c = 0 or a+b+c = 3. If a+b+c = 3, then we have the situation
and now the central 1, which should map to 0 as well, forces d = e = 0:
Now the rightmost 1 on the top row forces f = g = 0, and if you look carefully you see that we have introduced a 1 in the image! This forces a = b = c = 0, and symmetrically we must have e = f = g = 0. If we also put d = 0, then we introduce a 1 in the image, so in fact d = 1.
We conclude that the extension looks like this:
Code: Select all
0001000************
0101010100010001000
0100010001000101010
Now you can check that if we are to map everything here to 0, then we can deterministically deduce the bits from left to right, e.g. the leftmost * must be a 1 because there is a 0 seeing exactly three neighbors now, so we must add a fourth, and so forth.
Code: Select all
0001000101010100010
0101010100010001000
0100010001000101010
This turns out to be the natural three-periodic extension of the last pattern where each column of 0s continues with 0s, and columns with 1s have exactly two 1s in every contiguous segment of length three. We see that the same subpattern
appears in this resulting pair of rows, so we can fill the cells above it, and then fill the remaining cells by simple deterministic rules (this extend both left and right). This forces the next row to again be the 3-periodic continuation
Code: Select all
0100010001000101010
0001000101010100010
0101010100010001000
We now see the pattern on the right, so the argument applies again. That gets us where we started, so the same logic actually forces an infinite 3-periodic column of 1s.
This idea appeared already in our previous paper
https://arxiv.org/abs/1912.00692. The proof was discovered using automata theory: The set Lₖ of (finite subwords of) bi-infinite words, which can be extended upwards by k steps so that GoL maps the entire strip to 0, is a regular language for any fixed k. You can easily write a nondeterministic finite-state automaton for it, and for small k you can determinize and minimize it with ease.
Similarly, for any fixed m the set Lᵐ of (finite subwords of) bi-infinite words, which can be extended upwards by m steps so that GoL maps the entire strip to 0
and the top two rows contain only zeroes, is also regular language. We experimented with this and observed that L₃ contains words which do not seem to be in Lᵐ for any m, meaning that they force non-zero continuations upwards. We simply minimized this automaton, took the smallest word in the difference, and worked out a proof on the blackboard.
Of course, the question is why this particular pattern appears on the top row in preimages of the American Dream. We have no human proof for this, we checked it by a SAT solver. We have not spent much effort trying to figure out how this works, not because we are not interested, but because we have many much simpler patterns (with only a few cells) whose forcing properties baffle us despite a lot of work. Thus, you simply have to trust that we encoded this correctly to a SAT solver, and that it gave a correct proof. (SAT solvers can produce proof certificates which are easy to check, but the encoding we use is a much more likely source of bugs, so that does not help.) We have checked this pattern several times, you can check it independently if you like. (Actually the present pattern was minimized a bit for this post, and the result has not been checked as carefully as the original, but hopefully no mistake was introduced.)
One may also wonder how this was found. I will not explain the search strategy in detail, since I am not even sure what the precise algorithm was when this was found (it was a long time ago, and the search program has evolved). We are planning to publish our search programs at some point, for now I'll outline the high level idea of the search program that found this one.
So, we want to find a pattern whose preimages all have a particular pattern in some fixed position, let's say a subpattern P should appear in the finite domain D ⊆ ℤ². We can think of the SAT solver as an oracle that quickly (not
super quickly, but definitely in less than a second) gives us a preimage for a given pattern Q, or tells us that one does not exist. It is easy to make it enumerate all possible restrictions of preimages in a particular area, or to have it find preimages under some additional restrictions. The first idea is to start with a trivial pattern as Q, compute all the possible things you can see in the domain D in the preimages, and then start extending the pattern Q (by increasing its domain cell by cell and picking a bit value there) so that the number of restrictions of preimages to D decreases at a maximal rate, of course under the condition that you never drop the pattern P you want to have in the end.
Here we run into our first and very obvious problem: For the pattern we are forcing, the domain D is quite large with 38 elements, so initially we expect to have about 2³⁸ preimage restrictions. That's a lot of calls to a SAT solver! So we split D into smaller (possibly overlapping) pieces D = ∪ᵢ Dᵢ, and we only keep track of what you can see in the restrictions of preimages to the individual sets Dᵢ. Once each Dᵢ can only contain the restriction P|Dᵢ in each preimage of Q, we are of course done. You could even just just take Dᵢ = {vᵢ}$ where vᵢ are an enumeration of D, but then we have less information about the precise things that have been forced so far. We used some reasonable-seeming compromise, without any particular theoretical basis.
The next problem is perhaps more subtle. If we are always
extending the existing pattern, we may run into a problem that will never go away. Namely, we can run into a
diamond: Suppose there are two preimages for our present pattern Q, say R₁ and R₂, and suppose that R₁ happens to be the only preimage that actually gives the correct pattern in one of the domain pieces Dᵢ. Then we must clearly never erase the preimage R₁, i.e. every extension we make to Q must allow a corresponding extension to R₁. Now, the issue that R₂ might have a wrong restriction R₂|Dⱼ in one of the domain pieces Dⱼ, yet have the exact same contents as R₁ on the boundary of the present domain of Q. So if you now extend Q, then because you cannot erase the unique preimage R₁ with R₁|Dᵢ = P|Dᵢ, you clearly cannot erase the preimage R₂ either (since the boundary values are the same), and this means we will never get rid of (extensions of) R₂. Luckily, it turns out that diamonds can be found by the SAT solver just easily as preimages, we literally ask one to give us a pair of preimages that share the same values on the border, but differ in a relevant area. They have no problem figuring out whether that can be done at this pattern size. When we encounter diamonds, we simply backtrack. There are a few additional tricks, sometimes the configuration is modified randomly if it seems extensions do not help. And finally we ran an independent evolutionary search to extract the core pattern.
Using these ideas, the pattern is produced in a few hours of computation (on a laptop).