Round-six lemma `pops_end`
ProvedNLogN.KFZ.pops_endAn auxiliary lemma of the round-six development, published as a separate node because its proof is long or shared.
The following holds (Lean statement, in the scope of module Solutions.KFZFull):
theorem NLogN.KFZ.pops_end (s : IState HS) (f : Fin HS → List ℤ) (hf : EmptyEx f) {p h d σ K B : ℕ}
(hB : RB p h d σ K B) (z : List ℤ) :
Sp (popsL regL) (encK s (NLogN.KFZ.St f p h d σ K [] z [] [] [] [] []))
(encK s (Function.update f 0 z)) (5 * (2 * B + 2) + 1)
Context. KFZ Full: the whole chirp procedure body
body j d18 = setupP; T1; …; T7; wP setC (PP j d18); popsL regL.
body_runs: from encK s f (stack 0 = gflat xs ++ l, the chirp descriptor on cS, all
other managed stacks empty) the body ends in encK s (update f 0 (gflat ys ++ l)) with
ys = Q(Q(H θ̃⁻) ã), given the run of the Prop 18 call on its state.
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_K_Defs33 import Definitions.Def_IntMul_Kappa_R6_Defs1 import Definitions.Def_IntMul_MultitapeModel import Mathlib import Definitions.Def_IntMul_HvdH_M_Defs8 import Definitions.Def_IntMul_HvdH_Numeric import Definitions.Def_IntMul_HvdH_ExpApprox import Definitions.Def_IntMul_HvdH_Twiddle import Definitions.Def_IntMul_HvdH_RealExp import Definitions.Def_IntMul_HvdH_SApprox import Definitions.Def_IntMul_HvdH_MachineRef import Definitions.Def_IntMul_HvdH_DiagApprox import Definitions.Def_IntMul_HvdH_EApprox import Definitions.Def_IntMul_HvdH_JApprox import Definitions.Def_IntMul_HvdH_BApprox import Definitions.Def_IntMul_HvdH_FPApprox set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open NLogN NLogN.KFZ open IntMul NLogN.KIL NLogN.KFB NLogN.KFM IntMul.OpenAI.Glue
theorem NLogN.KFZ.pops_end (s : IState HS) (f : Fin HS → List ℤ) (hf : EmptyEx f) {p h d σ K B : ℕ}
(hB : RB p h d σ K B) (z : List ℤ) :
Sp (popsL regL) (encK s (NLogN.KFZ.St f p h d σ K [] z [] [] [] [] []))
(encK s (Function.update f 0 z)) (5 * (2 * B + 2) + 1) := by sorry