The total cost of one context (round six, `total_le6`)
ProvedIntMul.Kappa.R6.total_le6complexity-theoryinteger-multiplicationkappa-improvement
The total cost of one context.
The following holds (Lean statement, in the scope of module Solutions.R6MTotal):
theorem IntMul.Kappa.R6.total_le6 {E : ℕ} {ix : Ix6 (7 + E)} {Isym : List Sym} {tab : Fin 1 → IStmt HS 1}
{extM : Fin E → IStmt HS (7 + E)} {Q : Q6} {D : ℕ} [∀ i, NeZero (Q.sB D i)]
[∀ i, NeZero (Q.tB D i)] (C : BigCtx6 ix Isym tab extM Q D) (hP : Q.P.Ok)
{CΦ CL CC CS : ℝ} (h1 : 0 ≤ CΦ) (h2 : 0 ≤ CL) (h3 : 0 ≤ CC) (h4 : 0 ≤ CS)
(AΦ AL AC AS : ℕ)
(e1 : C.CΦ = CΦ) (e2 : C.AΦ = AΦ) (e3 : C.BΦ = dzB Q.dPh) (e4 : C.CL = CL) (e5 : C.AL = AL)
(e6 : C.BL = dzB Q.dLn) (e7 : C.CC = CC) (e8 : C.AC = AC) (e9 : C.BC = dzB Q.dCh)
(c0 : ℕ) (hc0 : (c0 : ℝ) ≤ CS * cU6 Q.P Q.n AS) :
(c0 : ℝ) + kMul6 C + kFin6 C + 2 ≤
Ctot6 Q.P CΦ CL CC CS * cU6 Q.P Q.n (AΦ + AL + AC + AS + 2)
Context. Round-six machine: the total cost of one context
cU6_mono,ZU6_le: the unitZU6is withinKz6 · cU6 A(A ≥ 2).total_le6: the setup (withinC_S · cU6 A_S) pluskMul6 + kFin6 + 2of a context is at mostCtot6 · cU6 A'withA' = A_Φ + A_L + A_C + A_S + 2.
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*).
Preamble
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_R6_Defs17 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open IntMul IntMul.Kappa IntMul.Kappa.R6 open Finset IntMul NLogN NLogN.KIL NLogN.KFB NLogN.KFT NLogN.KFU NLogN.RS IntMul.OpenAI.Glue IntMul.OpenAI.RCost NLogN.KFM
Formal statement
theorem IntMul.Kappa.R6.total_le6 {E : ℕ} {ix : Ix6 (7 + E)} {Isym : List Sym} {tab : Fin 1 → IStmt HS 1}
{extM : Fin E → IStmt HS (7 + E)} {Q : Q6} {D : ℕ} [∀ i, NeZero (Q.sB D i)]
[∀ i, NeZero (Q.tB D i)] (C : BigCtx6 ix Isym tab extM Q D) (hP : Q.P.Ok)
{CΦ CL CC CS : ℝ} (h1 : 0 ≤ CΦ) (h2 : 0 ≤ CL) (h3 : 0 ≤ CC) (h4 : 0 ≤ CS)
(AΦ AL AC AS : ℕ)
(e1 : C.CΦ = CΦ) (e2 : C.AΦ = AΦ) (e3 : C.BΦ = dzB Q.dPh) (e4 : C.CL = CL) (e5 : C.AL = AL)
(e6 : C.BL = dzB Q.dLn) (e7 : C.CC = CC) (e8 : C.AC = AC) (e9 : C.BC = dzB Q.dCh)
(c0 : ℕ) (hc0 : (c0 : ℝ) ≤ CS * cU6 Q.P Q.n AS) :
(c0 : ℝ) + kMul6 C + kFin6 C + 2 ≤
Ctot6 Q.P CΦ CL CC CS * cU6 Q.P Q.n (AΦ + AL + AC + AS + 2) := by sorrySource
S. Jain, round-six networks for the integer-multiplication κ-improvement campaign (https://github.com/Swapnil-jain/integer-mult-kappa, commit 5868dc7) and D. Colkitt, integer-mult-bounds (https://github.com/CrocSwap/integer-mult-bounds); target `IntMul.Kappa.jain_round6_framework`. Lean declaration `IntMul.Kappa.R6.total_le6`, Solutions/R6MTotal.lean (lines 154–267) of the round-six development.