Abstract
The problem can be viewed, starting with the binary form for any , as a string of “runs” of 1s and 0s, using methodology introduced by Błażewicz and Pettorossi in 1983. A simple system of two unary operators rewrites the length of each run, so that each new string represents the next odd integer on the path. This approach enables the conjecture to be recast as two assertions. (I) Every odd lies on a distinct trajectory between two Mersenne numbers () or their equivalents, in the sense that every integer of the form () with being odd is equivalent to because both yield the same successor. (II) If for any , ; that is, the function expressed as a map of 's is monotonically decreasing, thereby ensuring that the function terminates for every integer.
1. Introduction
The problem is also known under various other names including Collatz’s problem, Ulam’s problem, and the Syracuse problem. It considers the following transformation of integers: The conjecture states that, starting with any integer (which for our purposes we will take as positive, although there is a negative version), will eventually reach 1 under iteration of the function. Thereafter it will enter the short cycle 4, 2, 1. The conjecture specifies that there are no other cycles and also that the function is not divergent. Another commonly used notation is for the value after iterations.
The conjecture has been verified up to 26 × 255 as of April 2010 in independent computations by Oliveira e Silva [1] and Roosendaal [2].
In this paper we will use another version of the problem such that but does not divide it.
This version iterates directly from one odd integer to another, and the conjecture states that for some finite value of . However, this form is less often used by researchers because of the difficulty of determining a priori the values of .
For a comprehensive review of the research to date, see Lagarias’ annotated bibliography and generalizations of the problem [3–5] and Chamberland’s 2003 update [6]. Wirsching’s lecture notes [7] consider the dynamical system generated by the function. Shallit [8] treats the function from the viewpoint of finite automata.
Our approach builds on Błażewicz and Pettorossi’s 1983 paper [9] in which they introduce the notion of viewing the binary representation as an alternating series of “runs” of 1s and 0s. These can be rewritten using two unary operators and include appending a carry 1 as necessary to the output string to achieve the iterations correctly according to the algorithm.
Clearly the binary notation can be expressed as lengths of runs. For example, we express as . We point out that this particular starting point is especially interesting because—as noted by several writers—it generates one of two of the longest trajectories for values of . As Table 1 shows, 41 steps are required to reach 1 in terms of odd integers. The other long trajectory in that range is for .
We will dispense with explicitly showing 1s and 0s unless otherwise indicated because, as we will show, the same rewriting rules apply to both. Hence becomes , and all positive odd integers are represented in this way, the only constraint being that the string is of odd length. Even values of appear as trailing 0s and are simply deleted in the rewriting process.
2. The String Rewriting System (SRS) for the Problem
We will now list the String Rewriting System (SRS) process specific to the problem and then prove that it replicates the algorithm for odd integers. Since the rewriting will involve deletions as well as additions, for convenience, we will invert the normal sequence, so that deletions occur on the left (least significant digits) and additions of carry 1s at right (most significant digits).(i)At the start of each iteration, we delete any leading 1s in pairs. This action corresponds to the removal of factors whenever is odd, which has no impact on the calculation.(ii)Reset the output string to a null string.(iii)Apply the following rewriting rules, one integer at a time, and concatenate to the output string, using the unary operators and . Every iteration starts with : Note that, while in general we concatenate to the output string, the + sign (first rule) requires that we add 1 to the last integer on the output string. If there is no previous integer (output string is empty), then the 1 is simply discarded.
Proof. For this proof only, we will revert to the usual binary representation (least significant digits at right) and perform the calculation by adding a 1 to the right of and add . We summarize some findings of Błażewicz and Pettorossi as follows.(i)A run of 1s is translated by the function into 00, and a run of 0s changes to 11, so long as the length of satisfies . For example, runs of are shown pictorially as follows; the operation 5 is on the left and 5 is on the right: (2.2)(ii)An alternating series of 1 and 0 results in a string of 0s (2.3) this corresponds to a succession of () factors which can be removed if they occur at right.(iii)Single 0s or 1s disappear into the structures of their neighbors (2.4)(iv)It is easily seen that the rewriting rules (ii) and (iii) maintain the parity of the string for operator and change it to even for . Rule 1 has no effect on the parity. Hence, if the output string (which always starts with ) ends with , we must add a 1 (the carry bit) to it to preserve the requirement that its length be odd.Rule (ii) can similarly be proved. Using the above, one can confirm that the rewriting rules (2.1) satisfy all the requirements of the algorithm.
The above SRS has some useful properties.
A Mersenne number () which in binary is a row of 1s is represented in our notation simply as .
It is easy to see that every integer of the form () with being odd is equivalent to because both yield the same successor. In binary, the string for an odd integer is followed by a 0 and a 1 to produce (). In our notation this translates even more simply as a pair of leading 1s. Given any odd integer one can write or immediately recognize an infinite number of equivalents simply by adding (or removing) pairs of 1s. Only adding 1s in pairs will maintain the correct parity of the string.
3. The Problem and Mersenne Numbers
It is rather surprising that the Mersenne numbers should play a helpful role in the problem because—as several writers have noted, for example, Kuttler [10]—it is easy to show that ; that is, the values appear to grow quickly (we caution here that Kuttler uses a variant of our definition (1.1) which results in a different set of iterations). However, if we complete the numerical evidence for small values of (≤20), an interesting structure emerges. Figure 1 shows each vertex containing the Mersenne number and each edge representing the trajectory from that Mersenne number to the next. For example, the trajectory for is largely represented by the single edge between and , that is, and , where the latter is the equivalent of which cannot have a predecessor since it is 0 (). Note that all the values of in Figure 1 are monotonically decreasing in the direction of the arrows.
Define as usual the stopping time of , denoted by , as being the least such that . It is easy to verify, as in Garner [11], the following stopping times; the have been adjusted to count odd integers only:
Equivalently (see [12]), unless is congruent mod 256 one of the following: Clearly we can always find an with arbitrarily long stopping time . In our run notation, this means simply choosing an integer of the form . So stopping times alone will not suffice to resolve the problem. Looking at Figure 1 suggests that we consider the problem as a combination of two propositions: one for predecessors and another for successors.(i)First we must show that every odd lies on the map described by Figure 1, either on the path between two Mersenne numbers () or as the Mersenne numbers themselves. While we cannot predict where a particular will fall on the map, we can say that this corresponds to the hypothesis that every or an equivalent must have a Mersenne number as a predecessor. This condition is met if we can always find a valid predecessor of smaller than ; that is, , identical to the stopping time condition except in the reverse direction. Note that, if is 0 (), we can convert it to an equivalent (in fact an infinite number of them) which has a valid predecessor. (ii)The second proposition is that if for any , ; that is, the function expressed as a map of ’s is monotonically decreasing, thereby ensuring that the function terminates for every integer. Note that we need only to concern ourselves here with Mersenne numbers, not all the points in between.
Hence a counterexample must satisfy for all ’s (positive and negative); that is, must be a minimum with respect to its successor trajectory as well as its infinite number of predecessor paths.
It remains to be seen whether the String Rewriting System (SRS) approach can lead to further advances in the problem.