keyProg_fsp (KFL §10: the destination key of a record, in registers)
ProvedNLogN.KFL.keyProg_fspThe following holds (Lean statement, in the scope of module Solutions.KFLKey):
theorem NLogN.KFL.keyProg_fsp {K ρ f : ℕ} (hK : 1 ≤ K) (hρK : ρ < K) (hf : 1 ≤ f) {g : Geo} (hg : g.Pos)
(hQe : g.Q = 2 ^ (f * K)) {Bb : ℕ} (hB2 : 2 ≤ Bb) (hbig : 4 * g.V < 2 ^ Bb)
(s : IState HS) (G : Fin HS → List ℤ) (hGc : G rC = []) {m : ℕ} (hm : m < g.V)
{lm : List ℤ} (hGm : G NLogN.KFL.rm = (m : ℤ) :: lm) :
FSp (keyProg K ρ f g) (encK s G)
(encK s (Function.update G NLogN.KFL.rK ((phi g (keyc K ρ f) m : ℤ) :: G NLogN.KFL.rK))) (cKey K f Bb)
Context. The lemma belongs to the part KFL §10: the destination key of a record, in registers.
Formalization Note. This lemma belongs to the item-language (IL) layer of the integer-multiplication-kappa campaign: tape-level programs (register programs over 64 item stacks of the NLogN multitape framework, definition bundles IntMul_HvdH_M_Defs1–IntMul_HvdH_M_Defs8) that implement the data-movement primitives of the OpenAI preprint Integer multiplication below (field moves, row split/merge, shifts, the uniform Proposition 11 interchange, Lemma 12 with fine -per-element costs, Gaussian record primitives, Proposition 14 pieces) with exact list denotations from the array-model bundles IntMul_Kappa_K_Defs* and explicit cost bounds. All names refer to the definition bundles up to IntMul_Kappa_K_Defs18.
-- OpenAI-preprint / κ-improvement development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_K_Defs18 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 set_option linter.unusedSimpArgs false set_option linter.unusedVariables false open NLogN open NLogN.KFL open IntMul RS KIL KFD Butterfly set_option maxHeartbeats 2000000
theorem NLogN.KFL.keyProg_fsp {K ρ f : ℕ} (hK : 1 ≤ K) (hρK : ρ < K) (hf : 1 ≤ f) {g : Geo} (hg : g.Pos)
(hQe : g.Q = 2 ^ (f * K)) {Bb : ℕ} (hB2 : 2 ≤ Bb) (hbig : 4 * g.V < 2 ^ Bb)
(s : IState HS) (G : Fin HS → List ℤ) (hGc : G rC = []) {m : ℕ} (hm : m < g.V)
{lm : List ℤ} (hGm : G NLogN.KFL.rm = (m : ℤ) :: lm) :
FSp (keyProg K ρ f g) (encK s G)
(encK s (Function.update G NLogN.KFL.rK ((phi g (keyc K ρ f) m : ℤ) :: G NLogN.KFL.rK))) (cKey K f Bb) := by sorry