The block body (round six, `blockB`)
ProvedJ6Seg.ATab.Rn.blockBThe block body.
The following holds (Lean statement, in the scope of module Solutions.J6AILTab5):
theorem J6Seg.ATab.Rn.blockB {W p s t α pk b q : ℕ} {v : Vr} {c : Cs} (hB : ABnd W p s t α)
(hq : q < ncA p t α) (hL : LV p s t α pk b v) (h24 : v 24 = q) (hv : BV W v)
(hcI : c cI = []) :
Rn J6Seg.ATab.blockB v c (fun v' => (∀ j, j ∉ TB' → v' j = v j) ∧ BV W v')
(update c sS ((segT (aTab6 p s t α pk b) q).reverse ++ c sS)) (cBlock W p α)
Context. A lines, table set-up, part 5: the block body
blockB = 25 := A0(q); push |tab| :: header; 10 := 2W; loopA; 10 := 2W + 2H; loopR; 10 := 2H; loopC (block index q on 24). Rn.blockB: it pushes
segT (aTab6 …) q onto sS (reversed: sS gains (segT … q).reverse).
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_R6_Defs69 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open J6Seg J6Seg.ATab open IntMul NLogN NLogN.KIL NLogN.RS J6Seg.PJ IntMul.HvdH Function
theorem J6Seg.ATab.Rn.blockB {W p s t α pk b q : ℕ} {v : Vr} {c : Cs} (hB : ABnd W p s t α)
(hq : q < ncA p t α) (hL : LV p s t α pk b v) (h24 : v 24 = q) (hv : BV W v)
(hcI : c cI = []) :
Rn J6Seg.ATab.blockB v c (fun v' => (∀ j, j ∉ TB' → v' j = v j) ∧ BV W v')
(update c sS ((segT (aTab6 p s t α pk b) q).reverse ++ c sS)) (cBlock W p α) := by sorry