ilvP_fsp (KFV §10: the four register loops of one Kronecker record product)
ProvedNLogN.KFV.ilvP_fspThe following holds (Lean statement, in the scope of module Solutions.KFV6Loop):
theorem NLogN.KFV.ilvP_fsp (s : IState HS) (f : Fin HS → List ℤ) (u v lu lv : List ℤ) (w Bb : ℕ)
(hu : f vOR = u ++ lu) (hv : f vOI = v ++ lv) (huv : u.length = v.length) (hL : f NLogN.KFV.vL = [])
(hwu : ∀ x ∈ u, zsz x ≤ w) (hwv : ∀ x ∈ v, zsz x ≤ w) (hn : zsz (u.length : ℤ) ≤ Bb) :
FSp (ilvP u.length) (NLogN.KIL.encK s f)
(NLogN.KIL.encK s (Function.update (Function.update (Function.update f vOR lu) vOI lv) vO
((gflat (List.zip u v)).reverse ++ f vO)))
(cLp u.length (10000 * (w + 2)) Bb)
Context. The lemma belongs to the part KFV §10: the four register loops of one Kronecker record product.
Formalization Note. This lemma belongs to layer 5 of the Lean formalization (integer-multiplication-kappa campaign) of the OpenAI preprint Integer multiplication below : the uniform item-language machine (register programs over the NLogN multitape framework) assembling the Proposition 14 / Lemma 13 / Proposition 18 pieces, the resampling and chirp stages and the cost recurrences into one fixed machine, culminating in NLogN.KFTop.kappa_bound : IntMul.KappaBound (1 / 2 ^ 182) (the bound of Def_IntMul_MultitapeModel). All names refer to the definition bundles up to IntMul_Kappa_K_Defs33.
-- OpenAI-preprint / κ-improvement development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_K_Defs33 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 set_option linter.unusedSimpArgs false set_option linter.unusedVariables false set_option linter.unusedSectionVars false set_option maxRecDepth 200000 open NLogN open NLogN.KFV open IntMul RS KIL KFD KFB Synth
theorem NLogN.KFV.ilvP_fsp (s : IState HS) (f : Fin HS → List ℤ) (u v lu lv : List ℤ) (w Bb : ℕ)
(hu : f vOR = u ++ lu) (hv : f vOI = v ++ lv) (huv : u.length = v.length) (hL : f NLogN.KFV.vL = [])
(hwu : ∀ x ∈ u, zsz x ≤ w) (hwv : ∀ x ∈ v, zsz x ≤ w) (hn : zsz (u.length : ℤ) ≤ Bb) :
FSp (ilvP u.length) (NLogN.KIL.encK s f)
(NLogN.KIL.encK s (Function.update (Function.update (Function.update f vOR lu) vOI lv) vO
((gflat (List.zip u v)).reverse ++ f vO)))
(cLp u.length (10000 * (w + 2)) Bb) := by sorry