One exchange on the stored records
ProvedNLogN.KFV.xchC_runOne exchange on the stored records.
The following holds (Lean statement, in the scope of module Solutions.KFV30LayX):
theorem NLogN.KFV.xchC_run {eSw : Fin Pp} {dW : Fin HS} {Kc : ℝ} (HSw : SwOK I iprog eSw dW Kc)
(hd0 : dW ≠ 0) (hd56 : dW.val < 56) (hKc : 0 ≤ Kc)
(S : IState HS) (zs : List GI) (l : List ℤ) {i j K n ℓ W B : ℕ}
(hij : i + K ≤ j) (hj : j + K ≤ n) (hK : 1 ≤ K)
(hzs : zs.length = 2 ^ n * 2 ^ ℓ) (hgb : NLogN.KFB.GB W zs)
{eE eK eM eI eW : Ex HS} (sE : DSafe dW eE) (sK : DSafe dW eK) (sM : DSafe dW eM)
(sI : DSafe dW eI) (sW : DSafe dW eW)
(vE : EV (encK S (o0 (gflat zs ++ l))) B eE ((n - j - K + ℓ : ℕ) : ℤ))
(vK : EV (encK S (o0 (gflat zs ++ l))) B eK (K : ℤ))
(vM : EV (encK S (o0 (gflat zs ++ l))) B eM ((j - i - K : ℕ) : ℤ))
(vI : EV (encK S (o0 (gflat zs ++ l))) B eI (i : ℤ))
(vW : EV (encK S (o0 (gflat zs ++ l))) B eW (W : ℤ))
(hB : n + ℓ + 5 ≤ B) (hWB : W ≤ B) :
IRuns I iprog (xchC eSw dW eE eK eM eI eW) (encK S (o0 (gflat zs ++ l)))
(encK S (o0 (gflat (zMv n (2 ^ ℓ) (bsIdx i j K) zs) ++ l)))
(cXch Kc eE eK eM eI eW n ℓ K W B)
Context. The lemma belongs to the part KFV §33: the chunk exchange as fixed IL code.
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 KFC KFT Synth AModel AModelL12
variable {Pp : ℕ} {I : List Sym} {iprog : Fin Pp → IStmt HS Pp}
set_option maxHeartbeats 1000000
theorem NLogN.KFV.xchC_run {eSw : Fin Pp} {dW : Fin HS} {Kc : ℝ} (HSw : SwOK I iprog eSw dW Kc)
(hd0 : dW ≠ 0) (hd56 : dW.val < 56) (hKc : 0 ≤ Kc)
(S : IState HS) (zs : List GI) (l : List ℤ) {i j K n ℓ W B : ℕ}
(hij : i + K ≤ j) (hj : j + K ≤ n) (hK : 1 ≤ K)
(hzs : zs.length = 2 ^ n * 2 ^ ℓ) (hgb : NLogN.KFB.GB W zs)
{eE eK eM eI eW : Ex HS} (sE : DSafe dW eE) (sK : DSafe dW eK) (sM : DSafe dW eM)
(sI : DSafe dW eI) (sW : DSafe dW eW)
(vE : EV (encK S (o0 (gflat zs ++ l))) B eE ((n - j - K + ℓ : ℕ) : ℤ))
(vK : EV (encK S (o0 (gflat zs ++ l))) B eK (K : ℤ))
(vM : EV (encK S (o0 (gflat zs ++ l))) B eM ((j - i - K : ℕ) : ℤ))
(vI : EV (encK S (o0 (gflat zs ++ l))) B eI (i : ℤ))
(vW : EV (encK S (o0 (gflat zs ++ l))) B eW (W : ℤ))
(hB : n + ℓ + 5 ≤ B) (hWB : W ≤ B) :
IRuns I iprog (xchC eSw dW eE eK eM eI eW) (encK S (o0 (gflat zs ++ l)))
(encK S (o0 (gflat (zMv n (2 ^ ℓ) (bsIdx i j K) zs) ++ l)))
(cXch Kc eE eK eM eI eW n ℓ K W B) := by sorry