The fine uniform procedure computes prog
ProvedNLogN.KFD.progF_runThe fine uniform procedure computes prog.
The following holds (Lean statement, in the scope of module Solutions.KFDProg):
theorem NLogN.KFD.progF_run (hm : 1 ≤ m) (q : ℕ) (hq : 2 ≤ q) (Bb : ℕ) (I : List Sym) :
∀ k : ℕ, (∀ j < k, LvOK C tpl (q ^ m ^ j) Bb) → zsz (k : ℤ) ≤ Bb →
∀ (P L : ℕ) (A B Cs : Shape), 1 ≤ P → W ^ k ∣ L → 1 ≤ L →
(∀ a ∈ A, 1 ≤ a) → (∀ a ∈ B, 1 ≤ a) → (∀ a ∈ Cs, 1 ≤ a) →
zsz ((vol (P :: L :: swShape A B Cs (q ^ m ^ k)) : ℕ) : ℤ) ≤ Bb →
∀ (t : IState HS) (R : List Item) (xs : List (ZMod 2)),
DescIn t q m k P L A B Cs →
xs.length = vol (P :: L :: swShape A B Cs (q ^ m ^ k)) →
IRuns I (progF C tpl) (progF C tpl 0) (t.upd 0 (ints (enc2 xs) ++ R))
(t.upd 0 (ints (enc2 (AModel.prog C q k P L A B Cs xs)) ++ R))
(ilCostF W (KlevF C tpl + 10 ^ 5) (KbF C tpl + 10 ^ 9 + 100) (Kd m) (SWn C tpl) q Bb k
(vol (P :: L :: swShape A B Cs (q ^ m ^ k))))
Context. The lemma belongs to the part KFD: the fine uniform Prop. 11 procedure.
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.unnecessarySeqFocus false
set_option linter.unusedVariables false
open NLogN
open IntMul RS
open NLogN.KFD
open KIL AModel AModelL12
variable {m W : ℕ} [NeZero W] (C : Circuit (ZMod 2) m W) (tpl : IMat m → List (TStep m))
set_option maxRecDepth 20000
theorem NLogN.KFD.progF_run (hm : 1 ≤ m) (q : ℕ) (hq : 2 ≤ q) (Bb : ℕ) (I : List Sym) :
∀ k : ℕ, (∀ j < k, LvOK C tpl (q ^ m ^ j) Bb) → zsz (k : ℤ) ≤ Bb →
∀ (P L : ℕ) (A B Cs : Shape), 1 ≤ P → W ^ k ∣ L → 1 ≤ L →
(∀ a ∈ A, 1 ≤ a) → (∀ a ∈ B, 1 ≤ a) → (∀ a ∈ Cs, 1 ≤ a) →
zsz ((vol (P :: L :: swShape A B Cs (q ^ m ^ k)) : ℕ) : ℤ) ≤ Bb →
∀ (t : IState HS) (R : List Item) (xs : List (ZMod 2)),
DescIn t q m k P L A B Cs →
xs.length = vol (P :: L :: swShape A B Cs (q ^ m ^ k)) →
IRuns I (progF C tpl) (progF C tpl 0) (t.upd 0 (ints (enc2 xs) ++ R))
(t.upd 0 (ints (enc2 (AModel.prog C q k P L A B Cs xs)) ++ R))
(ilCostF W (KlevF C tpl + 10 ^ 5) (KbF C tpl + 10 ^ 9 + 100) (Kd m) (SWn C tpl) q Bb k
(vol (P :: L :: swShape A B Cs (q ^ m ^ k)))) := by sorry