The B̃₀ axis step
ProvedNLogN.AX.bap0AxP_allThe B̃₀ axis step.
The following holds (Lean statement, in the scope of module Solutions.KFMBap0Ax):
theorem NLogN.AX.bap0AxP_all (M : MulSpec) (p s t α m kb Bi Bo mm Φ Bacc Q Bq : ℕ) (rest : List ℕ)
(hM : MulBnd M mm Φ) (H : BapHyp p s t α kb Bi Bo mm Bacc Q) (HT : TabHypB p s t α Bq)
(hα : 1 ≤ α) (HQ : AxQ t s m kb Bi Bo Q) (hmr : m = rest.prod)
(st : IState HS) (L : List (ℤ × ℤ)) (Rest : List Item) (hR : BapRegs p s t α m kb st)
(hD : st.G NLogN.GL.gD = gints L ++ Rest) (hL : L.length = t * m) (hLB : NLogN.GL.GB Bi L) :
bap0AxP.run st = st.upd NLogN.GL.gD (gints (tensorGo [(s, b0L p s t α)] (t :: rest) L) ++ Rest) ∧
bap0AxP.ok M st ∧ bap0AxP.cost M st ≤ bap0AxCost p s t α m kb Bi mm Φ Bacc Q Bq ∧
(tensorGo [(s, b0L p s t α)] (t :: rest) L).length = m * s ∧
NLogN.GL.GB Bo (tensorGo [(s, b0L p s t α)] (t :: rest) L)
Context. The lemma belongs to the part Item 12 (machine side, part 2): the B̃₀ axis program bap0AxP: nlogn's bapAxP (HAx8) with the slice program bapSlP replaced by the permutation-free
bap0SlP (KFMBap0). The table building is unchanged; the two key tables (ptKR, psKR) are
still built and removed but no longer read. That costs O((t+s)·Bq²) per axis call.
On gD = gints L ++ R (L of dims t :: rest) it computes
gints (tensorGo [(s, b0L p s t α)] (t :: rest) L) ++ R. The proof is nlogn's bapAxP_all
with the slice lemmas renamed. The declarations live in NLogN.AX (as in HAx8) so
that names resolve exactly as there.
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 open NLogN open NLogN.AX open IntMul NLogN IntMul.HvdH.Ref NLogN.GL NLogN.Rsp NLogN.KFM set_option maxHeartbeats 16000000
theorem NLogN.AX.bap0AxP_all (M : MulSpec) (p s t α m kb Bi Bo mm Φ Bacc Q Bq : ℕ) (rest : List ℕ)
(hM : MulBnd M mm Φ) (H : BapHyp p s t α kb Bi Bo mm Bacc Q) (HT : TabHypB p s t α Bq)
(hα : 1 ≤ α) (HQ : AxQ t s m kb Bi Bo Q) (hmr : m = rest.prod)
(st : IState HS) (L : List (ℤ × ℤ)) (Rest : List Item) (hR : BapRegs p s t α m kb st)
(hD : st.G NLogN.GL.gD = gints L ++ Rest) (hL : L.length = t * m) (hLB : NLogN.GL.GB Bi L) :
bap0AxP.run st = st.upd NLogN.GL.gD (gints (tensorGo [(s, b0L p s t α)] (t :: rest) L) ++ Rest) ∧
bap0AxP.ok M st ∧ bap0AxP.cost M st ≤ bap0AxCost p s t α m kb Bi mm Φ Bacc Q Bq ∧
(tensorGo [(s, b0L p s t α)] (t :: rest) L).length = m * s ∧
NLogN.GL.GB Bo (tensorGo [(s, b0L p s t α)] (t :: rest) L) := by sorry