The border scan (round six, `czL`)
ProvedJ6Seg.PJ.Rn.czLThe border scan of row r.
The following holds (Lean statement, in the scope of module Solutions.J6SegILPreJD5):
theorem J6Seg.PJ.Rn.czL {u : Vr} {D : Cs} (hF : Fx Q kk m mw cB u) (hS : StS m L Mf D)
(hB : BdS W m L Mf) (hLm : L.length = m) (hv : BV W u) {r : ℕ} (h1 : u 1 = r) (hr : r < m)
(h4 : u 4 = Lg L r) (h3 : u 3 = 0) (hD51 : D 51 = []) (hmW : m + 1 ≤ 2 ^ W) :
Rn (PJ.forL 51 28 2 czB) u D (fun u' => u' 3 = ((czP m mw cB L Mf r).length : ℤ) ∧
(∀ i ∉ ([2, 3, 6, 7, 8, 29] : List (Fin HS)), u' i = u i) ∧ BV W u')
(update D 41 ((czP m mw cB L Mf r).reverse ++ D 41)) (cFor W m (cCz W m))
Context. B-line IL, J pre-table (B5-J), jTab part D5: the inner loops of serP
Rn.czL (border scan), Rn.wbL (band-window count), Rn.cbL (band-window push),
Rn.cnL (forward-window count), Rn.fsL (forward push): each as an Rn of a forL on
stack 51, pushing its list (reversed) onto 41.
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_Defs71
set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 1000000
open J6Seg J6Seg.PJ
open IntMul NLogN NLogN.KIL NLogN.RS Function J6Seg.PJ.E
variable {Q kk m mw cB W : ℕ} {L : List ℕ} {Mf : ℕ → ℕ → ℤ}
theorem J6Seg.PJ.Rn.czL {u : Vr} {D : Cs} (hF : Fx Q kk m mw cB u) (hS : StS m L Mf D)
(hB : BdS W m L Mf) (hLm : L.length = m) (hv : BV W u) {r : ℕ} (h1 : u 1 = r) (hr : r < m)
(h4 : u 4 = Lg L r) (h3 : u 3 = 0) (hD51 : D 51 = []) (hmW : m + 1 ≤ 2 ^ W) :
Rn (PJ.forL 51 28 2 czB) u D (fun u' => u' 3 = ((czP m mw cB L Mf r).length : ℤ) ∧
(∀ i ∉ ([2, 3, 6, 7, 8, 29] : List (Fin HS)), u' i = u i) ∧ BV W u')
(update D 41 ((czP m mw cB L Mf r).reverse ++ D 41)) (cFor W m (cCz W m)) := by sorry