readD_sp (KFUU §8c: reading the `Φ` descriptor)
ProvedNLogN.KFUU.readD_spThe following holds (Lean statement, in the scope of module Solutions.KFUUSet3):
theorem NLogN.KFUU.readD_sp {Ys Ym : Fin HS} (hY : Ys = oSP ∨ Ys = NLogN.KFUU.xS) (hM : Ym = oML ∨ Ym = xM)
(s : IState HS) (F0 : Fin HS → List ℤ) (w h d : ℕ) (bL : ℕ → Bool) (sF μ : ℕ → ℕ)
(hF : F0 dP = KFM.descPhi w h d bL sF μ)
(h1 : F0 rW = []) (h2 : F0 NLogN.KFUU.rU = []) (h3 : F0 oD = []) (h4 : F0 oPi = []) (h5 : F0 Ys = [])
(h6 : F0 pSR = []) (h7 : F0 xA = []) (h8 : F0 NLogN.KFUU.bT = []) (h9 : F0 Ym = []) (h10 : F0 NLogN.KFUU.hD = [])
(h11 : F0 NLogN.KFUU.cL = [])
(hs : ∀ j < d, 1 ≤ sF j) (hμ : ∀ j < d, μ j < sF j) (B : ℕ)
(hwB : zsz (w : ℤ) ≤ B) (hhB : zsz (h : ℤ) ≤ B) (hdB : zsz ((3 + 3 * d : ℕ) : ℤ) ≤ B)
(hPB : zsz ((Pv sF d : ℕ) : ℤ) ≤ B) :
Sp (readD Ys Ym) (NLogN.KIL.encK s F0) (NLogN.KIL.encK s (rdF F0 Ys Ym w h d bL sF μ)) (cRead d B)
Context. The lemma belongs to the part KFUU §8c: reading the Φ descriptor: readD Ys Ym (register code) reads descPhi w h d bL sF μ from dP and restores it:
rW = w, rU = h, oD = d, oPi = P_d; the bits reversed on bT; the sizes
[s_{d-1}, …, s_0] on Ys, pSR, xA; the multipliers [μ_{d-1}, …, μ_0] on Ym.
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.readD_sp {Ys Ym : Fin HS} (hY : Ys = oSP ∨ Ys = NLogN.KFUU.xS) (hM : Ym = oML ∨ Ym = xM)
(s : IState HS) (F0 : Fin HS → List ℤ) (w h d : ℕ) (bL : ℕ → Bool) (sF μ : ℕ → ℕ)
(hF : F0 dP = KFM.descPhi w h d bL sF μ)
(h1 : F0 rW = []) (h2 : F0 NLogN.KFUU.rU = []) (h3 : F0 oD = []) (h4 : F0 oPi = []) (h5 : F0 Ys = [])
(h6 : F0 pSR = []) (h7 : F0 xA = []) (h8 : F0 NLogN.KFUU.bT = []) (h9 : F0 Ym = []) (h10 : F0 NLogN.KFUU.hD = [])
(h11 : F0 NLogN.KFUU.cL = [])
(hs : ∀ j < d, 1 ≤ sF j) (hμ : ∀ j < d, μ j < sF j) (B : ℕ)
(hwB : zsz (w : ℤ) ≤ B) (hhB : zsz (h : ℤ) ≤ B) (hdB : zsz ((3 + 3 * d : ℕ) : ℤ) ≤ B)
(hPB : zsz ((Pv sF d : ℕ) : ℤ) ≤ B) :
Sp (readD Ys Ym) (NLogN.KIL.encK s F0) (NLogN.KIL.encK s (rdF F0 Ys Ym w h d bL sF μ)) (cRead d B) := by sorry