mkL_sp (KFUU §8d: building the shape lists)
ProvedNLogN.KFUU.mkL_spThe following holds (Lean statement, in the scope of module Solutions.KFUUSet4):
theorem NLogN.KFUU.mkL_sp (s : IState HS) (F1 : Fin HS → List ℤ) (h d : ℕ) (bL : ℕ → Bool) (sF : ℕ → ℕ)
(hU : F1 NLogN.KFUU.rU = [(h : ℤ)]) (hD0 : F1 oD = [(d : ℤ)]) (hxA : F1 xA = (sZ sF d).reverse)
(hbT : F1 NLogN.KFUU.bT = (KFM.bitsZ d bL).reverse) (hSR : F1 pSR = (sZ sF d).reverse)
(e1 : F1 rU2 = []) (e2 : F1 pSK = []) (e3 : F1 NLogN.KFUU.cL = []) (e4 : F1 pTK = []) (e5 : F1 xB = [])
(e6 : F1 pTR = []) (e7 : F1 rCZ = []) (e8 : F1 nR = []) (e9 : F1 oI = []) (e10 : F1 oBv = [])
(hs : ∀ j < d, 1 ≤ sF j) (B : ℕ) (hB : zsz ((2 ^ h * 2 : ℕ) : ℤ) ≤ B)
(hhB : h + 1 ≤ B) (hdB : zsz ((d + 1 : ℕ) : ℤ) ≤ B) (hPB : zsz ((Pv sF d : ℕ) : ℤ) ≤ B) :
Sp mkL (NLogN.KIL.encK s F1) (NLogN.KIL.encK s (mkF F1 h d bL sF)) (cMk d B)
Context. The lemma belongs to the part KFUU §8d: building the shape lists: After readD, mkL (register code) builds the lists that the passes read:
rU2 = 2^h; pSK = [2, s_0, …, s_{d-1}] ((zl SK).reverse); pTK = [2, t_0, …]
((zl TK).reverse); pTR = [t_{d-1}, …, t_0] (zl (shP h bs) for the reversal);
pSR = [2, s_{d-1}, …, s_0] ((zl SR).reverse); rCZ = 2; nR = [d+1, d]; oI = d; oBv = 2.
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.unnecessarySeqFocus false open NLogN open NLogN.KFUU open IntMul KIL AModel set_option maxHeartbeats 16000000
theorem NLogN.KFUU.mkL_sp (s : IState HS) (F1 : Fin HS → List ℤ) (h d : ℕ) (bL : ℕ → Bool) (sF : ℕ → ℕ)
(hU : F1 NLogN.KFUU.rU = [(h : ℤ)]) (hD0 : F1 oD = [(d : ℤ)]) (hxA : F1 xA = (sZ sF d).reverse)
(hbT : F1 NLogN.KFUU.bT = (KFM.bitsZ d bL).reverse) (hSR : F1 pSR = (sZ sF d).reverse)
(e1 : F1 rU2 = []) (e2 : F1 pSK = []) (e3 : F1 NLogN.KFUU.cL = []) (e4 : F1 pTK = []) (e5 : F1 xB = [])
(e6 : F1 pTR = []) (e7 : F1 rCZ = []) (e8 : F1 nR = []) (e9 : F1 oI = []) (e10 : F1 oBv = [])
(hs : ∀ j < d, 1 ≤ sF j) (B : ℕ) (hB : zsz ((2 ^ h * 2 : ℕ) : ℤ) ≤ B)
(hhB : h + 1 ≤ B) (hdB : zsz ((d + 1 : ℕ) : ℤ) ≤ B) (hPB : zsz ((Pv sF d : ℕ) : ℤ) ≤ B) :
Sp mkL (NLogN.KIL.encK s F1) (NLogN.KIL.encK s (mkF F1 h d bL sF)) (cMk d B) := by sorry