Structure of 3n+1 — The Collatz Map via Pair Decomposition

Readable with high-school math + binary arithmetic

§0 Background: The Collatz Conjecture

For any positive integer n, repeat the following:

"Every starting number eventually reaches 1." This is the Collatz conjecture. Posed in 1937, it remains unsolved after nearly 90 years.

Example: n = 27
27 → 82 → 41 → 124 → 62 → 31 → ... → peaks at 9232 → ... → reaches 1 (111 total steps)

The paper asks: What is the internal structure of 3n+1? Why is x=3 special?

§1 Zipper Structure: Splitting Numbers into 2-Bit Pairs

Every positive integer can be written in binary, then split into consecutive 2-bit pairs.

Example: n = 27
27 = 11011 (binary) → pad to even length → 011011

Split into pairs: (01) (10) (11)

Left bits of each pair (m4): 0, 1, 1011
Right bits of each pair (m6): 1, 0, 1101

The key idea is the zipper structure. Interleave m4 and m6 to reconstruct the original number:

m4 = 0_1_1_ = 0·1·1·0·1·1 = 011011 = 27 ✓
m6 = _1_0_1

A simpler illustration:

m4 only (left bits)
1 0 1 0 = 1010

m6 only (right bits)
0 1 0 1 = 0101

Zip them together
1111 = 1111

1010 + 0101 = 1111

Any number can be split into two bit-strings m4 and m6, and zipped back together. This is the foundation of pair decomposition.

§2 Four Pair Types and GPK

A 2-bit pair has exactly 4 possible values. Each one gets a name:

PairNameMeaningRole in addition
(0, 0)K (Kill) Both bits 0Stops the carry
(0, 1)P (Propagate) One bit is 1Passes the carry through
(1, 0)P (Propagate) One bit is 1Passes the carry through
(1, 1)G (Generate) Both bits 1Creates a new carry

This G/P/K classification comes from carry-lookahead adder design, standard in computer science since the 1960s.

Example: n = 27 = 011011
Pair sequence: (0,1), (1,0), (1,1)
GPK: P, P, G

→ You can read the GPK just by looking at the pairs. No computation needed.

§3 Inside 3n+1: Table Lookup Instead of Multiplication

3n+1 = 2n + n + 1. Here 2n is just n shifted left by 1 bit. So:

3n + 1 = (n shifted left by 1 bit) + (n) + (1)

This addition can be broken down pair by pair. At each pair position, "which bits are added" is fixed, and the result is one of only 16 possibilities.

Why 16?

What is "state"?

To look up the table, you need the input pair plus a state. The state is a pair of two values:

Labelcinai-1Meaning
S000No carry in, previous input pair's upper bit = 0
S101No carry in, previous input pair's upper bit = 1
S210Carry in, previous input pair's upper bit = 0
S311Carry in, previous input pair's upper bit = 1

cin = carry coming in from the previous pair (carry in). ai-1 = the "a" of the previous input pair (a, b). cout = carry going out from this pair (carry out) → becomes the next pair's cin.

Initial state = S2 (+1 provides carry in; no previous pair so upper bit = 0).
Next state is determined by the carry out and the current input pair's upper bit. The table gives it automatically.

Writing out all 16 cases gives Table 5.1 — the core of the paper.

Pair ordering: from here on, pairs are listed ones-place-first (LSB order)

When writing a binary number, we normally put the largest digit on the left (just like decimal). This is called MSB order (Most Significant Bit first).
The reverse — starting from the ones place (smallest digit) — is called LSB order (Least Significant Bit first).

In §1–2, we used the human-readable MSB order:
27 = 011011(01)(10)(11) → GPK = P, P, G

But in addition, carries propagate from the ones place upward — exactly why you start from the rightmost column in long addition. The scan (table lookup) therefore processes the ones-place pair first.

From here on, all pair sequences are listed in LSB order (pair 0 = ones-place pair).
The same 27 becomes (11)(10)(01) = G, P, P. Note this is the reverse of §1–2's P, P, G.
Example: n = 71 → n' = 107 by table lookup only
71 = 01000111₂ → pairs (LSB order): (1,1), (0,1), (0,0), (0,1)
GPK: G, P, K, P

Initial state = S2

pair 0: G(1,1) + S2 → Case 15 → output P(1,0), carry=1 → next: S3 ← G destroyed, carry generated
pair 1: P(0,1) + S3 → Case 8 → output P(0,1), carry=1 → next: S2 ← carry passes through
pair 2: K(0,0) + S2 → Case 3 → output P(0,1), carry=0 → next: S0 ← K stops the carry
pair 3: P(0,1) + S0 → Case 5 → output G(1,1), carry=0 ← P→G creation! does not chain

Output = 11010110₂ = 214 → trailing zero count = 1 → d=1 → 214 ÷ 2 = 107

Check: (3×71+1)/2 = 214/2 = 107 ✓
No multiplication. No addition. Just 4 table lookups.

From here on, one step means "odd n → odd n'" (combining 3n+1 and ÷2d into a single step).

Table 5.1: Complete scan transition table for 3n+1

This is the entire table. Every claim in this summary can be verified by reading it.

#InputGPK cinai-1 cout OutputOut GPK Note
1(0,0)K000(0,0)K
2(0,0)K010(0,1)P
3(0,0)K100(0,1)P
4(0,0)K110(1,0)PK→G nowhere
5(0,1)P000(1,1)GP→G, cout=0
6(0,1)P011(0,0)K
7(0,1)P101(0,0)K
8(0,1)P111(0,1)P
9(1,0)P000(1,0)P
10(1,0)P010(1,1)GP→G, cout=0
11(1,0)P100(1,1)GP→G, cout=0
12(1,0)P111(0,0)K
13(1,1)G001(0,1)PG→P, cout=1
14(1,1)G011(1,0)PG→P, cout=1
15(1,1)G101(1,0)PG→P, cout=1
16(1,1)G111(1,1)GG→G, cout=1

Read directly from this table:
Cases 13–16: G input → cout=1 in all 4 cases (unconditional carry generation)
Cases 1–4: K input → cout=0 in all 4 cases, output is never G (K→G impossible)
Cases 5, 10, 11: P→G — but cout=0 in all 3 (creation does not chain)

§4 Complete Flow: n → n'

n
Pair decomposition
GPK classification of each pair (just read it)
Table lookup via Table 5.1 (16 patterns)
Pair sequence of 3n+1
Count trailing zeros → determine d
÷ 2d (remove zeros)
Re-pair if d is odd (Table 5.2, re-reading the zipper)
n'
No external information needed. The bit pattern of n completely determines the bit pattern of n'.
GPK is not an "extra output" — it is an inherent attribute of each input pair. You just read it.

※ The flow diagram shows "n" and "n'" as integers, but the computation never needs to reconstruct the integer. The scan takes pairs in and puts pairs out. Division removes pairs and shifts boundaries. Re-pairing maps pairs to pairs. The next scan reads pairs again. The entire trajectory runs in pair form until it reaches 1. Zipping back to a number is a display operation for human readability, not part of the computation.

§5 3n+1 Is Completely "Closed"

Throughout the entire flow, pair types never leave these 4 kinds:

Input {K, P01, P10, G} Scan output {K, P01, P10, G} Re-pairing {K, P01, P10, G} n' {K, P01, P10, G}

"Closed" does not mean all 4 types appear every time. Each step may use a different subset. But a 5th type never appears. Feed n' back into the same table → get n''. Feed n'' in again → same table. The same 4 types and the same 16-row table, forever. That is closure.

Moreover, the following properties hold without exception:

PropertyFor 3n+1Meaning
G → carry output Always 1 (all 4 cases) G always generates a carry
K → carry output Always 0 (all 4 cases) K always kills the carry
Can K become G? Never Once K, never G again

"Always" and "never" are not figurative. All 16 table entries were checked: zero exceptions.

These are not "tendencies" or "probabilities." They are algebraic identities — true for every n, every bit length, every step.

§6 How Does 5n+1 Differ?

The same procedure builds a table for 5n+1 (= 4n + n + 1, shift = 2 bits). Comparing the two:

Property 3n+1 5n+1
Table size 16 rows (4 states × 4 inputs) 32 rows (8 states × 4 inputs)
G → carry always 1? Yes (all cases) No (one state gives 0)
K → carry always 0? Yes (all cases) No (one state gives 1)
K → G transition Impossible Possible (in 2 states)
Escape routes None Exist
Non-trivial cycles None (structurally excluded) Exist in 5n+1 (e.g. 13→33→83→13; other x unverified)

Both tables constructed and verified against 500 odd numbers each

The key point: Two tables built by the same procedure have qualitatively different content.
3n+1 has "no escape routes." 5n+1 has them.
This difference corresponds to the presence or absence of non-trivial cycles.

§7 Why "Closed" Means "No Escape"

What growth requires

For 3n+1 to make a number larger, division by 2 must happen only once (d=1). This occurs only when the lowest pair is G(1,1).

Why only G(1,1)? — The Syracuse function maps odd → odd, so the input n is always odd. The lowest bit is always 1, which means the lowest pair can only be P(0,1) or G(1,1) (K(0,0) and P(1,0) require the lowest bit to be 0, so they never appear as the lowest pair). With P(0,1), the result 3n+1 has at least two trailing zeros (d≥2, shrinks). With G(1,1), it has exactly one trailing zero (d=1, grows).

What happens when it grows

When the lowest pair is G(1,1), the table lookup (Case 15) produces:

The cause of growth (G) always produces the carry that destroys it. There is no table entry that avoids this.

Can destroyed G come back?

PathPossible?Property
K → G (revival from Kill) Impossible No K→G entry in all 16 rows
P → G (generation from Propagate) Possible (3 cases) But cout=0 — does not chain

Asymmetry between creation and destruction

G creation (P→G)G destruction (G→P)
ScaleOne at a timeCascades (destroys bridges too)
Carry0 (no ripple effect)1 (ripples outward)
FuelConsumes P-positions

Destruction cascades, but creation does not. This asymmetry is an algebraic fact read directly from the 16-row table.

Structural upper bound combining scan + re-pairing (net ≤ 0)

Reading Table 5.1 and Table 5.2 together, the net change of the leftmost G-block per step has a strict upper bound:

PhaseEffectBasis
Scan Leading G eliminated → −1 Table 5.1 (Lemma 5.1(b))
Re-pairing Tail extension at most +1 Table 5.2 (Lemma 5.6)
One-step total ≤ 0 All cases, no exceptions

This is a worst-case bound, not an average. max(X) ≤ 0, not E[X] < 0. No configuration yields net +1.

§7.5 Why Convergence to 1 Is Structurally Inevitable

§7 showed what happens within a single scan. But can re-pairing (Table 5.2) undo everything? Three points settle the question.

1. Re-pairing does not break closure

Re-pairing outputs the same 4 pair types (all 16 cases verifiable in Table 5.2). Scan → division → re-pairing → next scan: no 5th type ever appears. The table properties from §7 (G→cout=1, K→G impossible, P→G has cout=0) apply equally to n' after re-pairing.

2. Consecutive d=1 has an arithmetic ceiling (Corollary 5.3)

Independent of the tables, a purely arithmetic fact:

L consecutive d=1 steps require n ≡ 2L+1−1 (mod 2L+1),
i.e., the lowest L+1 bits of n must all be 1.

Since n has at most ⌊log2 n⌋ + 1 bits,
max consecutive d=1 ≤ ⌊log2 n⌋.

Growth (d=1) always stops after finitely many steps. This is an arithmetic fact, independent of GPK or the tables.

3. No escape inside a finite box

Since d=1 cannot persist, the trajectory cannot diverge (it is bounded). Closure ensures that the same tables and constraints apply wherever the trajectory goes (scale invariance). The only possible terminal behavior for a bounded trajectory in a closed, scale-invariant system is a cycle. For x=3, the only structurally admissible cycle is the fixed point n=1 (§8.4).

n=1 has pair P(0,1), d=2, n'=1. Fixed point.
The trajectory can temporarily grow large (e.g. n=27 peaks at 3077 among odd steps; the 9232 in §0 is the even value 3×3077+1). But since d=1 is unsustainable, divergence is impossible.

The paper's Proposition 5.4 provides a detailed derivation from table properties: leftmost G-block consumption (net ≤ 0), dimensional separation, episode structure. The three points above are the core of that conclusion.

Observed data: trajectory of n = 670,617,279

Below is an excerpt of the full 370-step trajectory (83 episodes) for n = 670,617,279. Red rows = pair₀ is G (d=1, growth). Blue rows = pair₀ ≠ G (d≥2, collapse). Horizontal lines mark episode boundaries.

steps 370
episodes 83
d=1 58%
peak 322,205,345,153
n
GPK (pair₀ = left edge)
670,617,279
GGGPPGKGKPGGGPP
1,005,925,919
GGPKPPGKPPGGGPG
1,508,888,879
GGPKPKPGGGPGPPPP
2,263,333,319
GPKGPPGPGPPGPPKP
3,394,999,979
GPPPPPPPGPPPPPKG
5,092,499,969
PKKKPKPPPPKPGGPKP
⋮ 39 steps ⋮
214,803,563,435
GPPPGKKPPPKPGKKKPKG
322,205,345,153
PKKPPPPPGGPGKPKKGPKP← peak
241,654,008,865
PKPKKGKPGKGPGKKPKPG
⋮ 74 steps ⋮
1,727,860,415
GGGPPGKKPGGGPPPP
2,591,790,623
GGPKPPPPGPGPPPPP
3,887,685,935
GGPKPKPPPPGPGPPG
5,831,528,903
GPKGPKPKPPPPGPPPP
8,747,293,355
GPPPPPPKPKPPPPKKP
13,120,940,033
PKKKKPPPPKPKPGKKG
⋮ 229 steps ⋮
287
GGPKP
431
GGPPP
647
GPKPP
971
GPKGG
1,457
PKGPPP
1,093
PPKPKP
205
PGKG
77
PGKP
29
PGP
11
GP
17
PKP
13
PG
5
PP
1
P
Show all 370 steps

Every red band (d=1 growth burst) terminates after finitely many steps, followed by a blue band (d≥2 collapse). This pattern repeats across all 83 episodes. The leading G is born, consumed, and collapses — while GPK strings shorten toward n=1. This is §7.5's argument made visible.

§8 Big Picture: Closure → Self-Destruction → No Escape

3n+1 = 2n + n + 1 (shift = 1 bit < pair width = 2 bits)
  └→ GPK classification determined by reading the pair alone (closure)
      └→ Carry behavior is state-independent
          ├→ G unconditionally generates carry
          │   └→ That carry destroys the G itself
          ├→ K unconditionally kills carry
          │   └→ K can never become G again
          └→ The engine of growth = the agent of its own destruction. No escape.

n=1 has pair (0,1)=P, d=2, n'=1. Fixed point. All other n are structurally unable to sustain any other cycle under these constraints.

For 5n+1, closure fails: G can avoid generating carry (escape route), and K can become G (revival). That is why 5n+1 has non-trivial cycles like 13→33→83→13.

§9 This Is Not a Probabilistic Argument

A common argument: "3n+1 shrinks on average because E[d] > log₂3." But that's probabilistic, so "maybe a trajectory gets unlucky and diverges" is a valid counter.

The paper's argument operates on a different level entirely:

Probabilistic claimThis paper's claim
Content "On average d is large, so it tends to shrink" "G unconditionally outputs carry = 1"
Counter "Variance could cause one-sided drift" → valid No variance. Every position, every n, every time.

Net ≤ 0: structural bound vs. probabilistic tendency

The distinction is especially clear for the G-block net change (§7):

Probabilistic argumentNet ≤ 0 (this paper)
Statement "On average, G decreases" "In all cases, leftmost G-block net ≤ 0 per step"
Formulation E[X] < 0 max(X) ≤ 0
Counter-example possible? Yes — variance allows outliers No — the maximum is already ≤ 0

Net ≤ 0 does not mean total G decreases monotonically. New G-blocks can be born (P→G), and ÷2d can remove non-G pairs, raising G density — even back to 100%. What net ≤ 0 guarantees is that each individual leftmost G-block has a finite lifetime: each d=1 run (growth burst) must end, and every burst is followed by d≥2 collapse.

Computational verification and structural description

Computational verification of the Collatz conjecture (e.g., confirming all trajectories up to 268) has made indispensable contributions — building confidence in the conjecture and confirming the absence of counterexamples. By its nature, however, each trajectory check is inductive verification within a finite space bounded by 1 on both ends, and extending it to all n faces an inherent barrier.

Table 5.1 sits at that layer. In just 16 rows it covers every pair position of every GPK sequence, depending on neither the length nor the content of the sequence. Where computational verification "confirms the fact for each individual n," the table "describes the structure common to all n." The two are not in opposition — they illuminate the same object from different layers.

Computational verification: "this particular n reached 1" (accumulation of individual facts).
Table construction: "for any n, at any pair position, G always produces carry" (description of structure).
The latter explains why the vast body of evidence accumulated by the former holds.

§10 Once the Table Is Built, the Conclusion Is Already Inside It

Once the scan table (Table 5.1, 16 rows) and re-pairing table (Table 5.2, 16 rows) are constructed:

What can be readHow
G → cout=1 (no exceptions)Read from the table
K → G is impossible (no exceptions)Read from the table
P → G has cout=0 (no exceptions)Read from the table
G-blocks cannot mergeRead from the table

The paper's Lemmas and Propositions are just verbalizations of what the tables already contain.

The paper's actual contribution is four things:
  1. Recognizing that 3n+1 can be completely described by a 16-row table
  2. Constructing that table
  3. Reading its properties (G always carries, K→G impossible, etc.)
  4. Comparing with 5n+1 to confirm "only 3n+1 is special"

Conclusion: It did nothing!

The structure was always there.

Afterword

In the process of drafting this summary, the moment I asked myself whether the generational turnover of G-blocks continues infinitely, I found myself slipping directly back into the quagmire of the Collatz conjecture. My lingering feeling that the structural explanation was "not yet sufficient" was, in fact, a sign that my framework of perception had already shifted.

I realized there is a cognitive tendency in humans to revert to "individual trajectories" even when presented with a structurally closed argument. This very process of trying to verify "if it's truly so" may actually be what fuels the complexity of the problem. For those with a strong mathematical intuition, this is an irresistible trap — the ability to verify leads to the desire to do so, which reveals the trajectory, which in turn compels one to follow it. The ability itself becomes the snare. Even as I wrote this summary, my mind was repeatedly pulled back into the depths of these trajectories.

Verification scripts: dfst_final.py, dfst_properties.py
Structural comparison data: dfst_comparison_record.md
Source paper: "Pair Predicate Decomposition of Collatz-type Maps (xn+1)/2d" v5.1 (February 2026)