A push of an evaluated expression onto an empty managed stack
ProvedNLogN.KFV.pushVA push of an evaluated expression onto an empty managed stack.
The following holds (Lean statement, in the scope of module Solutions.KFV20Leaf):
theorem NLogN.KFV.pushV (s : IState HS) (f : Fin HS → List ℤ) {i : Fin HS} {e : Ex HS} {v : ℤ} {B : ℕ}
(hi : i.val < 56) (hc : e.Clean) (h : EV (encK s f) B e v) (hf : f i = []) :
Sp (.push i e) (encK s f) (encK s (Function.update f i [v]))
((e.size + 1) * 10 ^ 7 * (B + 2) ^ 2)
Context. The lemma belongs to the part KFV §24: the leaf rounds with register-computed parameters: leafR eP eD eS pushes the eight leaf registers (LRegs) of the layer
[2^a] × [2]^d × [2^c] (records of 2^ℓ coefficients), computed at run time from expressions
eP, eD, eS over the layout registers (a, d, c their values, ℓ on gLl), runs the uniform
leaf leafU (KFV12Leaf), and pops the registers. leafR_runs.
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.unusedSectionVars false
set_option linter.unusedSimpArgs false
set_option linter.unusedVariables false
open NLogN
open NLogN.KFV
open IntMul RS KIL KFD KFB KFH AModel
variable {Pp : ℕ} {I : List Sym} {iprog : Fin Pp → IStmt HS Pp}
theorem NLogN.KFV.pushV (s : IState HS) (f : Fin HS → List ℤ) {i : Fin HS} {e : Ex HS} {v : ℤ} {B : ℕ}
(hi : i.val < 56) (hc : e.Clean) (h : EV (encK s f) B e v) (hf : f i = []) :
Sp (.push i e) (encK s f) (encK s (Function.update f i [v]))
((e.size + 1) * 10 ^ 7 * (B + 2) ^ 2) := by sorry