W5-3 formalization log
Kill file: machines/1RB1RA_1LC1LE_1RF1LD_1RE0LD_0LB0RA_---0RC/1RB1RA_1LC1LE_1RF1LD_1RE0LD_0LB0RA_---0RC.v.
Compile helper: rocq/cc.sh FILE.v (temp dir, ulimit -s unlimited, ulimit -v 8000000, native on).
Scratch versions: rocq/t1.v (low-level rules) .. rocq/t4.v (whole proof + Print Assumptions).
The kill file is t4.v with comment-only edits (header, section comments, closing rule table) and the
trailing Print Assumptions removed, built by rocq/mkkill.py (python3 mkkill.py <out.v>).
Round 1 (2026-10-13): DONE, check_kill PASS
check_kill: RESULT: PASS -- this is a kill, exit 0 (log rocq/check_kill_round1.log).
Compile 3.2 s native, coqchk -norec 1.0 s, Print Assumptions nonhalt: Closed under the global context.
Kill file 530 lines, sha256 75932a97949d61ba11f16e0b8a6d0d6adf05f2e1a63231b44f0acddf0661da1a.
Design (proof.md section 8, H form; template BECv5 TM1 for the architecture only, no Longitudinal/sideRLs):
- C n := BinInc [1;1] n; HF l r := l <{{E}} [1;0;1;1] *> r (the write-up's G form after TS);
EC p N := HF (0inf <* [0;1]^^p) (C N) (= E(p,N)). Not named S (nat successor) or H.
- Every count = a left lemma (L1, L0, L011, all es) + a right lemma packaged as
Inc r r' := forall l, l <* [1;1;0;1] {{A}}> r -->+ HF l r'.
- RIncG (A over (11)^n, CARRY, TS): es. RInc = RBinInc_spec with qR = [1;1;0;1], qL = [1;0;1;1].
- Inc00 r : Inc ([0;0] *> r) ([1;1] *> r) (RIncG with n = 0) for the Q counter in M4/M5 (b).
- IncQ k x y : S x < 2^k -> Inc (Q k x y) (Q k (S x) y) for the misaligned counter
Q k x y := Dk k x *> [0] *> C y, Dk a Fixpoint (low digit first). Dk_inc (exists t rest, ...)
by induction on k; Dk_0, Dk_1, Dk_full, Dk_even, Dk_odd.
- Cnt1/Cnt0/Cnt011: left lemma + any Inc.
- Eat: LEat (EB, EAT0 C/F sweep, CS) on 0inf <* [0;1]^^b: es. Y rules Y1C (C(2n+1)), Y2C (C(4n)),
Y3 v s r (generic right side), Y4 v m, Y1Q; ROvf (A over (11)^j, A01, A1s(2), RInc). All es
(+ RInc where the counter is abstract).
- Walks: W2 (two Inc hypotheses), Wk (W(a,b) on C, lt_wf_ind, result exponent a+b+a mod 2),
W2Q (W2 iterated i times on Q, block written [0;1;0;1]^^i), Bk (B(s), block [1;1]^^s <* [1]),
W0k (W0(c,d), block [0;1] <* [0;1;0;1]^^c).
- Macro rules: BS1 (N = n2+1), BS2 (n4), BS3 (((m2+1)2^1-1)*2), BS4 (2^2), BS5
(2^(S(S(S t))), hypothesis 2^(S t) <= p+7). C_split : C (((m*2+1)*2^i-1)*2) = [0;0] *> [1;1]^^i *> [0;0] *> C m
(BinInc_mul2 + BinInc_mulpow2sub1).
- init : c0 -->* EC 2 4: replace (C 4) with ([0;0;0;0;1;1] *> 0inf) by reflexivity,
change ([0;1]^^2) with [0;1;0;1], solve_init (171 steps).
- step_J: coverage + closure of J(p,N): 1 <= N <= 2p. Split Nat.Even_or_Odd N, then of N/2, then
lowbitS_cases K' for N = 4K'+2 (i = 0: M3, 1: M4, S (S i): M5); M5 arithmetic with T := 2^i,
x <= x*T by nia, then lia. nonhalt: multistep_nonhalt + progress_nonhalt_cond over nat*nat.
Compile errors met and fixed (all quick):
- Dk_inc: applied IH at S a instead of a (lia "Cannot find witness" on a false bound).
- Wk, case a = 1: used pt3 where the equality had to come first; added pt_pre.
- W2Q: f_equal; f_equal; lia split S (S x) + 2*i = x + 2*S i into false goals; use lia_refl.
- Bk: wrong left context for Cnt1 ([1] vs [1;1]); the unification error was genuine.
- BS5: rewrite Nat.pow_succ_r' in * destroyed the 2^i pattern C_split needs; rewrite only Hp.
eapply pt_eq + instantiate -> "Not enough uninstantiated existential variables"; pt3 is right.
!Str_app_assoc with nothing to rewrite fails; dropped.
Open: nothing for the kill. Packaging (submission files, status.json, STATUS.md) is outside this round.
Packaging (2026-10-13)
Fresh check_kill PASS on the unchanged kill file (sha256 75932a97…, 10:09:16Z, compile 3.4 s, coqchk 1.0 s); output verbatim in submission/check_kill.txt. status.json -> KILLED_NONHALT / done. No edits to the .v.