Generic crude depth guard for recursions with shrinking children
ProvedR6.guard_gencomplexity-theoryinteger-multiplicationkappa-improvement
Let , , , . Suppose that every has a list of at most children with and , and that for . Then for every
This is the crude bound on the size of a recursion tree whose children shrink by the factor ; it is the common core of the depth-guard estimates below.
In Lean:
theorem R6.guard_gen (E L T : ℝ) (s m : ℕ) (A : ℕ → ℝ) (hm : 2 ≤ m) (hs : 2 ≤ s) (hE : 0 ≤ E)
(hL : 0 ≤ L) (hT : 0 < T)
(hrec : ∀ e : ℕ, T ≤ e → ∃ cs : List ℕ, cs.length ≤ s ∧ (∀ c ∈ cs, m * c ≤ (m - 1) * e) ∧
A e ≤ E + (cs.map A).sum)
(hleaf : ∀ e : ℕ, (e : ℝ) < T → A e ≤ L) :
∀ e : ℕ, A e ≤ (E + L) * (2 * (s : ℝ) ^ (max 0 (m * (Real.log e - Real.log T) + 1)) - 1)
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 Mathlib set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open Real
Formal statement
theorem R6.guard_gen (E L T : ℝ) (s m : ℕ) (A : ℕ → ℝ) (hm : 2 ≤ m) (hs : 2 ≤ s) (hE : 0 ≤ E)
(hL : 0 ≤ L) (hT : 0 < T)
(hrec : ∀ e : ℕ, T ≤ e → ∃ cs : List ℕ, cs.length ≤ s ∧ (∀ c ∈ cs, m * c ≤ (m - 1) * e) ∧
A e ≤ E + (cs.map A).sum)
(hleaf : ∀ e : ℕ, (e : ℝ) < T → A e ≤ L) :
∀ e : ℕ, A e ≤ (E + L) * (2 * (s : ℝ) ^ (max 0 (m * (Real.log e - Real.log T) + 1)) - 1) := 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 `R6.guard_gen`, Solutions/R6Guard.lean (lines 53–124) of the round-six development.