clean3 (KFV §49: the Kronecker stage with its parameters (`kronS`))
ProvedNLogN.KFV.clean3The following holds (Lean statement, in the scope of module Solutions.KFV46KronStage):
theorem NLogN.KFV.clean3 {e : Ex HS} (h : ∀ r ∈ e.regs, r = gPp ∨ r = gLl ∨ r = gNn) : e.Clean
Context. The lemma belongs to the part KFV §49: the Kronecker stage with its parameters (kronS): kronS pM = kPushS ; kronU pM ; kPopS. From the registers p (gPp), ℓ (gLl) and n
(gNn) of the base, kPushS pushes the record-product parameters of kronU (b = 2p + ℓ + 3,
r = 2^ℓ, ρ = ℓ) on 50 … 55, N = 2^n on vRH, 2 N r on vT and 0 on vZ; kPopS
removes them. kronS_runs: on N records zf over zg (both disk records at scale
2^p), the stage leaves kmulN r p ℓ N zf zg, which stores zipWith (ppq r p) xf xg
(again disk records, p + 1-bit).
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 KIL KFD KFT KFB KFC KFH RS
variable {Pp : ℕ} {I : List Sym} {iprog : Fin Pp → IStmt HS Pp}
theorem NLogN.KFV.clean3 {e : Ex HS} (h : ∀ r ∈ e.regs, r = gPp ∨ r = gLl ∨ r = gNn) : e.Clean := by sorry