BB(6) hunt
Machines / W4-3b

1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---

W4-3blocal proof 21Kill claimedSkelet 1-like Class 2bbchallenge ↗Explorerparent: W4-3

How we proved it never halts

W4-3's proof, from a different start

W4-3's tape is a zebra stripe, 0101…, whose few dozen flaws (two matching neighbours) form a base-3 odometer; its proof follows the odometer from one overflow of its left-end dial to the next. W4-3b is W4-3's table with its state letters renamed, started in the state that is W4-3's B instead of A. Watching it, you see the same stripe, the same odometer and the same long flawless stretches.

Only the opening differs, and the run soon settles into W4-3's pattern. At step 2,629,088,387,088 (about 2.6 trillion, 159,680 steps later than W4-3) it reaches the snapshot W4-3's formal proof starts from, just after a dial overflow. Its flaws then match W4-3's except for one gap deep inside the counter, which is 17 cells long instead of 13.

The longer gap changes nothing. W4-3's argument only needs each deep gap to have the right remainder when divided by 4 and a minimum length, and 17 passes both tests just as 13 does. From that snapshot W4-3's proof applies unchanged: each round of the odometer is a finite run that never reaches the missing instruction and ends in the same family of tapes, so the run never stops.

The Rocq proof (busycoq) keeps W4-3's library word for word, stated for W4-3's table. New are a verified run from this start to the snapshot, in 38 checked pieces, and an entry-by-entry check that this table is W4-3's with the states renamed. So a halt here would be a halt of W4-3's table started in B.

#21local proof number
2,622lines of Rocq
75 sto compile
6/6automatic checks
space-time diagram, first 10,000 steps from blank
The first 10,000 steps from a blank tape. Time runs down; white is 1.
About this picture

The standard picture (bbchallenge.org's Default view): each row is the whole tape at one step, time runs downward, and the head's path draws the pattern.

bbchallenge-defaultStart blankRows steps 0 → 10,000, top to bottomWindow cells −200..199, left to rightColors 1 0 or unvisited

Overview

In one sentence

The parent's proof is an invariant at the start of each record interval: a left word, a chain of digit blocks all in state U0, and a window (the last chain block and the right region) given exactly as affine functions of u = 9^(e-2). The deep chain gaps are free, apart from residue and minimum, which the encoding builds in. (submission/README.md, Mechanism)

parent W4-3 (740 line 341), killed 2026-10-12

Upstream
Kill claimed · PR #17merged 2026-10-14 06:20 UTC by ccz181078 · Sk1Class2_v3.v · TM5 · on Submissions →
Rocq proof
check_kill PASS · first Oct 12 21:23
2,622 lines · 141 KB .v · compile 74.8 s · coqchk pass · 0 axioms · PASS Oct 12 21:23 (re-run Oct 14 15:25)
· the .v file
Automatic review
6 of 6 checks passtemplate: W4-3's kill file (kill 20) (twin: parent kill's .v) · details in Proof →
Class
Skelet 1-like Class 2
On the list
not on BB6_holdouts_663.txt (line 512 of the previous list) · historical 740 line 512
eqv ×3sim 1e15
Derived from
1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---W4-3 Kill claimed
Your calls on file 2
funded
option: sync_stage · date: 2026-10-12 · campaign: class2_closeout · stage: 2
next
Independent re-verification (audit) of the kill; then post after the parent (submission/discord.md, one message for both siblings).

Mechanism

What to check here: the pictures show the mechanism that the rule table describes.

No observation of its own: sibling of W4-3: W4-3's table renamed (phi = A->B, B->C, C->D, D->E, E->A, F->F, no mirror), started in W4-3's state B. Below are W4-3's figures, rules and history. W4-3's Checkpoint A questions (3) are on its page.

Figures

Fig 1 · bbchallenge default view, 10,000 steps

The site's view. Fine pair stripes fill a slowly widening bell; the left edge barely moves.

bbchallenge default view, 10,000 steps
bbchallenge-defaultStart blankRows every step: steps 0..9,999 squeezed into 500 px rows as on bbchallenge.orgWindow cells -200..199, 1 px = 1 cellColors 1 0 or never visited head after a right/left move
Rows: 1 px row = 20 steps · Colors: red/green: pale = blended by the squeeze
Fig 2 · Wall trips at step 2.7 millionQ1

Rows every 100 steps. Black wedges are left sweeps; their left tips are turns. Compare short and long tips.

Wall trips at step 2.7 million
bbchallenge-defaultStart mid-run: step 2,700,000Rows every 100 stepsWindow cells -34..3178, 1 px = 2 cellsColors 1 0 head after a right/left move
Start: tape from the blank run · Rows: steps 2,700,000..3,000,000 (3,001 rows) · Window: every 2nd cell sampled; the fossil 970-cell block is at cells 180..1149, the wall near 1270 · Colors: black: a swept region shows its flipped phase
Fig 3 · Block phases at right recordsQ2

One row per new rightmost cell; sampling every 8th cell turns each alternating block into one flat colour.

Block phases at right records
bbchallenge-defaultStart blankRows right records onlyWindow cells -40..4999, 1 px = 8 cellsColors 1 0 or never visited head
Rows: one row per new rightmost cell (5,000 rows, steps 0..7,612,581) · Window: every 8th cell sampled, so an alternating block shows its phase as one colour · Colors: black: sampled cells
More figures (1)Fig 4: Records view, 1 px = 1 cell
Fig 4 · Records view, 1 px = 1 cell

Fig 3's span at full resolution: the right edge grows like sqrt(t), the left edge in rare jumps.

Records view, 1 px = 1 cell
bbchallenge-defaultStart blankRows left and right recordsWindow cells -40..4959, 1 px = 1 cellColors 1 0 or never visited head after a right/left move
Rows: 5,000 rows, steps 0..7,546,801
Rules (6/7 validated)1 failing · exact tape rewrites the proof will formalize, each re-checked by simulation
rulefrom ⟶ tocasesstepschecked
S1 B-sweep
B> (01)2n
⟶ (10)2n B>
odd count: B> 01^(2n+1) -> 10^(2n+1) A> in 4n+2 steps (60/60 too)4n✓60/60
S2 C-sweep
C> (10)2n
⟶ (01)2n C>
—4n✓60/60
S3/S4 D-sweeps left
(01)2n <D | (10)2n <D
⟶ <D (10)2n | <D (01)2n
60/60 each4n✓120/120
P1 A passes a pair
A> 10
⟶ 10 B>
A> 11 halts (2 steps); C> 111 halts (3 steps)4✓62/62
W defect turn (single-turn trips)
E-turn: 00 at x | C-turn: 11 at x
⟶ 11 at x-1 | 00 at x-1; some passed 00-defects reset +2 cells
every single-turn trip from step 2e4 to 3e6; the 1 miss (step 446,473) is at an epoch change; which passed defects reset is not yet derived—✗554/555
Fossils inert mod 4
run from step 597,279,037 with 4j cells inserted in blocks
⟶ same run; only those block lengths change
4 random insertions (all blocks / first fossil / X only), compared at the next 2 left records; inserting 2 mod 4 cells changes the run (3/3 negative controls)+0.2..4.1 M steps over 2.4e9✓4/4
Epoch laws
fossil F_k, mid block X_k
⟶ F_(k+1) = 3 F_k + 72, X_(k+1) = 3 X_k + 8
F: 2736 -> 8280 -> 24912 -> 74808 (to 1e10); X: 248 -> 752 -> 2264 -> 6800; observed, not derivedepoch time x9.04✓6/6
Compressed historythe tape as 0∞ J F_1 .. F_k X Y C> 0∞ (rows: the 3rd left record of each 9-cell group) at 17 moments: where the rules are read off
0∞ J F_1 .. F_k X Y C> 0∞ (rows: the 3rd left record of each 9-cell group)
steplohi
29,330-22346
91,395-25586
442,986-281,152
647,767-311,394
1,212,916-342,123
4,664,921-373,819
6,952,350-404,608
12,289,411-436,792
43,669,198-4611,918
65,532,919-4914,320
114,511,040-5220,881
398,088,769-5536,257
597,235,426-5843,526
1,041,302,739-6163,206
3,599,625,458-64109,372
5,399,920,255-67131,214
9,400,201,940-70190,263
lolast -70
-22-7029,3309.4e9log xstep 29330: lo = 22step 91395: lo = 25step 442986: lo = 28step 647767: lo = 31step 1212916: lo = 34step 4664921: lo = 37step 6952350: lo = 40step 12289411: lo = 43step 43669198: lo = 46step 65532919: lo = 49step 114511040: lo = 52step 398088769: lo = 55step 597235426: lo = 58step 1041302739: lo = 61step 3599625458: lo = 64step 5399920255: lo = 67step 9400201940: lo = 70
hilast 190,263
1.9e534629,3309.4e9log xstep 29330: hi = 346step 91395: hi = 586step 442986: hi = 1152step 647767: hi = 1394step 1212916: hi = 2123step 4664921: hi = 3819step 6952350: hi = 4608step 12289411: hi = 6792step 43669198: hi = 11918step 65532919: hi = 14320step 114511040: hi = 20881step 398088769: hi = 36257step 597235426: hi = 43526step 1041302739: hi = 63206step 3599625458: hi = 109372step 5399920255: hi = 131214step 9400201940: hi = 190263
Template comparisontemplate: partly applies · the nearest solved proof, what carries over, and the transitions that differ
01
A1RB0RF
B1RC0RB
C1LD0RA
D1LE0LD
E1RB0LC
F1LA---
file
—
module
—
machine
1RB0LE_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD--- (8 transitions apart)
diff
different table (4-5 transitions from #11/#33 under the best renaming); no shared rules
note
Nearest proved neighbour: our kill #11 (Sk1C2, SBCv6 TM21 architecture). Its .v has one counter level: shift lemmas S1-S6, window lemmas T1-T14, digit lemmas Lb/Lf/Rb/Ro, the rules M_spec / Mdrop_spec / O_spec, and an abstract INV over one digit list. W4-3 matches only the bottom layer (sweep and turn lemmas). Its counter has unboundedly many levels: fossil defects with 2-3 states, the 3-phase epoch and the left-end counter, and #11 has no analogue of these. The closest open cases are #32/R4 (multi-level counter, parked).

Proof & checks

6/6 automatic checks pass

Kill 21 · Skelet 1-like Class 2 · the kill file 1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---.v: 2622 lines, 451 items · the package submission/

✓ 6/6 automatic checks pass · Checkpoint B: no note from Dennis yet · template (twin: parent kill's .v): W4-3's kill file (kill 20) · 96% of our lines identical · vs W4-3: same table, started in W4-3's B; trajectory twin
1What is provedCheck: the string, the theorem and every check_kill line are green, and the .v on disk is the one that was checked (same sha256).
Machine
1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---
vs holdout list
✓ byte-exact: the .v literal (L45) == 2026-10-07_778.txt line 543 (41 bytes, via tools/holdouts.py)
Theorem
✓ Lemma nonhalt : ~ halts tm c0. L2575
check_kill
✓ PASS · 17/17 checks pass · compile 74.83 s · coqchk pass (1571.34 s) · assumptions: 0 (closed) · 2026-10-14 22:25:00 UTC · check_kill.txt · 2 runs on file
Checked .v
sha256 909abd2aaf109979…
✓1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---.v909abd2aaf109979… = checked
✓submission/1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---.v909abd2aaf109979… = checked
Status
✓Killed: never halts updated 2026-10-13
✓ args✓ input✓ framework✓ framework_build✓ forbidden✓ structure✓ tm_text✓ theorem_text✓ coq✓ names✓ compile✓ tm_rocq✓ theorem_rocq✓ isolation✓ assumptions✓ coqchk✓ integrity
All 17 check_kill checks with their one-line results
✓args6x2 machine, framework module Individual62, mode nonhalt
✓input143971 bytes, 2622 lines, 2454 sentences
✓frameworkHEAD 0940bb9cf434ba68f0c025dabfde45a219999973 == pin; no tracked changes under verify/
✓framework_build13 needed framework .vo files present and fresh, with native code no older than the .vo
✓forbiddennone of 30 forbidden patterns occur (ground rule 1's words: anywhere; command words: outside comments and strings; comments never split a token)
✓structure8 Require name(s) allowed; no top-level Variable/Context; no shadowing; Module/Section balanced
✓tm_textline 45: TM_from_str "1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---" == <tm> (41 bytes)
✓theorem_textline 2575: nonhalt : ~halts tm c0
✓coqcoqc 8.20.1 ([local working file]
✓nameshalts, c0, TM_from_str resolved inside Individual62
✓compilecompiled in 74.8s with all appended checks
✓tm_rocqBB6Kill.Candidate.tm = BusyCoq.Individual62.TM_from_str "1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---" by eq_refl (in-file and isolated)
✓theorem_rocqnonhalt : ~ halts (TM_from_str "1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---") c0 with absolute names (in-file and isolated)
✓isolationonly stock proof plugins loaded; guard/positivity/universe checking on, definitional UIP off
✓assumptions0 assumption(s), all in the baseline
✓coqchkcoqchk -norec BB6Kill.Candidate ok (1571.3s); its context summary lists nothing of the file's own
✓integrityinput sha256 and framework HEAD/cleanliness identical before and after
2Same machine as W4-3?Check: every row of the table is ✓ under the computed renaming (or the listed differences are what status.json's relation says), the two pictures show the same bands, and the trajectory numbers agree with the claimed relation (a twin keeps a fixed small offset; a sibling's gap grows).

status.json names W4-3 as the parent (1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---); label: “W4-3b”; relation: “sibling of W4-3: W4-3's table renamed (phi = A->B, B->C, C->D, D->E, E->A, F->F, no mirror), started in W4-3's state B”; parent_note: “W4-3 (740 line 341), killed 2026-10-12”. Everything below is computed from the two machine strings, not read from notes.

✓ Identical to W4-3's table under the renaming A→E, B→A, C→B, D→C, E→D, F→F (W4-3's state → this machine's), no mirror. This machine starts in W4-3's state B (W4-3 itself starts in A). The only such map.

W4-3W4-3's row (read 0, read 1)σpredicted row: renamed by σthis machine's actual row
A1RB 0RF→ E1RA 0RF1RA 0RF✓start of W4-3
B1RC 0RB→ A1RB 0RA1RB 0RA✓start of this machine
C1LD 0RA→ B1LC 0RE1LC 0RE✓
D1LE 0LD→ C1LD 0LC1LD 0LC✓
E1RB 0LC→ D1RA 0LB1RA 0LB✓
F1LA ---→ F1LE ---1LE ---✓

Rows aligned by σ: each of W4-3's states X sits next to this machine's state σ(X). ✓ = the actual row equals W4-3's row with every target state renamed by σ; --- (halt) must stay ---. Searched: all 720 renamings × with/without mirror.

Fig P1 · bbchallenge default view: W4-3 and this machine, first 10,000 steps

Same view, same settings on both sides. Look for the same band structure: it starts in W4-3's state B, not A, so the first steps differ; the numbers below read: trajectory twin, so after the start the bands should match line for line.

W4-3 (parent), from blank in its A
default view of 1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---
this machine (W4-3b), from blank in its A = W4-3's B
default view of 1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---
bbchallenge-defaultStart blankRows steps 0 → 10,000, top to bottomWindow cells −200..199, left to rightColors 1 0 or unvisited
tools/diagram.py <tm> --as-site (the site's 400×500 canvas)
Fig P2 · Long run, Blaze (speed): W4-3 and this machine, 100 million steps

The macro behaviour, identical settings on both sides: each picture is its machine's own visited span stretched to 800 px, so compare the shape and order of the bands, not their absolute width. Speed mode samples one cell per column, so a one-cell shift can swap orange and white inside a band; compare band edges, not colours.

W4-3 (parent), from blank in its A
blaze view of 1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---
763 rows of 131,072 steps · 1,218 columns, every 16th cell · nonzeros 9,725 at 1e8
this machine (W4-3b), from blank in its A = W4-3's B
blaze view of 1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---
763 rows of 131,072 steps · 1,218 columns, every 16th cell · nonzeros 9,727 at 1e8
bbchallenge-blazeStart blankRows steps 0 → 1e8Window the visited spanColors 1 0 at the sampled cell
Rows: one snapshot per row (Blaze time blocks), stretched to 500 px · Window: every k-th cell sampled, stretched to 800 px
tools/diagram.py <tm> --mode blaze --speed --as-site --steps 1e8

Trajectory numbers, from blank (C core)

✓ trajectory twin: within 0.0065% at 1e9 (cells +4, nonzeros +2); the offset stays within 4 at every checkpoint instead of growing

stepscells visited (hi − lo + 1)nonzeros
W4-3thisratio (Δ)W4-3thisratio (Δ)
1e56386421.0063 (+4)3163181.0063 (+2)
1e61,9451,9491.0021 (+4)9729741.0021 (+2)
1e76,1046,1081.0007 (+4)3,0483,0521.0013 (+4)
1e819,46419,4681.0002 (+4)9,7269,7261.0000 (+0)
1e961,95161,9551.0001 (+4)30,97230,9741.0001 (+2)

Each machine from blank in its own start state, sim.py C core. Trajectory twin = cells and nonzeros stay within 16 of the parent's at every checkpoint (a fixed offset from a different start, not a growing gap). Cached in img/vs-parent.json (2026-10-16 10:28 PDT); --force recomputes.

3Where it came fromCheck: the template is the one you expect, and the measured reuse (tiles, the reuse figure, diff) agrees with what the README says was kept and changed (quoted).
twin: parent kill's .v W4-3's kill file (kill 20) machines/1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---/1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---.v · detected from status.json
96%of our lines identical to the template
58changed lines
33added lines (ours only)
12template lines dropped
399 / 48 / 4items identical / adapted / new
What the package README says it reused and changed (submission/README.md line 18, Template and what changed), quoted:

The file is the parent's file, verify/Skelet1LikeC2_1RB0RF_1RC0RB.v, with these changes: tm is this machine and the parent's table is tmP (the step notations are on tmP); the base case (cfg28, b28_i, ck_i, init28) and L28 / nus28 are this run's; nonhalt_P, phi, perm_phi and nonhalt are new. All other code is the parent's, verbatim. The parent's file follows verify/SBCv6.v, Module TM21 (shape) and verify/Sk1like_TC_v1.v (the verified simulator idea). This file has 2,622 lines and imports only Individual62 from busycoq. Apart from the usual native-compiler and coqchk-timeout notes, the second TM_from_str literal (tmP) is the only warning of the automated checks.

Fig P3 · Reuse of the template, line by line and by name

Top two bars: non-blank lines after the TM string is replaced by <TM> and whitespace is collapsed. Bottom bar: our Definitions/Lemmas/… by name.

ours 2249 lines
96% identical · 58 changed · 33 added
template 2228 lines
97% kept verbatim · 12 not in ours
our items 451
399 identical · 48 adapted · 4 new · 0 template-only
identicalchanged / adaptedours only (new)template only
Template part: whole file, lines 26–2584 (leading comment left out). Ours: lines 40–2622 (header comment 1–39 left out). Line diff: Python difflib SequenceMatcher; inside a replaced block, line pairs at least 75% alike count as changed, the rest as removed + added.

Other references found:

Side-by-side diff: template (2228 lines) vs ours (2249 lines), 103 lines differ; runs of identical lines and long template-only runs folded
identicalequal once each TM string is <TM>changedours onlytemplate only
templateours
27From BusyCoq Require Import Individual62.41From BusyCoq Require Import Individual62.
28Require Import Lia ZifyNat String List Arith NArith ZArith.42Require Import Lia ZifyNat String List Arith NArith ZArith.
29Import ListNotations.43Import ListNotations.
31Definition tm := Eval compute in (TM_from_str "1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---").45Definition tm := Eval compute in (TM_from_str "1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---").
33Notation "c --> c'" := (c -[ tm ]-> c') (at level 40).
46Definition tmP := Eval compute in (TM_from_str "1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---").
34Notation "c -->* c'" := (c -[ tm ]->* c') (at level 40).48Notation "c --> c'" := (c -[ tmP ]-> c') (at level 40).
35Notation "c -->+ c'" := (c -[ tm ]->+ c') (at level 40).49Notation "c -->* c'" := (c -[ tmP ]->* c') (at level 40).
50Notation "c -->+ c'" := (c -[ tmP ]->+ c') (at level 40).
37Open Scope nat_scope.52Open Scope nat_scope.
39(* ===================================================================== *)54(* ===================================================================== *)
⋯ 100 identical lines (template 40–160, ours 55–175)
161 match pop r with176 match pop r with
162 | Some (s, r') =>177 | Some (s, r') =>
163 match tm (q, s) with178 match tmP (q, s) with
164 | Some (w, R, q') => Some (Rc q' (push w l) r')179 | Some (w, R, q') => Some (Rc q' (push w l) r')
165 | Some (w, L, q') => Some (Lc q' l (push w r'))180 | Some (w, L, q') => Some (Lc q' l (push w r'))
⋯ 5 identical lines (template 166–170, ours 181–185)
171 match pop l with186 match pop l with
172 | Some (s, l') =>187 | Some (s, l') =>
173 match tm (q, s) with188 match tmP (q, s) with
174 | Some (w, R, q') => Some (Rc q' (push w l') r)189 | Some (w, R, q') => Some (Rc q' (push w l') r)
175 | Some (w, L, q') => Some (Lc q' l' (push w r))190 | Some (w, L, q') => Some (Lc q' l' (push w r))
⋯ 165 identical lines (template 176–369, ours 191–384)
370 (i mod 4 = 2 /\ S i mod 4 = 3) \/ (i mod 4 = 3 /\ S i mod 4 = 0).385 (i mod 4 = 2 /\ S i mod 4 = 3) \/ (i mod 4 = 3 /\ S i mod 4 = 0).
371Proof. lia. Qed.386Proof. lia. Qed.
373Lemma cR_tm i : tm (cR_st i, cR_bt i) = Some (sneg (cR_bt i), R, cR_st (S i)).388Lemma cR_tm i : tmP (cR_st i, cR_bt i) = Some (sneg (cR_bt i), R, cR_st (S i)).
374Proof.389Proof.
375 unfold cR_st, cR_bt. destruct (cR_cases i) as [[H1 H2]|[[H1 H2]|[[H1 H2]|[H1 H2]]]];390 unfold cR_st, cR_bt. destruct (cR_cases i) as [[H1 H2]|[[H1 H2]|[[H1 H2]|[H1 H2]]]];
⋯ 5 identical lines (template 376–381, ours 391–396)
382 rewrite H1, H2; reflexivity.397 rewrite H1, H2; reflexivity.
383Qed.398Qed.
385Lemma cL_tm i : tm (cL_st i, cL_bt i) = Some (sneg (cL_bt i), L, cL_st (S i)).400Lemma cL_tm i : tmP (cL_st i, cL_bt i) = Some (sneg (cL_bt i), L, cL_st (S i)).
386Proof.401Proof.
387 unfold cL_st, cL_bt. destruct (cR_cases i) as [[H1 H2]|[[H1 H2]|[[H1 H2]|[H1 H2]]]];402 unfold cL_st, cL_bt. destruct (cR_cases i) as [[H1 H2]|[[H1 H2]|[[H1 H2]|[H1 H2]]]];
⋯ 52 identical lines (template 388–447, ours 403–462)
448 - destruct (pop r) as [[s r']|] eqn:Ep; [|discriminate].463 - destruct (pop r) as [[s r']|] eqn:Ep; [|discriminate].
449 pose proof (pop_spec nu sg r s r' Ep) as Hr.464 pose proof (pop_spec nu sg r s r' Ep) as Hr.
450 destruct (tm (q, s)) as [[[w [|]] q']|] eqn:Et; intros H; inversion H; subst; clear H;465 destruct (tmP (q, s)) as [[[w [|]] q']|] eqn:Et; intros H; inversion H; subst; clear H;
451 cbn [ev_cfg]; rewrite Hr, ?push_spec.466 cbn [ev_cfg]; rewrite Hr, ?push_spec.
452 + exact (step_left Et).467 + exact (step_left Et).
453 + exact (step_right Et).468 + exact (step_right Et).
454 - destruct (pop l) as [[s l']|] eqn:Ep; [|discriminate].469 - destruct (pop l) as [[s l']|] eqn:Ep; [|discriminate].
455 pose proof (pop_spec nu sg l s l' Ep) as Hl.470 pose proof (pop_spec nu sg l s l' Ep) as Hl.
456 destruct (tm (q, s)) as [[[w [|]] q']|] eqn:Et; intros H; inversion H; subst; clear H;471 destruct (tmP (q, s)) as [[[w [|]] q']|] eqn:Et; intros H; inversion H; subst; clear H;
457 cbn [ev_cfg]; rewrite Hl, ?push_spec.472 cbn [ev_cfg]; rewrite Hl, ?push_spec.
458 + exact (step_left Et).473 + exact (step_left Et).
⋯ 1542 identical lines (template 459–2232, ours 474–2247)
2233Qed.2248Qed.
2235(* ===================================================================== *)2250(* ===================================================================== *)
2236(* Base case: the blank tape reaches record exit 28. *)2251(* Base case: from B;; tape0 to record exit 28. *)
2237(* ===================================================================== *)2252(* ===================================================================== *)
2239Definition cfg28 : cfg :=2254Definition cfg28 : cfg :=
2240 Rc B2255 Rc B
2241 ([(S0, cn 74808); (S1, cn 24912); (S0, cn 8277); (S0, cn 2737); (S0, cn 972); (S1, cn 36);2256 ([(S0, cn 74808); (S1, cn 24912); (S0, cn 8277); (S0, cn 2737); (S0, cn 972); (S1, cn 36);
2242 (S0, cn 37); (S0, cn 37); (S0, cn 44); (S1, cn 24); (S0, cn 13); (S0, cn 9);2257 (S0, cn 37); (S0, cn 37); (S0, cn 44); (S1, cn 24); (S0, cn 17); (S0, cn 9);
2243 (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5);2258 (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4);
2244 (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 6); (S1, cn 4); (S0, cn 1);
2259 (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5);
2245 (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 2)], T0)
2260 (S0, cn 1); (S0, cn 6); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 1);
2261 (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 2)], T0)
2246 ([(S1, cn 224495); (S1, cn 673559); (S1, cn 7); (S1, cn 9841); (S1, cn 1942040); (S0, cn 2)], T0).2262 ([(S1, cn 224495); (S1, cn 673559); (S1, cn 7); (S1, cn 9841); (S1, cn 1942040); (S0, cn 2)], T0).
2248(* The run from the blank tape to record exit 28, in 38 pieces of at most 500,000 simulator2264(* The run from B;; tape0 to record exit 28, in 38 pieces of at most 500,000 simulator
2249 steps (each piece is one computation; intermediate configurations written out). *)2265 steps (each piece is one computation; intermediate configurations written out). *)
2250Definition mkc (rc : bool) (q : Q) (l r : list (Sym * N)) : cfg :=2266Definition mkc (rc : bool) (q : Q) (l r : list (Sym * N)) : cfg :=
2251 let f := map (fun x : Sym * N => (fst x, cn (snd x))) in2267 let f := map (fun x : Sym * N => (fst x, cn (snd x))) in
2252 if rc then Rc q (f l, T0) (f r, T0) else Lc q (f l, T0) (f r, T0).2268 if rc then Rc q (f l, T0) (f r, T0) else Lc q (f l, T0) (f r, T0).
2253Definition b28_0 : cfg := mkc true A [] [].2269Definition b28_0 : cfg := mkc true B [] [].
2254Definition b28_1 : cfg := mkc true F [(S0, 1%N); (S0, 5003%N); (S0, 9%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 21%N); (S0, 17%N); (S0, 8%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S0, 34783%N); (S0, 2%N)].2270Definition b28_1 : cfg := mkc true A [(S0, 7%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 21%N); (S0, 21%N); (S0, 8%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 5005%N); (S1, 34784%N); (S0, 2%N)].
2255Definition b28_2 : cfg := mkc false C [(S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 16%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 2734%N); (S1, 8280%N); (S0, 24912%N); (S1, 74807%N); (S1, 7%N); (S1, 20408%N); (S0, 18958%N); (S1, 1%N)].2271Definition b28_2 : cfg := mkc false D [(S1, 20408%N); (S0, 7%N); (S0, 74807%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 20%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 18958%N); (S1, 1%N)].
2256Definition b28_3 : cfg := mkc false E [(S0, 24913%N); (S0, 8280%N); (S1, 2736%N); (S0, 969%N); (S0, 37%N); (S0, 40%N); (S1, 36%N); (S0, 41%N); (S0, 25%N); (S0, 16%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 74805%N); (S1, 8%N); (S0, 15237%N); (S0, 102601%N); (S0, 2%N)].2272Definition b28_3 : cfg := mkc true C [(S1, 1%N); (S1, 102601%N); (S1, 15237%N); (S1, 8%N); (S0, 74805%N); (S0, 24913%N); (S0, 8280%N); (S1, 2736%N); (S0, 969%N); (S0, 37%N); (S0, 40%N); (S1, 36%N); (S0, 41%N); (S0, 25%N); (S0, 20%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [].
2257Definition b28_4 : cfg := mkc true B [(S1, 8%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 16%N); (S1, 23%N); (S1, 43%N); (S1, 36%N); (S0, 40%N); (S1, 35%N); (S1, 971%N); (S1, 2736%N); (S0, 8280%N); (S1, 24911%N); (S1, 74807%N); (S1, 8%N); (S0, 2576%N); (S1, 203893%N)].2273Definition b28_4 : cfg := mkc false D [(S0, 20%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 23%N); (S1, 43%N); (S1, 36%N); (S0, 40%N); (S1, 35%N); (S1, 971%N); (S1, 2736%N); (S0, 8280%N); (S1, 24911%N); (S1, 74807%N); (S1, 8%N); (S0, 2576%N); (S1, 203893%N)].
2258Definition b28_5 : cfg := mkc false D [(S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 23%N); (S0, 15%N); (S0, 8%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 4%N); (S0, 47814%N); (S1, 1%N)].2274Definition b28_5 : cfg := mkc true B [(S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 23%N); (S0, 19%N); (S0, 8%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 224496%N); (S1, 4%N); (S0, 47813%N); (S0, 2%N)].
2259Definition b28_6 : cfg := mkc false D [(S1, 55470%N); (S0, 61233%N); (S0, 7%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].2275Definition b28_6 : cfg := mkc true A [(S0, 55467%N); (S0, 61233%N); (S0, 7%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].
2260Definition b28_7 : cfg := mkc true B [(S1, 61232%N); (S0, 5%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1%N); (S1, 126903%N); (S1, 1%N)].2276Definition b28_7 : cfg := mkc true B [(S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1%N); (S1, 5%N); (S1, 61231%N); (S1, 126905%N); (S1, 1%N)].
2261Definition b28_8 : cfg := mkc true A [(S0, 204457%N); (S0, 58637%N); (S0, 9%N); (S0, 224494%N); (S1, 74808%N); (S0, 24912%N); (S1, 8280%N); (S0, 2735%N); (S0, 971%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 16%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].2277Definition b28_8 : cfg := mkc false E [(S0, 58639%N); (S0, 9%N); (S0, 224494%N); (S1, 74808%N); (S0, 24912%N); (S1, 8280%N); (S0, 2735%N); (S0, 971%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 20%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 204454%N); (S0, 2%N)].
2262Definition b28_9 : cfg := mkc true B [(S1, 45980%N); (S0, 9%N); (S0, 224494%N); (S1, 74808%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 16%N); (S0, 7%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N); (S1, 305726%N); (S0, 2%N)].2278Definition b28_9 : cfg := mkc false A [(S0, 1%N); (S0, 7%N); (S0, 224494%N); (S1, 74808%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 20%N); (S0, 7%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N); (S1, 45979%N); (S1, 305728%N); (S0, 2%N)].
2263Definition b28_10 : cfg := mkc true B [(S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 16%N); (S0, 5%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 36%N); (S1, 971%N); (S1, 2735%N); (S1, 8280%N); (S0, 24912%N); (S1, 74807%N); (S1, 224495%N); (S1, 8%N); (S0, 33320%N); (S1, 407005%N)].2279Definition b28_10 : cfg := mkc false D [(S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 20%N); (S0, 5%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 971%N); (S1, 2735%N); (S1, 8280%N); (S0, 24912%N); (S1, 74807%N); (S1, 224495%N); (S1, 8%N); (S0, 33320%N); (S1, 407005%N)].
2264Definition b28_11 : cfg := mkc true B [(S0, 20664%N); (S1, 8%N); (S0, 224495%N); (S0, 74807%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 16%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 508270%N); (S0, 2%N)].2280Definition b28_11 : cfg := mkc true B [(S0, 224495%N); (S0, 74807%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 20%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 8%N); (S0, 20662%N); (S1, 508272%N); (S0, 2%N)].
2265Definition b28_12 : cfg := mkc false D [(S1, 8%N); (S0, 224493%N); (S0, 74809%N); (S0, 24912%N); (S1, 8280%N); (S0, 2733%N); (S0, 973%N); (S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 16%N); (S0, 7%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 8001%N); (S0, 609553%N); (S0, 2%N)].2281Definition b28_12 : cfg := mkc true A [(S0, 609552%N); (S1, 8001%N); (S1, 8%N); (S0, 224493%N); (S0, 74809%N); (S0, 24912%N); (S1, 8280%N); (S0, 2733%N); (S0, 973%N); (S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 20%N); (S0, 7%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
2266Definition b28_13 : cfg := mkc true B [(S1, 224496%N); (S0, 74805%N); (S0, 24913%N); (S0, 8280%N); (S1, 2736%N); (S0, 970%N); (S1, 36%N); (S0, 40%N); (S1, 36%N); (S0, 41%N); (S0, 25%N); (S0, 16%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S0, 673560%N); (S1, 4%N); (S0, 22085%N); (S0, 2%N)].2282Definition b28_13 : cfg := mkc true A [(S0, 24911%N); (S0, 8280%N); (S1, 2736%N); (S0, 970%N); (S1, 36%N); (S0, 40%N); (S1, 36%N); (S0, 41%N); (S0, 25%N); (S0, 20%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 74807%N); (S1, 224496%N); (S0, 673560%N); (S1, 4%N); (S0, 22085%N); (S0, 2%N)].
2267Definition b28_14 : cfg := mkc false D [(S0, 74806%N); (S1, 24912%N); (S0, 8280%N); (S1, 2736%N); (S0, 971%N); (S0, 35%N); (S0, 40%N); (S1, 36%N); (S0, 43%N); (S0, 23%N); (S0, 16%N); (S1, 8%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 224496%N); (S0, 673560%N); (S1, 3%N); (S1, 82093%N); (S1, 1%N)].2283Definition b28_14 : cfg := mkc true A [(S0, 1%N); (S0, 3%N); (S0, 673560%N); (S1, 224496%N); (S0, 74806%N); (S1, 24912%N); (S0, 8280%N); (S1, 2736%N); (S0, 971%N); (S0, 35%N); (S0, 40%N); (S1, 36%N); (S0, 43%N); (S0, 23%N); (S0, 20%N); (S1, 8%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 82091%N); (S0, 2%N)].
2268Definition b28_15 : cfg := mkc false A [(S0, 1%N); (S0, 24911%N); (S0, 8280%N); (S1, 2736%N); (S0, 970%N); (S1, 36%N); (S0, 40%N); (S1, 36%N); (S0, 43%N); (S0, 23%N); (S0, 16%N); (S1, 8%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1%N); (S1, 74805%N); (S1, 224496%N); (S0, 673560%N); (S1, 4%N); (S0, 142098%N); (S1, 1%N)].2284Definition b28_15 : cfg := mkc true B [(S1, 1%N); (S1, 36%N); (S0, 40%N); (S1, 36%N); (S0, 43%N); (S0, 23%N); (S0, 20%N); (S1, 8%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 969%N); (S1, 2736%N); (S0, 8280%N); (S1, 24911%N); (S1, 74807%N); (S1, 224496%N); (S0, 673560%N); (S1, 4%N); (S0, 142098%N); (S1, 1%N)].
2269Definition b28_16 : cfg := mkc false D [(S1, 183704%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S0, 21909%N); (S0, 2%N)].2285Definition b28_16 : cfg := mkc true B [(S1, 1%N); (S1, 183704%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 21907%N)].
2270Definition b28_17 : cfg := mkc true B [(S1, 93339%N); (S1, 183704%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24910%N); (S1, 8280%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [].2286Definition b28_17 : cfg := mkc false D [(S0, 5%N); (S0, 673561%N); (S0, 224496%N); (S1, 74808%N); (S0, 24910%N); (S1, 8280%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 183704%N); (S0, 93338%N)].
2271Definition b28_18 : cfg := mkc false A [(S0, 1%N); (S0, 164770%N); (S1, 183704%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].2287Definition b28_18 : cfg := mkc false E [(S0, 673561%N); (S0, 224496%N); (S1, 74808%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 5%N); (S1, 183704%N); (S0, 164770%N); (S1, 1%N)].
2272Definition b28_19 : cfg := mkc true B [(S0, 5%N); (S0, 673561%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 183703%N); (S1, 236201%N); (S1, 1%N)].2288Definition b28_19 : cfg := mkc true B [(S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 673559%N); (S1, 7%N); (S1, 183703%N); (S1, 236201%N); (S1, 1%N)].
2273Definition b28_20 : cfg := mkc false D [(S1, 307633%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 1%N)].2289Definition b28_20 : cfg := mkc true A [(S0, 307630%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 1%N)].
2274Definition b28_21 : cfg := mkc false D [(S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 224496%N); (S1, 673559%N); (S1, 7%N); (S1, 183704%N); (S0, 379066%N); (S1, 1%N)].2290Definition b28_21 : cfg := mkc true C [(S1, 379065%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 2%N)].
2275Definition b28_22 : cfg := mkc true B [(S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24910%N); (S1, 8280%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 16%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 183703%N); (S1, 450497%N); (S1, 1%N)].2291Definition b28_22 : cfg := mkc true C [(S1, 450496%N); (S0, 183703%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24910%N); (S1, 8280%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 2%N)].
2276Definition b28_23 : cfg := mkc false D [(S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 21%N); (S0, 17%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 6%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 74808%N); (S0, 224496%N); (S1, 673559%N); (S1, 7%N); (S1, 183704%N); (S0, 521925%N); (S0, 2%N)].2292Definition b28_23 : cfg := mkc false D [(S1, 521925%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 21%N); (S0, 21%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 6%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S0, 2%N)].
2277Definition b28_24 : cfg := mkc false D [(S1, 1%N); (S1, 611006%N); (S0, 176219%N); (S0, 9%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].2293Definition b28_24 : cfg := mkc false D [(S1, 611003%N); (S1, 176220%N); (S0, 9%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].
2278Definition b28_25 : cfg := mkc true B [(S1, 712274%N); (S0, 163560%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 13%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].2294Definition b28_25 : cfg := mkc false D [(S1, 712271%N); (S1, 163561%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N); (S1, 1%N)].
2279Definition b28_26 : cfg := mkc true B [(S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 14%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 24912%N); (S0, 74808%N); (S1, 224495%N); (S1, 673559%N); (S1, 8%N); (S0, 150901%N); (S0, 813545%N); (S0, 2%N)].2295Definition b28_26 : cfg := mkc false D [(S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8277%N); (S0, 2737%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 673559%N); (S1, 8%N); (S0, 150901%N); (S0, 813545%N); (S0, 2%N)].
2280Definition b28_27 : cfg := mkc true B [(S0, 914810%N); (S1, 138244%N); (S0, 9%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [].2296Definition b28_27 : cfg := mkc false E [(S0, 138245%N); (S0, 9%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 914807%N); (S1, 1%N)].
2281Definition b28_28 : cfg := mkc true B [(S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 13%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 224495%N); (S1, 673559%N); (S1, 8%N); (S0, 125586%N); (S1, 1016072%N); (S0, 2%N)].2297Definition b28_28 : cfg := mkc false D [(S1, 24912%N); (S0, 8277%N); (S0, 2737%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 74808%N); (S1, 224495%N); (S1, 673559%N); (S1, 8%N); (S0, 125586%N); (S1, 1016072%N); (S0, 2%N)].
2282Definition b28_29 : cfg := mkc true B [(S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 13%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 8%N); (S0, 112925%N); (S0, 1117353%N); (S0, 2%N)].2298Definition b28_29 : cfg := mkc false D [(S1, 1117353%N); (S1, 112925%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 2%N)].
2283Definition b28_30 : cfg := mkc false A [(S0, 1%N); (S0, 7%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 14%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 1%N); (S1, 100267%N); (S1, 1218616%N); (S0, 2%N)].2299Definition b28_30 : cfg := mkc false D [(S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 7%N); (S1, 100269%N); (S1, 1218616%N); (S0, 2%N)].
2284Definition b28_31 : cfg := mkc true C [(S1, 1%N); (S1, 1319886%N); (S0, 87610%N); (S1, 8%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [].2300Definition b28_31 : cfg := mkc true C [(S1, 1319883%N); (S1, 87611%N); (S1, 8%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [].
2285Definition b28_32 : cfg := mkc false A [(S0, 1%N); (S0, 1421144%N); (S1, 74952%N); (S0, 9%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 13%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 1%N)].2301Definition b28_32 : cfg := mkc true C [(S1, 1421142%N); (S0, 74953%N); (S0, 9%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 2%N)].
2286Definition b28_33 : cfg := mkc false D [(S1, 1522415%N); (S1, 62293%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 14%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1%N); (S1, 1%N)].2302Definition b28_33 : cfg := mkc true C [(S1, 1%N); (S1, 1522414%N); (S0, 62294%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
2287Definition b28_34 : cfg := mkc false E [(S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 673557%N); (S1, 8%N); (S0, 49634%N); (S1, 1623688%N); (S0, 2%N)].2303Definition b28_34 : cfg := mkc true B [(S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 8%N); (S0, 49633%N); (S0, 1623689%N); (S0, 2%N)].
2288Definition b28_35 : cfg := mkc true B [(S0, 36974%N); (S1, 8%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 15%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1724965%N)].2304Definition b28_35 : cfg := mkc true B [(S0, 1724963%N); (S0, 36973%N); (S0, 9%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
2289Definition b28_36 : cfg := mkc false D [(S1, 1826223%N); (S1, 24317%N); (S1, 8%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 13%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1%N); (S1, 1%N)].2305Definition b28_36 : cfg := mkc true C [(S1, 1%N); (S1, 1826222%N); (S0, 24318%N); (S1, 8%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
2290Definition b28_37 : cfg := mkc false D [(S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 14%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 8279%N); (S1, 24912%N); (S0, 74808%N); (S1, 224495%N); (S1, 673559%N); (S1, 8%N); (S0, 11658%N); (S1, 1927496%N); (S0, 2%N)].2306Definition b28_37 : cfg := mkc false D [(S1, 8%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 11658%N); (S1, 1927496%N); (S0, 2%N)].
2291Lemma ck_0 : runp 500000 b28_0 = Some (b28_1, true).2307Lemma ck_0 : runp 500000 b28_0 = Some (b28_1, true).
2292Proof. native_compute. reflexivity. Qed.2308Proof. native_compute. reflexivity. Qed.
⋯ 70 identical lines (template 2293–2362, ours 2309–2378)
2363Lemma ck_36 : runp 500000 b28_36 = Some (b28_37, true).2379Lemma ck_36 : runp 500000 b28_36 = Some (b28_37, true).
2364Proof. native_compute. reflexivity. Qed.2380Proof. native_compute. reflexivity. Qed.
2365Lemma ck_37 : runp 71896 b28_37 = Some (cfg28, true).2381Lemma ck_37 : runp 71902 b28_37 = Some (cfg28, true).
2366Proof. native_compute. reflexivity. Qed.2382Proof. native_compute. reflexivity. Qed.
2367Lemma ck_ev p c c' : runp p c = Some (c', true) ->2383Lemma ck_ev p c c' : runp p c = Some (c', true) ->
2368 ev_cfg [] (fun _ => const S0) c -->* ev_cfg [] (fun _ => const S0) c'.2384 ev_cfg [] (fun _ => const S0) c -->* ev_cfg [] (fun _ => const S0) c'.
2369Proof. intros H. apply progress_evstep. exact (runp_spec [] (fun _ => const S0) _ _ _ _ H). Qed.2385Proof. intros H. apply progress_evstep. exact (runp_spec [] (fun _ => const S0) _ _ _ _ H). Qed.
2371Lemma init28 : c0 -->* ev_cfg [] (fun _ => const S0) cfg28.2387Lemma init28 : B;; tape0 -->* ev_cfg [] (fun _ => const S0) cfg28.
2372Proof.2388Proof.
2373 change c0 with (ev_cfg [] (fun _ => const S0) b28_0).2389 change (B;; tape0) with (ev_cfg [] (fun _ => const S0) b28_0).
2374 eapply evstep_trans; [exact (ck_ev _ _ _ ck_0)|].2390 eapply evstep_trans; [exact (ck_ev _ _ _ ck_0)|].
2375 eapply evstep_trans; [exact (ck_ev _ _ _ ck_1)|].2391 eapply evstep_trans; [exact (ck_ev _ _ _ ck_1)|].
⋯ 99 identical lines (template 2376–2484, ours 2392–2500)
2486Definition L28 : list run :=2502Definition L28 : list run :=
2487 [(S0, cn 74808); (S1, cn 24912); (S0, cn 8277); (S0, cn 2737); (S0, cn 972); (S1, cn 36);2503 [(S0, cn 74808); (S1, cn 24912); (S0, cn 8277); (S0, cn 2737); (S0, cn 972); (S1, cn 36);
2488 (S0, cn 37); (S0, cn 37); (S0, cn 44); (S1, cn 24); (S0, cn 13); (S0, cn 9);2504 (S0, cn 37); (S0, cn 37); (S0, cn 44); (S1, cn 24); (S0, cn 17); (S0, cn 9);
2489 (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5);2505 (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4);
2490 (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 6); (S1, cn 4); (S0, cn 1);
2506 (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5);
2491 (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 2)]%N.
2507 (S0, cn 1); (S0, cn 6); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 1);
2508 (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 1); (S0, cn 5); (S0, cn 2)]%N.
2492Definition R28 : list run := [(S0, cn 224492); (S1, cn 673559); (S1, cn 7); (S1, cn 9841); (S1, cn 1942040); (S0, cn 2)]%N.2509Definition R28 : list run := [(S0, cn 224492); (S1, cn 673559); (S1, cn 7); (S1, cn 9841); (S1, cn 1942040); (S0, cn 2)]%N.
2494Definition nus28 : list (list N) :=2510Definition nus28 : list (list N) :=
2495 [[18701; 6227; 2069; 683]; [242; 8; 9; 8]; [10; 5; 3; 1]; [0; 0; 0; 0]; [0; 0; 0; 0]; [0; 0; 0; 0]]%N.2511 [[18701; 6227; 2069; 683]; [242; 8; 9; 8]; [10; 5; 4; 1]; [0; 0; 0; 0]; [0; 0; 0; 0]; [0; 0; 0; 0]]%N.
2497Lemma inv28 : Inv (C5, 2, 0%N, nus28).2513Lemma inv28 : Inv (C5, 2, 0%N, nus28).
2498Proof.2514Proof.
⋯ 33 identical lines (template 2499–2538, ours 2515–2554)
2539(* The machine never halts. *)2555(* The machine never halts. *)
2540(* ===================================================================== *)2556(* ===================================================================== *)
2542Lemma nonhalt : ~ halts tm c0.2558Lemma nonhalt_P : ~ halts tmP (B;; tape0).
2543Proof.2559Proof.
2544 eapply multistep_nonhalt.2560 eapply multistep_nonhalt.
2545 - eapply evstep_trans; [apply init28 | exact base28].2561 - eapply evstep_trans; [apply init28 | exact base28].
2546 - apply (progress_nonhalt_cond tm ist (C5, 2, 0%N, nus28) cfgI Inv inv_step inv28).2562 - apply (progress_nonhalt_cond tmP ist (C5, 2, 0%N, nus28) cfgI Inv inv_step inv28).
2563Qed.
2565Definition phi (q : Q) : Q :=
2566 match q with A => B | B => C | C => D | D => E | E => A | F => F end.
2568Lemma perm_phi : Perm tm tmP phi.
2569Proof.
2570 split.
2571 - intros [] [] H; cbn in *; try discriminate; reflexivity.
2572 - intros [] [] s' d q' H; cbn in *; inversion H; subst; reflexivity.
2573Qed.
2575Lemma nonhalt : ~ halts tm c0.
2576Proof.
2577 intros H.
2578 change (halts tm (A;; tape0)) in H.
2579 exact (nonhalt_P (perm_halts _ _ _ _ _ perm_phi H)).
2547Qed.2580Qed.
2551(*2583(*
2552```2584```
25531RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---25851RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---
2555 0 1
2587 tm 0 1 tmP 0 1
2556A 1RB 0RF
2588 A 1RB 0RA A 1RB 0RF
2557B 1RC 0RB
2589 B 1LC 0RE B 1RC 0RB
2558C 1LD 0RA
2590 C 1LD 0LC C 1LD 0RA
2559D 1LE 0LD
2591 D 1RA 0LB D 1LE 0LD
2560E 1RB 0LC
2592 E 1RA 0RF E 1RB 0LC
2561F 1LA ---
2593 F 1LE --- F 1LA ---
2595 tm c0 = 0^inf A> 0^inf <-> tmP from 0^inf B> 0^inf (Perm tm tmP phi, perm_halts)
2596 record exit 28 of this start: 18,571,902 simulator steps; chain gap variables nus28 =
2597 [18701; 6227; 2069; 683] [242; 8; 9; 8] [10; 5; 4; 1] [0; 0; 0; 0] [0; 0; 0; 0] [0; 0; 0; 0]
2599 parent structure (unchanged):
2563sweep cycles (alternating cells, every cell complemented):2601sweep cycles (alternating cells, every cell complemented):
2564 right: B0 C1 A0 B1 (1RC 0RA 1RB 0RB)2602 right: B0 C1 A0 B1 (1RC 0RA 1RB 0RB)
⋯ 15 identical lines (template 2565–2582, ours 2603–2620)
2583```2621```
2584*)2622*)
4Proof outlineCheck: the new items (green) carry the argument; the names read like the proof.md rules.

451 items in 1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---.v (2622 lines): 230 Lemma, 186 Definition, 28 Fixpoint, 6 Inductive, 1 Record. Tags against the template: identical = same name and same text once each file's own TM string is <TM> (marked "except the TM string" when that is the only difference); adapted = same name, different text; new = no item of that name in the template part.

#kindnamestatement (no proof body)linevs template
1Definitiontm
Definition tm := Eval compute in (TM_from_str "1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---").
L45identicalexcept the TM string
2DefinitiontmP
Definition tmP := Eval compute in (TM_from_str "1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---").
L46new
3Definitionsneg
Definition sneg (s : Sym) : Sym := match s with S0 => S1 | S1 => S0 end.
L63identical
4Definitionseqb
Definition seqb (a b : Sym) : bool :=
match a, b with S0, S0 | S1, S1 => true | _, _ => false end.
L64identical
5Recordlf
Record lf := LF { lc : N; lv : list N }.
L67identical
6Fixpointdot
Fixpoint dot (vs nu : list N) : N :=
match vs, nu with
| v :: vs', x :: nu' => (v * x + dot vs' nu')%N
| _, _ => 0%N
end.
L69identical
7Definitionev
Definition ev (nu : list N) (a : lf) : nat := N.to_nat (lc a + dot (lv a) nu).
L75identical
8Fixpointzadd
Fixpoint zadd (a b : list N) : list N :=
match a, b with
| x :: a', y :: b' => (x + y)%N :: zadd a' b'
| [], _ => b
| _, [] => a
end.
L77identical
9Definitionlf_add
Definition lf_add (a b : lf) : lf := LF (lc a + lc b) (zadd (lv a) (lv b)).
L84identical
10Definitionlf_S
Definition lf_S (a : lf) : lf := LF (N.succ (lc a)) (lv a).
L85identical
11Definitionlf_one
Definition lf_one : lf := LF 1 [].
L86identical
12Definitionallz
Definition allz (vs : list N) : bool := forallb (fun v => N.eqb v 0) vs.
L87identical
13Definitionall4
Definition all4 (vs : list N) : bool := forallb (fun v => N.eqb (N.modulo v 4) 0) vs.
L88identical
14Definitionis_zero
Definition is_zero (a : lf) : bool := andb (N.eqb (lc a) 0) (allz (lv a)).
L89identical
15Definitionis_one
Definition is_one (a : lf) : bool := andb (N.eqb (lc a) 1) (allz (lv a)).
L90identical
16Definitionposb
Definition posb (a : lf) : bool := negb (N.eqb (lc a) 0).
L91identical
17Inductivetl_
Inductive tl_ := T0 | TV (k : nat).
L93identical
18Definitionrun
Definition run : Type := (Sym * lf)%type.
L94identical
19Definitionsd
Definition sd : Type := (list run * tl_)%type.
L95identical
20Fixpointalt
Fixpoint alt (b : Sym) (n : nat) : list Sym :=
match n with O => [] | S n' => b :: alt (sneg b) n' end.
L97identical
21Definitionev_tl
Definition ev_tl (sg : nat -> side) (t : tl_) : side :=
match t with T0 => const S0 | TV k => sg k end.
L100identical
22Fixpointev_runs
Fixpoint ev_runs (nu : list N) (rs : list run) (s : side) : side :=
match rs with
| [] => s
| (b, n) :: rs' => alt b (ev nu n) *> ev_runs nu rs' s
end.
L103identical
23Definitionev_sd
Definition ev_sd nu sg (s : sd) : side := ev_runs nu (fst s) (ev_tl sg (snd s)).
L109identical
24Fixpointpop_runs
Fixpoint pop_runs (rs : list run) (t : tl_) : option (Sym * sd) :=
match rs with
| (b, n) :: rs' =>
    if is_zero n then pop_runs rs' t
    else if posb n then
      Some (b, ((if is_one n then rs' else (sneg b, LF (N.pred (lc n)) (lv n)) :: rs'), t))
… +3 lines
L111identical
25Definitionpop
Definition pop (s : sd) : option (Sym * sd) := pop_runs (fst s) (snd s).
L121identical
26Definitionpush
Definition push (w : Sym) (s : sd) : sd :=
match s with
| ((b0, n0) :: rs, t) =>
    if seqb w b0 then ((w, lf_one) :: (b0, n0) :: rs, t)
    else ((w, lf_S n0) :: rs, t)
| ([], t) => ([(w, lf_one)], t)
… +1 lines
L123identical
27Definitionafterb
Definition afterb (c : Sym) (n : lf) : Sym := if N.eqb (N.modulo (lc n) 2) 0 then c else sneg c.
L132identical
28Definitionpush_run
Definition push_run (c : Sym) (n : lf) (s : sd) : sd :=
match s with
| ((b0, n0) :: rs, t) =>
    if seqb (afterb c n) b0 then ((c, lf_add n n0) :: rs, t)
    else ((c, n) :: (b0, n0) :: rs, t)
| ([], t) => ([(c, n)], t)
… +1 lines
L134identical
29DefinitioncR_st
Definition cR_st (i : nat) : Q :=
match i mod 4 with 0 => B | 1 => C | 2 => A | _ => B end.
L143identical
30DefinitioncR_bt
Definition cR_bt (i : nat) : Sym :=
match i mod 4 with 0 => S0 | 1 => S1 | 2 => S0 | _ => S1 end.
L145identical
31DefinitioncR_idx
Definition cR_idx (q : Q) (b : Sym) : option nat :=
match q, b with
| B, S0 => Some 0 | C, S1 => Some 1 | A, S0 => Some 2 | B, S1 => Some 3
| _, _ => None
end.
L147identical
32DefinitioncL_st
Definition cL_st (i : nat) : Q :=
match i mod 4 with 0 => D | 1 => D | 2 => E | _ => C end.
L152identical
33DefinitioncL_bt
Definition cL_bt (i : nat) : Sym :=
match i mod 4 with 0 => S1 | 1 => S0 | 2 => S1 | _ => S0 end.
L154identical
34DefinitioncL_idx
Definition cL_idx (q : Q) (b : Sym) : option nat :=
match q, b with
| D, S1 => Some 0 | D, S0 => Some 1 | E, S1 => Some 2 | C, S0 => Some 3
| _, _ => None
end.
L156identical
35Definitionlastb
Definition lastb (c : Sym) (n : lf) : Sym := if N.eqb (N.modulo (lc n) 2) 0 then sneg c else c.
L163identical
36Inductivecfg
Inductive cfg := Rc (q : Q) (l r : sd) | Lc (q : Q) (l r : sd).
L165identical
37Definitionev_cfg
Definition ev_cfg nu sg (c : cfg) : Q * tape :=
match c with
| Rc q l r => (ev_sd nu sg l) {{q}}> (ev_sd nu sg r)
| Lc q l r => (ev_sd nu sg l) <{{q}} (ev_sd nu sg r)
end.
L167identical
38Definitionsingle
Definition single (c : cfg) : option cfg :=
match c with
| Rc q l r =>
  match pop r with
  | Some (s, r') =>
    match tmP (q, s) with
… +17 lines
L173adapted
39Definitiontag
Definition tag (o : option cfg) : option (cfg * bool) :=
match o with Some c => Some (c, true) | None => None end.
L197identical
40Definitionsstep
Definition sstep (c : cfg) : option (cfg * bool) :=
match c with
| Rc q l ((b, n) :: rs, t) =>
    if is_zero n then Some (Rc q l (rs, t), false) else
    match cR_idx q b with
    | Some i =>
… +16 lines
L200identical
41Fixpointrunp
Fixpoint runp (p : positive) (c : cfg) : option (cfg * bool) :=
match p with
| xH => sstep c
| xO p' =>
    match runp p' c with
    | Some (c1, b1) => match runp p' c1 with Some (c2, b2) => Some (c2, orb b1 b2) | None => None end
… +12 lines
L224identical
42Lemmasneg_neq
Lemma sneg_neq a b : seqb a b = false -> b = sneg a.
L247identical
43Lemmaseqb_eq
Lemma seqb_eq a b : seqb a b = true -> a = b.
L250identical
44Lemmasneg_sneg
Lemma sneg_sneg a : sneg (sneg a) = a.
L253identical
45Lemmadot_zadd
Lemma dot_zadd a b nu : dot (zadd a b) nu = (dot a nu + dot b nu)%N.
L256identical
46Lemmaev_add
Lemma ev_add nu a b : ev nu (lf_add a b) = ev nu a + ev nu b.
L262identical
47Lemmaev_S
Lemma ev_S nu a : ev nu (lf_S a) = S (ev nu a).
L265identical
48Lemmaallz_dot
Lemma allz_dot vs nu : allz vs = true -> dot vs nu = 0%N.
L268identical
49Lemmaall4_dot
Lemma all4_dot vs nu : all4 vs = true -> exists k, dot vs nu = (4 * k)%N.
L274identical
50Lemmaev_zero
Lemma ev_zero nu a : is_zero a = true -> ev nu a = 0.
L283identical
51Lemmaev_one
Lemma ev_one nu a : is_one a = true -> ev nu a = 1.
L289identical
52Lemmaev_pos
Lemma ev_pos nu a : posb a = true -> ev nu a = S (ev nu (LF (N.pred (lc a)) (lv a))).
L295identical
53Lemmaev_mod4
Lemma ev_mod4 nu a : all4 (lv a) = true -> exists k, ev nu a = N.to_nat (lc a) + 4 * k.
L300identical
54Lemmaev_runs_app
Lemma ev_runs_app nu rs1 rs2 s : ev_runs nu (rs1 ++ rs2) s = ev_runs nu rs1 (ev_runs nu rs2 s).
L306identical
55Lemmapop_runs_spec
Lemma pop_runs_spec nu sg rs t b s' :
pop_runs rs t = Some (b, s') -> ev_runs nu rs (ev_tl sg t) = b >> ev_sd nu sg s'.
L309identical
56Lemmapop_spec
Lemma pop_spec nu sg s b s' : pop s = Some (b, s') -> ev_sd nu sg s = b >> ev_sd nu sg s'.
L323identical
57Lemmapush_spec
Lemma push_spec nu sg w s : ev_sd nu sg (push w s) = w >> ev_sd nu sg s.
L326identical
58Definitionafterb_nat
Definition afterb_nat (c : Sym) (n : nat) : Sym := if Nat.eqb (n mod 2) 0 then c else sneg c.
L333identical
59Lemmaafterb_nat_S
Lemma afterb_nat_S c m : afterb_nat c (S m) = afterb_nat (sneg c) m.
L335identical
60Lemmaalt_add
Lemma alt_add c m k : alt c (m + k) = alt c m ++ alt (afterb_nat c m) k.
L342identical
61Lemmaafterb_ev
Lemma afterb_ev nu c n : all4 (lv n) = true -> afterb c n = afterb_nat c (ev nu n).
L349identical
62Lemmapush_run_spec
Lemma push_run_spec nu sg c n s :
all4 (lv n) = true -> ev_sd nu sg (push_run c n s) = alt c (ev nu n) *> ev_sd nu sg s.
L356identical
63Definitionlastb_nat
Definition lastb_nat (c : Sym) (m : nat) : Sym := if Nat.eqb (m mod 2) 0 then sneg c else c.
L366identical
64Lemmalastb_ev
Lemma lastb_ev nu c n : all4 (lv n) = true -> lastb c n = lastb_nat c (ev nu n).
L368identical
65Lemmarev_alt
Lemma rev_alt b m (l : side) :
alt (sneg (lastb_nat b (S m))) (S m) *> l = alt (sneg (lastb_nat (sneg b) m)) m *> (sneg b >> l).
L375identical
66LemmacR_cases
Lemma cR_cases i : (i mod 4 = 0 /\ S i mod 4 = 1) \/ (i mod 4 = 1 /\ S i mod 4 = 2) \/
(i mod 4 = 2 /\ S i mod 4 = 3) \/ (i mod 4 = 3 /\ S i mod 4 = 0).
L384identical
67LemmacR_tm
Lemma cR_tm i : tmP (cR_st i, cR_bt i) = Some (sneg (cR_bt i), R, cR_st (S i)).
L388adapted
68LemmacR_bt_S
Lemma cR_bt_S i : cR_bt (S i) = sneg (cR_bt i).
L394identical
69LemmacL_tm
Lemma cL_tm i : tmP (cL_st i, cL_bt i) = Some (sneg (cL_bt i), L, cL_st (S i)).
L400adapted
70LemmacL_bt_S
Lemma cL_bt_S i : cL_bt (S i) = sneg (cL_bt i).
L406identical
71LemmaaccR_step
Lemma accR_step i l X :
(l {{cR_st i}}> (cR_bt i >> X)) --> ((sneg (cR_bt i) >> l) {{cR_st (S i)}}> X).
L412identical
72LemmaaccL_step
Lemma accL_step i r X :
((cL_bt i >> X) <{{cL_st i}} r) --> (X <{{cL_st (S i)}} (sneg (cL_bt i) >> r)).
L416identical
73LemmaaccR
Lemma accR m : forall i l r,
(l {{cR_st i}}> (alt (cR_bt i) m *> r)) -->*
((alt (sneg (lastb_nat (cR_bt i) m)) m *> l) {{cR_st (i + m)}}> r).
L420identical
74LemmaaccR_S
Lemma accR_S m i l r :
(l {{cR_st i}}> (alt (cR_bt i) (S m) *> r)) -->+
((alt (sneg (lastb_nat (cR_bt i) (S m))) (S m) *> l) {{cR_st (i + S m)}}> r).
L431identical
75LemmaaccL
Lemma accL m : forall i l r,
((alt (cL_bt i) m *> l) <{{cL_st i}} r) -->*
(l <{{cL_st (i + m)}} (alt (sneg (lastb_nat (cL_bt i) m)) m *> r)).
L440identical
76LemmaaccL_S
Lemma accL_S m i l r :
((alt (cL_bt i) (S m) *> l) <{{cL_st i}} r) -->+
(l <{{cL_st (i + S m)}} (alt (sneg (lastb_nat (cL_bt i) (S m))) (S m) *> r)).
L451identical
77Lemmasingle_spec
Lemma single_spec nu sg c c' : single c = Some c' -> ev_cfg nu sg c --> ev_cfg nu sg c'.
L460adapted
78DefinitionRel
Definition Rel (b : bool) (c c' : Q * tape) : Prop := if b then c -->+ c' else c -->* c'.
L477identical
79LemmaRel_trans
Lemma Rel_trans b1 b2 c c' c'' : Rel b1 c c' -> Rel b2 c' c'' -> Rel (orb b1 b2) c c''.
L479identical
80Lemmatag_spec
Lemma tag_spec nu sg c o c' b : o = single c -> tag o = Some (c', b) -> Rel b (ev_cfg nu sg c) (ev_cfg nu sg c').
L488identical
81LemmacR_idx_spec
Lemma cR_idx_spec q b i : cR_idx q b = Some i -> q = cR_st i /\ b = cR_bt i.
L494identical
82LemmacL_idx_spec
Lemma cL_idx_spec q b i : cL_idx q b = Some i -> q = cL_st i /\ b = cL_bt i.
L497identical
83LemmacR_st_mod
Lemma cR_st_mod i k : cR_st (i + N.to_nat (N.modulo k 4)) = cR_st (i + N.to_nat k).
L500identical
84LemmacL_st_mod
Lemma cL_st_mod i k : cL_st (i + N.to_nat (N.modulo k 4)) = cL_st (i + N.to_nat k).
L506identical
85LemmacR_st_add4
Lemma cR_st_add4 i a k : cR_st (i + (a + 4 * k)) = cR_st (i + a).
L512identical
86LemmacL_st_add4
Lemma cL_st_add4 i a k : cL_st (i + (a + 4 * k)) = cL_st (i + a).
L515identical
87Lemmasstep_spec
Lemma sstep_spec nu sg c c' b : sstep c = Some (c', b) -> Rel b (ev_cfg nu sg c) (ev_cfg nu sg c').
L518identical
88Lemmarunp_spec
Lemma runp_spec nu sg p : forall c c' b, runp p c = Some (c', b) -> Rel b (ev_cfg nu sg c) (ev_cfg nu sg c').
L553identical
89Fixpointstrip0
Fixpoint strip0 (vs : list N) : list N :=
match vs with
| [] => []
| v :: vs' => match strip0 vs' with [] => if N.eqb v 0 then [] else [v] | w => v :: w end
end.
L573identical
90FixpointlistN_eqb
Fixpoint listN_eqb (a b : list N) : bool :=
match a, b with
| [], [] => true
| x :: a', y :: b' => andb (N.eqb x y) (listN_eqb a' b')
| _, _ => false
end.
L579identical
91Definitionlf_eqb
Definition lf_eqb (a b : lf) : bool := andb (N.eqb (lc a) (lc b)) (listN_eqb (strip0 (lv a)) (strip0 (lv b))).
L586identical
92Definitionruns_eqb
Definition runs_eqb (a b : list run) : bool :=
(fix f (a b : list run) := match a, b with
 | [], [] => true
 | (x, n) :: a', (y, m) :: b' => andb (andb (seqb x y) (lf_eqb n m)) (f a' b')
 | _, _ => false end) a b.
L588identical
93Definitiontl_eqb
Definition tl_eqb (a b : tl_) : bool :=
match a, b with T0, T0 => true | TV i, TV j => Nat.eqb i j | _, _ => false end.
L594identical
94Definitionsd_eqb
Definition sd_eqb (a b : sd) : bool := andb (runs_eqb (fst a) (fst b)) (tl_eqb (snd a) (snd b)).
L597identical
95Definitionq_eqb
Definition q_eqb (a b : Q) : bool :=
match a, b with A, A | B, B | C, C | D, D | E, E | F, F => true | _, _ => false end.
L599identical
96Definitioncfg_eqb
Definition cfg_eqb (a b : cfg) : bool :=
match a, b with
| Rc q l r, Rc q' l' r' => andb (q_eqb q q') (andb (sd_eqb l l') (sd_eqb r r'))
| Lc q l r, Lc q' l' r' => andb (q_eqb q q') (andb (sd_eqb l l') (sd_eqb r r'))
| _, _ => false
end.
L602identical
97Lemmadot_strip0
Lemma dot_strip0 vs nu : dot (strip0 vs) nu = dot vs nu.
L609identical
98LemmalistN_eqb_eq
Lemma listN_eqb_eq a b : listN_eqb a b = true -> a = b.
L619identical
99Lemmalf_eqb_ev
Lemma lf_eqb_ev nu a b : lf_eqb a b = true -> ev nu a = ev nu b.
L625identical
100Lemmaruns_eqb_ev
Lemma runs_eqb_ev nu a b s : runs_eqb a b = true -> ev_runs nu a s = ev_runs nu b s.
L632identical
101Lemmasd_eqb_ev
Lemma sd_eqb_ev nu sg a b : sd_eqb a b = true -> ev_sd nu sg a = ev_sd nu sg b.
L639identical
102Lemmaq_eqb_eq
Lemma q_eqb_eq a b : q_eqb a b = true -> a = b.
L648identical
103Lemmacfg_eqb_ev
Lemma cfg_eqb_ev nu sg a b : cfg_eqb a b = true -> ev_cfg nu sg a = ev_cfg nu sg b.
L651identical
104Definitionrstep
Definition rstep (tgt : cfg) (st : cfg * bool * bool) : cfg * bool * bool :=
let '(c, pr, dn) := st in
if dn then st else
match sstep c with
| Some (c', b) => (c', orb pr b, cfg_eqb c' tgt)
| None => st
… +1 lines
L659identical
105Definitionreach
Definition reach (fuel : positive) (c tgt : cfg) : bool :=
let '(c', pr, dn) := Pos.iter (rstep tgt) (c, false, false) fuel in andb pr dn.
L668identical
106Lemmareach_spec
Lemma reach_spec fuel c tgt : reach fuel c tgt = true ->
forall nu sg, ev_cfg nu sg c -->+ ev_cfg nu sg tgt.
L671identical
107Definitioncn
Definition cn (n : N) : lf := LF n [].
L690identical
108Fixpointmkruns
Fixpoint mkruns (b : Sym) (ns : list lf) : list run :=
match ns with [] => [] | n :: ns' => (b, n) :: mkruns (lastb b n) ns' end.
L696identical
109Definitionvt
Definition vt c := LF c [4;0;0;0]%N.
L700identical
110Definitionvs
Definition vs c := LF c [0;4;0;0]%N.
L701identical
111Definitionva
Definition va c := LF c [0;0;4;0]%N.
L702identical
112Definitionvl
Definition vl c := LF c [0;0;0;4]%N.
L703identical
113Inductivelab
Inductive lab := U0 | U1 | U2 | W0 | W1 | D0 | D1 | D2.
L705identical
114Definitionlens
Definition lens (s : lab) : list lf :=
match s with
| U0 => [cn 3; vt 4; vs 4; va 1; vl 2]
| U1 => [cn 3; vt 4; vs 4; va 2; vl 1]
| U2 => [cn 3; vt 4; vs 4; va 3; vl 0]
| W0 => [cn 3; vt 1; vs 6; va 4; vl 0]
… +5 lines
L707identical
115Definitionblk
Definition blk (s : lab) : list run := mkruns S0 (lens s).
L718identical
116Definitionrlens
Definition rlens (s : lab) : list lf :=
match s with
| D0 => [vl 0; va 4; vs 4; vt 3; cn 3]
| _  => [vl 0; va 3; vs 4; vt 4; cn 3]
end%N.
L721identical
117Definitionrblk
Definition rblk (s : lab) : list run := mkruns S0 (rlens s).
L726identical
118Inductivelab1
Inductive lab1 := P0 | P1 | PD0 | PD1 | PD2.
L729identical
119Definitionlens1
Definition lens1 (s : lab1) : list lf :=
match s with
| P0 => [cn 3; cn 1; cn 3] | P1 => [cn 3; cn 2; cn 2] | PD0 => [cn 3; cn 3; cn 1]
| PD1 => [cn 2; cn 4; cn 1] | PD2 => [cn 1; cn 5; cn 1]
end%N.
L730identical
120Definitionblk1
Definition blk1 (s : lab1) : list run := mkruns S0 (lens1 s).
L735identical
121Definitionrblk1
Definition rblk1 : list run := mkruns S1 [cn 1; cn 3; cn 3]%N.
L736identical
122Definitionstp
Definition stp (p : bool) : Q := if p then A else B.
L739identical
123Definitionturn
Definition turn (s : lab) : option (lab * bool) :=
match s with
| U0 => Some (U1, true) | U1 => Some (U2, true) | W0 => Some (W1, true) | W1 => Some (D0, true)
| D1 => Some (D0, false) | D2 => Some (D1, false) | _ => None
end.
L741identical
124Definitionreset
Definition reset (s : lab) (p : bool) : option (lab * bool) :=
match s, p with
| U2, true => Some (U0, true) | U2, false => Some (W0, true) | D0, false => Some (D2, false)
| _, _ => None
end.
L746identical
125Definitionturn1
Definition turn1 (s : lab1) : option (lab1 * bool) :=
match s with
| P0 => Some (P1, true) | P1 => Some (PD0, true) | PD1 => Some (PD0, false) | PD2 => Some (PD1, false)
| PD0 => None
end.
L751identical
126Definitionsg2
Definition sg2 (L R : side) : nat -> side := fun k => match k with O => L | _ => R end.
L757identical
127Lemmareach_LR
Lemma reach_LR fuel q q' l l' nu L R :
reach fuel (Lc q (l, TV 0) ([], TV 1)) (Rc q' (l', TV 0) ([], TV 1)) = true ->
ev_runs nu l L <{{q}} R -->+ ev_runs nu l' L {{q'}}> R.
L759identical
128Lemmareach_LL
Lemma reach_LL fuel q q' l r' nu L R :
reach fuel (Lc q (l, TV 0) ([], TV 1)) (Lc q' ([], TV 0) (r', TV 1)) = true ->
ev_runs nu l L <{{q}} R -->+ L <{{q'}} ev_runs nu r' R.
L764identical
129Lemmareach_RR
Lemma reach_RR fuel q q' r l' nu L R :
reach fuel (Rc q ([], TV 0) (r, TV 1)) (Rc q' (l', TV 0) ([], TV 1)) = true ->
L {{q}}> ev_runs nu r R -->+ ev_runs nu l' L {{q'}}> R.
L769identical
130Lemmablk_turn
Lemma blk_turn s s' p nu L R : turn s = Some (s', p) ->
ev_runs nu (blk s) L <{{D}} R -->+ ev_runs nu (blk s') L {{stp p}}> R.
L774identical
131Lemmablk_pass
Lemma blk_pass s nu L R : turn s = None ->
ev_runs nu (blk s) L <{{D}} R -->+ L <{{D}} ev_runs nu (rblk s) R.
L781identical
132Lemmablk_reset
Lemma blk_reset s p s' p' nu L R : reset s p = Some (s', p') ->
L {{stp p}}> ev_runs nu (rblk s) R -->+ ev_runs nu (blk s') L {{stp p'}}> R.
L787identical
133Lemmablk1_turn
Lemma blk1_turn s s' p L R : turn1 s = Some (s', p) ->
ev_runs [] (blk1 s) L <{{D}} R -->+ ev_runs [] (blk1 s') L {{stp p}}> R.
L794identical
134Lemmablk1_pass
Lemma blk1_pass L R : ev_runs [] (blk1 PD0) L <{{D}} R -->+ L <{{E}} ev_runs [] rblk1 R.
L801identical
135Lemmablk1_back
Lemma blk1_back L R : L {{B}}> ev_runs [] rblk1 R -->+ ev_runs [] (blk1 PD2) L {{B}}> R.
L804identical
136Definitiondgr
Definition dgr (v : nat) : list run :=
match v with
| O => [(S0, cn 1); (S0, cn 5)]
| S O => [(S0, cn 2); (S1, cn 4)]
| _ => [(S0, cn 3); (S0, cn 3)]
end%N.
L812identical
137Definitionlw
Definition lw (i : nat) : list run :=
if Nat.ltb i 81 then
  [(S1, cn 3); (S1, cn 4)] ++ dgr (i mod 3) ++ dgr (i / 3 mod 3) ++ dgr (i / 9 mod 3) ++ dgr (i / 27 mod 3)
    ++ [(S0, cn 2)]
else [(S0, cn 6); (S1, cn 4)] ++ dgr 0 ++ dgr 0 ++ dgr 0 ++ dgr 0 ++ [(S0, cn 2)].
L819identical
138DefinitionLWs
Definition LWs (i : nat) : side := ev_runs [] (lw i) (const S0).
L825identical
139Lemmareach_T0
Lemma reach_T0 fuel q q' l l' (Y : side) :
reach fuel (Lc q (l, T0) ([], TV 0)) (Rc q' (l', T0) ([], TV 0)) = true ->
ev_runs [] l (const S0) <{{q}} Y -->+ ev_runs [] l' (const S0) {{q'}}> Y.
L827identical
140Definitionlw_ok
Definition lw_ok (i : nat) : bool := reach 1000 (Lc E (lw i, T0) ([], TV 0)) (Rc B (lw (S i), T0) ([], TV 0)).
L832identical
141Lemmalw_all
Lemma lw_all : forallb lw_ok (seq 0 81) = true.
L834identical
142Lemmalw_ok_spec
Lemma lw_ok_spec i Y : lw_ok i = true ->
ev_runs [] (lw i) (const S0) <{{E}} Y -->+ ev_runs [] (lw (S i)) (const S0) {{B}}> Y.
L837identical
143Lemmalw_ok_lt
Lemma lw_ok_lt i : i < 81 -> lw_ok i = true.
L841identical
144Lemmalw_ep
Lemma lw_ep i Y : i < 81 -> LWs i <{{E}} Y -->+ LWs (S i) {{B}}> Y.
L844identical
145Fixpointchs
Fixpoint chs (ls : list lab) (nus : list (list N)) (L : side) : side :=
match ls, nus with
| s :: ls', nu :: nus' => ev_runs nu (blk s) (chs ls' nus' L)
| _, _ => L
end.
L852identical
146Fixpointrchs
Fixpoint rchs (ls : list lab) (nus : list (list N)) (R : side) : side :=
match ls, nus with
| s :: ls', nu :: nus' => rchs ls' nus' (ev_runs nu (rblk s) R)
| _, _ => R
end.
L858identical
147Fixpointvisit3
Fixpoint visit3 (ls : list lab) : option (list lab * bool) :=
match ls with
| [] => None
| s :: ls' =>
  match turn s with
  | Some (s', p) => Some (s' :: ls', p)
… +7 lines
L864identical
148Fixpointcb
Fixpoint cb (ls : list lab) (p : bool) : option (list lab * bool) :=
match ls with
| [] => Some ([], p)
| s :: ls' =>
  match cb ls' p with
  | Some (ls'', p') => match reset s p' with Some (s'', p'') => Some (s'' :: ls'', p'') | None => None end
… +3 lines
L878identical
149Definitionfullb
Definition fullb (s : lab) : bool := match turn s with None => true | Some _ => false end.
L888identical
150Lemmavisit3_spec
Lemma visit3_spec ls : forall ls' p nus L R, visit3 ls = Some (ls', p) -> length ls = length nus ->
chs ls nus L <{{D}} R -->+ chs ls' nus L {{stp p}}> R.
L890identical
151Lemmapass_spec
Lemma pass_spec ls : forall nus L R, forallb fullb ls = true -> length ls = length nus ->
chs ls nus L <{{D}} R -->* L <{{D}} rchs ls nus R.
L906identical
152Lemmacb_spec
Lemma cb_spec ls : forall p ls' p' nus L R, cb ls p = Some (ls', p') -> length ls = length nus ->
L {{stp p}}> rchs ls nus R -->* chs ls' nus L {{stp p'}}> R.
L919identical
153Lemmavisit3_len
Lemma visit3_len ls : forall ls' p, visit3 ls = Some (ls', p) -> length ls' = length ls.
L933identical
154Lemmacb_len
Lemma cb_len ls : forall p ls' p', cb ls p = Some (ls', p') -> length ls' = length ls.
L942identical
155Definitionvst
Definition vst : Type := (list lab * lab1 * nat)%type.
L954identical
156Definitionlab1_eqb
Definition lab1_eqb (a b : lab1) : bool :=
match a, b with P0, P0 | P1, P1 | PD0, PD0 | PD1, PD1 | PD2, PD2 => true | _, _ => false end.
L956identical
157Definitionvis
Definition vis (st : vst) : option (vst * bool) :=
let '(ls, b, i) := st in
match visit3 ls with
| Some (ls', p) => Some ((ls', b, i), p)
| None =>
  if forallb fullb ls then
… +9 lines
L959identical
158Definitionb1s
Definition b1s (b : lab1) (X : side) : side := ev_runs [] (blk1 b) X.
L975identical
159DefinitionGc
Definition Gc (st : vst) (nus : list (list N)) (R : side) : Q * tape :=
let '(ls, b, i) := st in chs ls nus (b1s b (LWs i)) <{{D}} R.
L977identical
160DefinitionGx
Definition Gx (st : vst) (nus : list (list N)) (p : bool) (R : side) : Q * tape :=
let '(ls, b, i) := st in chs ls nus (b1s b (LWs i)) {{stp p}}> R.
L979identical
161Definitionvlen
Definition vlen (st : vst) : nat := let '(ls, _, _) := st in length ls.
L982identical
162Lemmalab1_eqb_eq
Lemma lab1_eqb_eq a b : lab1_eqb a b = true -> a = b.
L984identical
163Lemmavis_spec
Lemma vis_spec st st' p nus R : vis st = Some (st', p) -> vlen st = length nus ->
Gc st nus R -->+ Gx st' nus p R /\ vlen st' = vlen st.
L987identical
164DefinitionEp
Definition Ep (p : bool) (R R' : side) : Prop := forall l, l {{stp p}}> R -->* l <{{D}} R'.
L1017identical
165FixpointEpSeq
Fixpoint EpSeq (ps : list bool) (R R' : side) : Prop :=
match ps with
| [] => R = R'
| p :: ps' => exists R1, Ep p R R1 /\ EpSeq ps' R1 R'
end.
L1019identical
166Fixpointrunv
Fixpoint runv (n : nat) (st : vst) : option (vst * list bool) :=
match n with
| O => Some (st, [])
| S n' =>
  match vis st with
  | Some (st1, p) => match runv n' st1 with Some (st2, ps) => Some (st2, p :: ps) | None => None end
… +3 lines
L1025identical
167Lemmarunv_spec
Lemma runv_spec n : forall st st' ps nus R R', runv n st = Some (st', ps) -> vlen st = length nus ->
EpSeq ps R R' -> Gc st nus R -->* Gc st' nus R'.
L1035identical
168Lemmarunv_add
Lemma runv_add a : forall b st st1 ps1 st2 ps2,
runv a st = Some (st1, ps1) -> runv b st1 = Some (st2, ps2) -> runv (a + b) st = Some (st2, ps1 ++ ps2).
L1056identical
169Lemmarunv_one
Lemma runv_one st st' p : vis st = Some (st', p) -> runv 1 st = Some (st', [p]).
L1066identical
170Lemmavis3
Lemma vis3 ls ls' p b i : visit3 ls = Some (ls', p) -> vis (ls, b, i) = Some ((ls', b, i), p).
L1069identical
171Lemmarepeat_add
Lemma repeat_add {X} (x : X) n m : repeat x (n + m) = repeat x n ++ repeat x m.
L1072identical
172Lemmarepeat_snoc
Lemma repeat_snoc {X} (x : X) n l : repeat x n ++ x :: l = repeat x (S n) ++ l.
L1075identical
173Lemmapow3_pos
Lemma pow3_pos j : 1 <= 3 ^ j.
L1078identical
174Lemmavisit3_U2
Lemma visit3_U2 j X X' : visit3 X = Some (X', true) -> visit3 (repeat U2 j ++ X) = Some (repeat U0 j ++ X', true).
L1081identical
175Lemmacb_U2
Lemma cb_U2 j X p X' : cb X p = Some (X', true) -> cb (repeat U2 j ++ X) p = Some (repeat U0 j ++ X', true).
L1084identical
176Lemmavisit3_full
Lemma visit3_full ls : forallb fullb ls = true -> visit3 ls = None.
L1087identical
177Lemmafullb_U2
Lemma fullb_U2 j : forallb fullb (repeat U2 j) = true.
L1094identical
178Lemmafullb_D0
Lemma fullb_D0 j : forallb fullb (repeat D0 j) = true.
L1097identical
179Lemmafullb_app
Lemma fullb_app a b : forallb fullb a = true -> forallb fullb b = true -> forallb fullb (a ++ b) = true.
L1100identical
180Lemmarep_app
Lemma rep_app {X} (x : X) a b : repeat x a ++ repeat x b = repeat x (a + b).
L1103identical
181LemmaCU
Lemma CU j : forall rest b i,
runv (3 ^ j - 1) (repeat U0 j ++ rest, b, i) = Some ((repeat U2 j ++ rest, b, i), repeat true (3 ^ j - 1)).
L1107identical
182LemmaCW
Lemma CW j : forall rest b i,
runv (3 ^ S j - 1) (repeat U0 j ++ W0 :: rest, b, i) =
  Some ((repeat U2 j ++ D0 :: rest, b, i), repeat true (3 ^ S j - 1)).
L1130identical
183Fixpointtc
Fixpoint tc (j : nat) : nat :=
match j with
| O => 0
| S O => 2
| S j' => 3 ^ j + tc j'
end.
L1151identical
184Lemmatc_closed
Lemma tc_closed j : 2 * tc (S j) + 5 = 3 ^ S (S j).
L1158identical
185LemmaS3
Lemma S3 j : forall d d' rest b i, turn d = Some (d', false) ->
runv (tc (S j) + 1) (repeat U0 j ++ W0 :: d :: rest, b, i) =
  Some ((D2 :: repeat D1 j ++ d' :: rest, b, i), repeat true (tc (S j)) ++ [false]).
L1165identical
186DefinitionisD
Definition isD (s : lab) : bool := match s with D0 | D1 | D2 => true | _ => false end.
L1191identical
187Definitiondv
Definition dv (s : lab) : nat := match s with D1 => 1 | D0 => 2 | _ => 0 end.
L1192identical
188Fixpointdval
Fixpoint dval (ls : list lab) : nat := match ls with [] => 0 | s :: ls' => dv s + 3 * dval ls' end.
L1193identical
189Definitiondv1
Definition dv1 (b : lab1) : nat := match b with PD1 => 1 | PD0 => 2 | _ => 0 end.
L1194identical
190DefinitionisD1
Definition isD1 (b : lab1) : bool := match b with PD0 | PD1 | PD2 => true | _ => false end.
L1195identical
191Lemmadval_lt
Lemma dval_lt ls : forallb isD ls = true -> dval ls < 3 ^ length ls.
L1197identical
192Lemmadval_max
Lemma dval_max ls : forallb isD ls = true -> dval ls + 1 = 3 ^ length ls -> ls = repeat D0 (length ls).
L1203identical
193Lemmavisit3_D
Lemma visit3_D ls : forallb isD ls = true -> dval ls + 1 < 3 ^ length ls ->
exists ls', visit3 ls = Some (ls', false) /\ forallb isD ls' = true /\ dval ls' = dval ls + 1 /\
  length ls' = length ls.
L1210identical
194Lemmacb_D0
Lemma cb_D0 j : cb (repeat D0 j) false = Some (repeat D2 j, false).
L1224identical
195LemmaisD_D2
Lemma isD_D2 j : forallb isD (repeat D2 j) = true.
L1227identical
196Lemmadval_D2
Lemma dval_D2 j : dval (repeat D2 j) = 0.
L1230identical
197Lemmadval_D1
Lemma dval_D1 j : 2 * dval (repeat D1 j) + 1 = 3 ^ j.
L1233identical
198LemmaisD_D1
Lemma isD_D1 j : forallb isD (repeat D1 j) = true.
L1236identical
199Lemmavis_b1
Lemma vis_b1 ls b b' p1 ls' p i : forallb fullb ls = true -> turn1 b = Some (b', p1) -> cb ls p1 = Some (ls', p) ->
vis (ls, b, i) = Some ((ls', b', i), p).
L1239identical
200Lemmavis_co
Lemma vis_co ls ls' p i : forallb fullb ls = true -> i < 80 -> cb ls false = Some (ls', p) ->
vis (ls, PD0, i) = Some ((ls', PD2, S i), p).
L1243identical
201LemmaallD
Lemma allD n : forall ls b i, forallb isD ls = true -> isD1 b = true ->
dval ls + 3 ^ length ls * dv1 b + n + 1 = 3 ^ S (length ls) ->
runv n (ls, b, i) = Some ((repeat D0 (length ls), PD0, i), repeat false n).
L1250identical
202Lemmacyc
Lemma cyc m i : i < 80 ->
runv (3 ^ S m) (repeat D0 m, PD0, i) = Some ((repeat D0 m, PD0, S i), repeat false (3 ^ S m)).
L1272identical
203Lemmacycs
Lemma cycs c : forall m i, i + c <= 80 ->
runv (c * 3 ^ S m) (repeat D0 m, PD0, i) = Some ((repeat D0 m, PD0, i + c), repeat false (c * 3 ^ S m)).
L1282identical
204Lemmarep_app_cons
Lemma rep_app_cons {X} (x : X) a b l : repeat x a ++ (repeat x b ++ l) = repeat x (a + b) ++ l.
L1291identical
205Lemmaodd_pow3
Lemma odd_pow3 j : exists k, 3 ^ j = 2 * k + 1.
L1294identical
206Lemmahalf9
Lemma half9 j : 2 * ((9 * 3 ^ j + 1) / 2) = 9 * 3 ^ j + 1.
L1297identical
207Lemmainterval
Lemma interval m : 2 <= m ->
exists T, 2 * T + 5 = 3 ^ S (S m) /\
runv (81 * 3 ^ S m - 1) (repeat U0 m, P0, 0) =
  Some ((repeat D0 m, PD0, 80), repeat true T ++ repeat false (81 * 3 ^ S m - 1 - T)).
L1304identical
208Lemmainterval_tm
Lemma interval_tm m nus R R' : 2 <= m -> length nus = m ->
(forall T, 2 * T + 5 = 3 ^ S (S m) -> EpSeq (repeat true T ++ repeat false (81 * 3 ^ S m - 1 - T)) R R') ->
Gc (repeat U0 m, P0, 0) nus R -->* Gc (repeat D0 m, PD0, 80) nus R'.
L1378identical
209Lemmarecord_visit
Lemma record_visit m nus R : length nus = m ->
Gc (repeat D0 m, PD0, 80) nus R -->+ chs (repeat D2 m) nus (b1s PD2 (LWs 81)) {{B}}> R.
L1387identical
210Fixpointurun
Fixpoint urun (p : positive) (c : cfg) : cfg * bool :=
match p with
| xH => match sstep c with Some (c', _) => (c', false) | None => (c, true) end
| xO p' => let '(c1, s1) := urun p' c in if s1 then (c1, true) else urun p' c1
| xI p' =>
  match sstep c with
… +4 lines
L1403identical
211Lemmasstep_ev
Lemma sstep_ev nu sg c c' b : sstep c = Some (c', b) -> ev_cfg nu sg c -->* ev_cfg nu sg c'.
L1414identical
212Lemmaurun_spec
Lemma urun_spec p : forall c nu sg, ev_cfg nu sg c -->* ev_cfg nu sg (fst (urun p c)).
L1419identical
213DefinitiontgtD
Definition tgtD (c : cfg) : option (list run) :=
match c with
| Lc D ([], TV O) (rr, T0) => Some rr
| _ => None
end.
L1434identical
214LemmatgtD_spec
Lemma tgtD_spec c rr : tgtD c = Some rr -> c = Lc D ([], TV 0) (rr, T0).
L1440identical
215DefinitionevR
Definition evR (nu : list N) (rr : list run) : side := ev_runs nu rr (const S0).
L1448identical
216Definitionep_run
Definition ep_run (p : bool) (rr : list run) : option (list run) :=
tgtD (fst (urun 50000 (Rc (stp p) ([], TV 0) (rr, T0)))).
L1451identical
217Lemmaep_run_spec
Lemma ep_run_spec p rr rr' : ep_run p rr = Some rr' -> forall nu, Ep p (evR nu rr) (evR nu rr').
L1454identical
218Fixpointeps
Fixpoint eps (ps : list bool) (rr : list run) : option (list run) :=
match ps with
| [] => Some rr
| p :: ps' => match ep_run p rr with Some rr' => eps ps' rr' | None => None end
end.
L1462identical
219Lemmaeps_spec
Lemma eps_spec ps : forall rr rr', eps ps rr = Some rr' -> forall nu, EpSeq ps (evR nu rr) (evR nu rr').
L1468identical
220LemmaEpSeq_app
Lemma EpSeq_app a : forall b R R1 R2, EpSeq a R R1 -> EpSeq b R1 R2 -> EpSeq (a ++ b) R R2.
L1476identical
221DefinitionevN
Definition evN (nu : list N) (a : lf) : N := (lc a + dot (lv a) nu)%N.
L1485identical
222Lemmadot_zadd2
Lemma dot_zadd2 v : forall a b, dot v (zadd a b) = (dot v a + dot v b)%N.
L1487identical
223Definitionvscale
Definition vscale (k : N) (w : list N) : list N := map (N.mul k) w.
L1493identical
224Lemmadot_vscale
Lemma dot_vscale v : forall k w, dot v (vscale k w) = (k * dot v w)%N.
L1495identical
225Lemmaev_runs_dot
Lemma ev_runs_dot nu nu' T X : (forall v, dot v nu = dot v nu') -> ev_runs nu T X = ev_runs nu' T X.
L1498identical
226Definitionsubst_lf
Definition subst_lf (w : list N) (a : lf) : lf := LF (lc a + dot (lv a) w) (lv a).
L1503identical
227Definitionsubst_runs
Definition subst_runs (w : list N) (T : list run) : list run := map (fun r => (fst r, subst_lf w (snd r))) T.
L1504identical
228Lemmaev_runs_subst
Lemma ev_runs_subst nu w T X : ev_runs nu (subst_runs w T) X = ev_runs (zadd nu w) T X.
L1506identical
229Definitionlf_scale
Definition lf_scale (k : N) (a : lf) : lf := LF (k * lc a) (map (N.mul k) (lv a)).
L1512identical
230Lemmadot_scale_l
Lemma dot_scale_l vs : forall k nu, dot (map (N.mul k) vs) nu = (k * dot vs nu)%N.
L1514identical
231LemmaevN_add
Lemma evN_add nu a b : evN nu (lf_add a b) = (evN nu a + evN nu b)%N.
L1517identical
232LemmaevN_scale
Lemma evN_scale nu k a : evN nu (lf_scale k a) = (k * evN nu a)%N.
L1520identical
233Fixpointcomp_aux
Fixpoint comp_aux (vs : list N) (sg : list lf) : lf :=
match vs, sg with
| v :: vs', s :: sg' => lf_add (lf_scale v s) (comp_aux vs' sg')
| _, _ => LF 0 []
end.
L1523identical
234Definitioncompose_lf
Definition compose_lf (sg : list lf) (a : lf) : lf := lf_add (LF (lc a) []) (comp_aux (lv a) sg).
L1528identical
235Definitioncomp_runs
Definition comp_runs (sg : list lf) (T : list run) : list run := map (fun r => (fst r, compose_lf sg (snd r))) T.
L1529identical
236LemmaevN_comp_aux
Lemma evN_comp_aux nu vs : forall sg, evN nu (comp_aux vs sg) = dot vs (map (evN nu) sg).
L1531identical
237LemmaevN_compose
Lemma evN_compose nu sg a : evN nu (compose_lf sg a) = evN (map (evN nu) sg) a.
L1537identical
238Lemmaev_runs_comp
Lemma ev_runs_comp nu sg T X : ev_runs nu (comp_runs sg T) X = ev_runs (map (evN nu) sg) T X.
L1540identical
239Lemmajump_lemma
Lemma jump_lemma T p dec inc :
(forall nu, EpSeq [p; p; p; p] (evR nu (subst_runs dec T)) (evR nu (subst_runs inc T))) ->
forall k nu, EpSeq (repeat p (4 * k)) (evR (zadd nu (vscale (N.of_nat k) dec)) T)
                                      (evR (zadd nu (vscale (N.of_nat k) inc)) T).
L1549identical
240Definitionuvar
Definition uvar (i : nat) (c : N) : lf := LF c (repeat 0%N i ++ [4%N]).
L1579identical
241Fixpointzsub
Fixpoint zsub (a b : list N) : list N :=
match a, b with
| x :: a', y :: b' => (x - y)%N :: zsub a' b'
| _, [] => a
| [], _ => []
end.
L1581identical
242Fixpointmk_jump
Fixpoint mk_jump (i : nat) (rr rr4 : list run) (c : lf) : option (list run * list N * list N * list lf) :=
match rr, rr4 with
| [], [] => Some ([], [], [], [])
| (b, a) :: rr', (b4, a4) :: rr4' =>
  if negb (seqb b b4) then None else
  if negb (listN_eqb (strip0 (lv a)) (strip0 (lv a4))) then None else
… +19 lines
L1588identical
243Fixpointmapadd
Fixpoint mapadd (c : lf) (sg : list lf) (w : list N) : list lf :=
match sg, w with
| s :: sg', x :: w' => lf_add s (lf_scale x c) :: mapadd c sg' w'
| _, _ => []
end.
L1614identical
244Lemmamapadd_ev
Lemma mapadd_ev nu c sg : forall w, length sg = length w ->
map (evN nu) (mapadd c sg w) = zadd (map (evN nu) sg) (vscale (evN nu c) w).
L1620identical
245Definitioncyc4
Definition cyc4 (p : bool) : list bool := [p; p; p; p].
L1628identical
246Definitionjump_run
Definition jump_run (p : bool) (c : lf) (rr : list run) : option (list run) :=
match eps (cyc4 p) rr with
| None => None
| Some rr4 =>
  match mk_jump 0 rr rr4 c with
  | None => None
… +11 lines
L1630identical
247Lemmajump_run_spec
Lemma jump_run_spec p c rr rr' : jump_run p c rr = Some rr' ->
forall nu, EpSeq (repeat p (4 * ev nu c)) (evR nu rr) (evR nu rr').
L1648identical
248Inductiveinstr
Inductive instr := ISingle (p : bool) | IJump (p : bool) (c : lf).
L1671identical
249Definitionseg
Definition seg : Type := (bool * lf)%type.
L1673identical
250Fixpointsegs_ev
Fixpoint segs_ev (nu : list N) (ss : list seg) : list bool :=
match ss with [] => [] | (p, n) :: ss' => repeat p (ev nu n) ++ segs_ev nu ss' end.
L1675identical
251Fixpointexec
Fixpoint exec (prog : list instr) (rr : list run) : option (list run * list seg) :=
match prog with
| [] => Some (rr, [])
| ISingle p :: prog' =>
  match ep_run p rr with
  | Some rr1 => match exec prog' rr1 with Some (rr2, ss) => Some (rr2, (p, cn 1) :: ss) | None => None end
… +8 lines
L1678identical
252Lemmaev_scale4
Lemma ev_scale4 nu c : ev nu (lf_scale 4 c) = 4 * ev nu c.
L1693identical
253Lemmaexec_spec
Lemma exec_spec prog : forall rr rr' ss, exec prog rr = Some (rr', ss) ->
forall nu, EpSeq (segs_ev nu ss) (evR nu rr) (evR nu rr').
L1697identical
254Fixpointsum_ph
Fixpoint sum_ph (p : bool) (ss : list seg) : lf :=
match ss with
| [] => LF 0 []
| (q, n) :: ss' => if Bool.eqb p q then lf_add n (sum_ph p ss') else sum_ph p ss'
end.
L1714identical
255Fixpointsplit_ok
Fixpoint split_ok (seen_false : bool) (ss : list seg) : bool :=
match ss with
| [] => true
| (true, _) :: ss' => andb (negb seen_false) (split_ok false ss')
| (false, _) :: ss' => split_ok true ss'
end.
L1719identical
256Lemmaev_lf_add
Lemma ev_lf_add nu a b : ev nu (lf_add a b) = ev nu a + ev nu b.
L1726identical
257Lemmasplit_false
Lemma split_false ss nu : split_ok true ss = true -> segs_ev nu ss = repeat false (ev nu (sum_ph false ss)).
L1729identical
258Lemmasum_false_true
Lemma sum_false_true ss : split_ok true ss = true -> sum_ph true ss = LF 0 [] \/ True.
L1736identical
259Lemmasplit_spec
Lemma split_spec ss nu : split_ok false ss = true ->
segs_ev nu ss = repeat true (ev nu (sum_ph true ss)) ++ repeat false (ev nu (sum_ph false ss)).
L1739identical
260Definitionprog_check
Definition prog_check (prog : list instr) (rs re : list run) (T F : lf) : bool :=
match exec prog rs with
| Some (re', ss) =>
  andb (andb (runs_eqb re' re) (split_ok false ss)) (andb (lf_eqb (sum_ph true ss) T) (lf_eqb (sum_ph false ss) F))
| None => false
end.
L1752identical
261Lemmaprog_check_spec
Lemma prog_check_spec prog rs re T F : prog_check prog rs re T F = true ->
forall nu, EpSeq (repeat true (ev nu T) ++ repeat false (ev nu F)) (evR nu rs) (evR nu re).
L1759identical
262Definitiontl1
Definition tl1 (c a : N) : lf := LF c [a].
L1774identical
263DefinitionRs_r5
Definition Rs_r5 : list run := mkruns S0 [tl1 224492 1796256; tl1 673559 5388768; cn 8; tl1 9836 78732; tl1 1942069 15536448]%N.
L1775identical
264Definitionprog_r5
Definition prog_r5 : list instr := repeat (ISingle true) 4 ++ [IJump true (tl1 817 6561)] ++ repeat (ISingle true) 6 ++ repeat (ISingle false) 13 ++ [IJump false (tl1 43462 347733)] ++ repeat (ISingle false) 7.
L1776identical
265DefinitionRs_r0
Definition Rs_r0 : list run := mkruns S0 [tl1 74804 598752; tl1 224495 1796256; tl1 673560 5388768; tl1 2020752 16166304; cn 4; tl1 521610 4172796; cn 1]%N.
L1777identical
266Definitionprog_r0
Definition prog_r0 : list instr := repeat (ISingle true) 4 ++ [IJump true (tl1 817 6561)] ++ repeat (ISingle true) 6 ++ repeat (ISingle false) 9 ++ [IJump false (tl1 43463 347733)] ++ repeat (ISingle false) 7.
L1778identical
267DefinitionRs_r1
Definition Rs_r1 : list run := mkruns S0 [tl1 2020748 16166304; cn 7; tl1 551120 4408992; tl1 1564809 12518388; cn 2]%N.
L1779identical
268Definitionprog_r1
Definition prog_r1 : list instr := repeat (ISingle true) 4 ++ [IJump true (tl1 2457 19683)] ++ repeat (ISingle true) 7 ++ repeat (ISingle false) 5 ++ [IJump false (tl1 130398 1043199)] ++ repeat (ISingle false) 4.
L1780identical
269DefinitionRs_r2
Definition Rs_r2 : list run := mkruns S0 [tl1 8276 66528; tl1 24911 199584; tl1 74808 598752; tl1 224496 1796256; tl1 673559 5388768; tl1 2020751 16166304; cn 8; tl1 29514 236196; tl1 5826224 46609344; cn 2]%N.
L1781identical
270Definitionprog_r2
Definition prog_r2 : list instr := repeat (ISingle true) 4 ++ [IJump true (tl1 817 6561)] ++ repeat (ISingle true) 6 ++ repeat (ISingle false) 8 ++ [IJump false (tl1 43464 347733)] ++ repeat (ISingle false) 4.
L1782identical
271DefinitionRs_r3
Definition Rs_r3 : list run := mkruns S0 [tl1 224492 1796256; tl1 673559 5388768; tl1 2020752 16166304; tl1 6062328 48498912; cn 4; tl1 1564810 12518388]%N.
L1783identical
272Definitionprog_r3
Definition prog_r3 : list instr := repeat (ISingle true) 4 ++ [IJump true (tl1 2457 19683)] ++ repeat (ISingle true) 7 ++ repeat (ISingle false) 9 ++ [IJump false (tl1 130397 1043199)] ++ repeat (ISingle false) 4.
L1784identical
273DefinitionRs_r4
Definition Rs_r4 : list run := mkruns S0 [tl1 74804 598752; tl1 224495 1796256; tl1 673560 5388768; tl1 2020752 16166304; tl1 6062327 48498912; cn 7; tl1 1653368 13226976; tl1 4694422 37555164; cn 1]%N.
L1785identical
274Definitionprog_r4
Definition prog_r4 : list instr := repeat (ISingle true) 4 ++ [IJump true (tl1 2457 19683)] ++ repeat (ISingle true) 7 ++ repeat (ISingle false) 6 ++ [IJump false (tl1 130397 1043199)] ++ repeat (ISingle false) 7.
L1786identical
275DefinitionRe_r5
Definition Re_r5 : list run := [(S0, tl1 224492 1796256); (S1, tl1 673560 5388768); (S0, tl1 2020752 16166304); (S1, cn 4); (S0, tl1 521602 4172796)]%N.
L1787identical
276Lemmaint_r5
Lemma int_r5 : prog_check prog_r5 Rs_r5 Re_r5 (tl1 3278 26244) (tl1 173868 1390932) = true.
L1788identical
277DefinitionRe_r0
Definition Re_r0 : list run := [(S0, tl1 74804 598752); (S1, tl1 224496 1796256); (S0, tl1 673560 5388768); (S1, tl1 2020751 16166304); (S1, cn 7); (S1, tl1 551120 4408992); (S0, tl1 1564798 12518388); (S1, cn 1)]%N.
L1790identical
278Lemmaint_r0
Lemma int_r0 : prog_check prog_r0 Rs_r0 Re_r0 (tl1 3278 26244) (tl1 173868 1390932) = true.
L1791identical
279DefinitionRe_r1
Definition Re_r1 : list run := [(S0, tl1 2020748 16166304); (S1, cn 8); (S0, tl1 29521 236196); (S0, tl1 5826161 46609344); (S0, cn 2)]%N.
L1793identical
280Lemmaint_r1
Lemma int_r1 : prog_check prog_r1 Rs_r1 Re_r1 (tl1 9839 78732) (tl1 521601 4172796) = true.
L1794identical
281DefinitionRe_r2
Definition Re_r2 : list run := [(S0, tl1 8276 66528); (S1, tl1 24912 199584); (S0, tl1 74808 598752); (S1, tl1 224495 1796256); (S1, tl1 673559 5388768); (S1, tl1 2020752 16166304); (S0, tl1 6062328 48498912); (S1, cn 3); (S1, tl1 1564801 12518388); (S1, cn 1)]%N.
L1796identical
282Lemmaint_r2
Lemma int_r2 : prog_check prog_r2 Rs_r2 Re_r2 (tl1 3278 26244) (tl1 173868 1390932) = true.
L1797identical
283DefinitionRe_r3
Definition Re_r3 : list run := [(S0, tl1 224492 1796256); (S1, tl1 673560 5388768); (S0, tl1 2020752 16166304); (S1, tl1 6062327 48498912); (S1, cn 7); (S1, tl1 1653368 13226976); (S0, tl1 4694397 37555164); (S0, cn 2)]%N.
L1799identical
284Lemmaint_r3
Lemma int_r3 : prog_check prog_r3 Rs_r3 Re_r3 (tl1 9839 78732) (tl1 521601 4172796) = true.
L1800identical
285DefinitionRe_r4
Definition Re_r4 : list run := [(S0, tl1 74804 598752); (S1, tl1 224496 1796256); (S0, tl1 673560 5388768); (S1, tl1 2020751 16166304); (S1, tl1 6062327 48498912); (S1, cn 7); (S1, tl1 88573 708588); (S1, tl1 17478488 139828032); (S0, cn 2)]%N.
L1802identical
286Lemmaint_r4
Lemma int_r4 : prog_check prog_r4 Rs_r4 Re_r4 (tl1 9839 78732) (tl1 521601 4172796) = true.
L1803identical
287Definitionrtop
Definition rtop (qs : list (list N)) (z : N) : N :=
match qs with [] => z | q :: _ => nth 0 q 0%N end.
L1811identical
288Fixpointrshift
Fixpoint rshift (qs : list (list N)) (z : N) : list (list N) :=
match qs with
| [] => []
| q :: qs' => [nth 1 q 0; nth 2 q 0; nth 3 q 0; rtop qs' z]%N :: rshift qs' z
end.
L1814identical
289Lemmashift_len
Lemma shift_len qs z : length (rshift qs z) = length qs.
L1820identical
290Lemmadot4
Lemma dot4 (a b c d : N) q :
dot [a; b; c; d] q = (a * nth 0 q 0 + b * nth 1 q 0 + c * nth 2 q 0 + d * nth 3 q 0)%N.
L1823identical
291Lemmaalt_split
Lemma alt_split b m k : Nat.eqb (m mod 2) 0 = true -> alt b (m + k) = alt b m ++ alt b k.
L1827identical
292Lemmaev_q
Lemma ev_q nu c a : ev nu (LF c a) = N.to_nat (c + dot a nu).
L1832identical
293Lemmaregroup
Lemma regroup qs : forall z X X',
X = alt S0 1 *> (alt S0 (2 + 4 * N.to_nat z) *> X') ->
chs (repeat D2 (length qs)) qs X =
  alt S0 1 *> (alt S0 (2 + 4 * N.to_nat (rtop qs z)) *> chs (repeat U0 (length qs)) (rshift qs z) X').
L1835identical
294Lemmaregroup_b1
Lemma regroup_b1 : b1s PD2 (LWs 81) = alt S0 1 *> (alt S0 (2 + 4 * N.to_nat 0) *> b1s P0 (LWs 0)).
L1864identical
295Lemmadrop_step
Lemma drop_step L Re Rs nu X' :
reach 100000 (Rc B (L, TV 0) (Re, T0)) (Lc D ([], TV 0) (Rs, T0)) = true ->
ev_runs nu L X' {{B}}> evR nu Re -->+ X' <{{D}} evR nu Rs.
L1871identical
296DefinitionW5t
Definition W5t (t : N) : N := (18701 + 149688 * t)%N.
L1876identical
297DefinitionW5s
Definition W5s (t : N) : N := (6227 + 49896 * t)%N.
L1877identical
298DefinitionW5a
Definition W5a (t : N) : N := (2069 + 16632 * t)%N.
L1878identical
299Lemmarec_r5_ok
Lemma rec_r5_ok : reach 100000 (Rc B ([(S0, cn 1); (S0, tl1 74806 598752)], TV 0) (Re_r5, T0)) (Lc D ([], TV 0) (Rs_r0, T0)) = true.
L1880identical
300Lemmastep_r5
Lemma step_r5 t f1 deep :
chs (repeat D2 (S (length deep))) ([W5t t; W5s t; W5a t; f1] :: deep) (b1s PD2 (LWs 81)) {{B}}> evR [t] Re_r5 -->+
Gc (repeat U0 (S (length deep)), P0, 0) ([W5s t; W5a t; f1; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r0).
L1883identical
301Lemmapow_K0
Lemma pow_K0 k0 e : 2 <= e -> 3 ^ (k0 + 2 * e) = 3 ^ (k0 + 4) * 9 ^ (e - 2).
L1895identical
302LemmaS_r5
Lemma S_r5 e t f1 deep : 2 <= e -> 1 + 8 * N.to_nat t = 9 ^ (e - 2) -> length deep = 1 + 2 * e ->
Gc (repeat U0 (S (length deep)), P0, 0) ([W5t t; W5s t; W5a t; f1] :: deep) (evR [t] Rs_r5) -->+
Gc (repeat U0 (S (length deep)), P0, 0) ([W5s t; W5a t; f1; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r0).
L1902identical
303Definitionwv
Definition wv (c a t : N) : N := (c + a * t)%N.
L1924identical
304LemmaevN_tl1
Lemma evN_tl1 c a t : evN [t] (tl1 c a) = wv c a t.
L1926identical
305Lemmatake_step
Lemma take_step L first4 Re' Rs nu sg X' :
reach 100000 (Rc B (L, TV 0) (first4, TV 1)) (Rc A (comp_runs sg (blk U0), TV 0) ([], TV 1)) = true ->
ep_run true Re' = Some Rs ->
ev_runs nu L X' {{B}}> ev_runs nu first4 (evR nu Re') -->+
  ev_runs (map (evN nu) sg) (blk U0) X' <{{D}} evR nu Rs.
L1929identical
306Lemmasplit4
Lemma split4 nu r1 r2 r3 b c v rest X :
ev_runs nu (r1 :: r2 :: r3 :: (b, LF (3 + c) v) :: rest) X =
ev_runs nu [r1; r2; r3; (b, cn 3)] (ev_runs nu ((sneg b, LF c v) :: rest) X).
L1942identical
307DefinitionW0t
Definition W0t := wv 6227 49896.
L1956identical
308DefinitionW0s
Definition W0s := wv 2069 16632.
L1957identical
309DefinitionW1t
Definition W1t := wv 168389 1347192.
L1958identical
310DefinitionW1s
Definition W1s := wv 56123 449064.
L1959identical
311DefinitionW1a
Definition W1a := wv 18701 149688.
L1960identical
312DefinitionW1I
Definition W1I := wv 6227 49896.
L1961identical
313DefinitionW1u
Definition W1u := wv 2069 16632.
L1962identical
314Definitionsig01
Definition sig01 : list lf := [tl1 168389 1347192; tl1 56123 449064; tl1 18701 149688; tl1 6227 49896]%N.
L1964identical
315Definitionf4_r0
Definition f4_r0 : list run := [(S0, tl1 74804 598752); (S1, tl1 224496 1796256); (S0, tl1 673560 5388768); (S1, cn 3)]%N.
L1965identical
316DefinitionRp_r0
Definition Rp_r0 : list run := [(S0, tl1 2020748 16166304); (S1, cn 7); (S1, tl1 551120 4408992); (S0, tl1 1564798 12518388); (S1, cn 1)]%N.
L1966identical
317Lemmarec_r0a
Lemma rec_r0a : reach 100000 (Rc B ([(S0, cn 1); (S0, tl1 24910 199584)], TV 0) (f4_r0, TV 1))
(Rc A (comp_runs sig01 (blk U0), TV 0) ([], TV 1)) = true.
L1968identical
318Lemmarec_r0b
Lemma rec_r0b : ep_run true Rp_r0 = Some Rs_r1.
L1971identical
319Lemmasplit_r0
Lemma split_r0 t : evR [t] Re_r0 = ev_runs [t] f4_r0 (evR [t] Rp_r0).
L1974identical
320Lemmastep_r0
Lemma step_r0 t f1 f2 deep :
chs (repeat D2 (S (length deep))) ([W0t t; W0s t; f1; f2] :: deep) (b1s PD2 (LWs 81)) {{B}}> evR [t] Re_r0 -->+
Gc (repeat U0 (S (S (length deep))), P0, 0)
   ([W1t t; W1s t; W1a t; W1I t] :: [W0s t; f1; f2; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r1).
L1980identical
321DefinitionW3t
Definition W3t := wv 18701 149688.
L2000identical
322Lemmarec_r3_ok
Lemma rec_r3_ok : reach 100000 (Rc B ([(S0, cn 1); (S0, tl1 74806 598752)], TV 0) (Re_r3, T0)) (Lc D ([], TV 0) (Rs_r4, T0)) = true.
L2002identical
323Lemmastep_r3
Lemma step_r3 t f1 f2 f3 deep :
chs (repeat D2 (S (length deep))) ([W3t t; f1; f2; f3] :: deep) (b1s PD2 (LWs 81)) {{B}}> evR [t] Re_r3 -->+
Gc (repeat U0 (S (length deep)), P0, 0) ([f1; f2; f3; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r4).
L2005identical
324Definitionsig12
Definition sig12 : list lf := [tl1 56123 449064; tl1 18701 149688; tl1 6227 49896; tl1 2069 16632]%N.
L2019identical
325Lemmarec_r1_ok
Lemma rec_r1_ok : reach 100000 (Rc B ([(S0, cn 1); (S0, tl1 673558 5388768)] ++ comp_runs sig12 (blk U0), TV 0) (Re_r1, T0))
(Lc D ([], TV 0) (Rs_r2, T0)) = true.
L2021identical
326Lemmastep_r1
Lemma step_r1 t f1 f2 f3 deep :
chs (repeat D2 (S (S (length deep)))) ([W1t t; W1s t; W1a t; W1I t] :: [W1u t; f1; f2; f3] :: deep) (b1s PD2 (LWs 81))
  {{B}}> evR [t] Re_r1 -->+
Gc (repeat U0 (S (length deep)), P0, 0) ([f1; f2; f3; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r2).
L2025identical
327Definitionxv
Definition xv : lf := LF 2 [0; 4]%N.
L2045identical
328Definitionsig23
Definition sig23 : list lf := [tl1 18701 149688; tl1 6227 49896; tl1 2069 16632; LF 0 [0; 1]]%N.
L2046identical
329Definitionf4_r2
Definition f4_r2 : list run := [(S0, tl1 8276 66528); (S1, tl1 24912 199584); (S0, tl1 74808 598752); (S1, cn 3)]%N.
L2047identical
330DefinitionRp_r2
Definition Rp_r2 : list run := [(S0, tl1 224492 1796256); (S1, tl1 673559 5388768); (S1, tl1 2020752 16166304);
(S0, tl1 6062328 48498912); (S1, cn 3); (S1, tl1 1564801 12518388); (S1, cn 1)]%N.
L2048identical
331Lemmarec_r2a
Lemma rec_r2a : reach 100000 (Rc B ([(S0, cn 1); (S0, xv)], TV 0) (f4_r2, TV 1))
(Rc A (comp_runs sig23 (blk U0), TV 0) ([], TV 1)) = true.
L2051identical
332Lemmarec_r2b
Lemma rec_r2b : ep_run true Rp_r2 = Some Rs_r3.
L2054identical
333Lemmasplit_r2
Lemma split_r2 nu : evR nu Re_r2 = ev_runs nu f4_r2 (evR nu Rp_r2).
L2057identical
334Lemmastep_r2
Lemma step_r2 t q deep :
chs (repeat D2 (S (length deep))) (q :: deep) (b1s PD2 (LWs 81)) {{B}}> evR [t] Re_r2 -->+
Gc (repeat U0 (S (S (length deep))), P0, 0)
   ([W3t t; wv 6227 49896 t; wv 2069 16632 t; nth 0 q 0%N] :: rshift (q :: deep) 0%N) (evR [t] Rs_r3).
L2063identical
335Definitionsub9_lf
Definition sub9_lf (l : lf) : lf := match lv l with [a] => LF (lc l + a) [9 * a] | _ => l end%N.
L2086identical
336Definitionsub9
Definition sub9 (rs : list run) : list run := map (fun r => (fst r, sub9_lf (snd r))) rs.
L2087identical
337Lemmaev_runs_sub9
Lemma ev_runs_sub9 t rs X : forallb (fun r => Nat.leb (length (lv (snd r))) 1) rs = true ->
ev_runs [t] (sub9 rs) X = ev_runs [(1 + 9 * t)%N] rs X.
L2089identical
338LemmaevR_sub9_r5
Lemma evR_sub9_r5 t : evR [t] (sub9 Rs_r5) = evR [(1 + 9 * t)%N] Rs_r5.
L2097identical
339Definitionsig45
Definition sig45 : list lf := [tl1 168389 1347192; tl1 56123 449064; tl1 18701 149688; LF 0 [0; 1]]%N.
L2100identical
340Definitionf4_r4
Definition f4_r4 : list run := [(S0, tl1 74804 598752); (S1, tl1 224496 1796256); (S0, tl1 673560 5388768); (S1, cn 3)]%N.
L2101identical
341DefinitionRp_r4
Definition Rp_r4 : list run := [(S0, tl1 2020748 16166304); (S1, tl1 6062327 48498912); (S1, cn 7);
(S1, tl1 88573 708588); (S1, tl1 17478488 139828032); (S0, cn 2)]%N.
L2102identical
342Lemmarec_r4a
Lemma rec_r4a : reach 100000 (Rc B ([(S0, cn 1); (S0, xv)], TV 0) (f4_r4, TV 1))
(Rc A (comp_runs sig45 (blk U0), TV 0) ([], TV 1)) = true.
L2105identical
343Lemmarec_r4b
Lemma rec_r4b : ep_run true Rp_r4 = Some (sub9 Rs_r5).
L2108identical
344Lemmasplit_r4
Lemma split_r4 nu : evR nu Re_r4 = ev_runs nu f4_r4 (evR nu Rp_r4).
L2111identical
345Lemmastep_r4
Lemma step_r4 t q deep :
chs (repeat D2 (S (length deep))) (q :: deep) (b1s PD2 (LWs 81)) {{B}}> evR [t] Re_r4 -->+
Gc (repeat U0 (S (S (length deep))), P0, 0)
   ([W5t (1 + 9 * t); W5s (1 + 9 * t); W5a (1 + 9 * t); nth 0 q 0%N] :: rshift (q :: deep) 0%N)
   (evR [(1 + 9 * t)%N] Rs_r5).
L2117identical
346LemmaS_r0
Lemma S_r0 e t f1 f2 deep : 2 <= e -> 1 + 8 * N.to_nat t = 9 ^ (e - 2) -> length deep = 1 + 2 * e ->
Gc (repeat U0 (S (length deep)), P0, 0) ([W0t t; W0s t; f1; f2] :: deep) (evR [t] Rs_r0) -->+
Gc (repeat U0 (S (S (length deep))), P0, 0) ([W1t t; W1s t; W1a t; W1I t] :: [W0s t; f1; f2; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r1).
L2140identical
347LemmaS_r1
Lemma S_r1 e t f1 f2 f3 deep : 2 <= e -> 1 + 8 * N.to_nat t = 9 ^ (e - 2) -> length deep = 1 + 2 * e ->
Gc (repeat U0 (S (S (length deep))), P0, 0) ([W1t t; W1s t; W1a t; W1I t] :: [W1u t; f1; f2; f3] :: deep) (evR [t] Rs_r1) -->+
Gc (repeat U0 (S (length deep)), P0, 0) ([f1; f2; f3; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r2).
L2162identical
348LemmaS_r2
Lemma S_r2 e t q deep : 2 <= e -> 1 + 8 * N.to_nat t = 9 ^ (e - 2) -> length deep = 1 + 2 * e ->
Gc (repeat U0 (S (length deep)), P0, 0) (q :: deep) (evR [t] Rs_r2) -->+
Gc (repeat U0 (S (S (length deep))), P0, 0) ([W3t t; wv 6227 49896 t; wv 2069 16632 t; nth 0 q 0%N] :: rshift (q :: deep) 0%N) (evR [t] Rs_r3).
L2184identical
349LemmaS_r3
Lemma S_r3 e t f1 f2 f3 deep : 2 <= e -> 1 + 8 * N.to_nat t = 9 ^ (e - 2) -> length deep = 2 + 2 * e ->
Gc (repeat U0 (S (length deep)), P0, 0) ([W3t t; f1; f2; f3] :: deep) (evR [t] Rs_r3) -->+
Gc (repeat U0 (S (length deep)), P0, 0) ([f1; f2; f3; rtop deep 0%N] :: rshift deep 0%N) (evR [t] Rs_r4).
L2206identical
350LemmaS_r4
Lemma S_r4 e t q deep : 2 <= e -> 1 + 8 * N.to_nat t = 9 ^ (e - 2) -> length deep = 2 + 2 * e ->
Gc (repeat U0 (S (length deep)), P0, 0) (q :: deep) (evR [t] Rs_r4) -->+
Gc (repeat U0 (S (S (length deep))), P0, 0) ([W5t (1 + 9 * t); W5s (1 + 9 * t); W5a (1 + 9 * t); nth 0 q 0%N] :: rshift (q :: deep) 0%N) (evR [(1 + 9 * t)%N] Rs_r5).
L2228identical
351Definitioncfg28
Definition cfg28 : cfg :=
Rc B
  ([(S0, cn 74808); (S1, cn 24912); (S0, cn 8277); (S0, cn 2737); (S0, cn 972); (S1, cn 36);
    (S0, cn 37); (S0, cn 37); (S0, cn 44); (S1, cn 24); (S0, cn 17); (S0, cn 9);
    (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4);
    (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5);
… +3 lines
L2254adapted
352Definitionmkc
Definition mkc (rc : bool) (q : Q) (l r : list (Sym * N)) : cfg :=
let f := map (fun x : Sym * N => (fst x, cn (snd x))) in
if rc then Rc q (f l, T0) (f r, T0) else Lc q (f l, T0) (f r, T0).
L2266identical
353Definitionb28_0
Definition b28_0 : cfg := mkc true B [] [].
L2269adapted
354Definitionb28_1
Definition b28_1 : cfg := mkc true A [(S0, 7%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 21%N); (S0, 21%N); (S0, 8%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 5005%N); (S1, 34784%N); (S0, 2%N)].
L2270adapted
355Definitionb28_2
Definition b28_2 : cfg := mkc false D [(S1, 20408%N); (S0, 7%N); (S0, 74807%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 20%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 18958%N); (S1, 1%N)].
L2271adapted
356Definitionb28_3
Definition b28_3 : cfg := mkc true C [(S1, 1%N); (S1, 102601%N); (S1, 15237%N); (S1, 8%N); (S0, 74805%N); (S0, 24913%N); (S0, 8280%N); (S1, 2736%N); (S0, 969%N); (S0, 37%N); (S0, 40%N); (S1, 36%N); (S0, 41%N); (S0, 25%N); (S0, 20%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [].
L2272adapted
357Definitionb28_4
Definition b28_4 : cfg := mkc false D [(S0, 20%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 23%N); (S1, 43%N); (S1, 36%N); (S0, 40%N); (S1, 35%N); (S1, 971%N); (S1, 2736%N); (S0, 8280%N); (S1, 24911%N); (S1, 74807%N); (S1, 8%N); (S0, 2576%N); (S1, 203893%N)].
L2273adapted
358Definitionb28_5
Definition b28_5 : cfg := mkc true B [(S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 23%N); (S0, 19%N); (S0, 8%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 224496%N); (S1, 4%N); (S0, 47813%N); (S0, 2%N)].
L2274adapted
359Definitionb28_6
Definition b28_6 : cfg := mkc true A [(S0, 55467%N); (S0, 61233%N); (S0, 7%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].
L2275adapted
360Definitionb28_7
Definition b28_7 : cfg := mkc true B [(S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 1%N); (S1, 5%N); (S1, 61231%N); (S1, 126905%N); (S1, 1%N)].
L2276adapted
361Definitionb28_8
Definition b28_8 : cfg := mkc false E [(S0, 58639%N); (S0, 9%N); (S0, 224494%N); (S1, 74808%N); (S0, 24912%N); (S1, 8280%N); (S0, 2735%N); (S0, 971%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 20%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 204454%N); (S0, 2%N)].
L2277adapted
362Definitionb28_9
Definition b28_9 : cfg := mkc false A [(S0, 1%N); (S0, 7%N); (S0, 224494%N); (S1, 74808%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 34%N); (S1, 44%N); (S0, 24%N); (S1, 20%N); (S0, 7%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N); (S1, 45979%N); (S1, 305728%N); (S0, 2%N)].
L2278adapted
363Definitionb28_10
Definition b28_10 : cfg := mkc false D [(S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 20%N); (S0, 5%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 971%N); (S1, 2735%N); (S1, 8280%N); (S0, 24912%N); (S1, 74807%N); (S1, 224495%N); (S1, 8%N); (S0, 33320%N); (S1, 407005%N)].
L2279adapted
364Definitionb28_11
Definition b28_11 : cfg := mkc true B [(S0, 224495%N); (S0, 74807%N); (S0, 24912%N); (S1, 8280%N); (S0, 2734%N); (S1, 972%N); (S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 20%N); (S0, 6%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 8%N); (S0, 20662%N); (S1, 508272%N); (S0, 2%N)].
L2280adapted
365Definitionb28_12
Definition b28_12 : cfg := mkc true A [(S0, 609552%N); (S1, 8001%N); (S1, 8%N); (S0, 224493%N); (S0, 74809%N); (S0, 24912%N); (S1, 8280%N); (S0, 2733%N); (S0, 973%N); (S0, 36%N); (S1, 40%N); (S0, 33%N); (S0, 45%N); (S0, 24%N); (S1, 20%N); (S0, 7%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
L2281adapted
366Definitionb28_13
Definition b28_13 : cfg := mkc true A [(S0, 24911%N); (S0, 8280%N); (S1, 2736%N); (S0, 970%N); (S1, 36%N); (S0, 40%N); (S1, 36%N); (S0, 41%N); (S0, 25%N); (S0, 20%N); (S1, 8%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 74807%N); (S1, 224496%N); (S0, 673560%N); (S1, 4%N); (S0, 22085%N); (S0, 2%N)].
L2282adapted
367Definitionb28_14
Definition b28_14 : cfg := mkc true A [(S0, 1%N); (S0, 3%N); (S0, 673560%N); (S1, 224496%N); (S0, 74806%N); (S1, 24912%N); (S0, 8280%N); (S1, 2736%N); (S0, 971%N); (S0, 35%N); (S0, 40%N); (S1, 36%N); (S0, 43%N); (S0, 23%N); (S0, 20%N); (S1, 8%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 82091%N); (S0, 2%N)].
L2283adapted
368Definitionb28_15
Definition b28_15 : cfg := mkc true B [(S1, 1%N); (S1, 36%N); (S0, 40%N); (S1, 36%N); (S0, 43%N); (S0, 23%N); (S0, 20%N); (S1, 8%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 969%N); (S1, 2736%N); (S0, 8280%N); (S1, 24911%N); (S1, 74807%N); (S1, 224496%N); (S0, 673560%N); (S1, 4%N); (S0, 142098%N); (S1, 1%N)].
L2284adapted
369Definitionb28_16
Definition b28_16 : cfg := mkc true B [(S1, 1%N); (S1, 183704%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 21907%N)].
L2285adapted
370Definitionb28_17
Definition b28_17 : cfg := mkc false D [(S0, 5%N); (S0, 673561%N); (S0, 224496%N); (S1, 74808%N); (S0, 24910%N); (S1, 8280%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 183704%N); (S0, 93338%N)].
L2286adapted
371Definitionb28_18
Definition b28_18 : cfg := mkc false E [(S0, 673561%N); (S0, 224496%N); (S1, 74808%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 5%N); (S1, 183704%N); (S0, 164770%N); (S1, 1%N)].
L2287adapted
372Definitionb28_19
Definition b28_19 : cfg := mkc true B [(S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 673559%N); (S1, 7%N); (S1, 183703%N); (S1, 236201%N); (S1, 1%N)].
L2288adapted
373Definitionb28_20
Definition b28_20 : cfg := mkc true A [(S0, 307630%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24909%N); (S0, 8281%N); (S0, 2736%N); (S1, 972%N); (S0, 34%N); (S1, 40%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 1%N)].
L2289adapted
374Definitionb28_21
Definition b28_21 : cfg := mkc true C [(S1, 379065%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 2%N)].
L2290adapted
375Definitionb28_22
Definition b28_22 : cfg := mkc true C [(S1, 450496%N); (S0, 183703%N); (S0, 6%N); (S1, 673560%N); (S0, 224496%N); (S1, 74808%N); (S0, 24910%N); (S1, 8280%N); (S0, 2736%N); (S1, 972%N); (S0, 33%N); (S0, 41%N); (S0, 36%N); (S1, 44%N); (S0, 22%N); (S1, 20%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 2%N)].
L2291adapted
376Definitionb28_23
Definition b28_23 : cfg := mkc false D [(S1, 521925%N); (S1, 183704%N); (S0, 7%N); (S0, 673559%N); (S0, 224496%N); (S1, 74808%N); (S0, 24911%N); (S0, 8279%N); (S0, 2736%N); (S1, 972%N); (S0, 35%N); (S0, 39%N); (S0, 36%N); (S1, 44%N); (S0, 21%N); (S0, 21%N); (S0, 8%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 6%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S0, 2%N)].
L2292adapted
377Definitionb28_24
Definition b28_24 : cfg := mkc false D [(S1, 611003%N); (S1, 176220%N); (S0, 9%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N)].
L2293adapted
378Definitionb28_25
Definition b28_25 : cfg := mkc false D [(S1, 712271%N); (S1, 163561%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 1%N); (S1, 1%N)].
L2294adapted
379Definitionb28_26
Definition b28_26 : cfg := mkc false D [(S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8277%N); (S0, 2737%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 673559%N); (S1, 8%N); (S0, 150901%N); (S0, 813545%N); (S0, 2%N)].
L2295adapted
380Definitionb28_27
Definition b28_27 : cfg := mkc false E [(S0, 138245%N); (S0, 9%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N)] [(S1, 914807%N); (S1, 1%N)].
L2296adapted
381Definitionb28_28
Definition b28_28 : cfg := mkc false D [(S1, 24912%N); (S0, 8277%N); (S0, 2737%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 74808%N); (S1, 224495%N); (S1, 673559%N); (S1, 8%N); (S0, 125586%N); (S1, 1016072%N); (S0, 2%N)].
L2297adapted
382Definitionb28_29
Definition b28_29 : cfg := mkc false D [(S1, 1117353%N); (S1, 112925%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 2%N)].
L2298adapted
383Definitionb28_30
Definition b28_30 : cfg := mkc false D [(S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S1, 7%N); (S1, 100269%N); (S1, 1218616%N); (S0, 2%N)].
L2299adapted
384Definitionb28_31
Definition b28_31 : cfg := mkc true C [(S1, 1319883%N); (S1, 87611%N); (S1, 8%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [].
L2300adapted
385Definitionb28_32
Definition b28_32 : cfg := mkc true C [(S1, 1421142%N); (S0, 74953%N); (S0, 9%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N)] [(S0, 2%N)].
L2301adapted
386Definitionb28_33
Definition b28_33 : cfg := mkc true C [(S1, 1%N); (S1, 1522414%N); (S0, 62294%N); (S1, 8%N); (S0, 673558%N); (S1, 224496%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 2%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
L2302adapted
387Definitionb28_34
Definition b28_34 : cfg := mkc true B [(S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 37%N); (S0, 37%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S1, 8%N); (S0, 49633%N); (S0, 1623689%N); (S0, 2%N)].
L2303adapted
388Definitionb28_35
Definition b28_35 : cfg := mkc true B [(S0, 1724963%N); (S0, 36973%N); (S0, 9%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 19%N); (S0, 7%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
L2304adapted
389Definitionb28_36
Definition b28_36 : cfg := mkc true C [(S1, 1%N); (S1, 1826222%N); (S0, 24318%N); (S1, 8%N); (S0, 673557%N); (S0, 224497%N); (S0, 74808%N); (S1, 24912%N); (S0, 8278%N); (S1, 2736%N); (S0, 972%N); (S1, 36%N); (S0, 39%N); (S0, 35%N); (S0, 44%N); (S1, 24%N); (S0, 17%N); (S0, 9%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 1%N); (S0, 5%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [].
L2305adapted
390Definitionb28_37
Definition b28_37 : cfg := mkc false D [(S1, 8%N); (S0, 673559%N); (S0, 224495%N); (S0, 74808%N); (S1, 24912%N); (S0, 8279%N); (S0, 2735%N); (S0, 972%N); (S1, 36%N); (S0, 38%N); (S1, 36%N); (S0, 44%N); (S1, 24%N); (S0, 18%N); (S1, 8%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 2%N); (S1, 4%N); (S0, 4%N); (S1, 4%N); (S0, 1%N); (S0, 5%N); (S0, 4%N); (S1, 4%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 3%N); (S0, 2%N)] [(S0, 11658%N); (S1, 1927496%N); (S0, 2%N)].
L2306adapted
391Lemmack_0
Lemma ck_0 : runp 500000 b28_0 = Some (b28_1, true).
L2307identical
392Lemmack_1
Lemma ck_1 : runp 500000 b28_1 = Some (b28_2, true).
L2309identical
393Lemmack_2
Lemma ck_2 : runp 500000 b28_2 = Some (b28_3, true).
L2311identical
394Lemmack_3
Lemma ck_3 : runp 500000 b28_3 = Some (b28_4, true).
L2313identical
395Lemmack_4
Lemma ck_4 : runp 500000 b28_4 = Some (b28_5, true).
L2315identical
396Lemmack_5
Lemma ck_5 : runp 500000 b28_5 = Some (b28_6, true).
L2317identical
397Lemmack_6
Lemma ck_6 : runp 500000 b28_6 = Some (b28_7, true).
L2319identical
398Lemmack_7
Lemma ck_7 : runp 500000 b28_7 = Some (b28_8, true).
L2321identical
399Lemmack_8
Lemma ck_8 : runp 500000 b28_8 = Some (b28_9, true).
L2323identical
400Lemmack_9
Lemma ck_9 : runp 500000 b28_9 = Some (b28_10, true).
L2325identical
401Lemmack_10
Lemma ck_10 : runp 500000 b28_10 = Some (b28_11, true).
L2327identical
402Lemmack_11
Lemma ck_11 : runp 500000 b28_11 = Some (b28_12, true).
L2329identical
403Lemmack_12
Lemma ck_12 : runp 500000 b28_12 = Some (b28_13, true).
L2331identical
404Lemmack_13
Lemma ck_13 : runp 500000 b28_13 = Some (b28_14, true).
L2333identical
405Lemmack_14
Lemma ck_14 : runp 500000 b28_14 = Some (b28_15, true).
L2335identical
406Lemmack_15
Lemma ck_15 : runp 500000 b28_15 = Some (b28_16, true).
L2337identical
407Lemmack_16
Lemma ck_16 : runp 500000 b28_16 = Some (b28_17, true).
L2339identical
408Lemmack_17
Lemma ck_17 : runp 500000 b28_17 = Some (b28_18, true).
L2341identical
409Lemmack_18
Lemma ck_18 : runp 500000 b28_18 = Some (b28_19, true).
L2343identical
410Lemmack_19
Lemma ck_19 : runp 500000 b28_19 = Some (b28_20, true).
L2345identical
411Lemmack_20
Lemma ck_20 : runp 500000 b28_20 = Some (b28_21, true).
L2347identical
412Lemmack_21
Lemma ck_21 : runp 500000 b28_21 = Some (b28_22, true).
L2349identical
413Lemmack_22
Lemma ck_22 : runp 500000 b28_22 = Some (b28_23, true).
L2351identical
414Lemmack_23
Lemma ck_23 : runp 500000 b28_23 = Some (b28_24, true).
L2353identical
415Lemmack_24
Lemma ck_24 : runp 500000 b28_24 = Some (b28_25, true).
L2355identical
416Lemmack_25
Lemma ck_25 : runp 500000 b28_25 = Some (b28_26, true).
L2357identical
417Lemmack_26
Lemma ck_26 : runp 500000 b28_26 = Some (b28_27, true).
L2359identical
418Lemmack_27
Lemma ck_27 : runp 500000 b28_27 = Some (b28_28, true).
L2361identical
419Lemmack_28
Lemma ck_28 : runp 500000 b28_28 = Some (b28_29, true).
L2363identical
420Lemmack_29
Lemma ck_29 : runp 500000 b28_29 = Some (b28_30, true).
L2365identical
421Lemmack_30
Lemma ck_30 : runp 500000 b28_30 = Some (b28_31, true).
L2367identical
422Lemmack_31
Lemma ck_31 : runp 500000 b28_31 = Some (b28_32, true).
L2369identical
423Lemmack_32
Lemma ck_32 : runp 500000 b28_32 = Some (b28_33, true).
L2371identical
424Lemmack_33
Lemma ck_33 : runp 500000 b28_33 = Some (b28_34, true).
L2373identical
425Lemmack_34
Lemma ck_34 : runp 500000 b28_34 = Some (b28_35, true).
L2375identical
426Lemmack_35
Lemma ck_35 : runp 500000 b28_35 = Some (b28_36, true).
L2377identical
427Lemmack_36
Lemma ck_36 : runp 500000 b28_36 = Some (b28_37, true).
L2379identical
428Lemmack_37
Lemma ck_37 : runp 71902 b28_37 = Some (cfg28, true).
L2381adapted
429Lemmack_ev
Lemma ck_ev p c c' : runp p c = Some (c', true) ->
ev_cfg [] (fun _ => const S0) c -->* ev_cfg [] (fun _ => const S0) c'.
L2383identical
430Lemmainit28
Lemma init28 : B;; tape0 -->* ev_cfg [] (fun _ => const S0) cfg28.
L2387adapted
431Inductivecls
Inductive cls := C5 | C0 | C1 | C2 | C3 | C4.
L2435identical
432DefinitionRs
Definition Rs (r : cls) : list run :=
match r with C5 => Rs_r5 | C0 => Rs_r0 | C1 => Rs_r1 | C2 => Rs_r2 | C3 => Rs_r3 | C4 => Rs_r4 end.
L2437identical
433Definitionist
Definition ist : Type := (cls * nat * N * list (list N))%type.
L2440identical
434DefinitioncfgI
Definition cfgI (s : ist) : Q * tape :=
let '(r, e, t, nus) := s in Gc (repeat U0 (length nus), P0, 0) nus (evR [t] (Rs r)).
L2442identical
435Definitionwin
Definition win (r : cls) (e : nat) (t : N) (nus : list (list N)) : Prop :=
match r with
| C5 => exists f1 deep, nus = [W5t t; W5s t; W5a t; f1] :: deep /\ length deep = 1 + 2 * e
| C0 => exists f1 f2 deep, nus = [W0t t; W0s t; f1; f2] :: deep /\ length deep = 1 + 2 * e
| C1 => exists f1 f2 f3 deep, nus = [W1t t; W1s t; W1a t; W1I t] :: [W1u t; f1; f2; f3] :: deep /\
          length deep = 1 + 2 * e
… +4 lines
L2445identical
436DefinitionInv
Definition Inv (s : ist) : Prop :=
let '(r, e, t, nus) := s in 2 <= e /\ 1 + 8 * N.to_nat t = 9 ^ (e - 2) /\ win r e t nus.
L2456identical
437Lemmainv_step
Lemma inv_step s : Inv s -> exists s', cfgI s -->+ cfgI s' /\ Inv s'.
L2459identical
438DefinitionL28
Definition L28 : list run :=
[(S0, cn 74808); (S1, cn 24912); (S0, cn 8277); (S0, cn 2737); (S0, cn 972); (S1, cn 36);
    (S0, cn 37); (S0, cn 37); (S0, cn 44); (S1, cn 24); (S0, cn 17); (S0, cn 9);
    (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4);
    (S0, cn 1); (S0, cn 5); (S0, cn 4); (S1, cn 4); (S0, cn 1); (S0, cn 5);
    (S0, cn 1); (S0, cn 6); (S1, cn 4); (S0, cn 1); (S0, cn 5); (S0, cn 1);
… +1 lines
L2502adapted
439DefinitionR28
Definition R28 : list run := [(S0, cn 224492); (S1, cn 673559); (S1, cn 7); (S1, cn 9841); (S1, cn 1942040); (S0, cn 2)]%N.
L2509identical
440Definitionnus28
Definition nus28 : list (list N) :=
[[18701; 6227; 2069; 683]; [242; 8; 9; 8]; [10; 5; 4; 1]; [0; 0; 0; 0]; [0; 0; 0; 0]; [0; 0; 0; 0]]%N.
L2510adapted
441Lemmainv28
Lemma inv28 : Inv (C5, 2, 0%N, nus28).
L2513identical
442Lemmasplit1
Lemma split1 nu b c v rest X :
ev_runs nu ((b, LF (3 + c) v) :: rest) X = ev_runs nu [(b, cn 3)] (ev_runs nu ((sneg b, LF c v) :: rest) X).
L2519identical
443Lemmab28a
Lemma b28a : reach 1000 (Rc B (L28, T0) ([(S1, cn 3)], TV 1)) (Rc A ((S0, cn 3) :: L28, T0) ([], TV 1)) = true.
L2527identical
444Lemmab28b
Lemma b28b : ep_run true R28 = Some (map (fun r => (fst r, cn (evN [0%N] (snd r)))) Rs_r5).
L2530identical
445Lemmab28_chain
Lemma b28_chain : ev_runs [] ((S0, cn 3) :: L28) (const S0) = chs (repeat U0 6) nus28 (b1s P0 (LWs 0)).
L2533identical
446Lemmab28_right
Lemma b28_right : evR [] (map (fun r => (fst r, cn (evN [0%N] (snd r)))) Rs_r5) = evR [0%N] Rs_r5.
L2536identical
447Lemmabase28
Lemma base28 :
ev_runs [] L28 (const S0) {{B}}> ev_runs [] ((S1, cn 224495) :: tl R28) (const S0) -->*
cfgI (C5, 2, 0%N, nus28).
L2539identical
448Lemmanonhalt_P
Lemma nonhalt_P : ~ halts tmP (B;; tape0).
L2558new
449Definitionphi
Definition phi (q : Q) : Q :=
match q with A => B | B => C | C => D | D => E | E => A | F => F end.
L2565new
450Lemmaperm_phi
Lemma perm_phi : Perm tm tmP phi.
L2568new
451Lemmanonhalt
Lemma nonhalt : ~ halts tm c0.
L2575adapted
5What a maintainer readsCheck: the rule table below is what the .v proves, and proof.md / README read cleanly for a maintainer.

No heading with "rule", "carries over" or "unchanged" in proof.md.

6FamilyCheck: related machines are killed together or have a reason to be left open.

3 machines, 3 killed, 0 not. Family links: status.json parent, same transition table with another start (tools/dashboard.py), targeting.md follow-on rows, ledger "= twin" notes. A machine string named in a .v header / proof.md / notes.md is listed but does not make a family.

whomachinestatusrelation to this kill
W4-3 kill 201RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---✓Killed: never haltsparent link; = W4-3b's table, run from state E; named in W4-3b's .v header; named in W4-3b's proof.md; named in W4-3b's notes.md; named in W4-3's proof.md; named in W4-3's notes.md · review · compared side by side above · mechanism
W4-3b kill 211RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---✓Killed: never haltsthis kill
W4-3c kill 221RB---_1LC0LA_1LD0LC_1RE0LB_1RF0RE_1LC0RD✓Killed: never halts= W4-3b's table mirrored, run from state F · review
7ChecklistCheck: every ✓ is computed; the two ○ are yours to decide; an amber ! is an optional check that did not finish.
  • ✓
    Machine string exact
    the .v literal == holdout list line 543 byte for byte
  • ✓
    Statement is ~halts tm c0
    parsed from the .v and confirmed by check_kill (theorem_text, theorem_rocq)
  • ✓
    No axioms beyond baseline
    0 assumption(s); tools/assumptions_baseline.txt allows only functional_extensionality_dep
  • ✓
    coqchk finished (optional)
    coqchk pass in 1571.34 s
  • ✓
    .v hash matches the checked hash
    .v = checked sha256 909abd2aaf10…; submission/ copy = checked sha256 909abd2aaf10…
  • ✓
    No repo-local paths in the .v
    comments name no path of ours (vendor/, machines/, tools/, rocq/, scripts/, reports/, atlas/, data/, journal/, /home/); busycoq's own verify/X.v is fine: none in the .v or the submission/ copy
  • ✓
    Public write-up is clean
    tools/writeup_lint.py on submission/proof.md: 0 error(s)
  • ○
    proof.md reviewed by Dennis (Checkpoint B)
    no Checkpoint B note from Dennis found
    • notes.md L57: **Result: proof.md complete and validated (Checkpoint B content). check_proof.py 30/30 PASS (44 s), --full 32/32.**
    • notes.md L83: - **Open:** Dennis's Checkpoint B read (non-blocking); independent re-run of check_kill (formalization stage's `next`).
    • proof.md L23: - **Status:** the informal delta is complete and validated (Checkpoint B).
  • ○
    Family posted together?
    2 other kill(s) in the family: W4-3, W4-3c; the Discord draft names 2 of them

Generated by tools/killreview.py at 2026-10-16 13:29 PDT in 0.3 s from the files linked above; nothing in this review is hand-written except the box “How we proved it never halts” (above), which quotes how_proved.md. Re-run: python3 -B tools/killreview.py 1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---

Files

machines/<tm>/: 13 entries · raw notes, status, scripts, images

namesizechanged
notes.md ↓7.4 KB2026-10-12 21:28
proof.md ↓15 KB2026-10-12 21:28
how_proved.md ↓1.4 KB2026-10-14 10:51
status.json ↓1.8 KB2026-10-14 09:08
1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---.v ↓141 KB2026-10-13 18:01
check_kill.txt ↓11 KB2026-10-14 15:25
img/5 items2026-10-16 10:28
rocq/10 items2026-10-13 10:49
scripts/1 item2026-10-12 21:12
submission/6 items2026-10-14 10:21
check_proof.out ↓7.0 KB2026-10-12 21:27
check_proof.py ↓29 KB2026-10-13 10:22
check_proof_full.out ↓8.0 KB2026-10-12 21:30
status.json in full
{
 "tm": "1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---",
 "label": "W4-3b",
 "status": "KILLED_NONHALT",
 "stage": "done",
 "updated": "2026-10-13",
 "reason": "check_kill PASS, independently re-verified",
 "check_kill": {
  "result": "PASS",
  "mode": "nonhalt",
  "sha256": "a3afc5e3745e1b144d773acf56b19010f03ddd4158df30c1f073aaf395c2eb2c",
  "compile_s": 75.0,
  "coqchk": "timeout",
  "coqchk_cap_s": 600,
  "assumptions": [],
  "log": "submission/check_kill.txt",
  "checked_at": "2026-10-13T17:37:10Z",
  "raw": [
   "rocq/check_kill_2026-10-13_fix1.out"
  ]
 },
 "parent": "1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA---",
 "parent_note": "W4-3 (740 line 341), killed 2026-10-12",
 "relation": "sibling of W4-3: W4-3's table renamed (phi = A->B, B->C, C->D, D->E, E->A, F->F, no mirror), started in W4-3's state B",
 "holdout_line_740": 512,
 "funded": {
  "option": "sync_stage",
  "date": "2026-10-12",
  "campaign": "class2_closeout",
  "stage": 2
 },
 "next": "Independent re-verification (audit) of the kill; then post after the parent (submission/discord.md, one message for both siblings).",
 "proof_md": "proof.md: delta proof from W4-3 (relation, opening run to record exit 28 at step 2,629,088,387,088, C_r5(2) holds there; one deep chain gap +4), complete and validated (Checkpoint B content, 2026-10-12)",
 "check_proof": {
  "result": "PASS",
  "claims": "30/30 default (44 s), 32/32 --full",
  "out": [
   "check_proof.out",
   "check_proof_full.out"
  ]
 },
 "workflow_name": "W4-3-sib1",
 "pr": "https://github.com/ccz181078/busycoq/pull/17",
 "pr_state": "merged",
 "pr_comments": 0,
 "posted": "2026-10-13 (bbchallenge Discord, by Dennis)",
 "pr_file": "verify/Skelet1LikeC2_1RB0RA_1LC0RE.v",
 "pr_merged_at": "2026-10-14T06:20:18Z",
 "pr_merged_by": "ccz181078",
 "pr_merge_commit": "a036ccd"
}