/machines/1RB0LC_1RC0RA_1RD0RF_0LE---_1LB1LA_1LD1RA/proof.md · raw

1RB0LC_1RC0RA_1RD0RF_0LE---_1LB1LA_1LD1RA: never halts (informal proof, STUCK)

0. What the machine does

The tape is one bouncer that runs between two growing regions.

To its right are Y, a run (010)^d and a list Z of pending chunks. - Each round trip sweeps right across Y to the (010)-run, eats two (010) units, and sweeps back. - Each trip takes (10)^2 off P, or, at the blank edge, extends Y to the left. - The run that the eaten units feed grows by 2. - When d runs out, the next chunk merges into Y, or (with d = 1) is eaten. - When P runs out at a wall, one of two things happens: - the bouncer pushes its whole Y as a new chunk and restarts on the wall (Push); - or it absorbs walls by a binary carry (Absorb). - When d and Z are both gone (a "right end"), the rightmost (10)^ak-run feeds a Jacobsthal staircase: busycoq's FractalType4 TM5 lemma P. The staircase lays out the next (010)^d-run, and the old Y becomes the new wall stack.

Halting needs the right sweep to meet the pattern B> 0 0 1 (§6). In the grammar this happens only when an odd (10)-run inside a chunk gets eaten. A parity invariant excludes that, but the invariant also has to carry linear facts that link the walls to the staircase level (§5).

1. Rule table

      0     1
A    1RB   0LC
B    1RC   0RA
C    1RD   0RF
D    0LE   ---
E    1LB   1LA
F    1LD   1RA

This is FractalType4.v Module TM5 (1RB0RE_1RC0RF_0LD---_1LA1LE_1RA0LB_1LC1RE) with TM5's states A,B,C,D,E,F renamed to B,C,D,E,A,F (check A1). TM5 starts in its own A, which is our B. So TM5 is this table started in another state. Its lemmas Inc1, Incs1, P, P_S and P_S' carry over verbatim after the renaming (checks C1-C3).

2. Notation and families

Words are written left to right. Two head markers are used: - <S: the head is in state S, reading the last cell of the word to its left; - S>: the head is in state S, reading the first cell of the word to its right.

Block names: - (10): pair; - (011010): six-block; - (010): triple; - (101): wall cell triple.

Staircase levels. S_0 = 0 and S_{j+1} = 2 S_j + 3 if S_j is even, 2 S_j + 2 if S_j is odd. This gives 0, 3, 8, 19, 40, 83, 168, 339, 680, 1363, ... For n ≥ 1, Sof(n) is the largest level ≤ n − 1.

Active word. Y = (10)^a0 (011010)^b1 (10)^a1 ... (011010)^bk (10)^ak, with k ≥ 0. It is written Y = [a0, b1, a1, ..., bk, ak]. B = Σ b_i and A = Σ a_i. A "segment-less" Y is [a].

Chunk. C = (011010)^B1 (10)^A1 ... (011010)^Bm (10)^Am (010)^c. Chunks are listed nearest first in Z. A chunk with c = 0 is glued to the next one. Zero inner runs glue their neighbours ((011010)^b (10)^0 (011010)^b' = (011010)^(b+b')). Both are tape identities.

Walls. X = (10)^p1 (101)^q1 ... (10)^pm (101)^qm, listed far to near. An interior wall with p = 0 is glued to its left neighbour (normX).

Families. Two kinds of left-turn frame:

P-mode  F_P(X, P, Y, d, Z) := 0^inf X (10)^P <A Y (010)^d Z 0^inf      (a0 = 1, P >= 1)
edge    F_E(Y, d, Z)       := 0^inf <A Y (010)^d Z 0^inf

Virtual frames. These are P-mode frames with P ∈ {0, 1} next to a wall. They are not left-turn frames of the machine: the cell two left of the head is a wall cell. They occur only inside composite rules (§4.3):

V1 := 0^inf X (10)^p (101)^q (10)^1 <A Y (010)^d Z 0^inf
V0 := 0^inf X (10)^p (101)^q <A Y (010)^d Z 0^inf

Right end. A frame with d = 0 and Z empty, written R = (mode, X, P, Y). Three kinds exist in the rule set: - an E hub 0^inf <A Y 0^inf; - a P-mode right end without walls, 0^inf (10)^P <A Y 0^inf; - a P-mode right end with walls, 0^inf X (10)^P <A Y 0^inf, X nonempty.

The rules of §4.4 handle all three. The third kind does occur: from long Level hubs (e.g. [35,13,30,14,18,2,40]) and on the short chain from the E hub [79,12,32] (§8 G1). The invariant of §5 admits only the first two kinds (clause H0), so "right ends in the invariant have no walls" is a clause to be preserved, not a fact about the rules.

Base. K0 := F_E([85, 7, 46], 0, -) = 0^inf <A (10)^85 (011010)^7 (10)^46 0^inf, reached at step 46,734 (§7).

3. Machine-level and bouncer-level rules

3.1 Shift rules (L0; each proved by es on one block, then ind n)

# rule steps check
R1 A> (01)^n -> (10)^n A> 2n B1
R2 B> (10)^n -> (01)^n B> 2n B1
R3 B> (011010)^n -> (101101)^n B> 6n B1
R4 (01)^n <A -> <A (10)^n 4n B1
R5 (110110)^n <E -> <E (011010)^n 14n B1
R6 (101101)^n <A -> <A (100110)^n 14n B1
T1 x B> 010 010 ->(5) x <A 101010 (B0 C1 F0 D0 E1; D reads the 0 that C1 wrote) 5 B2

Right sweep. From a left-turn frame, A0 writes 1 and moves right. The sweep then runs R1 over (10)^a0, takes A0 at the last 0, then alternates R3 and R2 over Y. The swept word has the same exponents and reads (10)^a0 (110110)^b1 (10)^a1 ... (10)^ak 1, shifted one cell left.

Right turn and left sweep. The turn T1 converts two triples. The left sweep (R4, R5, R6 and boundary gadgets) restores the six-blocks.

3.2 Trip lemmas (L1; proof: right sweep, T1, left sweep, then left turn; checks D1/D2 test that the target is the next left-turn frame and that the step count is exact)

# statement domain steps per trip
BounceE F_E([a0,b1,...,ak], d+2, Z) -> F_E([a0+2,b1,...,ak+2], d, Z) any a0 ≥ 1, b_i ≥ 1, ak ≥ 0, d ≥ 0, any Z 10 + 20B + 6A
BounceP F_P(X, P+2, [1,b1,M,ak], d+2, Z) -> F_P(X, P, [1,b1+1,M,ak+2], d, Z) P ≥ 2, any X, M, Z 22 + 20B + 6(A − 1)

3.3 Staircase (TM5 lemmas, renamed; checks C1-C4)

# statement proof
Inc1 l (01)^(2+a) <B 1 (011010)^b (10)^c 0 (100)^(2+d) 0^inf -> l (01)^a <B 1 (011010)^(1+b) (10)^(2+c) 0 (100)^d 0^inf es (TM5 Inc1)
Incs1 n-fold Inc1 ind n Inc1
P(a) l (01)^a B> 0^inf -->* l <C 01 (010)^a 0^inf (l never read) P(0), P(3) by es; P_S: P(1+2b) → P(4+4b); P_S': P(2+2b) → P(7+4b), verbatim from TM5
Start l (01)^m <C 01 (010)^S 0^inf ->(9) l 0 (10)^(m-2) <A (10)(011010)(010)^(S-1) 0^inf m ≥ 2, es

4. Macro rules (exact transitions between frames)

Every rule is an exact run of the machine (no halting, ≥ 1 step). It is a composite of §3 lemmas and finite gadgets.

How the rules are checked: - All of them at once, as scripts/macro_sim3.py step (the executable form of this section): E1 runs every frame of a small grammar box, and E2 runs random frames. In each case the exact run must visit the next ≥ 3 macro frames in order. - Per family, by earlier stages: notes.md, val_corner*/val_hubsweep/val_events2 and others, 1,500+ instances in total.

Rules marked (k) apply k-fold. "unruled" means that no rule applies. The invariant must exclude every such frame (§5, §8).

4.1 Edge mode F_E(Y, d, Z)

rule when result
BounceE (k = ⌊d/2⌋) d ≥ 2 a0 + 2k, ak + 2k, d − 2k; a segment-less Y = [a] gets a + 4k
RightEndE d = 1, Z empty a0 + 2, ak + 1, d = 0 (segment-less: a + 3)
EatChunkE d = 1, Z = C Z', C with every A_i even, every run ≥ 1 a0 + 4B + 2A, ak + B, d = c + 1, Z = Z' (segment-less: a + 5B + 2A)
EatLastE d = 1, Z = one chunk with c = 0, last (10)-run odd, the others even a0 + 4B + 2A + 2, ak + B, d = 0, Z empty
(unruled) d = 1 and the first chunk has an odd (10)-run that is not its last before 0^inf; or a chunk with an empty inner run see §4.5, rows U1-U2

4.2 P-mode F_P(X, P, [1, b1, M, ak], d, Z)

rule when result
BounceP (k = min(⌊(P−2)/2⌋, ⌊d/2⌋)) k ≥ 1 P − 2k, b1 + k, ak + 2k, d − 2k
BounceP31 P = 3, d ≥ 2, X nonempty P = 1 (V1), b1 + 1, ak + 2, d − 2; continue in §4.3
BounceP31e P = 3, d ≥ 2, X empty standard P = 1 frame at the edge
ToEdge1 P = 1, X empty, d ≥ 2 edge, a0 = 5, ak + 2, d − 2
ToEdge2 P = 2, X empty, d ≥ 2 edge, a0 = 1, b1 + 1, ak + 2, d − 2
Absorb P = 2, X nonempty, d ≥ 2 BounceP 2→0 (b1 + 1, ak + 2, d − 2), then Absorb0 (§4.3)
RightEndP d = 1, Z empty, P ≥ 4 (or P = 3 with X empty) P − 2, b1 + 1, ak + 1, d = 0
RightEndP1 P = 1, X empty, d = 1, Z empty edge, a0 = 5, ak + 1, d = 0
RightEndP2 P = 2, X empty, d = 1, Z empty edge, a0 = 1, b1 + 1, ak + 1, d = 0
EatChunkP d = 1, Z = C Z' (as in EatChunkE), P ≥ 4B + 2A + 2 P − 4B − 2A, b1 + 2B + A, ak + B, d = c + 1
EatLastP d = 1, last-odd chunk (as in EatLastE), P ≥ 4B + 2A + 2 P − 4B − 2A − 2, b1 + 2B + A + 1, ak + B, d = 0, Z empty; P = 0 → edge (X empty)
EatToEdge d = 1, X empty, P < 4B + 2A + 2 see below
(unruled) a0 ≠ 1; RightEndP with P < 3, or P = 3 with walls; EatLast with P < 4B + 2A + 2; EatLast to P = 0 at a wall; eat with X nonempty and P too small; the EatToEdge sub-cases that finish the chunk early see §4.5, rows U3-U10

EatToEdge. Write n = ⌊(P−2)/4⌋. First eat n whole units from the front of the chunk. A unit is one six-block or two pairs, and each unit gives P − 4 and b1 + 2, plus ak + 1 for a six-block. This leaves P0 = P − 4n ∈ {2, 3, 4, 5}. Then one more unit:

P0 result
2 edge mode, a0 = 3, b1 + 1
3 edge mode, a0 = 5, b1 + 1
4 edge mode, a0 = 1, b1 + 2
5 one unit gives b1 + 2, then one more unit gives edge mode with a0 = 7
P = 1 at the start (X empty, Z nonempty) edge mode, a0 = 7

Every six-block unit adds 1 to ak. If the last unit finishes the chunk, d = c + 1 ("Exact"). If it does not, the rest of the chunk stays in Z with d = 0.

4.3 Virtual frames, walls (p, q) nearest last

V1 (P = 1 next to the wall (p, q)):

rule when result
Push1 d ≥ 2, p ≥ 1 pop the wall; new chunk (011010)^b1 M (10)^(ak+2) (010)^(d−2) in front of Z; P = p − 1, Y = [1, 1, 0], d = q (P = 0 with X empty: edge, Y = [1, 1, 0])
Push1Edge d ≥ 2, p ∈ {−1, 0}, wall leftmost same chunk; edge mode with segment-less Y = [2p + 5], d = q
V1RightEnd d = 1, Z empty, q even, p − q − 1 ≥ 2 P = p − q − 1, Y = [1, q/2 + 1, q, b1, M, ak + 1], d = 0
Push1End d = 1, Z empty, p ≥ 1 tape-end chunk (011010)^b1 M (10)^(ak+1) (c = 0, last run odd), P = p − 1, Y = [1, 1, 0], d = q
(unruled) d = 1 with Z nonempty; d = 1, Z empty and p ≤ 0 (the wall at the edge: Push1End needs p ≥ 1, Push1Edge needs d ≥ 2); d = 0 after the merge (a V1 right end with walls); Push1 at an interior wall with p ≤ 0 see §4.5, rows U11-U14

V0 (P = 0 next to the wall): Absorb0, a carry chain. Number the walls nearest first, (p_1, q_1), (p_2, q_2), .... Set r_1 = 0 (r_1 = 2 for the old AbsorbChain, which is BounceP 2→0 + Absorb0). Then

e_j = floor((q_j + r_j) / 2),   r_{j+1} = (q_j + r_j) mod 2

4.4 Right ends: the staircase restart

Let R = (mode, X, P, Y) with Y = [a0, b1, ..., bk, ak] and k ≥ 1. Its wall list is

E hub (X empty):          V = (a0 − 1, 2 b1), (a1, 2 b2), ..., (a_{k−1}, 2 bk)
P-mode, X empty:          V = (P − 2, 2 b1 + 1), (a1, 2 b2), ...
P-mode with walls X:      V = normX( X, (P − 2, 2 b1 + 1), (a1, 2 b2), ... ),   needs P ≥ 2

The P-mode first wall is the "collapse wall". The third line is the rule PModeW* of macro_sim3 (right_end with OPTS['pmode_walls']): the old walls X simply stay in front of the new ones. It was validated by exact simulation with random X in a third of the instances (val_hubsweep seed 94, 30/30 clean + 30/30 top), and it is exercised in check E1 (PModeWClean 2,338, PModeWLevel 3,357, PModeWTop 10,524 frames). Then normX. Let S = Sof(ak).

case when start frame proof
Clean ak < 2S − 1 F_P(V, ak − S, [1, 1, 0], S − 1, −) right sweep, regroup (10)^a (110110)^b = (10)^(a−1) (101)^(2b) 10, P(S), Start
Level ak = S_j for some j F_P(V, 0, [1, 1, 0], ak − 1, −) (V0) as Clean, with P(ak)
Top ak + 1 = S_j drop the last wall (p, q) of V: F_P(V', p − 1, [1, 1, 0], q + ak, −) right sweep, P(ak + 1), gadget into the last wall
Reflect Top with p − 1 = −1, V' empty T = q + ak, n = 2T + 4 + (T mod 2), clean start at level Sof(n): F_P(−, n − S', [1,1,0], S' − 1, −) composite (val_corner)
HubSegless E hub [a] F_P(−, a − S − 1, [1, 1, 0], S − 1, −), S = Sof(a), clean composite
Window (round 2; not in macro_sim3, see below) 2S − 1 ≤ ak ≤ S_next − 2 F_P(V, ak − S, [1, 1, 0], S − 1, −), the Clean formula with P0 = d0 + δ, δ = ak − (2S − 1) as Clean
(unruled) window, in macro_sim3; and the other cases of §4.5 rows U17-U25 excluded by H2 / H0 / H0s (§4.5)

Window right ends (skeptic round 2). The derivation of Clean never uses ak < 2S − 1. It needs only: - the right sweep and the regrouping; - P(S) on the last S pairs of the (01)^ak run; - Start, which needs m = ak − S ≥ 2 pairs left over.

So the Clean start frame also holds in the window. Check L1 confirms it by exact simulation: 60 window right ends at S ≤ 83, E hubs and P-mode right ends, with 1 or 2 segments and every δ. In the window, P0 − d0 = δ, where δ ∈ {0, 1, 2} for S even and δ ∈ {0, 1} for S odd.

The bounce then ends as follows (scripts/round2.py):

δ S after the bounce next rule status
0 odd P = 2, d = 2 Absorb ruled
0 even P = 3, d = 3 BounceP31, then V1 with d = 1 and Z empty: V1RightEnd or Push1End ruled when the wall has p ≥ 1. With two or more walls, Push1End can be followed by a V1 right end at the next wall (U13), e.g. [25,6,28,13,79]
1 odd P = 3, d = 2 BounceP31, then V1 with d = 0: a V1 right end with walls unruled (U13)
1 even P = 2, d = 1 RightEndP with P = 2 at a wall unruled in macro_sim3 (U4). New rule RightEndP2W (round 2): RightEndP to P = 0 (b1 + 1, ak + 1, d = 0), then Absorb0 at V0. Exact for 2 events on the 251 of 300 random frames with 1-3 walls that stay ruled that long (check M1, 0 misses); the negative control ak + 2 is never reached (M2)
2 even P = 3, d = 1 RightEndP with P = 3 at a wall, which gives a V1 right end with walls unruled (U4, U13)

4.5 Every unruled branch, and what excludes it

macro_sim3 raises Unruled exactly in the branches below (this list is the complete set of raise Unruled sites in scripts/macro_sim3.py). "Excluded by" names the clause of H*c4 (§5) or the argument that keeps the orbit out of the branch, and how well that is established: - local: the clause excludes it at the right end itself, by the definition; - box: no member of the exhaustive closure boxes (§5.5) reaches it within one traversal, but there is no symbolic proof; - refuted by box: members of H*c4 reach it, within one or a few traversals, in the wider boxes of skeptic round 2 (§5.5). The clause named does not exclude it; - argued: an argument is written below, but it is not a full induction.

row branch (macro_sim3 message) where excluded by status
U1 eat of an odd (10)-run (halts) §4.1, §4.2 chunk runs even: H1 (inner a even) + Push1 builds runs from ak + 2 with ak even at walls (§6) argued (the "ak even at walls" step is a census fact, G5)
U2 eat of chunk with empty run §4.1, §4.2 H0 (every b ≥ 1, inner a ≥ 1); runs only grow argued
U3 P-mode a0 ≠ 1 §4.2 every P-mode frame is built with a0 = 1 (Start, Push1, Absorb) argued (by inspection of the rules)
U4 RightEndP P < 4 (P < 3, or P = 3 with walls) §4.2 none: it is the next event after a window start with δ ∈ {1, 2}, S even (§4.4), and the window family reaches that start (U17). The P = 2 case at a wall now has a validated rule, RightEndP2W (§4.4, check M1; in scripts/round2.py, not in macro_sim3). P = 3 at a wall gives a V1 right end with walls (U13) refuted by box; P = 2 ruled
U5 EatLast runs out of P §4.2 CP on long P-mode right ends (the skeptic's P = 23, [1,9,8,1,9] fails CP) box
U6 EatLast to P = 0 at a wall §4.2 box box
U7 eat runs out of P at a wall §4.2 box box
U8 eat_to_edge: chunk exhausted / odd run / bulk finished chunk / P0 = 5 finished chunk after one unit §4.2 box box
U9 eat_to_edge P0 ∉ {1, ..., 5} §4.2 impossible: P0 = P − 4⌊(P − 2)/4⌋ ∈ {2, 3, 4, 5} for P ≥ 2, and P = 1 is its own row proved
U10 P-mode stuck §4.2 the branches before it cover every frame with P ≥ 1; P = 0 with X empty is turned into edge mode wherever it is created (Push1, EatLastP, ToEdge2) argued (case split of step)
U11 V1 with d = 1, Z nonempty §4.3 V1 parity invariant §5.4 (d + P odd when Z is nonempty) argued
U12 V1 with d = 1, Z empty, p ≤ 0 §4.3 CP (the skeptic's P = 1, [1,41,40,1,41] fails CP); otherwise box box
U13 V1 right end with walls (d = 0 after merging) §4.3 none: it is reached from a window start with δ = 1, S odd (e.g. [3003,29,678], which a long E member at S = 168 reaches in two steps) refuted by box
U14 Push1 at an interior wall with p ≤ 0; interior wall with p < 0 §4.3 normX glues p = 0 walls; p = −1 is only ever the leftmost wall (it is the collapse wall of a P = 1 right end, which has no walls in front by H0) argued
U15 absorb reaches an interior wall with p ≤ 0 §4.3 as U14 argued
U16 absorb stops at the p = −1 wall §4.3 box box
U17 window right end §4.4 H2 excludes it at the right end itself. But H2 is not preserved: members reach a window right end in one step (long P: 1 at S = 83, 60 at S = 168, at least 96 at S = 339) or two (long E at S = 168: 60); short members as well (E1w/P1w boxes, 14 members). The start formula is derived (§4.4, L1); δ = 0 is then ruled, δ ∈ {1, 2} goes to U4/U13 local at the right end; refuted by box for the successor (§8 G2)
U18 P-mode right end with walls (only with pmode_walls off) §4.4 the option is on in every run n/a
U19 P-mode right end P < 2 (P < 1, or P = 1 with walls) §4.4 H0 (no walls); P ≥ 1 by construction local
U20 segment-less hub not clean / with P0 < 2 §4.4 H0s local
U21 right end with no segment / with an empty run §4.4 H0 local
U22 hub a0 < 1 §4.4 H1 (a0 odd) local
U23 top P0 < 0 with walls; top with the p = −1 wall §4.4 H2 (P0 ≥ −1, and P0 = −1 only with m = 1) local
U24 reflect not clean §4.4 none: 28 members of the wider short boxes reach it within 5 traversals, e.g. [255,35,3] → P252 [1,37,2] → P171 [1,40,77] → [67,85,101] → P2 [1,127,82] (T = 337, n = 679 is a top). The skeptic's free run of 2e9 steps from there does not halt, so a rule for Reflect into a top, a level or a window is missing refuted by box (check L7)
U25 E-mode top with k = 1 (only with top_k1 off); virtual P < 0; virtual loop §4.3, §4.4 the option is on; P ≥ 0 in every virtual frame; the loop removes a wall or ends per pass n/a / argued
U26 eat runs out of P at the edge (only with eat_to_edge off; listed after skeptic round 2) §4.2 the option is on in every run n/a

So no unruled branch is excluded by a proof. Each is excluded locally by a clause of H*c4 (and then the question is whether the clause is preserved), or by an argument, or only by the closure boxes. Three rows (U4, U13, U24) and the successor part of U17 are reached by members. The 'box' rows are tested only on the boxes of §5.5, and their counts depend on how those boxes are cut.

5. Invariant

5.1 Hub coordinates

Every right end R without walls (except a segment-less hub) gets a flat sequence z = (z_1, ..., z_2m) and a scale τ.

  1. Take the walls V of §4.4 in order.
  2. Add one virtual last pair, the start frame's fresh bouncer: - Clean: (ak − S + 1, S − 1), with τ = S − 1; - Level: (1, ak − 1), with τ = ak − 1; - Top: replace the last pair (p, q) by (p, q + ak), with τ = ak.
  3. Define the tail sums

B(k) = Σ_{l ≥ k} (−1)^l z_l

so z_2m is counted with sign +.

"Short" means m ≤ 2, that is, at most one real wall. "Long" means m ≥ 3.

Lemma T (traversal as a stack process). Status: fitted, not derived.

Hypotheses (all needed; the skeptic's counterexamples break each one that is dropped): - R is an E hub or a P-mode right end, with no walls; - R is Clean or Top. A Level right end with ≥ 2 real walls is excluded: [35,13,30,14,18,2,40] has B(3), B(5), B(7) ≥ 0 and still ends its traversal in a P-mode right end with a wall; - every restart at a wall has P odd, so the bouncer pushes or merges and never absorbs. This holds when every real wall is even/even, which is H1 (a0 odd, inner a even); a P-mode right end's collapse wall is odd/odd and gives a P-even restart, which absorbs. So in P-mode the statement covers the walls after the first one only.

Statement. Write Δ = d − P. During the left traversal of the walls: - at a wall with Δ ≥ 1, Push stores a chunk with Δ − 1 triples and restarts with δ_i = q_i − p_i + 1; - with Δ ≤ 0, BounceP runs d down and the top chunk is merged or eaten.

The running sum is T_i = 1 + B(2i − 1). Hence: - B(odd k ≥ 3) ≥ 0 means the traversal does not end while walls remain; - B(1) < 0 means the traversal ends in a P-mode right end (a collapse).

What is derived. The push step is derived from the rules: at P = 3 BounceP31 leaves d − 2 at V1, and Push1 stores d − 4 = Δ − 1 triples (§4.3). The restart value δ = q − (p − 1) is read off Push1. The merge step is a tape identity. What is not derived is the accounting through eats (EatChunkP changes P by 4B + 2A, which must cancel against the chunk's contribution to the B sums), and the identity T_i = 1 + B(2i − 1) as a whole. That is gap G2.

5.2 H*c4 (scripts/inv4.py Hc4)

H*c4 is H*c3 (stage seed_clause) with three repairs, one new clause and a total implementation. H*c3's own clauses are listed first.

H*c2 (scripts/hubinv_Hc3.py Hc):

clause statement
H0s segment-less E hub [a]: clean, and P0 = a − Sof(a) − 1 ≥ 2
H0 no walls at the right end; every b_i ≥ 1; every inner a_i ≥ 1
H1 inner a_i even. E hub: a0 odd, unless Top with k = 1. P-mode: a0 = 1, and P odd, unless P = 2, or Top with k = 1, or an absorb start (not Top, P0 even, k = 1)
H2 ak is not a window value. P0 := z_{2m−1} − 1 ≥ −1, and P0 = −1 only when m = 1. P0 even and ≥ 2 implies m ≤ 2
H3 + H3d 0 ≤ B(k) ≤ 2τ for lo ≤ k ≤ 2m − 1 (lo = 2 for an E hub that is not an absorb start, else 3), except at most one position with B(k) ∈ {−1, 2τ + 1}
HR (zipper) for k from 1 (E) or 3 (P) up to 2m − 4 (Clean/Level) or 2m − 3 (Top), with e = B(k+1) mod 2: k even ⇒ B(k) = 2B(k+1) + 4 + e; k odd ⇒ B(k) = 2B(k+1) − 2τ − 4 − e

Added in H*c3 (scripts/seed_clause.py):

clause statement
CW P-mode with P odd: m ≥ 2 and B(2) = 2τ + 3 + (B(3) mod 2)
PE P-mode with P even, P ≠ 2: B(2) ≥ 2τ + 3
SB P-mode, P odd, m = 2, z_3 − 1 odd: B(1) + 4 z_3 ≤ −6, or B(1) + z_3/2 ≥ 1, or t' = B(2) + z_3/2 is not clean or has t' − Sof(t') even
EB short R: along the chain of at most 3 consecutive P-mode right ends that follows, no P-even end outside the H1 exceptions, and every short member satisfies the clauses above
Hs_4 short R: the next ≤ 4 short successors (up to the first long one) are ruled and satisfy the clauses above

Changed or added in H*c4 (skeptic round 1):

clause statement why
H2t' (replaces H2t) Top with m ≥ 2: the merged tail T = z_2m = q_m + ak is clean at level ak + 1, that is ak + 1 < T < 2(ak + 1) − 1 (then T is not a level either) the old H2t asked only Sof(T) = ak + 1, which lets T be a window value or a level. [9,20,24,2,24,20,39] satisfied it, and its next right end [73,4,40,12,4,12,79] is a window (unruled one traversal later)
HL (new) no Level right end with m ≥ 3 long Level hubs break Lemma T (§5.1). They are not produced: 0 of 4,001 right ends from blank, 0 on orbits
CP (new) every long P-mode right end (m ≥ 3) has P = 2B(3) − 2τ + 3, that is z_1 = 2B(3) − 2τ + 1 in H*c3, P was a free parameter of long P-mode right ends, and 118,034 of 726,432 box members leaked. With CP: 0 of 15,707 at S ≤ 40
total a window or unruled successor inside EB or Hs_4 is a reject, not an exception. Round 2: a degenerate tuple (a0 < 1, ak < 1, a negative entry, or P < 0) is rejected up front as 'H0 degenerate right end' Hc3 raised TypeError on 181 of 544,000 short hubs, e.g. [12,2,2]. Round 2: Hc4 raised ValueError from Sof on ak ≤ 0 and on the segment-less hub [0] (3,883 of 60,000 fuzzed tuples). Check J2b: 0 exceptions on 60,000 fuzzed tuples

What the CP sketch shows, and what it does not. CP is fitted. The sketch below does not derive it: it shows only that, given Lemma T, CP is equivalent to H1 (P odd) at the successor. That is not enough, because H1 at the successor is part of what closure has to prove.

A long P-mode right end is the image of a long E hub R0 under a collapse; on orbits every one of them has an E-hub predecessor (2,051/2,051). Three facts enter: 1. The traversal of R0 ends at its first wall (a0 − 1, 2b1), which restarts with P = a0 − 2. If Lemma T holds there (T_1 = 1 + B0(1) < 0), BounceP and a final RightEndP consume all the remaining triples, so P' = −B0(1) − 1 − r with r = (final d) mod 2. 2. The other walls move one position right and are reflected, as in a growth step: B'(3) = 2τ − B0(2). 3. HR at k = 1 for R0 gives B0(1) = 2B0(2) − 2τ − 4 − e0, with e0 = B0(2) mod 2 = B'(3) mod 2.

Substituting gives

P' = 2B'(3) − 2τ + 3 + e0 − r

So, given Lemma T, CP ⟺ (r = e0) ⟺ H1 at the successor. An earlier version picked r = e0 because P' is odd, which is circular (skeptic round 2).

What a derivation needs: - r, the parity of the final d, computed from the traversal itself (the BounceP / RightEndP count at the first wall); - Lemma T at the first wall (step 1), which is itself fitted (§5.1).

Neither is done. As a fitted fact, CP holds on 2,051/2,051 long P-mode right ends on orbits (blank + 400 rnd_R orbits; check J3 re-checks 1,599/1,599 on another seed).

5.3 What is proved about closure

  1. Zipper swap (proved; check H1, exact identity). Suppose B'(k) = 2τ − B(k−1) on a range. Then the even-k zipper relation for B' at k is equivalent to the odd-k relation for B at k − 1, and vice versa. The parities agree because B'(k+1) ≡ B(k) (mod 2). For example,

B'(k) = 2B'(k+1) + 4 + e ⟺ 2τ − B(k−1) = 4τ − 2B(k) + 4 + e ⟺ B(k−1) = 2B(k) − 2τ − 4 − e

So a growth step G preserves HR on the shifted range. This algebra is the easy part. The hard part is that the growth step has this form at all, which is item 3. 2. Band under G (proved, given item 3). If 0 ≤ B ≤ 2τ, then 0 ≤ 2τ − B ≤ 2τ. A unit defect −1 ↔ 2τ + 1 is carried one position deeper, which is clause H3d. 3. Growth step G (fitted, not derived). z' = [h] + z, with the tail re-paired, B'(k) = 2τ − B(k−1) for 2 ≤ k ≤ 2m − 1, and new head h = 5 + B(1) − e with e ∈ {0, 1}. Needs B(1) ≥ 0. 352/352 growth transitions in check H2; 1,329/1,329 from blank (hubinv_bsums.py). Derivation needs Lemma T. 4. Collapse C (fitted). B(1) < 0: the head entry is replaced by the odd collapse wall (P − 2, 2b1 + 1). CW is the closed form of its B(2): 47,668/47,668 in the seed_clause stage. CP (§5.2) pins P. 5. Short transitions S (fitted). Closed forms: - First collapse of a short E hub: B'(1) = B(1) + 2τ + 6 + 2r. - A short P-odd end goes to the E hub [a0', (P−1)/2, B(2) + z_3/2] (2,521/2,521). - Second collapse: v1 = b1, which forces b1 odd (3,538/3,538). - These are fits on the macro map. They are not derived, and they do not yet add up to an inductive clause (§8 G1).

5.4 V1 parity invariant (excludes "V1 with d = 1 and Z nonempty"). Status: induction over the §4 rules, conditional on H1 at every right end.

Claim. At every P-mode frame with walls (X nonempty, including V1/V0): - (a) every chunk in Z has an even triple count c, except possibly the deepest one; - (b) if Z is nonempty, d + P is odd; - (c) if P is even, Z is empty.

Wall parities (the hypothesis). Every wall of X is a wall of some earlier right end's list V (§4.4), possibly glued by normX. Under H1 at that right end: - an E hub gives the walls (a0 − 1, 2b1) and (a_{i−1}, 2b_i), all even/even (a0 odd, inner a even); - a P-mode right end gives its collapse wall (P − 2, 2b1 + 1) first. That wall is odd/odd for P odd but even/odd for P even. The rest are even/even; - normX glues a p = 0 wall onto its left neighbour and adds an even q = 2b_i, so it keeps both parities.

By H0 the right end has no walls in front, so the collapse wall is always the leftmost wall. Hence every wall that is not leftmost is even/even. (Round 1 claimed p ≡ q for every wall; that is false for the even/odd collapse wall, as the skeptic noted. The claim is used below only for walls that are not leftmost.)

Induction over the rules that act on a P-mode frame with walls.

rule effect on (a), (b), (c)
start frames (Clean, Level, Top, Window) Z is empty, so (a) and (b) hold trivially. (c) holds as well
BounceP, BounceP31 P and d both drop by 2k: d + P keeps its parity, Z is unchanged
merge (d = 0) d becomes c, so d + P changes parity by c. If c is odd, the chunk is the deepest one by (a), so Z is empty afterwards
EatChunkP P drops by 4B + 2A (even), d goes from 1 to c + 1: parity changes by c, as for merge
EatLastP, RightEndP, V1RightEnd Z is empty afterwards
Push1 at a wall that is not leftmost the pushed chunk has c = d − 2. If Z was nonempty, d + P = d + 1 is odd by (b), so d and c are even. If Z was empty, the new chunk is the deepest. The restart has P = p − 1 and d = q, with p, q even: P is odd and d + P is odd, so (b) and (c) hold
Push1 / Push1Edge at the leftmost wall afterwards X is empty, so there is nothing to prove
Push1End Z was empty; the new chunk (c = 0) is the only one. Restart as for Push1
Absorb, Absorb0 they start at P ∈ {0, 2}, so Z is empty by (c); Z stays empty

Hence, at V1 with Z nonempty, d + 1 is odd, so d is even and d ≠ 1, and U11 never fires.

Status. This is now an induction over the rules. It still rests on H1 at every right end, which is exactly the closure that is open (G1, G2). The rows were also checked on frames: 127,020 frames with walls and Z nonempty (v1d1_parity.py).

"ak even at Push1" (§6). This is a different statement, and it is not derived. EatChunkP adds B (the number of six-blocks in the eaten chunk) to ak, and nothing above makes B even. It stays a census fact: parity census, 0 exceptions to 1e12 steps (G5).

5.5 Closure evidence: exhaustive back-solved boxes (scripts/inv4.py, scripts/round2.py; checks K1-K6, L4-L7)

The round-0 closure tests drew their right ends from random generators (rnd_R, rnd_short). rnd_R makes only clean/top E hubs at levels ≥ 19, with clean top tails, so it never produced the counterexamples above. The boxes below are exhaustive within their bounds instead.

How a long box is built: - Take every tail of z at the given levels: for Clean and Level the last four entries, for Top the last three, with all even values up to 2τ + 4. - Extend the tail towards the head by the zipper relations (HR), one entry at a time, to every even length up to 2 · MMAX + 2 (MMAX = the pair bound below). - Read the right end off z. For P-mode, z_2 comes from CW and P from CP. - Keep the members of H*c4, run one traversal on macro_sim3, and test H*c4 at the next right end.

Short boxes are plain grids, with the bounds given in the table. Every row is a one-step test. Leak counts are lower bounds: a box with other bounds can only find more. Round 1 reported a short E box with a0 ≤ 80, b1 ≤ 40, ak ≤ 170 (232,794 members, 3 leaks) and a short P box with P ≤ 80 (36,043, 0 leaks). Neither had a saved log or a check, so both rows are withdrawn and replaced by K4 and L6.

box (bounds) check members leaks (lower bounds)
long E, S ∈ {3, 8, 19, 40}, ≤ 8 pairs K1 22,877 0
long E, S = 83, ≤ 8 pairs K3 181,934 0
long E, S = 168, ≤ 8 pairs L5 1,516,903 0 in one step; 60 reach a window in two (skeptic; one example in L5b)
long P (CP), S ∈ {3, 8, 19, 40}, ≤ 6 pairs K2 15,707 0
long P (CP), S = 83, ≤ 6 pairs K6 128,043 1 (window)
long P (CP), S = 168, ≤ 6 pairs L4 1,079,332 60 (window)
long P (CP), S = 339, ≤ 6 pairs, clean tails with ak ∈ [2S − 6, 2S − 2] and all top tails skeptic script t10, re-run this round (scripts/round2_box339_rerun.txt) 4,649,851 96 (window)
short E [a0 ≤ 80, b1 ≤ 20, 1 ≤ ak ≤ 40] K4 21,325 3
short E [a0 ≤ 401, b1 ≤ 40, 2 ≤ ak ≤ 90] (E1w) L6 445,843 110
short P [1, b1 ≤ 40, 2 ≤ ak ≤ 90], P ≤ 301 (P1w) L6 108,831 12
Pt1: P-mode top, one real wall, S ∈ {8, 19, 40, 83}, P odd ≤ 6τ + 39 (z_2 from CW) or P = 2 with b1 < 3τ L6 1,202,119 450
Et1: E top, one real wall, S ∈ {8, 19, 40, 83}, a0 at the zipper value ± 2 L6 143,766 0
Eseg: segment-less E hubs [a], a < 3000 L6 2,937 0
from blank, 4,001 right ends G1 4,001 in H*c4

What the rows show: - The long E boxes give 0 one-step leaks up to S = 168. The skeptic also ran members for many traversals: 22,877 E and 15,707 P at S ≤ 40 for 40 traversals. - The long P boxes leak, and the leaks grow with the level (1, 60, ≥ 96). That is the window family of §8 G2. - The short boxes leak as soon as a0 and P are no longer cut at 80, and the Pt1 kind, absent in round 1, leaks the most (§8 G1).

6. Progress and halting

Progress. Every rule of §3-§4 is a run of ≥ 1 step: BounceE ≥ 10 steps per trip, BounceP ≥ 22, every event gadget ≥ 1.

A traversal from one right end to the next is a finite chain of rules: - every P-mode rule strictly decreases the left material L = P + Σ (p_i + q_i) (BounceP, Eat*P: P drops; Push1/Push1End/Absorb: walls are removed and P becomes p − 1 or p_J), or ends the traversal; - every edge-mode rule strictly decreases the right material d + Σ chunk sizes (merging is a tape identity), or ends at a right end; - edge mode never returns to P-mode before the next right end.

So (mode, L, right material) decreases lexicographically, and P-mode comes first.

Halting needs B> 0 0 1 (check A3). D is entered only by C0 and F0. - F is entered only by C1, which writes the 0 that F0 then sends D onto. - C0 returns D onto the 0 that A1 just wrote. - The only other entry to C is B0.

So every halt is B0, C0, D1: B reads 0, C reads the next 0, and D reads the following 1.

Every rule of §3-§4 is an exact run, so a rule never reads B> 001. In the grammar the pattern comes up only when the right sweep enters a chunk on the odd alignment, that is, when it eats an odd (10)-run that is not at the tape end (I1: 30/30 such frames halt). H1 (inner a even) and §5.4 keep every chunk's (10)-runs even: - Push1 builds them from inner a's and ak + 2. That these runs are even needs "ak is even whenever Push1 fires at a wall". This is a census fact (parity census, 0 exceptions to 1e12 steps), not derived, and not a local parity fact: eats with an odd six-block count flip ak (75 of 163 eats from blank). It is part of G5. - EatLast handles the one odd last run that sits at the tape end.

So "no halt" reduces to: the orbit stays inside the ruled domain (every step is a rule of §4) — which is exactly the closure of the invariant. Without the closure (G1, G2), the halting argument is incomplete. The window family (§4.4) already leaves the ruled domain, so the rule set itself has to grow before an invariant can close.

7. Initial segment

0^inf A> 0^inf  ->(46,734)  K0 = 0^inf <A (10)^85 (011010)^7 (10)^46 0^inf

This is a direct computation: check F1 finds K0 as a left-turn frame at exactly step 46,734.

From K0, macro_sim3 and exact simulation agree: - F2: the first 104 macro frames in order, to 6e7 steps; - earlier stages: 278/278 frames to 1.02e12 (macro_vs_census.py), and 383 right ends on short-seed orbits (seed_e2e.py).

K0 satisfies H*c4, and so do the first 4,001 right ends of its orbit (scripts/inv4_blank_4000.txt; check G1 re-checks 2,001; runs up to about 10^4000 cells). In the skeptic's census these 4,001 right ends contain 0 Level right ends and 0 P-mode right ends with walls.

8. Gaps (why this is not a proof)

After skeptic round 2 the gaps are of two kinds: - two fatal gaps, where the invariant is not inductive and no candidate repair is known (G1, G2); - major gaps: unruled branches that members reach (G3), and derivations that are still fits or arguments (G5).

All leak counts below are lower bounds. They depend on how the boxes were cut (§5.5 states every bound).

id gap severity what would close it
G1 No inductive invariant for short right ends (≤ 1 real wall). H*c4 handles them with the look-ahead clause Hs_4 plus EB/SB, and that clause is not inductive. One-step leaks of H*c4 members: 3 in K4 (a0 ≤ 80, b1 ≤ 20, ak ≤ 40); ≥ 110 in E1w (a0 ≤ 401, b1 ≤ 40, ak ≤ 90), e.g. [87,12,24] → P = 49 [1,19,24,3,18]; ≥ 12 in P1w (P ≤ 301); ≥ 450 in Pt1 (P-mode top with one real wall, a kind missing from the round-1 boxes), e.g. P = 89 [1,40,40,1,39], whose 5th right end P = 32 [1,178,340] has P even. Et1 and Eseg show 0 leaks on their boxes. Runs of consecutive short right ends reach 44 (blank) and 46 (rnd_R) in a row, so no fixed look-ahead depth can be inductive. fatal Explicit linear and congruence clauses for every short kind (Ec1, El1, Et0, Et1, Pc1, Pt0, Pt1, the P-even kinds, Eseg), tested on boxes whose a0 and P bounds come from the band (about 6τ), including the top kinds. First data: the short regime looks like a second zipper (Ec1 from Et0/Pet0 satisfy the k = 1 zipper exactly). No such clause set is known.
G2 The window family: long right ends are not closed either. Members of H*c4 reach window right ends. Counts: 1 long P member at S = 83 (K6); 60 of 1,079,332 at S = 168 (L4); at least 96 at S = 339 (skeptic, restricted box); 60 long E members at S = 168 in two steps (L5b). The window values are 2S' − 1, 2S' and 2S' + 1 (δ = 0, 1, 2). This round derives the window start (§4.4, L1), and with it δ = 0 is mostly ruled. It also adds one validated corner rule, RightEndP2W (P = 2 at a wall, M1), which rules δ = 1 for S even. The rest runs into a V1 right end with walls (U13): δ = 1 for S odd, δ = 2, and δ = 0 after a Push1End with two or more walls. That right end's restart writes a left word outside the grammar (L3). The machine does not halt there (skeptic: 4e9 steps from a window hub). fatal Rules for RightEndP with P ∈ {2, 3} at a wall and for the V1 right end with walls, which need a new tape form (a wall glued to a lone 1). Then an invariant that admits window right ends and these frames. Or a clause that excludes the family, re-run on the S = 168 and S = 339 boxes. Neither exists. Lead: in the one δ = 1 run followed ([21,3,38]), the glued word appears at step 3,010, and by step 4,685 the orbit is back at F_P(−, 17, [1,4,0], 39) (§4.4). So composite rules for this corner probably exist.
G3 Rows of §4.5 that are reached by members. U4, U13 (window family), U24 (Reflect into a top: [255,35,3] within 4 traversals, 28 members of the wider short boxes, L7), and the successor part of U17. The other "box" rows (U5-U8, U12, U16) are tested only on the boxes of §5.5. major as G1/G2; for U24, a rule for Reflect when n is a top, a level or a window
G4 The derivations of the event gadgets in §4 are by validated composition (E1/E2), not written step by step. minor finite gadgets around §3 lemmas; es should find them in Rocq
G5 Fitted, not derived. Lemma T (§5.1, including the eat accounting); the growth step G, the collapse C and the short closed forms (§5.3); CP, whose sketch is only an equivalence with H1 at the successor (§5.2). "ak even whenever Push1 fires" (§6) is a census fact. It is also not a local parity fact: from blank, 75 of 163 EatChunk events eat a chunk with an odd number of six-blocks, which flips ak. The V1 parity invariant (§5.4) is now an induction over the rules, conditional on H1. major Derive Lemma T by induction over the wall list (push, merge, eat), then G, C, and r (the final-d parity) for CP from it. Derive "ak even at Push1" from a trip count. All of these sit on top of G1/G2.
G6 Hc4 raised ValueError on degenerate tuples (ak ≤ 0, [0]). minor, fixed inv4.degenerate rejects them up front; J2b: 0 exceptions on 60,000 fuzzed tuples

Confidence. The mechanism is understood. The macro rules are sound where they apply: independently re-checked on 422,018 right-end transitions (2.6e10 steps), plus 400 transitions of the new kinds (1.0e8 steps), all matched by exact simulation. Every free run from a leak point (window hubs, the U24 chain, the [79,12,32] chain) runs on without halting, so non-halting is very likely.

As a proof, though, this is stuck. The invariant has now failed two independent reviews. Each repair moved the leaks to larger boxes; it did not remove them: - round 1: four fatal gaps; - round 2: the window family grows with the level, and the short regime leaks once its boxes are cut from the band.

What is missing is not a calculation. It is an inductive invariant in a vocabulary that includes the window frames and the short regime. No pseudo-random arithmetic has appeared, so this is not a cryptid.

9. Evidence: check_proof.py

check_proof.py prints PASS / FAIL for claims and OPEN for measured gaps; SUMMARY counts only PASS/FAIL and lists the OPEN lines. Log: check_proof_full.txt (sections A-L in one run: 36 checks, 0 fail, 11 OPEN; section M, added during that run, run on its own: 2 checks, 0 fail, 1 OPEN).

check content result
A1-A3 TM5 renaming; one undefined transition; every 2-step history before D1 is B0, C0 pass
B1-B2 6 shift rules (single block and n-fold); right turn T1 pass
C1-C4 P(a) exactly on levels (a ≤ 130); P(S) for S ≤ 1400 in 4 contexts; Inc1/Incs1 (204); Start gadget (49) pass
D1-D2 BounceE 5,860 and BounceP 11,620 instances (exhaustive box with values 1-3, both alignments of Z, with/without walls, + random up to 300): next frame and exact step count pass
E1 every frame of the box (X ≤ 2 walls, P ≤ 6, Y ≤ 2 segments, d ≤ 5, 5 Z shapes, edge a0 ∈ {1, 2, 3, 5}): 61,931 ruled frames, exact run visits the next 3 macro frames in order, 0 misses; 38 of macro_sim3's 41 non-bounce event names occur pass
E2 715 random frames (values ≤ 60) plus targeted EatChunkP / EatLast / V1 d = 1 frames; adds the other 3 names (EatChunkP, EatLastP, V1RightEnd), so all 41 are exercised pass
E3 60 negative controls (target ak + 1) never reached pass
F1-F2 initial segment 46,734 steps; 104 macro frames from K0 in order pass
G1 H*c4 at 2,001 right ends from blank pass
G2-G3 rnd_R long orbits and rnd_short seeds × 20 traversals, H*c4 (narrow generators; supporting evidence only) pass
H1-H2 zipper swap identity (51,250 cases incl. 1e30 range); growth identity and e ∈ {0, 1} on 352 transitions pass
I1 30/30 frames that eat an odd (10)-run halt pass
J1 the skeptic's six counterexamples are in H*c3 and rejected by H*c4 (H2t', HL, HL, CP, CP, CP) pass
J2 Hc4 is total on 8,448 short right ends (Hc3 raised TypeError on 12 of them) pass
J2b Hc4 is total on 60,000 fuzzed tuples, degenerate ones included (G6) pass
J3 CP on every long P-mode right end of blank + 300 rnd_R orbits (1,599/1,599) pass
K1-K3 exhaustive boxes: long E S ≤ 40 (22,877/22,877), long P S ≤ 40 (15,707/15,707), long E S = 83 (181,934/181,934) pass
K6 long P box S = 83: 128,042/128,043; the leak is the first member of the window family (G2) OPEN
K4 short E box (a0 ≤ 80, b1 ≤ 20, ak ≤ 40): 3 leaks; the wider boxes of L6 find more (G1) OPEN
K5 the chain from [79,12,32] reaches a P-mode right end with walls OPEN
L1 window right ends (S ≤ 83, every δ, E and P-mode, 1-2 segments): the Clean start formula, exact pass
L2 window start + existing rules, exact for 3 events wherever ruled pass
L2b the unruled window cases: δ ∈ {1, 2} (RightEndP P ≤ 3 at a wall, V1 right end with walls), and δ = 0 after a Push1End OPEN
L3 the δ = 1 window hub [21,3,38] writes (101)^q 1 (101)^r, outside the grammar OPEN
L4 long P box S = 168 (≤ 6 pairs): the window family OPEN
L5 long E box S = 168 (≤ 8 pairs): one-step closure pass
L5b two-step window leak from a long E member at S = 168 OPEN
L6 short kinds on wider boxes: Et1 and Eseg close (pass); E1w, P1w, Pt1 leak pass / OPEN
L7 [255,35,3] reaches the unruled "reflect not clean" (U24) OPEN
M1-M2 RightEndP2W (P = 2 at a wall = RightEndP to P = 0 + Absorb0), exact for 2 events on 251 of 300 random frames (the rest hit an unruled event later); negative control pass
M3 window hubs with WindowStart + RightEndP2W: only the V1 right end with walls (and P = 3 at a wall, which leads to it) stays unruled OPEN

10. Lemma plan (Rocq)

Machine part. Copy FractalType4.v TM5: - rename the states, set tm to this string; - S1, Inc1, Incs1, P, P_S and P_S' carry over verbatim; P0/P3 by es. - Add P_level : forall j, P (S j) by induction on j, with the case split S_j even (P_S') or odd (P_S).

Bouncer part (FractalType7v4 style): - Definition F_P X P Y d Z / F_E Y d Z as tape builders. Y and Z are lists of exponents. Use <* for X and *> for Y and Z, as in FractalType7v4's C x d r / E t. - Trip lemmas by es on the generic block lists: an Inc-style lemma per trip, then Incs by ind. - Each §4 event is a lemma: es plus follow of the trip lemmas. The P-mode/V1/V0 events take the walls as a list argument. Absorb0 is a Fixpoint over walls with a carry, proved by induction on the wall list. - The right-end lemmas use P_level + Start + the right sweep.

Abstract part. A record R for right ends with a next : R -> R function, the composite of the §4 rules (macro_sim3's step iterated to the next right end). Then: - Lemma next_spec : Inv R -> conf R -->+ conf (next R); - Lemma Inv_next : Inv R -> Inv (next R), which needs G1 and G2 first (no inductive Inv exists yet, and next is not total on H*c4: the window family reaches unruled frames); - nonhalt via progress_nonhalt_cond with Inv, plus an esx init of 46,734 steps to K0 (about 0.6 of kill #3's 78,710-step init).

Following rocq-notes, any parameter search (polyhedra for the short-regime clauses) stays native; Rocq checks only the final case list. Formalization should not start before G1 and G2 are closed: the look-ahead Hs_K cannot be the Inv of progress_nonhalt_cond, and the window family needs rules for frames outside the grammar of §2 before any Inv can be stated.

Nearest templates: - TM5 (FractalType4.v) for the staircase; - TM20 (FractalType7v4.v) for the Good/Inv architecture, about 7 of 11 transitions apart. Its rules do not transfer.

Review log