Round-six lemma `cBody_le`
ProvedNLogN.KFZ.cBody_leAn auxiliary lemma of the round-six development, published as a separate node because its proof is long or shared.
The following holds (Lean statement, in the scope of module Solutions.KFZCost):
theorem NLogN.KFZ.cBody_le (hP : dlV p h (D + 1) + 3 ≤ P) (hB : B ≤ P) (hBd : Bd ≤ P) (hb : b ≤ P)
(hlen : len ≤ P) (hst : ∀ i, sv i ≤ t i) (ht2 : ∀ i, 2 ≤ t i) (hT : ∀ i, t i ≤ 2 ^ (h + 1))
(hprod : ∏ i, t i = 2 ^ ((D + 1) * h + σ))
(hM : (∏ i : Fin D, t i.castSucc) * 2 ^ (h + 1) = 2 ^ ((D + 1) * h + σ))
(hdr : (D + 1) * 2 ^ (h + 1) ≤ 2 ^ ((D + 1) * h + σ)) :
NLogN.KFZ.cBody B Bd b len p h D σ sv t ≤
10 ^ 30 * ((2 ^ ((D + 1) * h + σ) + 1) * (FM P + P + 1) + (P + 31) ^ 6)
Context. KFZ Cost: a closed-form bound for the body cost
cBody_le: with a master width P (bounding Δ + 3, B, Bd, b, the descriptor
length and 2h + 6), N = ∏ t_i, r = 2^{h+1}, d r ≤ N:
cBody ≤ 10^30 (N + 1)(fmB(8P) + P + 1) + 10^30 (P + 31)^6.
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*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction.
import Definitions.Def_IntMul_Kappa_K_Defs33
import Definitions.Def_IntMul_Kappa_R6_Defs1
import Definitions.Def_IntMul_MultitapeModel
import Mathlib
import Definitions.Def_IntMul_HvdH_M_Defs8
import Definitions.Def_IntMul_HvdH_Numeric
import Definitions.Def_IntMul_HvdH_ExpApprox
import Definitions.Def_IntMul_HvdH_Twiddle
import Definitions.Def_IntMul_HvdH_RealExp
import Definitions.Def_IntMul_HvdH_SApprox
import Definitions.Def_IntMul_HvdH_MachineRef
import Definitions.Def_IntMul_HvdH_DiagApprox
import Definitions.Def_IntMul_HvdH_EApprox
import Definitions.Def_IntMul_HvdH_JApprox
import Definitions.Def_IntMul_HvdH_BApprox
import Definitions.Def_IntMul_HvdH_FPApprox
set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 1000000
open NLogN NLogN.KFZ
open IntMul NLogN.KIL NLogN.KFB NLogN.KFM
variable {p h D σ B Bd b len P N : ℕ} {sv t : Fin (D + 1) → ℕ}
theorem NLogN.KFZ.cBody_le (hP : dlV p h (D + 1) + 3 ≤ P) (hB : B ≤ P) (hBd : Bd ≤ P) (hb : b ≤ P)
(hlen : len ≤ P) (hst : ∀ i, sv i ≤ t i) (ht2 : ∀ i, 2 ≤ t i) (hT : ∀ i, t i ≤ 2 ^ (h + 1))
(hprod : ∏ i, t i = 2 ^ ((D + 1) * h + σ))
(hM : (∏ i : Fin D, t i.castSucc) * 2 ^ (h + 1) = 2 ^ ((D + 1) * h + σ))
(hdr : (D + 1) * 2 ^ (h + 1) ≤ 2 ^ ((D + 1) * h + σ)) :
NLogN.KFZ.cBody B Bd b len p h D σ sv t ≤
10 ^ 30 * ((2 ^ ((D + 1) * h + σ) + 1) * (FM P + P + 1) + (P + 31) ^ 6) := by sorry